pkgsrc uses the "BUILD_TARGET" definition internally as the primary
target for building in a package's WRKDIR. It defaults to "all".
So pkgsrc cd's to ${WRKDIR} and does a "make ${BUILD_TARGET}"
pkg_comp also wants to use the same "BUILD_TARGET" definition
internally for itself to guide the builds for making binary packages.
It's done at a higher level than the pkgsrc definition. It defaults
to "package".
The use of the same name for two different purposes can cause
pkg_comp to fail to build packages. This commit renames the pkg_comp
definition to be "BUILD_PKG_COMP_TARGET".
With this change in place, my pkg_comp builds now complete successfully.
Bump PKGREVISION for the BUILD_PKG_COMP_TARGET fix
- Add the GENERATE_PKG_SUMMARY option to tell pkg_comp to generate a
pkg_summary.gz file in the packages directory. Useful to later be
able to run a packaging tool like pkgin against new binary packages.
- Allow specifying packages by their basename, without a category. This
affects the arguments to the 'build' command as well as the list of
packages provided to AUTO_PACKAGES and BUILD_PACKAGES.
- Remove pkg_install version check and rebuild if outdated. pkgsrc is
supposed to do that for us. Addresses PR pkg/38323.
- Don't bother to explicitly builddigest. pkgsrc DTRT nowadays when
PKGSRC_COMPILER includes ccache/distcc.
* Do not force the install target to take a full package name. pkg_add will
automatically pick the latest version.
* When building a package as part of makeroot, make sure it actually gets
installed. This is to fix a regression with the switch to USE_DESTDIR=yes.
Otherwise these packages will get rebuilt later on when needed.
* It is common for calls to mktemp to have 6 placeholders in the template,
not 4. Make it so.
Approved by MAINTAINER, jmmv@.
Add option -N: with the expection of pkgtools/libkver (see manual
page about NETBSD_RELEASE) avoid installation of default packages as well as
INSTALL_PACKAGES and BUILD_PACKAGES during the creation of the chroot.
Note: This is useful for running pbulk in a sandbox created by
pkg_comp as binary packages , possibly very low in the build
dependencies tree like pkgtools/digest, won't be built by pkg_comp
while creating the sandbox hence pbulk won't have to rebuild nearly
all packages otherwise already up-to-date.
The maintainer notes that this seems like abusing pkg_comp to just
create sandboxes. And well... yes indeed!
INSTALLATION_DIRS, as well as all occurrences of ${PREFIX}/man with
${PREFIX}/${PKGMANDIR}.
Fixes PR 35265, although I did not use the patch provided therein.
Ensure that libkver.so is loaded if needed via LD_PRELOAD
for all kind of commands run via the chroot target.
This fix PR pkg/32921.
Approved by MAINTAINER.
- PKG_SYSCONFDIR cannot be set by mk.conf; it is PKG_SYSCONFBASE. This was
correct in one place but incorrect in another. Fixes PR pkg/33061 by
Yoshito Komatsu.
- add MAKEROOT_HOOKS, a whitespace separated list of functions
or external scripts to be executed after the sandbox is created,
- be more verbose about hooks execution,
- run hooks only when they are defined.
ok <jmmv>
Fix libkver support for pkg_comp's build, auto and install targets,
Reported broken and fix tested by salo@.
Also ensure libkver is built, if needed, even before digest.
Approved by jmmv@
When installing libkver, as required when NETBSD_RELEASE is set
in a pkg_comp configuration, do so in a special purpose prefix and use
it from there.
This is useful when running a bulk build in the chroot or simply
removing all installed packages in it: the libkver package won't
be removed hence the chroot will still be usable.
Approved by MAINTAINER.
- Make the EXTRA_MK variable be a list of files rather a single one.
From brook at biology.nmsu.edu in PR pkg/30099.
- Directly recognize pkg_* commands to be executed within the sandbox
(i.e., no need to use the chroot keyword).
From Robert Elz in PR pkg/29749.
- Fix a typo in the manual page.
- Ensure that the first attempt to build pkgtools/digest inside the
chroot works by explicitly setting PKGSRC_COMPILER to gcc (pkg_comp
assumes NetBSD in lots of places, so this assumption is acceptable).
It was failing because it set PKGSRC_COMPILER to the empty string in
the environment, which breaks the build.
- Make kern-GENERIC.tgz part of the default SETS value, so that we get a kernel
inside the chroot. If the user removes it from the list, and no /netbsd file
exists after extraction, create an empty /netbsd kernel.
This fixes packages that look for a kernel during compilation, like net-snmp.
Found by cube@.
- Recognize the PKGSRC_COMPILER variable and set it automatically in mk.conf.
- Add the REAL_CCACHE variable: if set, the directory pointed by it will be
null-mounted inside the chroot in a place known by ccache to store the
cache. This is useful to keep it across rebuilds of the sandbox.
Idea suggested by gavan@.
- Use WRKDIR_BASENAME instead of OBJMACHINE to get a unique name of object
directories. This way, multiple jails can use the same pkgsrc tree with
write access and get the right obj links.
- Fix COPYROOTCFG.
- Automatic builds can now be interrupted at any time with CTRL+C and then
resumed! (with 'auto resume' from the command line).
- MAKE_PACKAGES has been deprecated in favour of two new variables:
BUILD_PACKAGES, which tells which packages to build after a 'makeroot'
and AUTO_PACKAGES, used during the 'auto' target.
- MOUNT_SCRIPT and UMOUNT_SCRIPT have been deprecated in favour of MOUNT_HOOKS
and UMOUNT_HOOKS, which take a list of shell functions or external commands
to be executed.
- /pkg_comp is now symlinked to /p inside the chroot, to make paths simpler
when working inside it (i.e., with the 'chroot' target).
- security/audit-packages is not installed any more inside the chroot by
default. This is not needed to get pkgsrc security checks working.
The user can add it to BUILD_PACKAGES for a regular build.
- pkgtools/xpkgwedge is not installed any more during a 'makeroot'. pkgsrc
handles this automatically when needed, so we let it install the package
for us.
- Ensure that libkver's library is preloaded when doing builds inside the
chroot, so that packages get the right version number in them.
- When creating a template file, sort all variables alphabetically.
- Several miscellaneous changes in the code: simplification of syntax,
addition of comments to functions, cleanup of messages...
- Add the AUTO_TARGET variable. This specifies the BUILD_TARGET used during
an automated build of packages (i.e., pkg_comp auto), so that one can use
'bin-install'. Suggested by gavan@.
- Fix minor bug so that a libkver package is built during makeroot.