- Update to checkin 3.0-1668-g5880c23
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]

- Update to 3.0-1609-g7147a70
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.

- Update to 3.0-1596-g9dc9ca4
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.

- Update to master branch checkin 1e0fd46149f9e17e12dadcdd0a28ef40b06587aa
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.

Update to 3.1.9-22-ga91b224.
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

Update to 3.1.7-51-ga3fb251
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.

- Update to 3.1.7-41-gb7d0543
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

Update to 3.1.7-15-ge84bac5.
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.

Update to 3.1.4-58-gd237819
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'

- Update to 3.1.1-33-gbf2a55b
(I decided to use 'git-describe --tags' now that USE_GITHUB supports it)
Changes:
- Allow overriding jail params with JAIL_PARAMS
- Remove old nxb-bin directory if needed.
- Fix more cases of running from local checkout
- Allow all COLOR variables to be overridden in poudriere.conf.
- testport -c is fixed
- bulk now creates a copy of /var/db/ports to avoid breakage if the
directory in /usr/local/etc/poudriere.d/options is touched during a build.
- XDEV: Remove /bin/sh /bin/csh from the static hardlink list on mips/mips64
as there are endian issues to work out.

For the new USE_GITHUB with only GH_TAGNAME set default DISTNAME to
include GH_PROJECT/GH_ACCOUNT/GH_TAGNAME. This prevents the distfile
having the same name despite changing one of these values and causing
a bad checksum.
Differential Revision: https://reviews.freebsd.org/D2103
Reviewed by: mat
With hat: bdrewery

Update to checkin 54183f5f
Changes:
- When using TMPFS_LOCALBASE (TMPFS_ALL) always try to clone the ref
jail's LOCALBASE to the builder jail on port build startups. There
is an optimization to not do this but it is needed for 'jail start'
hooks that want to customize LOCALBASE. It normally will be a NOP.

Fix the new USE_GITHUB to rename the distfile such that it does not
conflict with the old scheme and cause a "reroll" or "invalid checksums". This
also avoids clobbering the FreeBSD distcache.
Use a revision in the DISTNAME for USE_GITHUB in case we need to bump this
again for anything. It's more a hint of how to handle it in the future.
Reported by: mat
Discused with: mat, antoine, swills
With hat: portmgr

Remove GITHUB_RELEASE MASTER_SITE from r375010 as it is now redundant with
GITHUB.
The new GITHUB MASTER_SITE from r381618 now supports not setting GH_COMMIT and
only having GH_TAGNAME default to DISTVERSION.
All of these ports as-is.
With hat: portmgr

- Update to checkin 8d28349
The next update will be 3.1-RC1.
Changes:
* The HTML interface is now fixed for file:// and direct access. This
currently only works for the build directory. The jail-level and top-level
do not yet work, but may in the future.
* Fix usage over NFS when root does not have access to current directory.
* Fix performance for qemu/native-xdev by not using /bin/sh for pkg(8)'s
ABI_FILE

- Update to checkin 4555dff [now a git hash]
- Poudriere's home has moved to https://github.com/freebsd/poudriere/wiki
Changes:
* Fix some error handling with the recent races fixes, which led to them
still crashing.
* Display some nicer errors in some cases rather then just exiting.
* jail -m null: Fix /etc/login.conf.db being stale after deleting
the jail.
* Fix a possible case of dependency calculation errors being lost.

- Update to checkin d7e95d9102
Changes:
* HTML: Fix NaN showing in a case
* Fix handling of SIGPIPE for cleaning up.
* Improvements to cleanup handling such that recursive errors will not
stop the cleanup process.
* HTML: Add an apache example
* testport: Allow tee(1) more time to flush buffer before killing it off.
* bulk: Remove the use of tee(1)
* bulk: Fix several races leading to "stuck_in_queue" and "Unknown stuck
queue bug".
* jail -m src=: Also copy in the src tree now. .git and .svn are ignored.
* bulk: Fix high CPU usage/spinning when the queue is waiting on the last
jobs to finish.
* Remove use of stripcolors pipe which used far too much CPU.
* bulk: Fix a case where computing deps was not delaying errors until
the end of deps calculation was intended.

