Changes:
- jail: Fix usage for -m src=PATH
- jail -v: Note that non-listed methods used the value only for display.
- QEMU: Copy the latest emulator into the jail at startup. This fixes
the jail running into bugs with qemu that are fixed with the latest
qemu. It was only copying it in during creation before.
- bulk: Avoid redundant cleaning message with jailversion cleanup.
- Add and document PORTBUILD_UID and CCACHE_DIR_NON_ROOT_SAFE. [1]
PR: 209786 [1]
Changes:
- Fix incorrect handling of null-mounting /nxb-bin in jail
- Disable BUILD_AS_NON_ROOT if CCACHE_DIR is set [1]
- Fix mount path too long when using linprocfs
PR: 209786 [1]
Changes:
- jail/ports -u: Default git pull to use --rebase.
- destroyfs: Run chflags -R 0 and on a smaller subset of files.
- ports: Ignore failures when removing the ports tree
- jail: Ignore errors trying to remove the jail
- Create port-specific directories in do_portbuild_mounts.
- Rework the cleanup to respect -x inside of the directory.
- Support -(j|p|z)<param> without space for poudriere.conf lookups
- hash_var_name: Quote the pattern to _gsub to avoid globbing local files.
- Update sh from head @ r296813
- Switch BUILD_AS_NON_ROOT as default to on.
Changes:
- Optimize jail startup/cloning/rollback and mtree comparisons.
- api: Make more useful
- check_fs_violation: Use mktemp rather than hard-coded tmpfile
- Fix false-positive 'Leftover processes' warning after disabling jexecd
- Conditionalize the jexec logic around USE_JEXECD and add back missing jkills.
- QEMU: Remove _MAKE_JOBS not present in release-3.1 and noted to break
builds by sbruno
- Kill processes before remounting/rolling back the builder FS, rather than
after.
- jail -c: Support older FREEBSD_HOST=ftp.freebsd.org URL schemes still. [1]
- jail -c: Support pre-distributed MANIFESTs for checksum comparing.
PR: 206848 [1]
Changes:
- jail -c: Always copy in QEMU emulator, even if not building from src.
- jail -c: Ensure MANIFEST is not empty or give an error.
- Clear CMD_ENV to disallow sneaking in environment vars
- Update libnv to the latest head @ r293361
- Update sh from head @ r293359
- Null-mount read-only /rescue and /nxb-bin into the jails as they will not
change.
- Add a MUTABLE_BASE option (default yes) to experiment with null-mounting of
base.
- Prefer https://download.FreeBSD.org for snapshot downloads from FreeBSD.
- Remove duplicate NM from make.nxb.conf.
Changes:
- jail -d: If stdin is a TTY, confirm before removing jail.
- Disable rexec/jexecd for now as it has issues on <head and seems racy on
head as well, possibly leading to "Unable to execute id(1) in jail."
- QEMU: Use host pkg-static in the jail for repo to speed it up. For
this PKG_REPO_FROM_HOST=yes may be needed on mips.
This brings in almost a year of updates that had been held back.
Changes: https://github.com/freebsd/poudriere/wiki/release_notes_32
- New sub-command 'image' which is still in development, for generating
install images.
- Some poudriered fixes, but it is still experimental.
- DISTFILES_CACHES may be 'no' to use distfiles/ from ports tree.
- A cache daemon has been added in, off by default, for experimentation.
- The ports 'environment' feature from Mk/Scripts/functions.sh:export_ports_env
is used for dependency gathering now, which avoids 8 or so fork/execs for
every make -V call.
jail:
- New -K [KERNCONF] flag to build and install a kernel into the jail.
- New -S <path> flag to specify what srcpath to use from the master jail,
rather than /usr/src.
- Git support.
- New -U flag to specify what url to fetch from for git and svn.
- EXTRA_DISTS added to add to the distribution list fetched/extracted, from
poudriere.conf.
- NO_LIB32 added, when set to 'yes' skips installing lib32 distribution.
ports:
- Support '-m none' to disable portsnap usage.
- New -U flag to specify what url to fetch from for git and svn.
Build process handling:
- A jexecd process is spawned in the jail and communicated with via rexec
using a pipe. This is intended to lessen the jail locking contention,
allow more easily cleaning up processes, and limiting of TTY. It is
still considered experimental.
Changes:
- Fix 'builder stop' hook, which never worked.
- Don't transcend mount directories when running rm -rf
- Stop exporting MY_JOBID
- Run 'builder stop' hook always in stop_builder() [this means the hook
runs at startup as well to clean out stale builders].
- Enable post-mount jail hooks.
Unless something major is wrong here, this will be 3.1.10 and the next update
to -devel *will be* master which has a year of pending updates.
Changes:
-Always call make by absolute path of /usr/bin/make.
-Update stale comment about MFS
-Fun things happen with /nonexistent exists. Ensure it doesn't.
-testport: Allow -o to be optional.
-Mark poudriere-queue experimental.
-Using ccache on 10+ is fine so long as we use a PATH.
-XDEV: Don't endlessly append to make.conf on updates.
-Fix leftover lock file in /tmp at cleanup
-Support in-tree ccache for buildworld on recent head
-Always use the FAST_DEPEND option for buildworld.
-Go crazy, use -j for installworld targets on recent head
-Allow comments on the same line with port entries in blacklist
Changes:
- Remove old references to the fossil site and point to github.
- options: Override LOCALBASE to prevent pollution from
LOCALBASE/etc/perl5_version. Also use which(1) to find
some helper tools.
- Avoid SIGINFO crash in startup
As long as this is stable, this will be release as 3.1.8. The next update will
then be an update from master, holding the 3.2 code.
Changes:
- bulk -c: Restore previous behavior with log deletion. Don't wipe out ALL
logs, only delete the ones for the given build. This change
almost inadvertently wiped out all logs and violates POLA at
this point.
- bulk -c: Fix it, it wouldn't start.
- Misc cleanups
Changes:
- jail: check the directory for method src=
- csup has been deorbited from the project
- Test to make sure $SVN_CMD is actually set before trying to use it.
Improve test and error message for detecting if svn is installed.
- jail -x: Run native-xtools from /usr/src for now.
- Remove EOL 8.3 support
- Run 'jail start' hook before any 'make' commands.
- jail -m src: Fix handling of cross-compile by setting proper TARGET/TARGET_ARCH
- Remove use of SVN mirrors.
- Fix need_emulation to only check TARGET_ARCH against kern.supported_archs.
- Let KEEP_OLD_PACKAGES work on 9.x/8.4 with sort(1) lacking -V [1]
- Fix typo in poudriere.8
- Correct typo in poudriere -p help output
PR: 193732 [1]
I had intended to update this to master but have not yet fixed a blocking
bug on it.
Changes:
- status -a: Fix handling of showing older builds.
- QEMU: Add a hack to raise the default build times.
- Don't crash starting up a job, or otherwise, if the time goes backwards.
- blacklist: Fix loading of JAIL-SETNAME-blacklist
- QEMU: Always try loading a qemu-blacklist file
- Add a helper 'clock_monotonic' to use clock_gettime(CLOCK_MONOTONIC)
rather than non-monotonic 'date +%s'
- Use monotonic time for calculating durations
- Add a build.started epoch time.
- Add a build.ended epoch time that is set in the last HTML json generation.
- Update sh to FreeBSD r281982
- Fix build on older FreeBSD due to sh. If F_DUPFD_CLOEXEC is unavailable
then use system sh.
- Ignore /var/db/freebsd-update/ too.
Changes: https://github.com/freebsd/poudriere/wiki/release_notes_317
- Restore /usr/sbin and /sbin to PATH lost in 3.1.5
- HTML: Fix broken log link from 3.1.5
- Avoid copying /var/db/freebsd-update into build jails
- QEMU: Fix handling of elftoolchain install for older src checkouts.
Changes:
- Fix testport -o for invalid origins.
- HTML open tag fixes
- Fix temporary file creation causing bad 'mv: fastcopy' warnings about
JSON files.
Changes:
Fix not setting proper UNAME_m/p for powerpc64 cross build
Fix qemu builds not setting MACHINE/MARCHINE_ARCH in make.conf
QEMU: No need to set MACHINE/MACHINE_ARCH in env.
QEMU: For consistency set UNAME_m/p in jail's login.conf.
Don't let balance_pool() failure crash a builder.
Avoid double ln(1) when called in a clean_pool/stop_build failure from build_pkg
When a build crashes and does not complete, properly cleanup its builder jail.
bulk queue optimizations
Call pkg_cache_data in a separate worker. This allows build_pkg() to finish quicker.
bulk -t/testport: Fix the first package built in a jail not showing its needed shared libraries.
Disable 'set -x' in some noisy functions
Rewrite lock_acquire() to not spam 'sleep 0.1'
SIGINFO: Disable trap when erroring, exiting or in other traps
SIGINFO: Don't allow running twice, and ignore errors.
SIGINFO: Hide html_json's sleep(1) SIGINFO output
Allow TMPFS_DATA to be used for builders too.
Always protect(1) poudriere and its coprocesses from OOM killer.
Create temporary files in [MASTER]MNT/.p/tmp when possible rather than /tmp
Don't ignore SIGINT in bg processes. This should fix cpdup spam on ^C during cloning.
Fix some interleaved messages during parallel processing.
Rework stderr prefixer for parallel jobs.
Don't show 2 errors when failing to get PKGNAME.
Import and prefer /bin/sh from FreeBSD r281718. This simplifies compatibility and allows job control.
Changes:
- jail -cx: Fix incorrect hard linking.
- Support building powerpc from powerpc64 without qemu.
- Document that '.' is not allowed in -jzp
- jail_start: Enforce no '.' in -jzp.
Changes:
- Fix 'cp: File Exists' and 'identical (not copied)' errors
- jail -u: Fix freebsd-update for EOL and non-TTY usage
- ATOMIC_PACKAGE_REPOSITORY: Fix crash if user removes the dir .latest
refers to