Bryan Drewery edited this page Apr 9, 2015 · 9 revisions

Release Notes


New command details and flags are documented in the manpage.


  • New HTML interface. There is now a top-level and jail-level interface that shows all known jails and builds within those jails. This will only show builds done after upgrading. This requires updates to your httpd. There are examples in /usr/local/share/examples/poudriere for how to configure yours.

    1. Serve /usr/local/share/poudriere/html as the root for the web vhost.
    2. Alias /data to /usr/local/poudriere/data/logs/bulk

    This setup is only required if the new top-level and jail-level interface is wanted. Otherwise the build-level interface will continue to work without a webserver (over file://) or by serving the log directory directly.


  • New feature "ATOMIC_PACKAGE_REPOSITORY". This will avoid touching the repository during builds, allowing it to be continued to be served without having packages go missing.
  • COMMIT_PACKAGES_ON_FAILURE can be set to 'no' to only publish the built packages if no failures are encountered. On the next 'bulk' run the packages staged from the previous run will be re-used if not yet published.
  • KEEP_OLD_PACKAGES can be set to 'yes' to keep up to KEEP_OLD_PACKAGES_COUNT number of repositories in symlinked dirs. The top-level files will be symlinked to .latest/ for the corresponding repository. This can be used to allow a rollback. Just change where the .latest/ symlink points to.
  • Bulk now supports a dry mode with -n. ATOMIC_PACKAGE_REPOSITORY is required.
  • TIMESTMAP_LOGS can be set to 'yes' to add a timestamp to every port build line.
  • ALLOW_MAKE_JOBS_PACKAGES can be set to a list of PKGNAME (or globs) that will be ran with MAKE_JOBS. Otherwise the normal behavior of not running with MAKE_JOBS is preserved with 'bulk' when ALLOW_MAKE_JOBS is not set.
  • Poudriere will now only rebuild what is explicitly listed as needed in the -f list or on the cmdline. Anything not in the list or its dependencies may be removed during sanity checking. This can be overridden by setting TRIM_ORPHANED_BUILD_DEPS to 'no'. Note that either way the repository will be inconsistent. It is recommended to always run with the list of packages expected, and not try to do one-off builds of 1 port.
  • Qemu support has been improved. Jail has learned '-x' to build and use the native-xtools to speed up cross building with Qemu.
  • Bulk learned '-i' to interactively drop to a shell like 'testport' supports.
  • The queue is now prioritized based on the depth of the dependency chain for each package, rather than its direct dependencies. Ports can be boosted by adding their PKGNAME (or a glob) to PRIORITY_BOOST.


  • Jail creation has learned several new options:
    • -m null -M PATH: This is for using a pre-setup chroot to be used as the jail. See poudriere(8) for setup instructions.
    • -m src=PATH: This is for using an existing source tree with a pre-built corresponding /usr/obj tree. A build will not be done, only effectively make installworld.
    • -m tar=PATH: This will install the jail from a given tarball. The tarball should contain a /usr/src tree as well to be fully usable with Ports.


  • New and improved 'status' command to show current and older builds.
  • New command 'pkgclean' which removes old and unwanted packages from the repository.
  • Poudriere now uses color in its output. This can be disabled with USE_COLOR=no or 'poudriere -N'. It is automatically disabled if not running in a tty.
  • Many bugfixes and performance improvements.


  • There is a new 'queue' command that uses a 'poudriered' backend. Commands will automatically be queued if ran from non-root and 'poudriered' is running. This is still under development though and is expected to be documented and improved for 3.2.


  • Poudriere now has some hooks that can be used to automate tasks during certain parts of the build. See Hooks for details.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.