This package sets up periodic builds of binary packages using the
pkgtools/pkg_comp utility given minimal configuration. All that is
needed from the user is to determine which packages to build
automatically.
If you are on NetBSD, see also sysutils/sysbuild-user, which is the
perfect companion to this package to periodically build the base system.
**Released on 2017-02-17.**
This is the first release of the pkg_comp project as a standalone
package. This new release shares no code with previous versions and is
not compatible with them.
The following are the major differences between pkg_comp 2.0 and all
previous releases, which incidentally are the reasons that triggered
this rewrite:
* Support for multiple platforms.
* Use of pbulk to (re)build packages within the sandbox. This results
in more reliable incremental builds after pkgsrc updates.
* Support for bootstrap, generating binary kits as part of the builds.
* Better scriptability to allow running from cron(8) trivially.
This is to make room for pkg_comp 2.0, which is coming soon. The new release
is significantly different from the 1.x series in features (supports multiple
platforms, bootstrap, and pbulk) but also comes with a different configuration
syntax.
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
Changes since 5.4.15:
* updated vardefs from mk/defaults/mk.conf from v1.118 (2006) to v1.269
Gone:
* PKG_SUFX
* USETBL
* PKGSRC_SHOW_PATCH_ERRORMSG
* USE_XPKGWEDGE
* PKGVULNDIR
Adjusted:
* USE_GAMESGROUP
* BIN_INSTALL_FLAG -> BIN_INSTALL_FLAGS
* fixed license parsing to be more realistic
(the previous version didn't handle parentheses correctly)
* lots of housekeeping
* moved some code to separate packages, allowing re-use
* separated Line checks into LineChecker type
* separated MkLine checks into MkLineChecker type
* made Line an interface, for further refactorings
The getopt and pkgver code have been extracted to separate packages to make
them reusable.
Several other functions have been moved to make the structure easier to
understand:
* dir.go and main.go have been moved to pkglint.go
* utility functions from pkglint.go have been moved to mkline.go
Now pkglint.go contains only high-level code.
Introduce a separate client-prepare script. The default configuration
runs the renamed client_prepare_action for each scan/build client once,
dropping duplicates in the list. Clients are prepared in parallel, but
the master waits for all before starting the actual scan. Make
bulkbuild-restart re-prepare the clients, i.e. in case they have a
pkgsrc tree in a local tmpfs.
Changes since 5.4.12:
* Added check for unintended # comments, especially in HOMEPAGE
* Added check for quotes in COMMENT
* Fixed hardcoded package versions for PHP, Python, Lua, etc.
* Code cleanup in the tests
Many of these definitely do not depend on readline.
So there must be a different underlying problem, and that
should be tracked down instead of papering over it.
Changes since 5.4.11:
* warn when PKGSRC_COMPILER is compared with "==", since it may be a chain
of compilers
* warn about listing Python .egg-info files directly in PLIST files, since
lang/python/egg.mk takes care of this
* code cleanup: unify Error{0,1,2,3} into Errorf to make understanding the
code easier; use interface{} for MkLine data; use regular expression
instead of handwritten matching code, since one line is easier to read
than 50
Solves:
/usr/libexec/binutils225/elf/ld.gold: error: cannot find -lreadline
The missing specification is obvious on DragonFly because there's
no publically accessible version of readline in base.
- Add progress when fetching (number of files to fetch)
- Improved messages about locked packages
- Return 1 when a user rejects the proposed plan
- When dealing with configuration files '@config' never overwrites
untracked files
- Warn everyone about deprecation of @dirrm and @exec
- Deduplicate metadata loading code
- pkg register now understands context aware messages
The default for PKG_DBDIR changed from /var/db/pkg to ${LOCALBASE}/pkgdb
Accordingly, the pkgng location is changing from /var/db/pkgng to
${LOCALBASE}/pkgng-db
Several updates in pkgsrc-synth work are applicable to pkgtools/pkg so
let's bring them in. Some changes:
1) fetching segfault fixed
2) change VULNXML URL from FreeBSD ports to pkgsrc version
3) Fix vulnerability report URLs (404) to valid ones (DragonFlyBSD.org)
4) Add ability to build debuggable version
5) Fix PKG_DBDIR default setting for pkg (honor mk.conf)
6) Fix another segfault on NetBSD when pkg(8) attempts to read elfhints.
This is only valid on FreeBSD and DragonFly, so bring in upstream
fix to block on other platforms.
7) Set as BOOTSTRAP_PKG and block USE_CWRAPPERS for bootstrap reasons
8) realign SUBST* definitions
Changes since 5.4.10:
* Replaced regular expression with hand-written matching code, since
it is 30 times as fast.
* Reduced number of syscalls by remembering os.Lstat results and
CVS/Entries.
* Reduced number of syscalls by querying the current user only once.
* Added warning for comparing ${PKGSRC_COMPILER} == "clang", which
should rather be ${PKGSRC_COMPILER:Mclang}.
* Added variable definitions for NOT_PAX_ASLR_SAFE and NOT_PAX_MPROTECT_SAFE.