- Support continuing to install to /var/db/pkg if it exists and the
new pkgdb doesn't.
In the future, we can warn about this once we have tested advice that
we can give to users who want to move the location of pkgdb.
- Don't do anything about /var/db/pkg on non-NetBSD-base.
This creates conflicts with other package managers that also install to
/var/db/pkg.
When set to "no", pkg_add will not issue a warning if the host OS version does
not exactly match the OS version the package was built on. This can be useful
on many OS where the kernel release version has nothing to do with userland
compatibility, or where it may differ without being ABI incompatible.
Ultimately it would be ideal if the version checks were smart enough across all
our supported OS to not need this, but until then this is useful for users who
know what they're doing.
Bump version to 20201211.
It looks like lld doesn't want to statically link a libarchive without
resolving all of the symbols, even if only a few symbols are used.
In order to resolve all of the symbols, we need to also link with -lmd.
One generic way to do so is inspect Libs.private in the pkgconfig file.
While pkgsrc is likely not at fault here, having a dysfunctional bootstrap
is bad. We should check again in the future to see if this can be removed.
Actually fixes PR pkg/55400.
Module Name: src
Committed By: christos
Date: Mon Sep 7 00:36:53 UTC 2020
Modified Files:
src/external/bsd/pkg_install/dist/lib: plist.c
Log Message:
Avoid strict aliasing issue by using a separate buffer..
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/bsd/pkg_install/dist/lib/plist.c
Initial bootstrap builds of pkg_install don't use libarchive. Guarding
this function (as other places are) with #ifndef BOOTSTRAP prevents
'implicit declaration of archive_...()' warnings on FreeBSD 12 and Xcode
beta, which due to -Werror broke the bootstrap.
Includes fixes to +REQUIRED_BY generation, performance improvements,
build fixes against newer libnetpgpverify, and better error messages.
When combined with newer pkgin releases, this should now eliminate the
various "pkg_add: Can't open +CONTENTS of depending package ..." errors
that users had frequently observed during upgrades (joyent/pkgsrc#158,
joyent/pkgsrc#190, joyent/pkgsrc#256, and many IRC logs).
In the pkg_admin front end, instead of adding +REQUIRED_BY entries as they
are found, which previously led to duplicate entries, cache the results and
write out the files at the end.
Underneath, add a caching version of iterate_pkg_db() that avoids the same
pkgdb directory lookup for every installed package, but is only suitable for
reads. Also add a cache for best_match lookups to avoid expensive matches
each time.
For all caches, use a simple hashing function to improve lookup performance.
In summary, as well as fixing +REQUIRED_BY files, these patches reduce the
wall/user/system time of "pkg_admin rebuild-tree" on a system with 12,762
packages installed down from 13m52s/11m20s/2m32s to just 1m4s/1m3s/0m1s.
The list of dependencies held by packages during recursive upgrades was not
refreshed after dependencies were themselves upgraded, leading to failures
attempting to read +REQUIRED_BY files in package directories that no longer
exist ("registration is incomplete!"). We now only perform the package
match after the upgrades have completed.
While here, hide the warning about dependencies not being fulfilled behind
ForceDepending, as the whole point of using that mode is to ignore such
issues with the assumption that the final state after updating will be
correct.
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
libarchive 3.3.3:
Avoid super-linear slowdown on malformed mtree files
Many fixes for building with Visual Studio
NO_OVERWRITE doesn't change existing directory attributes
New support for Zstandard read and write filters
This is based on the decision The NetBSD Foundation made in 2008 to
do so, which was already applied to src.
This change has been applied to code which is likely not in other
repositories.
ok board@, reviewed by riastradh@
If PKG_DBDIR is /foo and a path like /foobar is given, it is not below
PKG_DBDIR, so don't translate it into a package name look up. The old
logic for giving a path to PKG_DBDIR remains for legacy compat.
Fix an issue in pkg_create where we may have been using corrupted owner and
group information. Noticed on macOS where libarchive would complain about
the owner entry being too long. Reviewed by joerg.
Also includes some manual page improvements committed recently.