- Update to checkin 7c2b030b2b
Changes:
* testport: Detect invalid origin in -o
* Still symlink logs to errors/ for 'stuck_in_queue'
* Add a jail:start hook. Can be used to customize the jail for builds on
startup.
* jail -u: Stop trying to nullmount /usr/src on top of itself, and
fix /compat warning.
* bulk -t/testport: Only show NEEDED libraries using readelf(1) rather than
ldd(1) which was showing indirect library dependencies.
* bulk -R / NO_RESTRICTED: Show which files are being removed by
clean_restricted
* Fix showing missing MOVED as a warning
* jail -i: Fix to not require a ports tree
* bulk -i: Fix installation of ports-mgmt/pkg

- Update to checkin 439a908c73
Changes:
* ports -u: Fix with git
* bulk: Some dependency failures are now delayed rather than immediately
fatal. This allows identifying more build problems rather than
needing to iteratively run bulk to continue finding more.
* Add a note that DEVELOPER is ignored without bulk -t/testport.
* Also remove DEVELOPER_MODE for ports not being tested. (pkg uses it and
causes fatal pkg-lstat errors on bad plist)
* Only show boost priority if actually building the packages listed
* Add PKG_REPO_META_FILE passthrough for repo meta file for pkg-repo. Not
currently useful so undocumented. It will be more useful when pkg-repo -m
learn mores metadata options and there is a client-side way to view the
metadata.

- Update to checkin df5632bbea
Changes:
* bulk: Always clean restricted packages when done building if NO_RESTRICTED
is set
* bulk: Don't rebuild unneeded deps which were not specified on the cmdline.
NOTE: This means that partial builds will not create a consistent repo of
other existing packages. I.e., running bulk PORT1 PORT2 and then
running bulk PORT1 will make it only create a consistent repo
for PORT1. Always build with the ports you expect to be there.
* Fix 'msg_error' not defined errors.
* pkgclean/distclean: Consider hardlinks for size calculation
* distclean:
- Fix some false-positives
- Support multiple -p options

- Update to checkin 3a2569440b
- Fix build on 9.1 which does not have F_DUPFD_CLOEXEC
Changes:
* status/jail -l: Fix sort(1) error on <10
* Fix crash with SIGINFO done too early in build
* Prevent appending the same make.conf multiple times
* Fix (-s) showing in sanity when pkg is missing
* Fix jail -u
* jail -u: Name the jail with -default so it can be stopped
with jail -k.
* Add ALLOW_MAKE_JOBS_PACKAGES which lets the named package globs
to always run with MAKE_JOBS regardless of ALLOW_MAKE_JOBS. Default
is set to allow 'pkg' and 'ccache' to build with MAKE_JOBS as they
typically holdup the rest of the build.
* No longer run 'make clean' before building a port as it is not needed
due to always using a WRKDIRPREFIX
* Fix -a to work with bad-styled category Makefiles
* sem(4) is only needed on <9

- Update to checkin f86a423218
Changes:
* Reduce jail restarting for networking access by now always starting
2 jails. One with networking support and one without. This allows
not constantly restarting jails to enable/disable networking, which
causes a lot of jail lock contention.
* Color support has been added. This is disabled by any of:
1. poudriere -N <sub-command>
2. stdout or stderr NOT in a TTY (piped)
3. USE_COLORS=no in poudriere.conf
* Add DURATION_FORMAT and BUILDTIME_FORMAT to allow changing time
display and default build name.
* madvise(MADV_PROTECT) the main poudriere process to allow it to cleanup
on failure from out-of-swap.

