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
Changes:
- Add new subcommand 'status' which lists running builds. Specify
-j[pz] to view the current status of a specific build and all of
its jobs.
- Missing/New Dependencies: Be more verbose by default about why
packages are being deleted.
- CHECK_CHANGED_OPTIONS now defaults to verbose
- Add CHECK_CHANGED_DEPS and default it to on
- Fix support for jails with ':' in them
- bulk: Allow specifying -f multiple times
- testport -i: Add hostname into /etc/hosts
- Documentation fixes
- Fix DISABLE_MAKE_JOBS support
- Fix dependencies being checked twice during port builds when not
port testing
- jail -u fixes for freebsd-update/ftp
- Fix buildtime tracking missing a space
Changes:
- Add new latest-per-pkg symlinks into the root
bulk/ dir and bulk/jail/ dirs to link back to
the most recent builds for each package
- Use new CCACHE_DIR support
- Fix JS error in HTML page when loading too early
- Fix trying to clean '*' due to race condition when
skipping packages
- Remove CCACHE_CPP2 from jail -c as latest devel/ccache
is already handling this for buildworld
- Fix linux ports hanging during build
- Fix jail -c on recent CURRENT by using DB_FROM_SRC
Changes:
- testport/bulk -t: Fix leftover detection for TMPFS LOCALBASE
- Add bpf* to list of devices to unhide to fix libnet10
- Use --fast-read (-q) option of tar when possible
- Fix hanging when building some linux ports
- testport -i: Fix terminal not being fully usable, ie for vi(1)
- Fix depends failures not halting port building
- Major speedups for NO_ZFS/USE_TMPFS startup/cloning
- Mount /usr/src as read-only in every builder jail. This also
saves using ~1GB of memory for every builder when using TMPFS
- testport/bulk -t: Add checks to look for filesystem being touched
before 'make install'
- Fix some cases where poudriere would hang when errors were
encountered
- Various documentation/typo fixes
- Support value of 'no' for NO_RESTRICTED and SAVE_WRKDIR
- jail -d: Ensure jail not running before deleting
Feature safe: yes
Changes:
- Skip deleting symlinks/empty dirs with -s
- Fix pkg_install builds [1]
- Fix SETNAME-options not working [2]
- ports: Fix cleanup when create is aborted
- ports: Add -v to show more output for SVN operations
- bulk: Add -N to skip generating package repository or INDEX
- Show CONFIGURE_ENV/CONFIGURE_ARGS/MAKE_ENV in build logs
- Add support for PTNAME-options
Submitted by: Jimmy Olgeni <olgeni@olgeni.com> [1,2]
Feature safe: yes
Changes:
- Install depends just-in-time in the proper sequence ordering, instead of all upfront.
This also fixes differences between testport and bulk with regards to run-depends.
- Give a port all the special depends distfiles it needs during build as well. This fixes
issues with fetching and distfiles.
- Add basic hook support in /usr/local/etc/poudriere.d/hooks
- bulk: New C index builder for pkg_* bulks
- bulk: Automatically detect direct dependency changes. This should detect
postgresql/mysql/perl updates (change of default versions) without
needing user interraction.
- Delete empty directories when cleaning up repositories
- Add ftp-archive method for old releases
- jail: consistently accept svn revision number
- bulk -T: Implement try-broken
- bulk -F: fetch-orginal - This flag tries to download from the original mirror
and ignores all FreeBSD mirrors
- jail -c -P ./path.to.patch: Patch the src tree with the given patch before building it
- Add a small C code to determine if a directory is empty (faster than find for this)
- jail -u: Fix 'Error: 1 argument expected: jname'
- ports -F: Fix not populating method file
- ports -u: Fix backwards compatibility with snap dir
- Fix NO_ZFS still causing zfs.ko kernel module to be loaded
- Raise default nohang time to 7200 and add MAX_EXECUTION_TIME/NOHANG_TIME
- ports -d: Fix deleting the ports tree
- jail -d: Fix deleting jails
- testport: Add .keep support for wrkdir saving
- Speedup packaging by reducing I/O
- Fix crash in siginfo_handler() via cache_get_pkgname() if origin is empty
- ZSH completion fixes
- Documentaiton fixes
- Various leftover fixes
- Various other fixes
Feature safe: yes
This codebase has been in testing for several months now and
is stable
- Remove standard description for ZSH
Changes:
- ZFS support is now optional:
* NO_ZFS can be set to disable ZFS usage
* TMPFS_ALL can be used to the build 100% in memory via tmpfs
- Jail/Port properties are no longer stored in ZFS. They will
be automatically converted on the first execution. This means
that downgrading to 2.x is not easily possible.
- testport has lost -d
- Remove cron
- Add daemon (rc script not completed yet)
- queue has been reworked for daemon (this may further change)
- New HTML/AJAX interface using jQuery
- Build times are now tracked
- Runaway builds are now automatically killed after 1200/84600
seconds of no output / max build time
- Build logs are now saved forever and not removed on
every build. testport will store its logs into "bulk"
dir for now as well.
- Ability to resume a previous bulk -a build by using -B (this
is mostly for exp-runs as it allows grouping incremental logs
in with the previous logs). By default the buildname defaults
to YYYY-MM-DD_HH:MM:SS for every build.
- jail -c gjb method is now an alias for ftp
- ports: Support checking out a different branch with -B
- testport -i improvements:
* Network enabled
* Works even when build fails
* RUN_DEPENDS now installed
* tty usage still broken
Thank you to all contributors and testers
Please report and discuss defects in #poudriere on freenode
or report to https://fossil.etoilebsd.net/poudriere/reportlist