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.
of the top level build script and into the {pre,post}-build scripts. This
ensures that either of those scripts may be run directly and not rely on
a variable being set by the top level script.
Thanks to Hubert Feyrer for pointing out the problem in a private email.
These changes do not require any user changes to the build.conf file and
should be transparent to the user.
- set BROKENF and BLDLOG in the 'build' script and pass those variables
down to {pre,post}-build in the environment to make sure we only set them
in one place. The values are determined by a
make show-var VARNAME=BROKENFILE
This causes the default (set in bsd.bulk-pkg.mk) or the user overridden
value from /etc/mk.conf or the environment to be correctly determined. This
is more robust that relying on a build.conf setting which may or may not be
correctly set.
- have pre-build only clean up BROKENF and BLDLOG files instead of
.broken* and .make*
This avoids conflicts when pkgsrc is shared among different machines.
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>.
pkgsrc is shared via nfs where multiple machines may want to run the script
at the same time. Also avoid conflicts if multiple copies are run on the
same machine at once.
hard coding it.
- explicitly only add $BROKENFILE's to the output rather than .broken.* This makes
things work correctly when /usr/pkgsrc is shared among several machines which might
use .broken.`hostname` for its broken file logs.
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.