Changes since 21.1.2:
The entries in doc/CHANGES are checked more strictly, they must always
consist of 4 words (for removed packages) or 6 words (for all other
changes).
Packages that include curses.buildlink3.mk may use all buildlink3
variables with the identifier "curses". The previous pkglint warnings
had been wrong.
Python packages that directly contain .egg-info in their PLIST files
should include egg.mk instead. Pkglint can now fix these packages
automatically.
This is part 2 to support additional platforms with the RC scripts provided in
pkgsrc, in privileged as well as in unprivileged mode, including on NetBSD.
These changes:
- install rc.subr to PKG_SYSCONFDIR if SYSCONFBASE is not /etc
- let RC scripts source rc.subr in PKG_SYSCONFDIR
- effectively allow unprivileged setups to run RC scripts easily
- in addition, give a chance for more platforms to run RC scripts
Tested in privileged and unprivileged modes on NetBSD/amd64, and unprivileged
mode on Darwin/amd64; submitted for review on tech-pkg@.
Changes since 21.1.0:
Added check for packages that have been migrated to Meson but still
refer to their previous build system, most often involving GNU make and
GNU autotools. Suggested by nia.
Changes since 20.4.1:
Error out on package directories that differ only in case. This ensures
that pkgsrc can be used on case-insensitive file systems as well, such
as on macOS or Windows.
Changes since 20.4.0:
When a package has MAINTAINER set and there are modified local files,
only remind the user once per package that changes should likely be
approved by the maintainer. Previously there was a reminder once per
file, which was just too much for a package that has Makefile and PLIST
and maybe some patches changed.
Small performance improvement for loading the doc/CHANGES files, since
that costs a few tenths of seconds at every startup.
Change the /dev/shm handling on Linux to account for systemd being a complete
nightmare and changing mount types behind your back automatically.
The previous fixed works fine, until it magically changes from a tmpfs with
1777 permissions to a devtmpfs with 0755 permissions, with obvious failures
resulting when building as non-root.
Tested on el6 and el7, with the latter now reliably able to build Python.
When using the -u option to find mismatched packages, mark each affected
package with 'mismatch=YES'. Otherwise, consider such packages as
targets to rebuild.
ok gdt@.
Whatever is in $prefix shouldn't affect the result -- both scanning
and building happen in the workers -- and it is a bit of a nasty
surprise for merely issuing bulkbuild-restart to nuke all the host's
installed packages.
ok joerg
## Version 20.12.1 (2020-12-30)
* Fix version selection of packages and dependencies for install. Previously
the first returned match would win, and preferred.conf was not considered
for dependencies.
- 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.
Changes since 4.95:
Do not complain about "Bogus: ${_SVN_PKGREVISION:...}" that are
generated by wip/mk/*-package.mk. Using PKGREVISION to track the
current date of the package is the wrong approach; PKGVERSION_NOREV
should be used instead. Anyway, this is nothing the average pkgsrc user
should be worried about, so shut up the warning for now.
https://mail-index.netbsd.org/pkgsrc-users/2020/12/16/msg032884.html
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.
On Linux create an additional read/write bind mount for /dev/shm. It should be
a tmpfs mount writeable by all users, whereas the default devtmpfs permissions
for the directory are 0755.
Fixes builds of newer python releases as a non-root user.
pkg_install required by mk is newer than what is required here, and the
DEPENDS here will always pull in the package even if the base system provides
a newer version.
Bump PKGREVISION.
## Version 20.11.0 (2020-11-02)
* Avoid segmentation fault when trying to install package conflicts.
* Remove default 15 second download timeout, also fixing -fno-common.
* Remove debugging code that snuck into the previous release.
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.
Install the new interchangeable BLAS system created by Thomas Orgis,
currently supporting Netlib BLAS/LAPACK, OpenBLAS, cblas, lapacke, and
Apple's Accelerate.framework. This system allows the user to select any
BLAS implementation without modifying packages or using package options, by
setting PKGSRC_BLAS_TYPES in mk.conf. See mk/blas.buildlink3.mk for details.
This commit should not alter behavior of existing packages as the system
defaults to Netlib BLAS/LAPACK, which until now has been the only supported
implementation.
Details:
Add new mk/blas.buildlink3.mk for inclusion in dependent packages
Install compatible Netlib math/blas and math/lapack packages
Update math/blas and math/lapack MAINTAINER approved by adam@
OpenBLAS, cblas, and lapacke will follow in separate commits
Update direct dependents to use mk/blas.buildlink3.mk
Perform recursive revbump
Changes since 20.3.0:
URLs from cpan.metacpan.org should not be used as HOMEPAGE for Perl
packages since they don't provide an overview over the package, instead
the just list the distribution files.
Lines in doc/CHANGES may contain the pattern "Removed <pkgpath> version
<version>". Before, only "Removed <pkgpath>" (without additional
information) or "Removed <pkgpath> successor <pkgpath>" were allowed.
Mentioning the last seen version number sounds useful. It is not
cross-checked right now; that check may be added later.
Changes from pkg 1.10.99.6 to 1.10.99.7
- Sort fts traversal in repo creation
- Fix floating pint exception when packaging packages with weird elf files
- More test cases for config merge
- Fix running the testsuite on linux and osx
- Fix pkg version regarding flavors
- Add support for creating packages with a hash in their names
- Accept DT_SONAME anywhere in .dynamic
- make pkg version -r imply -R
- Some fixes for the progression display
- Rename some variables in security periodic scripts.
- Parse FreeBSD OS version and forbid to install too new packages
Changes from pkg 1.10.99.5 to 1.10.99.6
- Lots of fixes/improvements on periodic scripts
- Fix typo in the .pc file
- Only check for origin if the strings contains / in pkg version
- Support flags when exporting the metalog
- Ignore flags when installing as a user
- fix again using pattern as package arch
- recognize armv7
- add %q to pkg_printf(3) and pkg-query(8) to print altabi
- add an extra line when printing pkg-messages to improve readability
- stop considering nfs as dangerous and if a corruption happens on nfs drive
by a message the user to the highly possible reason of the corruption so
he can fix
- zsh completion imrpovements
Changes from pkg 1.10.99.4 to 1.10.99.5
- pkg clean is now happy if the cache dir non existing
- 410.pkg-audit now uses anticongestion on freebsd 12
- fix pkg install -r foo if foo is a disabled repository
- fix elf handling on non FreeBSD
- fix support for platforms without AT_SYMLINK_NOFOLLOW
- fix dropping privileges on Linux
- fix build with recent libbsd
- fix duplicate pkg registration overwriting the existing pkg
- better ABI name on linux
- lots of changes in internal API to use fd when possible
- removed option: pkg repo -L
Changes from pkg 1.10
- Use dep_formula in the solver
- Cache pw result to avoid over reloading nssswitch.conf
- Remove pkg2ng and support for pkg_ databases
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
Tested with QNX 6.5.0SP1.
Two things were needed:
* bootstrap needs to export ACCEPT_INFERIOR_RM_PROGRAM=yes on QNX,
because libarchive checks for "rm -f" (with no arguments) working in
configure. It doesn't seem to actually use it during the build, so
this works.
* QNX.sys.mk sets LORDER to echo, but sets TSORT to tsort -q. This
results in tsort complaining about having an uneven number of inputs,
since of course there are no dependency pairs.
Hence, if LORDER is overridden to echo, TSORT also needs to be
overridden to cat. Interestingly, Linux.sys.mk also sets LORDER=echo
and TSORT=tsort -q, so it's surprising this isn't broken as well?
Changes since 20.2.5:
Some selected absolute paths, such as /etc/passwd, /etc/shadow and
/etc/hosts are allowed in patch files. Other files in /etc should still
use PKG_SYSCONFDIR, to keep the package portable between platforms and
also in unprivileged mode. (Fixes PR pkg/55524.)
Absolute pathnames are also allowed in C-style end-of-line comments
(fixes PR pkg/55516) and in continuations of C-style block comments
(fixes PR pkg/55524).
The explanation for make's :ts modifier has been adjusted to the 2020
bmake update. The modifier :ts\040 is now interpreted as octal, as
opposed to decimal.
Changes since 20.2.4:
The warning about "unknown options" has been reworded to "undocumented
options", since that is more precise and less confusing.
In pathnames and pathname patterns, the exclamation mark is allowed.
This is necessary for Go packages like devel/gopls.
Changes since 20.2.3:
Complain about buildlink3.mk files that accidentally set their own
BUILDLINK_PKGSRCDIR variable to a different directory than their own.
Changes since 20.2.2:
Complain about patches that add a hard-coded interpreter. Even if that
interpreter is /bin/sh, which is available on most platforms, it is still
inappropriate on old Solaris installations. Other popular paths start
with /usr/pkg or /usr/local, and these are not controlled by pkgsrc either.
Changes since 20.2.1:
Emit notes about redundant != assignments, as well as those that
overwrite each other.
For packages that set DISTINFO_FILE to their own distinfo file, don't
check that file twice.
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.
Update pkg_install dependency for "pkg_admin rebuild-tree" fixes.
## Version 20.7.0 (2020-07-13)
* Order package installs correctly.
* Switch to mdoc(7) manual page, converted by wizd(8).
* Remove -F (force reinstall) flag.
* Enable compiler warnings in maintainer mode.
* Match candidate packages correctly, avoiding issues with packages that
include "-[0-9]" in their package names.
* Various internal cleanups.
Changes since 20.2.0:
Don't warn about a possibly redundant PKGNAME=${DISTNAME} assignment if
PKGNAME is defined somewhere else in the package Makefile.
Warn if NO_CONFIGURE=yes and REPLACE_* are combined.
Suggest to replace ${VAR:@l@-l${l}@} with the simpler ${VAR:S,^,-l,},
as well as ${VAR:@l@${l}suffix@} with the simpler ${VAR:=suffix}.
Allow lua in CATEGORIES.
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.
Changes since 20.1.17:
Fixed the algorithm for checking whether two patterns overlap, such as
MACHINE_PLATFORM:MNetBSD-[0-9].*-*.
Fixed wrong warning about foreign variable in SUBST block, as seen in
geography/qgis.
Changes since 20.1.15:
When a package adds an additional version requirement for another
package, it must do so using BUILDLINK_API_DEPENDS instead of
BUILDLINK_ABI_DEPENDS. Most packages already do this.
When a values is appended to an undefined variable using the += operator,
bmake does not add a space before, and pkglint caught up to do the same.
This change has no practical consequences though.
As always, a bit of refactoring. The method names of MkAssignChecker
contained the redundant word "varassign".
Changes since 20.1.14:
Fix confusing wording of diagnostic "should contain text". It's more
precise to say "this line should consist of this text". Otherwise it's
too easy to interpret it as "the text should occur somewhere in the
line".
Allow BUILDLINK_PREFIX.* to be used in helper files. Especially for
programming language packages, files like plugin.mk often include
buildlink3.mk and therefore may refer to the BUILDLINK_PREFIX of this
package.
Warn about redundant BUILDLINK_API_VERSION restrictions. Previously, the
check had only been enabled if the operators from the default dependency
pattern (buildlink3.mk) and the additional dependency pattern (package)
used the same operators, which already covered most practical cases.
Determine SuSE versions from the pkgsrc tree.
Changes since 20.1.13:
Packages that don't define DISTNAME probably don't download any files
and thus may not need a distinfo file. (There are several other
conditions involved in this, though.)
When reporting wrong distinfo hashes, always report them in the order in
which they appear in the distinfo file, not by hashmap order.
Fix panic when parsing the Makefile line "./=value", which according to
bmake is a variable assignment. This is not used in practice though.
Disallow a leading hyphen in package option names. There are only very
few packages that wrongly use these option selectors in
PKG_SUGGESTED_OPTIONS.
Distinguish between a tool dependency (USE_TOOLS) and a plain tool name
(TOOLS_NOOP, TOOLS_BROKEN, TOOLS_FAIL). Allow packages to add arbitrary
tools to these lists.
Changes since 20.1.11:
The file bsd.pkg.mk must only ever be included by package Makefiles
directly, not by other Makefile fragments. Seen in www/w3m.
The variable BUILDLINK_PREFIX.* should only be used for packages that
have actually been included by the package. This catches the use of
BUILDLINK_PREFIX.libiconv, which should have been iconv instead.
Allow comments before line 3 in buildlink3.mk files. This is necessary
for mariadb55-client since its buildlink identifier is mysql-client,
which is so non-obvious that it needs to be documented.
Changes since 20.1.10:
PKG_SYSCONFDIR and VARBASE must not appear in INSTALLATION_DIRS.
Patch files in which the line number have been edited manually are marked
with notes.
This is quite a disruptive change, but has been tested in various ways across
Darwin, Minix, and SmartOS, so I'm reasonably confident I caught most issues.
With the switch to automake the pkgsrc Makefile has been able to be simplified
a lot, and I also took the opportunity to remove the mostly useless MESSAGE
file.
## Version 20.5.1 (2020-05-25)
* Improve make portability.
## Version 20.5.0 (2020-05-25)
* Switch to automake and overhaul mandatory configure options.
* Remove unused code and pointless configure tests, cleaning up includes
and headers where appropriate.
* New version number scheme (yy.m.x). The previous scheme had no relevance,
this one at least gives users some clue about how up-to-date their version
is.
One change: use AC_PROG_CC_C99 and regen configure
This helps bootstrapping on legacy systems where the compiler doesn't
default to c99 without additional guidance.
Patch from ky0ko@disroot.org, tested on NetBSD and Alpine Linux by myself
and on IRIX with mipspro by ky0ko.
Changes since 20.1.8:
Recognize SUBST_NOOP_OK and SUBST_SHOW_DIFF.
Allow plain -Wl,-R and -Wl,-rpath in BUILDLINK_TRANSFORM, when they are
used to remove compiler options.
Recognize ggrep and other platform tools as valid tool names. Seen in
lang/rust.
Changes since 20.1.7:
There are about 300 cases where a package defines a PLIST conditional in
PLIST_VARS but none of its PLIST files actually uses that condition.
These cases get a warning.
In a pkgsrc setup with default paths, the simple substitutions are all
no-ops. The last two substitutions only apply to Makefile.in, which
means that they are no-ops for the other files. Since the whole sed
command is not considered an identity substitution, an explicit
SUBST_NOOP_OK is needed here.
https://mail-index.netbsd.org/pkgsrc-users/2020/05/17/msg031245.html
Changes since 20.1.5:
Category Makefiles must only list subdirectories in SUBDIR that actually
contain a package. There is no need to mention the other directories.
This is the same as in the top-level Makefile, where mk/ and regress/ are
not listed.
Packages from pkgsrc-wip may have a COMMIT_MSG file with a suggested
commit message for importing the package into main pkgsrc.
This allows to show the actual changes by setting SUBST_SHOW_DIFF=yes,
and with SUBST_NOOP_OK=no it also demonstrates that no substitutions are
needed for substplistbasedirs.
Another thing this demonstrates is this wrong patch:
-echo >>$sedrules "s|@@PKGVERSION@@|@PKGVERSION@|g"
+echo >>$sedrules "s|@3.17@|3.17|g"
Changes since 20.1.4:
No more wrong warnings about the Solaris /bin/sh. These warnings had been
there for 14 years, preventing pkgsrc developers from using the $$(...)
command substitution and negation in shell conditions.
https://mail-index.netbsd.org/pkgsrc-changes/2020/05/01/msg212194.html
Changes since 20.1.3:
For patches that patch a single file, the filename of the patch should
correspond to the patched file. There are a few different naming schemes
in action, therefore the check is relatively loose. Patches that are
called patch-[a-z][a-z] continue to be allowed for historic reasons.
Patches that are called patch-CVE-* are also allowed.
The entries in doc/CHANGES-* are checked for consistency. For example,
it doesn't make sense to add a package twice or "update" a package from
version 1.0 to version 1.0. All version numbers in these entries must
be valid pkgsrc versions, i.e. start with a digit and only use
characters from -.0-9A-Z_a-z.