implicit `-print' action is performed on bar and not on foo. Surround
the search pattern in \( ... \) and add an explict -print so that all of
the results of the find are printed.
Problem noted and patch to fix this received in private email from Stoned
Elipot <seb@netbsd.org>.
that GNU autoconf/automake are not executed during the build process, even
if the tools exist in the build environment. This prevents the build
process from overwriting any changes made to the configure script or to the
Makefile.in files.
${.CURDIR}/pkg directory to the toplevel of the package. It remains
backward compatible with the existing system allowing a progressive
transision process. The long term goal is a reduction of overheads and
processing time when working with the cvs tree.
the scripts/ directory, it will be run automatically as part of
the build process, by bsd.pkg.mk. There are now exactly 5 packages
in pkgsrc which use this facility, and yet, for every package build,
the existence of a script is checked by bsd.pkg.mk once before the
target is executed, and once afterwards. This incurs needless
overhead.
Move the separate pre- and post- script handling out of bsd.pkg.mk into
the individual package Makefiles, where it's much more obvious what is
happening, anyway.
/usr/lib/crtbeginS.o and /usr/lib/crtendS.o make it into
{pre,post}dep_objects.
Fixes pkg/14353 from Witold J. Wnuk <witek@pd37.warszawa.sdi.tpnet.pl>
Tested as "still" working on 1.5.2.
Bump minor number of pkg and make pkgsrc depend on this version.
the pre-configure target is called but before the configure script is
called, but it's added in a non-extensible way. This "stuff" is the
replace-ncurses step and the ltconfig-override step. Move these steps out
into their own targets that are named as prerequisites to the do-configure
step. The prerequisites are specified in the private variable
_CONFIGURE_PREREQ, to which other independent targets may be appended.
BUILDLINK_LDFLAGS to CFLAGS, CPPFLAGS, CXXFLAGS, LDFLAGS from
bsd.buildlink.mk to bsd.pkg.mk. They're unnecessary after the recent
changes to bonobo/buildlink.mk and to libglade/buildlink.mk that removed
their settings of BUILDLINK_CPPFLAGS.
"${CPPFLAGS}", "${CXXFLAGS}" respectively "${LDFLAGS}" in "bsd.pkg.mk" and
not in "bsd.buildlink.mk" because "${BUILDLINK_CPPFLAGS}" and
"${BUILDLINK_LDFLAGS}" might get changed several times by the
"buildlink.mk" files of various packages.
so that the correct setting of PKG_DBDIR is used, and the correct
pkg_info binary too, presumably.
Make show-installed-depends work on Solaris (untested) by only defining
the target if DEPENDS is defined.
installed, as it currently breaks builds that use imake. I made an
announcement on current-users and tech-pkg on this, but having the make
logic place to verify that buildlink-x11 is actually gone is better.
where action can be "install", "package", "create user for", etc., instead
of blindly always saying "install". Define "action" before calling
${_SU_TARGET} whereever it is used.
of relying on bsd.pkg.mk to do it. This change just makes x11.buildlink.mk
more self-sufficient. Also add a warning that x11.buildlink.mk shouldn't
be included in any buildlink.mk files since what it appends to *_POST_SED
variables must come last.
including motif.buildlink.mk, which contains more sophisticated and
complete logic for detecting the various Motif options that may be
installed. Though deprecated, USE_MOTIF is still recognized, though it
does no more than include motif.buildlink.mk.
installed packages and only rebuild everything once:
STOP_DOWNLEVEL_AFTER_FIRST
if set makes "make show-downlevel" stop a bit earlier (since with the
other one below you will be only interested in the first downlevel
pkg found).
REBUILD_DOWNLEVEL_DEPENDS
if set forces the pattern match for dependencies to fail whenever the
installed pkg is not the version in the makefile (i.e. "make show-downlevel" would print a version mismatch for the dependecy). This causes all
downlevel dependencies (and everything depending on them) to be rebuild.
Enhancements, like making this all work with make command line flags and
settings in /etc/mk.conf are welcome. A way to stop "make show-downlevel"
through all upper levels of recursion imediately would be very usefull too.
BUILD_DEPENDS on libtool for the USE_LIBTOOL/non-USE_LTDL case; instead,
just depend on libtool-base (thus skipping the libtool-info and libtool
package compilation where appropriate).
imake to be buildlinked as it's not necessary for those packages. Many
thanks to Frederick Bruckman <fredb@immanent.net> for pointing this out.
This is accomplished by ripping out all of the Makefile logic related to
buildlink-x11. It will be added back in a separate file (as noted by the
additional check for X11_BUILDLINK_MK, but will still not be the default.
EVAL_PREFIX= FOODIR=foo
is defined, then FOODIR's value is only saved if the package foo was
found. This causes FOODIR to keep being reset until the package foo
is installed, which makes EVAL_PREFIX work properly with buildlink.mk
files. This should fix various problems people have been having with
files not being linked in when a dependency is built via a "make build"
in a package that uses that dependency further up the chain.
.if .if
.if . if
.else => . else
.endif . endif
.endif .endif
Patch contributed by Marc Espie <espie@liafa.jussieu.fr> in preparation of
merging latest changes with the OpenPackages project. Thanks Marc!
- The "sun-jre" and "sun-jdk" packages can now be directly selected by
setting "PKG_JVM" to "sun-jdk". "JAVA_HOME" is set to
"${LOCALBASE}/java/jre/bin" in this case which fixes PR pkg/11901
by myself.
- Only set "CLASSPATH" to "${JAVA_HOME}/lib/classes.zip" if that file
really exists.
to install things like "open.3" and "lib.3" which confuse users. Perl
ships with a documentation tool, "perldoc", for this purpose; create a
MESSAGE indicating that it should be used instead. (Perl still installs
command line program manual pages in man1.)
* Integrate bsd.perl.mk into the perl5-base build where it should have been
from the beginning. The separate perl-mk pkg makes binary packages of
perl-mk completely useless[*]. Older perl builders will not break, since
<bsd.pkg.mk> contains fallback definitions that are evaluated at pkg
build time.
=====
[*] bsd.perl.mk is tightly bound to the version of perl that is installed.
The version name "perl-mk-1.1" is completely useless as a binary pkg,
since keeping multiple binary versions of perl on a FTP server means
that one of the perl-mk's will get clobbered.
However, putting the current pkgsrc PERL5_DIST_VERS in the perl-mk pkg
is also a problem, because that doesn't necessarily reflect the
installed version of perl. Snarfing the installed version at perl-mk
build time would be even uglier, since you could not then walk the tree
without perl being installed.
The cleanest solution is to integrate bsd.perl.mk into the perl5-base
pkg, and let those who have not upgraded perl yet use the runtime
definitions in <bsd.pkg.mk>.
addition of the xmkmf script from the XFree86-4.0.x distribution, which
understands passing -D options through to imake. Update the dependency
on buildlink-x11 in bsd.pkg.mk for packages using USE_BUILDLINK_ONLY to
>=0.5. Also, if USE_BUILDLINK_X11 is set, then refer to ${BUILDLINK_DIR}
for location of X headers and libraries.
on buildlink-x11 if USE_BUILDLINK_ONLY is defined. Pass all of
CPPFLAGS/CFLAGS/CXXFLAGS/LDFLAGS to buildlink-x11 through PKGSRC_* versions
of those values. Also add preliminary support for USE_BUILDLINK_X11 for
buildlinking X11R6 instead of USE_X11 (hi zuntum!).
it chdir's to ${WRKSRC} and automatically replaces /usr/bin/perl,
/usr/local/bin/perl and /usr/pkg/bin/perl with ${PERL5} in each file
listed in REPLACE_PERL variable in package's Makefile
to LDFLAGS if it's defined. This is intended for use by package developers
to catch packages that implicitly use libraries from ${LOCALBASE}/lib
without depending on the correct package.
Include it in bsd.prefs.mk to allow their use much earlier in Makefiles,
and try to use the variable references instead of directly invoking the
programs in bsd.prefs.mk and bsd.pkg.mk where possible.
patch(1) is needed, which supports -C (which checks that the patches
would apply cleanly). As we use message digests to verify our
patches, and as we don't have a modified patch on NetBSD, Solaris and
Linux, remove the checkpatch target, and all references to the
PATCH_CHECK_ONLY definition.
target, don't display what we're doing if PKG_DEBUG_LEVEL is non-zero
- the output of run-depends-list is fed to pkg_create(1) and encoded
in the binary package as a list of @pkgdep lines, and expanding the
output is not the right thing to do.
* umask handlint due to umask producing different number of leading 0s in
ksh(1) and sh(1)
* dependency handling is different due to "`...`" being interpreted
differently
([*] needed on NetBSD 1.5.1_BETA2/cobalt, as /bin/sh keeps on dumping core
in ramdom situations.)
a.out automatic shlib handling. The offending symlink is created when
using the, somewhat strange, libtool -release option.
Reported by David Brownlee <abs@netbsd.org> on tech-pkg. Tested by myself
and David.
(collver@linuxfreemail.com)
"In the current pkgsrc, .lzh distfile archives are automatically
handled by bsd.pkg.mk. It is also common for lha archives to have the
file extension .lha."
This modification allows "make readme" to succeed even if the ${PACKAGES}
hierarchy does not exist.
Fixes PR 12480 from Arto Selonen (arto@selonen.org), and addresses
PR 12362 from Masao Uebayashi <uebayasi@soum.co.jp>
+ move the distfile digest/checksum value from files/md5 to distinfo
+ move the patch digest/checksum values from files/patch-sum to distinfo
+ include distfile filesizes in distinfo
If there's no distinfo file (the name comes from FreeBSD, no point in
being gratuitously incompatible), then use existing files/{md5,patch-sum}
files.
doesn't only avoid circular dependences under Solaris, it makes more
sense in general because the libtool documentation is irrelevant to most
users which only want to build shared libraries.
first component is now a package name+version/pattern, no more
executable/patchname/whatnot.
While there, introduce BUILD_USES_MSGFMT as shorthand to pull in
devel/gettext unless /usr/bin/msgfmt exists (i.e. on post-1.5 -current).
Patch by Alistair Crooks <agc@netbsd.org>
by ".ifdef BSD_PKG_MK" in /etc/mk.conf, but "MANZ" handling, in
the package, relys on the system's "bsd.man.mk", which _CAN_
_NOT_ see variables protected by ".ifdef BSD_PKG_MK". By passing
"MANZ" in through "MAKE_ENV", only if "MANZ" is defined, we ensure
that the PLIST handling and the package's own handling are on the
same wavelength.
support to follow. Note this in documentation.
Bump revision of libtool to nb3 and update dependencies.
Update (sort) known affected PLISTs.
Fixes pkg/12368 by Kimmo Suominen <kim@tac.nyc.ny.us>
Fixes problems with cross/* noted on tech-pkg and packages by
Chuck Cranor <chuck@research.att.com>, and
Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
by using the pkgsrc/pkgtools/digest package, and adding dependencies in
bsd.pkg.mk to make sure that that package is up to date.
There is no discernable performance decrease in using sha1 checksums
over md5 ones, and most people advocate the use of sha1 or rmd160 over
md5.
As part of this change, move the initial setting of LOCALBASE, X11BASE
and CROSSBASE into bsd.prefs.mk from bsd.pkg.mk.
Addresses PR 11809.
exists, to set some variables, instead of starting perl for getting the
values (fallback code to old case still there).
BUILD_DEPEND on perl-mk in USE_PERL5 case for speed-up reasons.
COMMENTs are now a variable in the Makefile instead of a pkg/COMMENT
file. The COMMENT var should be in the maintainer block after the
homepage.
Modify bsd.pkg.mk, pkglint, url2pkg, and port2pkg (last one untested)
for the new behaviour. Document new state in Packages.txt.
This should save lots of inodes, and lots of time when untarring/updating.
Idea by Alistair Crooks.
For the time being, accept pkg/COMMENT instead of a COMMENT var to avoid
a flag day.
linked programs. The buggy file(1) on arm32 objects reports "shared
library" for both programs and shared libraries, which results in
broken automatic shared lib handling.
Discussed on tech-pkg, approved two weeks ago by agc.
Convert most MESSAGE files to new syntax (${VARIABLE} gets replaced,
not @VARIABLE@, nor @@VARIABLE@@).
By default, substitutions are done for LOCALBASE, PKGNAME, PREFIX,
X11BASE, X11PREFIX; additional patterns can be added via MESSAGE_SUBST.
Clean up some packages while I'm there; add RCS tags to most MESSAGEs.
Remove some uninteresting MESSAGEs.
case where DESTDIR is set.
Previously, if DESTDIR was set when a pkg was installed, $DESTDIR/var/db/pkg/+CONTENT
would get `@cwd $DESTDIR/$PREFIX', as would the +CONTENT archived in the
binary package. The first is correct, the second is not.
Now, @cwd in the +CONTENT recorded in the binary package gets $PREFIX (no $DESTDIR).
This allows binary packages built into a DESTDIR to be installed on a
real system. The @cwd in the installed PKG_DBDIR ($DESTDIR/var/db/pkg)
remains the same.
In addition, the full path ($DESTDIR/$PREFIX) is recorded in @src in the
binary package's +CONTENT, for reference purposes.
This patch is the same as that posted to tech-pkg, except that variable
names have been clarified as suggested by hubertf.
in the "show-downlevel" target, since a number of package names do not
correspond to Dewey decimal version numbers (e.g. 2.4.1p1)
Instead, use pkg_info(1) to retrieve the installed package name, and
compare that against ${PKGNAME}.
Fixes PR 12041, from Bernd Ernesti
depends for the package. Both build and run depends are shown. This is
a non-recursive target. Ie, only explicitly depends are shown.
Example:
bondage 109 # cd /usr/pkgsrc/cad/geda && make show-depends-dirs
cad/gschem cad/gnetlist cad/gsymcheck cad/geda-utils cad/geda-docs
This target is useful for collecting dependency tree information for bulk
builds.
SVR4 has a lenght limitation of the package name: Only 9 characters are allowed.
Thats not a real problem since gensolpkg, which is used to create a SVR4
packages, truncates the PKGNAME to 9 characters, but there is a second problem.
Normaly you have a vendor identifier in that package name. gensolpkg uses
at the moment TNF, so we only have 6 characters left, and that is insufficient
for a few packages like the amanda ones. Where the real lenght should be
limited to 5 characters so one can choose to use a vendor string up to 4
characters.
SVR4_PKGNAME should be only added to a few packages where the truncation of
the PKGNAME does not produce an unique package name, e.g the amanda packages.
You will need pkgsrc/pkgtools/gensolpkg 1.9 which will be commited in the
next few days to use SVR4_PKGNAME.
TODO: add SVR4_PKGNAME support to pkglint.
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
perl in a previous (pkgsrc) life.
* add "lint" target to run pkglint
* Add commented out direction on how to use bzip2 compressed
binary packages
* Some cleanup (clean target, ...)
Reviewed by Thomas Klauser <wiz@netbsd.org>.
The ${PLIST} target must run after all the pre/do/post-install targets
were run (they may generate ${PLIST_SRC}!).
This whole code-path should use the make dependency system, not fork
make(1) over and over again.
* In real-su-install, do not call "make ${PLIST}" manually, but rather depend
on the ${PLIST} file being there for the do-su-install target.
* Break out shlib-handlink from real-su-install, and put it into target
do-shlib-handling, which will either touch then PLIST (when called via
the ${PLIST} target) or do the necessary steps to setup shared library
handling (creating symlinks on ELF, running ldconfig on a.out, etc.,
when called via real-su-install)
* Removed some unnecessary tests (check if $PLIST is there when it
can be assumed to be there, ...)
long time. Oh well.)
* Only replace the value of PATH for "PATH", not any variable whose name
starts with PATH (like PKGPATH :-)
Hinted by Jason R. Mastaler <jason@mastaler.com> on tech-pkg.
Let's take timidity, which needs ncurses and tk. By setting
NEED_NCURSES=1 and adding it to MAKEFLAGS, all other required pkgs
automagically depend on ncurses - tk, tcl (which is slurped in by
tk), ...
I now remember why I felt there was something wrong with the fix in PR
11433: it calls some target with PACKAGE_DEPENDS_WITH_PATTERNS=false, and
this will cause problems when someone has a different version installed
than what's currently in pkgsrc.
This was also what the XXX was for that I couldn't remember - all
dependencies were found installed at the time that the
print-pkg-size-depends target gets called, and as such we can call
run-depends list with the PACKAGE_DEPENDS_QUICK switch (to first print our
direct dependencies, and then look at their @pkgdep lines to get all their
depends - no need for recursion, as well store all a pkg's depends in it's
@pkgdep lines!). Using that, we can call "pkg_info -e" on all the patterns
to expand them to match what's really installed on the system, then make
that list unique (so that e.g. foo-1.0 and foo-* gets to the same pkg
twice, and then sorted out). After that we can calculate it's size as
before using "pkg-info -s".
Using this method is also a whole lot faster (due to no recursion).
via a tmp file. Also, there's no need to excape any possible HTML chars
(there won't be any in a PKGNAME).
Noted in PR 11462 by Jeremy C. Reed <reed@reedmedia.net>
the new version of xpkgwedge. Changes from xpkgwedge 0.4:
* Redefine ImakeCmd to "imake -I$(PREFIX)/lib/X11/config" to
pick up X11 config files in $(PREFIX)/lib/X11/config before the
ones in the standard X11 tree.
* Install a program called "pkgxmkmf" that's actually xmkmf, but
checks in $(PREFIX)/lib/X11/config before the standard X11 config
directory.
* Create the host.def file in $(PREFIX)/lib/X11/config instead of
always in ${X11BASE}/lib/X11/config.
The benefits of this are:
1) xpkgwedge can now install into $(PREFIX) instead of always into
$(X11BASE).
2) Keeps the X11 tree "pure", and doesn't affect people who want
to run xmkmf and not include all the xpkgwedge stuff, even if
it's installed.
3) Packages that install config files (lesstif, xview-config) can
now do so in $(PREFIX).
4) People only have to use 'pkgxmkmf' instead of 'xmkmf', and
(hopefully) no other changes, if they want to use the config
files in xpkgwedge'd packages.