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."
- use the PKGPATH variable instead of getting it indirectly
- don't use `foo` when we only want the return value, not the output.
Also, in the non-cache case, we need to remove un-needed packages as noted
in the most recent non-cached bulk build.
Patches provided by Hubert and slightly modified by me.
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.
then run it at the end of pre-build. This lets users do things like:
echo "I do not have enough disk space to build this pig." \
> games/crafty-book-enormous/$BROKENF
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>
even if they are not enabled in the category makefiles. This catches,
in particular, pkgtools/xpkgwedge which was missing before.
Thanks to Christoph Badura for noting this.
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.
a while back on tech-pkg. Note that these defaults will not be 100% accurate
as different machines with the same MACHINE_ARCH may have different serial
hardware. However the default serial device may then be overridden in /etc/mk.conf.
This should at least be better than what we had before ("all the world is i386").
of packages which must stay installed during the build, but are not pulled
in by the DEPENDS for each package. Currently, BULK_PREREQ will always include
pkgtools/digest. At this time, the primary use will be to add
BULK_PREREQ+=pkgtools/xpkgwedge
in /etc/mk.conf to do an xpkgwedge'd bulk build. It is up to the user to make
sure that the list of packages in BULK_PREREQ is a flattened list (ie all the
DEPENDS are listed too). Again, at this time, xpkgwedge is really the only
package that should be added to the list.
-add an ADMINSIG build.conf variable. This is the signature at the end of the
email report. Maybe now I'll quit forwarding reports signed as "-Hubert".
-while here, eliminate grep|awk lines and `grep >/dev/null` replacing them
with pure awk and grep -q.
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.
the old behaviour. This is done because unless we're in the middle of a
bulk build, we don't really know that the cache files are up to date. These
are fairly time consuming (relative to a single smallish package build) to
generate and depend on all of the pkgsrc makefiles. During a bulk build, the
overhead is far outweighed by the savings.
In particular, 'make bulk-install' will now work correctly outside of a bulk
build (useful for debugging broken packages).
Thanks to Hubert who noted the 'make bulk-install' problem in a private email.
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.
fail as a result. Then report this number in the generated email and
html summary. The goal is to help the pkgsrc crew focus our efforts
on the broken packages which have the largest impact. Thanks to
Christoph Badura for suggesting that I do this and Hubert Feyrer who
suggested an easier to read output format.
over several bulk builds on an alpha:
- At the start of a bulk build, 4 files are created to allow fast lookup of
various dependency tree things. These files are
.index == maps package name (foo-2.3) to directory (bar/foo)
.dependstree == contains the complete pkgsrc dependency tree in a tsort(1)
compatible format.
.depends == contains 1 line per package and lists all the build depends
for the package.
.supports == contains 1 line per package and lists all packages which
depend on this package.
- When a package fails to build, the list of all packages which depend upon
it is read from .supports. Each of those packages is immediately marked
as broken. This prevents us from trying to build those packages which can
have significant overhead if lots of other depends are installed before the
system notices the broken one.
In addition, the post-build postprocessing will now indicate that a package
is 'truely broken' (ie, bad PLIST, failed compilation) vs. a package which
is broken because it depends on a failed package. This assists in determining
where to focus our efforts in fixing broken packages.
- In the old approach, all packages are removed after each one is built. The
purpose was to a) conserve disk space, b) verify that all required dependencies
are in fact listed, and c) prevent conflicts. The problem was that often times
several packages in a row have similar depends. For example we might want to
build several perl packages in a row. In the old approach, we would install perl,
build the pkg, deinstall perl and continue with the next one.
In the new approach, when it is decided that a pkg is out of date and should be
rebuilt, the .depends file is used to obtain a list of pkgs we require. Then
and pkgs which are no longer needed are removed. This helps to minimize the total
number of pkg_add/pkg_delete's in a bulk build.
- Since the order of the build is controlled by the depends tree, all depends for a
given package will have been built by the time the pkg in question needs them.
If any of the depends failed to build, then the pkg which needs the failed one will
have been marked as broken. Given this, the complete depends list for a pkg is
read from .depends and the depends installed via pkg_add rather than relying on
recursive make calls to install the depends.
- while here, fix a few minor bugs
x - don't leave .make log files around when the build succeeds
x - make sure we refer to the correct report file in the email
x - use '.order' for the build order file instead of '.l'
x - use 'grep -c' instead of 'grep | wc -l'
been deleted.
- when removing the '.start' file, don't remove them all, only the one we
created. Prevents clashes when pkgsrc is shared among multiple machines.
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.
tflat is a small awk script used to flatten a dependency tree. It can
process a tsort(1) compatible input file and produce a flattened
list showing all packages which depend on a particular package or
all packages which are depended upon by a package. This is used by
the bulk pkgsrc build system.
Written by Dan McMahill after careful study of a perl program that
does the same function in a nicer way written by Thomas Klausner
<wiz@netbsd.org>. The reason for rewriting it without perl was to
make it work with only in-tree utilities.
printindex is a small shell script run from /usr/pkgsrc. It generates
an index file which associates package directory (foo/bar) to package name
(bar-3.2) for the entire pkgsrc tree. The index file is useful for
processing of some of the dependencies during a bulk build.
Written by Dan McMahill using a little bit of the code from printdepends.
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