- 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
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.
* Running commands as non-root will *auto queue* them to poudriered
if it is running. See rc.d/poudriered.
* HTML/Web major changes:
- Stop polling the server once the build is done.
- There is now a top-level and jail-level page. The top-level only
shows the *latest* build for each jail-ports-set combination.
The jail-level only shows for a specific jail-ports-set combination.
These pages will only be updated with builds done after upgrading.
This may change before 3.1 release using a statsd to populate with
all historical builds as well.
- The main build page has been majorly reworked.
* It no longer has 2 columns which overlap each other when zoomed in.
The site is now much more responsive to zooming and mobile viewing.
* More links to logs and elapsed times are shown
* More system and build stats are shown such as "Impulse" which is
the rate of package building over the last 2-10 minutes. This is
done in browser/js currently so will reset when reloading the page.
- The layout for httpd setup has changed. Now instead of duplicating
the html/assets into every build dir, the html dir from
/usr/local/share/poudriere/html/ should be served directly
and the /data dir should be symlinked or aliased to the equivalent
/usr/local/poudriere/data/logs/bulk/ dir on your system. See
/usr/local/share/examples/poudriere/nginx.conf.sample for an
example nginx setup.
** Note that this is still being improved for 3.1 and may undergo some
backwards-incompatible changes before release.
* status: Major changes.
- By default only show running builds
- Use -a to show all builds, not just latest
- Use -f to show finished builds, only latest
- Add -c for a more compact format
- Displaying the SIGINFO/builder output now requires -b.
- -B/-j/-p/-z can be used to filter the output.
* Show buildtimes in output now.
* TIMESTAMP_LOGS has been improved
* poudriered is no longer installed in sbin/
* Fix MAX_MEMORY so it actually works. Note that this may break openjdk
building.
* Fix incorrect timeout message shown during install phase
* jail -l, ports -l, status: Auto format width of columns to output
* jail: Add back -i support to show information about a jail
* Improvements to fork less often
* testport: Now default to -n. Add -P to test with custom prefix.
* testport -I: Fix longstanding bug of displaying wrong jail -k hint.
* qemu-mips support
* ports: Allow -B with git method
* All the fixes from the 3.0.16 release as well:
* Disable DEVELOPER from make.conf; Poudriere will automatically
set it when appropriate. This prevents testing of port dependencies
that were not requested to be tested.
* distclean: Prevent removing all files by accident.
* Having PKG_REPO_SIGNING_KEY set but the file missing is now fatal.
* kern.securelevel >=1 is now fatal.
* Fix 'kill: No such process' warnings with older /bin/sh (8.x)
* Fix crash on 8.3 due to bug with $(()) handling of _vars (fixed in
base r234001)
* Fix case of packages always rebuilding with "changed options" when
the port has an OPTION defined multiple times (such as fixed in
ports r352512)
* Fix 'Terminated' warning showing at shutdown with older /bin/sh (fixed
by r218105 but never made it to stable/8)
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
release and allow Tinderbox to use the same checks. [1]
- This fixes many false-positives with orphans
- Now @dirrm are not shown if they are already in the plist
- Hook-up stage-qa into the tests and remove our redundant
checks.
- testport -i: Fix common double-install error
- Fix leftover mtree not showing all results when a directory
is modified. I.e., changed user and group, only one of which
was showing.
- bulk -a: Don't consider missing origins as fatal.
- Rework distfile handling to be more atomic
- Fix many race conditions with cleanup after
port build, especially with skipping ports.
- Optimize port cleanup after builds
- Speedup compute_deps
- Fix crashed build detection (commonly shows as
"unknown stuck queue bug")
- status: Fix regression causing it to not work with multiple
builds at once
[1] It's possible we may change the format of the scripts in ports
once Tinderbox integrates with them. If this happens you will
need to update poudriere-devel.
- 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
with -t
- bulk: Add -i and -I for interactive testing of all specified ports at once,
requires ports r348859 change to Mk/bsd.port.mk.
- Report modification of directories during leftover check (owner or
permission changed).
- Fix ipv6 only usage
- Ensure /sbin and /usr/sbin are in PATH when running
- Remove trailing slashes from listed_ports.
- Exit quicker after ^C during packaging phases by killing pkg-static
- Fix child process cleanup logic to only sleep if child still running.
- Always dismount filesystems and try cleaning up when exiting and in jail -k
- For stage_orphans, ignore modified files (such as nobody vs root)
- testport -I: Mark cleanup done, not as recursively failing
- testport -i: Use a local.conf instead of PACKAGESITE
- testport -I: Suggest same login method which is more sane/clean than exec
/bin/sh
- options: Require dialog4ports as it runs from host and
jail may be for a different ARCH
- Ignore parents of home directories too during leftovers check
- Restrict ZFS on 9.0/9.1 due to known deadlock
- bulk: Parse MOVED for given port build list
- Add support for svnlite and overriding SVN_CMD
- Show warning when jail is newer than host
- Show host/jail OSVERSION in build logs
Submitted by: Johannes Jost Meixner <xmj@chaot.net> [1] (based on)
PR: ports/187373 [1]
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 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
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
Changes:
* Fix sanity checking not properly recursively deleting dependencies.
* bulk/testport: Add PREPARE_PARALLEL_JOBS and -J n[:P] where P is
used for pre-build parallel jobs which may be more IO-bound
* Typo fixes in manpage
Changes:
* Add new MAX_MEMORY and TMPFS_LIMIT to allow limiting memory
* bulk: Show (-C) when used when deleting existing packages
* bulk: for install,deinstall,package,extract limit execution
time to 1 hour to avoid endless loops like devel/meta-cvs in
r337304
* Allow BUILDNAME to be overridden in poudriere.conf, such as:
BUILDNAME=$(TZ=UTC date +%Y%m%dT%H%M%SZ)
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
number of old repositories. This can be useful for rollbacks
or bisecting. Requires ATOMIC_PACKAGE_REPOSITORY
* Add RESTRICT_NETWORKING (default yes) which can be used to disable
the network restrictions outside of 'fetch' phase.
* Add new PORTTESTING_FATAL (default yes) which can be disabled so that
failed ports (leftovers) do not cause ports depending on that port to be
skipped. This is useful for QAT.
* Fix stage orphans excluding /var/run/PORTNAME
* Stage orphan fixes for ports using kdeprefix
* /proc and /compat/linux/proc now excluded for leftovers
* nmtree fixes for head
* Misc performance improvements
* build_fs_violation was broken
* Poudriere now requires pkg-1.2 in its ports tree
Changes:
* pkgclean: Fix to properly remove correct duplicated package
* Only markfs prepkg for bulk/testport, not pkgclean
* jail -l: Fix crash if no jails defined
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
Changes:
* poudriere.8: Document that -j is required for bulk
* bulk/testport: Delete packages that have changed PKGNAME during startup,
which will avoid pkg-repo duplicate package warnings/bugs. This will not
clean up existing duplicates, just fix new ones going forward.
* bulk: Fix start hook starting before validations
Changes:
* Fix random crashes with parallel process handling
* sanity check is now parallelized for a big speedup
* Pkg deleting during startup has been optimized further
to avoid a bottleneck during parallelization
* jail -cu: Disable CCACHE on 10
* Manpage typo fix
* testport/bulk -t: Fix staging absolute link checking with files
that have spaces
* testport: Fix so that MAKE_JOBS runs by default
* bulk -t: Fix so that MAKE_JOBS does not run by default
* testport: Fix so that the port being tested shows in the web ui.
Note that this is still in data/logs/bulk/
Changes:
* Loopback address fixes
* Fixes for when running poudriere in a jail (do not use fdescfs or
devfs to hide/unhide devices). PATCHED_FS_KERNEL overrides this
* Prevent SIGTSTP from reaching child builders
* jail -c: Fix -m ftp-archive for 9.0
* jail -cu: Add svnlite support and SVN_CMD override
Changes:
* testport: Fix /prefix error when using pkg_install
* Fix sample bulk.sh hook for stats
* Don't set PREFIX when using 'testport -n', which avoids
hiding cases where bsd.port.pre.mk are needed
Changes:
* Add BUILD_AS_NON_ROOT and set to 'no' by default. Set to 'yes' to
attempt to build ports as non-root. Ports may need USES=uidfix to
build, or NEED_ROOT=yes to mark as requiring root
* Check for absolute symlinked files when staging
Changes:
- Non-root build fixes
- Added BUILD_AS_NON_ROOT and disable by default until more wide
testing can be done. Set to yes to build ports as non-root where
possible
Changes:
- Many usage/notices cleaned up
- Some default invokations now work as expected
- jail -cu: http method now supported
- Non-root package building is now in for staged ports that do
not have NEED_ROOT. It defaults to building as 'nobody', but
can be overridden by changing PORTBUILD_USER in poudriere.conf
- Fix detecting {/,/usr,/usr/local} on staged NO_MTREE ports
Changes:
- Respect DESTDIR on poudriere install
- testport -i: Fix when orphans are found with staging
- bulk -v: Reword distfiles message
- bulk: Fix INDEX building showing wrong origins
- bulk: Remove stray " done" message
- Staging fixes for testing ports-mgmt/pkg
- jail: Deprecate csup
- Add safety check for rm -rf /*
- pkgclean: Fix finding packages [1]
- During build, call install-mtree after run-depends. This should be
a NOP, but mentioned in case weird things happen.
Reported by: olgeni
This release supports upcoming STAGE support. Please
update to it soon.
Changes:
- Staging support.
* Detect files orphaned in the stagedir that are not
installed due to not being in the pkg-plist
* Detect files that get installed outside of the
STAGEDIR during 'make stage' as 'stage_fs_violation'
- Rename 'preinst_fs_violation' to 'build_fs_violation'
- latest-per-pkg links are now hardlinks
- Fix possible recursive crash during jail startup
- Chmod jail build dirs to 0711 to keep out gvfs-trash
from tracking the directory during build, leading to
kernel panic sometimes
- jail -uc: Fix detection of errors during distrib-dirs
- jail -uc: Fix on recent HEAD during distrib-dirs due to
new unbound user.
- testport: Only show -n warning if there are leftovers
- jail -u (SVN): Fix RELEASE not being updated for UNAME_r
during major upgrades (head becomes 10-ALPHA, 11, etc)
- jail: usage cleanup
- hook 'bulk done' now has stats passed to it:
#built #failed #ignored #skipped
- jail -uc (SVN): Show SVN revision number in uname via
UNAME_v
- testport: Always run with TRYBROKEN
- Now showing status messages when running mtree(1) for
fs checks
Changes:
ports: Add -k for -d usage to keep files around after deleting
testport -i: Fix TERM not being passed into the jail
jail -cu: Fix build with recent head due to new user 'unbound'
Hardlink logs into latest and latest-per-pkg
Fix recursive crash in jail_stop()
Add TIMESTAMP_LOGS support
Set build dir to 0700 to avoid gvfsd-trash tracking all mounts during build
Changes:
- HTML interface now use DataTables for pagination/searching/sorting
- NO_FORCE_PACKAGE added to prevent setting FORCE_PACKAGE
- New pkgclean subcommand for removing unwanted/unneeded packages.
Similar concept as 'pkg autoremove', but for the repository.
- testport -i: Fix for when the build fails
- testport: Add hint about using -n when leftovers are found
- Switch to using USE_PACKAGE_DEPENDS_ONLY
- Fixes for detecting errors in startup, such as missing fdescfs
support
- Improved runaway output
Changes:
* Speedup sanity checks by only checking ports that are required
by the build and not all existing packages.
* Switch to embedded cpdup(1) for creating jails instead of pax(1)
* Implement port blacklisting defined in
etc/poudriere.d/[(setname|jailname)-]blacklist
* Add hooks for bulk start/stop
* status: Always show actual path to logs instead of /latest
* bulk: Add check for missing PKGNAME (empty port dir)
* Disable tracking buildtimes by default
TRACK_BUILDTIMES=yes to enable
* bulk: Fixed dependency calculation for CHECK_CHANGED_DEPS.
There are still some ports with issues.
* Add portbuild/tinderbox error reasons [1]
Submitted by: linimon [1]
Changes:
* HTML: Always redirect /latest/ to the actual build URL
* HTML: Name build names as YYYY-MM-DD_HHhMMmSSs to remove ':'
to make completions/URL encoding nicer.
* Leftover updates
* ports -u: Always 'svn upgrade' before updating (for 1.7->1.8)
* Fix SVN compatibility with 1.8 for URL recording
* jail -s now starts networking
* Fix jail building on recent HEAD [requires devel/fmake on host]
* Pre-liminary support for mips64/armv6
See: https://fossil.etoilebsd.net/poudriere/info/f781dc0560
* Repo building now always occurs if the repo is missing.
* bulk -c: Fix deleting old caches
* Allow user to override etc dir via POUDRIERE_ETC and -e switch
See: https://fossil.etoilebsd.net/poudriere/info/5b2608fcc7
Changes:
- Fix parallel_exec child errors not stopping the build.
I.e., when computing deps if an origin is not found, the
build was not properly detecting that.
- Be more strict about leftovers in /var/db
- Package filename quoting fixes
Changes:
- Jail tar(1) and pkg(8) invokations
- Remove unneeded ldd temp script
- Fix appending MASTERNAME-make.conf twice [1]
- Use swap-based disk for MDMFS [2]
- HTML: Move assets into assets/ so that tab completion
is not hindered for logs/ by logo.jpg
Reported by: kwm [1]
Submitted by: ak [2]
Changes:
- Leftover fixes
- Status fixes
- ports-mgmt/pkg no longer required in the host when building
WITH_PKGNG sets.
- CCACHE fixes
- jail: Support -m url= [1]
- jail -u: Allow updating snapshot jails [1]
- jail: Fix destroying/cleanup of jails with USE_TMPFS=all
- HTML: Show skipped counts in failed/ignored tables
- HTML: Show SVN URL
- Allow DISTFILES_CACHE=PORTSDIR/distfiles now that DISTFILES
are mounted in /distfiles [2]
- testport: Make failed builds more clear [3]
Submitted by: will [1]
Reported by: mat [2]
Reported by: tj [3]
Changes:
- Add example hook in etc/poudriere.d/hooks
- Documentation cleanups
- Sanity check fixes (ports tree exists)
- SIGINT during build no longer register the build as
'crashed'
- status: Fix cases where this would change the status of
the actual build
- queue/daemon - Use a UNIX domain socket for scheduling builds
instead of requiring the 'queue' user to have write access to
the queue dir.
- bulk -t: Add -r flag to recursively test dependencies (this was
the old default behavior)
- Revert linux leftover change - this is now handled in ports
r318960
Changes:
- Add rc script
- jail -c: Fix NO_ZFS support
- bulk -t: Only test ports specified, not unlisted depends
- make_index: Jail the INDEX building
- options: Fix *make.conf not being respected
- Add workaround for ZFS zteardown deadlock on 9.0/9.1-RELEASE
- status: Fix when running multiple builds at once
- leftovers: Ignore shared library cache files
- Various fixes