When using GH_TAGNAME the DISTNAME would have GH_PROJECT and GH_ACCOUNT in
it. When not using GH_TAGNAME it would not have this. Now both cases
will add in the GH_PROJECT and GH_ACCOUNT.
Add special care to ensure that the DISTVERSION is not added in twice. If
a port does GH_TAGNAME=v${PORTVERSION} it will be added in twice though. For
that case DISTVERSIONPREFIX=v should be set and no GH_TAGNAME should be used.
empty() is used rather than (!defined || !${}) to support fmake.
The purpose of setting DISTNAME at all in these cases is to make it more clear
that the distfile is from *GITHUB* and to avoid collisions if a project were
to be renamed or moved. Without adding in GH_PROJECT and GH_ACCOUNT then there
are real risks that collisions on filenames would happen on renamed or moved
projects, which is fairly common. A GITHUB-generated file may not match
a custom-rolled or git-archive-rolled distfile.
PR: 199069
With hat: portmgr
Testing done: All USE_GITHUB ports without GH_COMMIT were checksum/fetch/extract/WRKSRC tested.
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
Using this new scheme allows only setting the _tag_ or _commit hash_ in
GH_TAGNAME and not having to know the hash for a tag. This scheme will
download a tarball that has a different checksum than before due to a changed
directory name for extraction.
The following MASTER_SITES are provided to retain the old checksum and
directory structure (that require GH_COMMIT):
GH -> GHL
GITHUB -> GITHUB_LEGACY
Differential Revision: https://reviews.freebsd.org/D748
Submitted by: amdmi3
Reviewed by: mat, swills, antoine, bdrewery
With hat: portmgr
19 months have passed since the release of 3.0.0 and there have been 1259
commits from over 24 contributors. Though many of the bugfixes did make it into
the 3.0 branch, not all of them did.
3.1 brings many speedups, new features and commands, a new web interface, and
build hooks. The new web interface works at a top-level, jail-level and the
build-level still by using a static site with AJAX.
There is a queue system that is not quite ready yet but should make it into
3.2.
The release notes documenting the major changes is at
https://github.com/freebsd/poudriere/wiki/release_notes_31
Thank you to everyone involved.
Support can be found in #poudriere on Freenode.
Changes:
* Add a check for 3.1 repository and reject the build. 3.0 does not know
how to handle 3.1's repository format. Downgrading is not supported
at this point.
* Allow securelevel>=1 with USE_TMPFS=all
* Add a warning that DEVELOPER=yes is ignored in lieu of bulk -t/testport
Changes:
* Workaround regression with pkg-1.3 causing all packages to have new options.
* distclean: Fix some false-positives
* Fix dead link in poudriere.conf
- Move to using pkg-plist
Changes:
This will likely be the last 3.0.x release. 3.1 is almost complete.
* Leftovers checking has moved to Ports Mk/Scripts/check_leftovers.sh,
which allows more consistency and easier maintenance without requiring
a Poudriere release to make changes.
* Staging Orphans has moved to Ports 'make check-plist' for the same
reasons. See r351587 for more information on the new behavior.
The new leftover/orphan code has new %%PLIST%% sub behavior and also
fixes many false-positive orphans, leftovers, and @dirrm showing.
* Fix many races in port cleanup/skip handling.
* Fix crashed builder detection.
* Hide pkg_install EOL warnings and disable WARNING/ERROR waits when
testing
* 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:
- Fix ipv6 only usage
- Ensure /sbin and /usr/sbin are in PATH when running
- Remove trailing slashes from listed_ports.
- 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
- Ignore /var/db/dbus/machine-id leftover
- 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
Changes:
* Fix dependencies when existing packages have their origins moved
via MOVED by now loading and parsing MOVED for existing packages
only.
* Force umount some directories to avoid desktop utils traversing them
causing them to remain mounted.
* Fix stage orphan false-positives with KDE4_PREFIX
* Fix a race condition in bulk which could lead to 'unknown stuck queue bug'
* Fix usage of cpdup(1) -X [no functional change]
* Speedup bulk startup by not rolling back fresh builder jails
* Various parallel execution fixes
* Parallel execution errors now wait up to 30 seconds for children to
finish before ending the build.
* Ignore home directory of users created by ports during leftover check
Changes:
* Fix leftover detection on HEAD due to new nmtree
* Fix jail rollback on HEAD due to new nmtree which manifested
as missing dependencies in /new_packages
* Don't exclude anything when looking for stage orphans, which
fixes finding /var/run/PORTNAME as an orphan
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.
Changes:
* Fix random crashes with parallel process handling
* jail -cu: Disable CCACHE on 10
* 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/
* jail: Make -m http work
* jail -c: Fix -m ftp-archive for 9.0
Changes:
* testport: Fix pkg_install error about /prefix when not using -n
This is due to a bug introduced in base r23100, fixed in r240682
which never made it to 9.1
Reported by: eadler, mandree, koobs
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)
Changes:
- Fix removing PREFIX in OVERWRITE_BASE ports
- Fix race condition in jail cleanup
- CHECKED_CHANGED_DEPS is fixed to properly handle
dependencies on base libraries with port fallbacks
- Disable buildtime tracking by default
- testport -i: Fix for when build fails
- testport: Add hint about using -n when leftovers
are found
- Change to using USE_PACKAGE_DEPENDS_ONLY
- Fix detection of errors during startup due to missing
fdescfs or other kernel modules
Changes:
* Fix including MASTERNAME-make.conf twice in some cases
* Fix filename quoting to ensure any packages with spaces
work. This is to allow S3 usage with files that have '+'
in them [1]
* Fix deps calculations not halting the build on errors
* jail/ports -u: Always run 'svn upgrade' before starting,
which fixes 1.7->1.8 svn upgrades
* jail: Fix building older releases from recent HEAD, which
requires devel/fmake on host.
* bulk -c: Fix cleaning of cache dir
* HTML: Default the build name to YYYY-MM-DD_HHhMMmSSs to
remove ':' which causes URL encoding/tab-completion issues
* Update wiki on custom ports tree creation
[1] https://forums.aws.amazon.com/message.jspa?messageID=208136
- Update web documentation for using custom ports tree
Changes:
- Add missing validations to check that the specified
ports tree exists
- SIGINFO/status fixes
- SIGINT/SIGTERM no longer marks a build as 'crashed'
- Fix pkgng being required on the host to build pkgng packages [1]
- Fix CCACHE support by always mounting to /root/.ccache
- jail: Fix USE_TMPFS=all cleanup/deleting
- ports -c: Fix svn+file
- Allow DISTFILES_CACHE=PORTSDIR/distfiles again
- Jail tar(1) and pkg(8) invokations
- testport: Make failed builds more clear [2]
Reported by: tj [1]
Submitted by: antoine [2]
- Update WWW to be a tagged link so that the documentation
matches the version installed
Changes:
- Add workaround for ZFS zteardown deadlock on 9.0/9.1-RELEASE
- jail -c: Fix NO_ZFS support
- options: Fix *make.conf not being respected
- status: Fix when running multiple builds at once
- Various fixes and documentation fixes
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.
- Removed cron command
- queue/daemon added
* These will be expanded more in 3.1 and the usage may change.
- New HTML/AJAX interface using jQuery
- Build times are now tracked
- Runaway builds are now automatically killed after 7200/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.
- 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
- CHECK_CHANGED_OPTIONS now defaults to verbose
- Add CHECK_CHANGED_DEPS (default yes) to automatically detect
direct dependency changes and rebuild packages if needed. This
allow automatically detecting default postgresql/mysql/perl
changes requiring rebuild of ports. Note this has a bug with
ports that depend on libraries that are in base, but have a
port fallback. This will be addressed in 3.1.
- The reason for packages being deleted during the startup is
now more verbose
- Speedup packaging by reducing I/O
- Port testing: Add "preinst_fs_violation" which will detect
ports that touch the filesystem during fetch/build before
calling install.
- Lots of performance improvements. Poudriere is now lock-free
and has very little overhead.
- Various documentation/typo fixes
- Support value of 'no' for NO_RESTRICTED and SAVE_WRKDIR
- 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
- 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
- Fix support for jails with ':' in them
- Buildtimes are now tracked
- ports:
* Support checking out a different branch with -B
- testport:
* -d option has been removed
* testport -i improvements:
- Network enabled
- Works even when build fails
- RUN_DEPENDS now installed
- Add hostname into /etc/hosts
- tty usage is fixed
* Add .keep support for wrkdir saving
- bulk:
* New C index builder for pkg_* builds
* Add -N: skip generating package repository or INDEX
* Add -T: Use TRY_BROKEN
* Add -F: Try to download from the original mirror and
ignore all FreeBSD mirrors
* Allow specifying -f multiple times
- jail:
* -c: Add -P ./path.to.patch to patch the src tree with
the given patch before building it
* -c: Fix on recent CURRENT by using DB_FROM_SRC
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
Changes:
- Remove distfile sandboxing for now, which fixes several ports
trying to fetch files in the wrong phase and then failing.
This has been reworked in 3.0/poudriere-devel.
- Fix VERSION leaking into some builds
- Hide some harmless warnings
Feature safe: yes
This will be the last 2.x release. The 3.0 release will have
optional support for NO ZFS and is currently in testing.
- Convert tab to space in WWW
Changes:
- cron: This is now deprecated and will be replaced in 3.0 with a daemon
- testport: -d support has been deprecated and will be removed in 3.0. Use
-p instead.
- testport: Add interactive test mode with -i
- bulk: Add -vv to display which dependencies are required and causing
rebuilds
- jail: Validate that jails do not contain a '.' per jail(8) restrictions
- options: Fix options not properly recursing based on changed options
- bulk: The queue is now processed through a priority based on how many
other ports depend on the port that is ready-to-build [1]
- bulk: Add -R option to remove RESTRICTED packages after building
- bulk: Fix INDEX building
- Builds now mount packages, ports, distfiles and options as read-only
They are allowed to have changes made only in specific phases. Note that
'testport -c' is currently broken due to this.
- Fix IPv6-only hosts
- Build logs now include make.conf
- Improved leftover detection using mtree
- Ports now only have distfiles available to them that are registered in
their distinfo.
- Leftovers now use the entire PLIST_SUB list
- Fix WRKDIR being saved on extract failures
- More build performance improvements
- Improved stuck queue error displaying and handling
- TMPFS_LOCALBASE support added
- More sanity checks added for broken ports
- ports: csup support removed as CVS is EoL
- testport: Fix port's PREFIX not being respected
- ports: Fix svn+https support [2]
- Ability to always save WRKDIR if a .keep file is present
Submitted by: Matthew Dillon <dillon@apollo.backplane.com> [1] (based on)
Submitted by: antoine [2]
Changes:
- Documentation/usage cleanups
- Misc bug fixes
- jail: Add 'gjb' method support for stable/8
- testport: Show leftovers in plist format, with
support for DATADIR, ETCDIR, WWWDIR, DOCSDIRS,
EXAMPLESDIR, SITE_PERL
- testport: Fix -c showing a blank screen with some TERMs
- bulk: Fix skipped/total count being wrong
- ports: Fix -c/-d errors when no portstrees file exists
- ports: Fix -m not working
- jail: Add support for official ftp snapshots
- ports/jail: Add support for svn+file and svn+https
- bulk: Show jailname in summary output