This is a pull-up of upstream 1eb74a64b213d0e4e6a98955169fae76b1c563e0
which was committed on 2014-07-01 but never checked in here (nor I have
released another distfile yet).
Bump PKGREVISION to 2 for this fix.
Problems found with existing digests:
Package memconf distfile memconf-2.16/memconf.gz
b6f4b736cac388dddc5070670351cf7262aba048 [recorded]
95748686a5ad8144232f4d4abc9bf052721a196f [calculated]
Problems found locating distfiles:
Package dc-tools: missing distfile dc-tools/abs0-dc-burn-netbsd-1.5-0-gae55ec9
Package ipw-firmware: missing distfile ipw2100-fw-1.2.tgz
Package iwi-firmware: missing distfile ipw2200-fw-2.3.tgz
Package nvnet: missing distfile nvnet-netbsd-src-20050620.tgz
Package syslog-ng: missing distfile syslog-ng-3.7.2.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Released on 2013-07-28.
* Sources migrated to a GitHub project from the previous copy in
the pkgsrc repository. sysbuild is now a first-class package and
includes a traditional build system based on automake and autoconf.
- Fix the default configuration file to populate CVSTAG correctly when
using a CVS/Tag file.
- Ensure that errors from CVS stop execution.
Problem reported by Nathan Arthur in private mail. Change OKed by pmc.
- Add a MKVARS variable to pass arbitrary variables to build.sh through -V.
E.g. MKVARS="MKDEBUG=yes".
- Move the documentation of the configuration file to a new sysbuild.conf(5).
- Added the 'env' command. This prints a small shell snippet that can be
imported into the current shell. The printed code defines a set of
convenience global variables and functions to work with the source tree.
- Add support to specify per-machine targets by prefixing the targets in
BUILD_TARGETS by the machine they correspond to. Useful, for example,
to build different kernels depending on the machine type.
sysbuild is a tool to automate the maintenance of the NetBSD sources and
the build of releases by means of a single command and a configuration
file that tells sysbuild what to do.
Since NetBSD 1.6 (released on July 2011), the source tree has included a
very flexible script (build.sh) to build a full NetBSD release for the
current platform or to cross-build for any of the supported platforms.
The flipside of the flexibility is that the script is inconvenient to use
on a daily basis because of the myriad of options it takes. Furthermore,
managing the source trees that make up NetBSD is not in the scope of
build.sh: the user must fetch these trees and keep them up to date by hand.
While these details are all fine on their own, rebuilding NetBSD frequently
(to keep a system up to date, or just for development tasks) is convoluted.
Developers and users usually find themselves writing their own wrapper
scripts over build.sh to simplify their daily tasks.
sysbuild extends build.sh by adding support for configuration files and
source tree management, allowing NetBSD rebuilds with a single and simple
command. Make sure to check the sysbuild-user package for a way to
trivially set up periodic NetBSD rebuilds under an dedicated, unprivileged
user.
This is version 2.0 because sysbuild already existed 10 years ago. It
served the same purpose, but it was removed because it stopped working
with NetBSD 2.0 (can't remember why though). Also, I'm convinced the
previous implementation was quite bad.
have it be automatically included by bsd.pkg.mk if USE_PKGINSTALL is set
to "YES". This enforces the requirement that bsd.pkg.install.mk be
included at the end of a package Makefile. Idea suggested by Julio M.
Merino Vidal <jmmv at menta.net>.
- Addition of a new variable, MACHINE, which is used to tell the program
the machine name. This is needed since NetBSD-current now automatically
adds this value to RELEASEDIR.
- Properly pass RELEASEDIR's value to make when building an X release
(pointed out by Douglas Brebner in private mail).
- Update the TODO list in the manpage: remove the X11R6 item and add a new
one about using build.sh to create and use a nbmake wrapper.
- When calling MOUNT_PRECMD, do not quote its arguments, so the pre-command
can determine which is the program that needs to be executed. Pointed out
by Douglas Brebner in private mail.
- Added build-x-release target to build a full X11R6 binary snapshot. The
process works as an unprivileged user, keeping sources clean (using
mount_union(8)).
- Added install-x-sets target to install the sets built by build-x-release.
Change since 1.3: Set BSDSRCDIR, OBJMACHINE and MKOBJDIRS when calling
build.sh and nbmake, so object directories are created in the right place,
not inside the sources.
Changes since 1.2:
- Fixed several bugs in fast mode `-f' (directories were cleaned even if
this flag was given, so it was of no use).
- Ability to keep tools while cleaning (KEEP_TOOLS variable); rebuild them
only when necessary (not found).
- When directly calling "make" or "config", use the binaries in the TOOLDIR
directory, not the ones of the current system.
- Fixed a typo in usage (pointed by Sergio Jiménez).
Changes in this version include:
* New flag `-f' (fast mode). This allows setting the UPDATE variable
during builds (`-u' option of build.sh) and also makes kernel builds
faster.
* New target config-kernel. This makes it easy to modify kernel
configuration files interactively.
* Do not create sysbuild user's home directory during installation, to
avoid hardcoding the /etc/skel path in the INSTALL script. Instead,
provide a sample (and simple) `profile' file that is installed in
the examples directory and is copied to the right place during the
`init' target (suggested by jlam).
* Use `printf' instead of `echo -n' (the later is not well supported
under some systems, like Solaris).
distrib/sets. This call requires TOOLDIR to be set accordingly so that
make can find sysbuild compiled tools. Reported by Sergio Jiménez (sjr at
hispabsd dot org).
Also add a note in the manpage telling the user to use ?= in his mk.conf,
so that sysbuild can override the values there (specially for things like
TOOLDIR).
Bump version to 1.1.
sysbuild is a script that simplifies the process of building NetBSD
releases and kernels as an unprivileged user. It should be clear enough
that it does not add any kind of magic to the NetBSD build system. It
just automates boring steps, like setup of permissions, directories,
execution of the build process, etc. It also provides enough
functionality to automatically update CVS source trees.
sysbuild can be easily used from command line or as a cron job, so
you can schedule most of the build jobs (really, it has been designed
to run perfectly from cron).
Approved by wiz.