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
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
Changes:
* Speedup --list-origins with pkg
* Use proper /usr/local/etc/portmaster.rc path in portmaster.8
* Fix running from deleted dirs.
* Fix losing control of building run-depends of staged ports
(thus breaking -g and counts). [1]
PR: 189398 [1]
Changes:
* Fix --check-port-dbdir support after ports r321785 changed
to /var/db/ports/category_port (OPTIONS_NAME) instead of
UNIQUENAME [1]
Reported by: many
- Rename distfile and fix checksum errors. These errors
were due to renaming the upstream account, which changed
which directory the distfile untarred in.
- Shuffle MASTER_SITES so that FreeBSD.org and other more
reliable mirrors come before github
This fixes a regression with non-pkgng usage that would invoke
the bootstrapper when upgrading ports. My testing did not
cover systems with the bootstrapper that did not use pkgng, so
this was missed.
The impact of this was just a hung build during deinstall.
Reported by: mandree
Pointyhat to: bdrewery
- Add extra mirror
- Remove PKGNGPATCH option
Changes:
- The pkgng patch has been fully integrated upstream with its
history copied from the pkgng repo over to portmaster's repo
- Add extra messages before/after killing background processes so
that 'Terminated' messages look less unexpected
- Fix running from / trying to build the entire tree
- pkgng: Fix -s not respecting the automatic flag
- Fix "Argument list too long" errors
- Add PM_SU_CMD documentation to the sample config file [1]
- Fix -o not showing the specified origin [pkgng patch bug]
Submitted by: Oleg Pudeyev <oleg@bsdpower.com> [1]
this port confusing bsd.pkgng.mk into thinking
that WITH_PKGNG is defined and pkg(8) shoul be
used to register.
Pointyhat to: bdrewery
Feature safe: yes
- Add PKGNG option to apply pkgng support patch. This will
be fully integrated upstream in the next version. This
functionality is only enabled when WITH_PKGNG is defined
in make.conf (or a recent CURRENT by default, see
UPDATING 20121010). Due to the compat OPTION handling,
defining WITH_PKGNG will also apply the patch by default.
The pkgng patch is contributed by avilla@
Feature safe: yes
- Take maintainership
- Convert to new options framework
- Use USE_GITHUB for fetching
- Add DISTNAME to avoid conflict with existing distfile as
the checksum of the distfile has changed now that it is
no longer modified for release.
- Remove use of bsd.port.pre.mk
Minor improvements:
===================
* Improve messages for processing of dependent ports when -r
* If there is an installed version, always print that message, not just
when we're in the parent
* Optimize determination of $new_port:
- When first set, let it be global
- Use a function to incorporate/optimize the various tests from the
2 different places that it was being set
* Use a more robust method of determining portdir from $PWD. This also
works for bare 'portmaster' with no arguments now, if you're in a port
directory.
* Various additional code cleanups
Bug fix:
========
Do read_distinfos() in the background for multiport() too, oops
Minor fixes/improvements
========================
* Turns out there are a non-zero number of distinfo files that have SIZE
listed first, so in the code that parses them for the data to put into
/var/db/pkg/$port/distfiles, handle this situation gracefully.
* If we trap while working on a child port do not remove that child from
the PM_NEEDS_UPDATE list so that when it gets printed in the parent
that child is still on the list.
* Use the count of total ports as $num_of_deps for -Faf
* For -av, add num_{roots|trunks|branches|leaves} values to the headers
* In multiport(), decrement the number of ports to work on and print a -v
message if we have already seen a port in the worklist as a dependency
of another port in the list.
* Many other minor code cleanups
Performance enhancement
=======================
* In read_distinfos*() use while read instead of grep. Avoids the fork
and reduces the total time for building the list(s) of distfiles by 25%
Major updates/fixes to the distfile handling code
=================================================
* Make all parts of the code SUBDIR-safe (most were already)
- Fix a few places where the relativity of the cwd was not respected,
most often resulting in files not being deleted that should be
* Move the storage of the distfile info back to /var/db/pkg where it
should have been all along. Mostly for correctness, but also to deal
with the problem of non-UNIQUENAMEs causing the wrong files to be
deleted with -d.
* Clean up the old /var/db/ports/*/distfiles files after reading them,
and delete the directory if it's empty. Since we are doing this
unconditionally now, there is no longer a need for delete_dist_list().
The new ones will live and die with the rest of the package directory.
* Update some of the messages printed out for distfile-related things
to make it more clear what's going on.
* Check DI_FILES to see if the distfile could be valid for another port
in more places, so add a function to deal with the common ones.
* When checking DI_FILES, anchor the grep pattern with a ^ to
avoid false positives
Other code changes
==================
* Make the whitespace more consistent
* Various minor improvements, mostly to avoid unnecessary forking
UI Change
=========
* When using -i and there is an +IGNOREME file, the default should be no
==================
* Restore the line from -av that prints each port as we work on it.
* Print more useful information about ports that don't have distfiles,
or distfiles we're skipping due to duplicates when -F (especially
with -a).
Bug fixes
=========
* Consolidate all writing to the IPC_SAVE file into safe_exit()
so that it always gets called. Also, zero out the file after
reading it so that a parent process doesn't inadvertently
read stale data during a trap (unlikely, but not impossible).
============
Print the same progress update that goes to the term title in-line,
and apply various improvements to that code.
Move 'make clean' to the background. There is no point waiting around
for it to finish. In the case of very large work directories this may
cause some I/O contention during the unpacking of the next port to
build, but in most cases this should be lost in the noise.
Other Improvements
==================
Speed up the determination of WRKDIRPREFIX, and do not bother looking
for empty directories if we exited abnormally.
Add code to detect dependency loops created by moving part of a port
into another port, and CONFLICT'ing on previous versions of that port
(ala textproc/p5-XML-SAX -> p5-XML-SAX-Base). When a loop is detected
suggest that the user try pkg_updating.
Bug Fixes
=========
Improve error handling for mktemp
Improve handling of abnormal exits (such as ^C, failed port, etc.),
especially when the first exit happens in a child process.
If the second argument to -o is something that is completely non-existent,
report in the error message what the user typed on the command line.
Reported by: avilla
In clean_build_only_list() remove ports that are already installed
when using --delete-build-only to prevent them from being spuriously
removed.
Reported by: avilla
============
1. Add a feature to allow users to list files that should be
preserved across upgrades.
Various Improvements
====================
1. Add a verbose message for cleaning WRKDIRPREFIX
2. Improve the handling of the -F option with packages, especially with
--packages-only:
* In update_port() do better at saying what we're launching a child to do
* In post_first_pass() make clear that we are fetch'ing, not building,
installing, etc.
* In multiport() call check_fetch_only when we're done
* In the main body add fetch'ed ports to the CUR_DEPS list so that they
are only fetched once.
3. Various typo fixes for the man page.
Bug Fixes
=========
1. If an update fails in a child port the parent needs to source the
$IPC_SAVE file before it bails out to make sure that various lists are
updated in the parent. This is particularly important for the list(s)
of work already completed, and especially to update PM_NEEDS_UPDATE for
the message of how to resume from the point of failure.
2. For multiple -r, don't add a port to the list of dependents to rebuild
if it was itself specified as a -r port.
3. In parent_exit() run the code to kill background processes if we're
called with a non-zero exit code. That will trigger it (for example)
where the user answers no to the confirmation prompt and is either
using -D, or the generation of the list of valid distfiles did not
complete.
4. Until I can revamp the way dependencies are tracked, include all 3
forms of CONFLICTS to make sure we catch alternates.