- Update to checkin 32a2683eca
Changes:
- Queue is now priotitized by the dependency-chain
length and not by number of direct dependencies.
- Add PRIORITY_BOOST in poudriere.conf which takes
PKGNAME globs to boost up to the top of the queue.
Example:
PRIORITY_BOOST="apache-openoffice* pypy* mysql-workbench*"
- bulk/testport: Add -k to keep going on test failures.
The failures are stll considered failures but do not skip
further builds depending on that port.
- bulk -at: This now defaults to -k
- Leftovers and Orphan checking now uses the scripts in
ports so we can update them frequently without a poudriere

- Update to checkin 0966e62bc4
- Cleanup Makefile to use pkg-plist [1]
Changes:
- make_index fixes (use ports/portsnap version now)
- Documentation updates
- Use autotools for build
- All incremental messages are in a consistent format now.
- New daemon poudriered using libucl with fine-grained permissions, but
not yet hooked up or documented. It will be hooked up to poudriere-queue
and documented soon.
- Add an nc(1) wrapper to work around src change r249499.
- status: Add -H for scripted mode
- status: Show URL if available
- Allow to specify revision when running poudriere jail -u with svn method

- Update to checkin 74abc9e1c2
Changes:
* bulk: Support port origins ending in /
* ATOMIC_PACKAGE_REPOSITORY: Fix bulk/testport when running on 9.1,8.4,8.3
as they do not support mv(1) -h to rename a symlink. This is fixed by
adding a custom rename(1) that just calls rename(2) on the arguments
to ensure an atomic rename(2) is done.

- Update to checkin 32dddce6d7
- Update LICENSE format
Changes:
- Add a BUILDER_HOSTNAME that can be set to define the hostname
for package building
- Add PRESERVE_TIMESTAMP (default off) to allow preserving timestamps
in svn checkouts
- Auto clean packages when their version does not match the jail's version
- jail -l: Add -n to only show name
- Ensure /sbin:/usr/sbin is in PATH
- jail: Add -r to rename jails (jail -r newname -j oldname)
- Fix ipv6-only usage
- Require sem(4) kernel support as some ports require it

- Update to checkin 105ef35755
Changes:
- Fix hang in sanity check
- Fix race causing "unknown stuck queue" after ports finish building
- Fix PARALLEL_JOBS always set to prepare number
- Cache fixes
- cpdup -X usage fixes
- bulk: Avoid rollback on first startup (speeds up startup)
- Cleanup some error handling with parallel processes,
errors will now cause a 30 second wait for other processes
to cleanly exist instead of sending a SIGKILL right away.
- Fix KEEP_OLD_PACKAGES_COUNT when package root
is a symlink
- Ignore home directory of users created by ports during
leftover check
- Load MOVED on startup and use it to track changed origins
in existing packages, which fixes more invalid dependency errors
and "new dependency" deletions in sanity check.
- Checksum is now done as root in case it needs to refetch
- testport: Remove extra -J description

- Update to checkin e5f36a7de8
Changes:
* Package builds are now atomic. They will not update the
package repository directory until the build finishes.
This can be disabled with ATOMIC_PACKAGE_REPOSITORY (default yes).
This will convert the repository to a new format on first build.
If a build fails, all of the successful packages are retained
for the next attempt, but the old packages do not get modified.
* Disabling COMMIT_PACKAGES_ON_FAILURE (default yes) will have it
not touch the repository if the build fails; the package repository
will only be updated once a build succeeds.
* bulk now has a dry run mode (-n). Requires ATOMIC_PACKAGE_REPOSITORY
* Add KEEP_OLD_PACKAGES which will keep KEEP_OLD_PACKAGES_COUNT

- Update to checkin ab7af29666
Changes:
* pkgclean: Detect and cleanup duplicated packages due to PKGNAME
renaming
* Misc typo fixes
* ports -m git
- Use --depth=1 to not download all history for the repository.
- Support -v to show output