Prevent libtool from detecting -lnbcompat in the command line arguments
then declaring it as a dependency in the resulting libtool archive.
Filter -lnbcompat from all of the environment when compiling an
in-place copy to prevent circular dependencies.
Drop LIBNBCOMPAT_USE_PIC, I can't find anywhere this is used in the
tree, it's incomplete (needs handling in mk/) and complicates things
needlessly.
What still needs to be done is figure out why certain packages don't
seem to properly link with libnbcompat when USE_FEATURES is used - it's
a long-term problem, might be related to some newer build systems not
using ${LIBS}.
Bootstrap tested on Darwin and NetBSD.
Changes since 23.3.0 from 2024-01-12:
Add riscv64 to the list of known hardware architectures.
Suggest removing parentheses around complete conditions.
Warn about duplicate DESCR files, except when one of the packages is in
pkgsrc-wip and the other is in main pkgsrc.
Fix crash when parsing '.ifndef VAR'.
piece of software that needs to pull functions from it, prevent libtool
from detecting -lnbcompat in the command line arguments then declaring
it as a dependency in the resulting libtool archive.
A number of users have hit "Conflicting PLIST" errors in the past that are
almost certainly caused by duplicate PKGBASE entries in the pkgdb, most likely
as a result of unpacking a bootstrap kit over the top of an existing install.
This adds a check to ensure there are no duplicate PKGBASE entries, displaying
an error message with the list of duplicates if they are found, and is called
for the "check", "rebuild", and "rebuild-tree" commands.
Either
if ((q = strchr(p, '/')) == NULL)
or
if (*(q = strchrnul(p, '/')) == '\0')
will work, but not
if (*(q = strchr(p, '/')) == '\0')
which will crash with a null pointer dereference. Let's get the
right version of this committed, not the wrong one! Oops.
While here, reset PKGREVISION like I meant to do yesterday.
- If there's no slash `/', take it all as ${MACHINE_ARCH}.
- If there is a slash, then split it by `/' and ` ' into:
${OPSYS}/${MACHINE_ARCH} ${OPSYS_VERSION}
For example:
NetBSD/aarch64 10.0
All the variables are restricted to lie in a safe set [a-zA-Z0-9._-],
so the notation can be extended later.
No change to existing syntax (no MACHINE_ARCH has `/' in it, or
anything outside the safe set), and `-m' is generally only used with
cross builds anyway, so this shouldn't break existing cross builds
and should have no impact on native builds.
Proposed on tech-pkg:
https://mail-index.netbsd.org/tech-pkg/2024/01/13/msg028825.html
Previously, url2pkg generated a 'license_default=...' line in the
package Makefile, which was confusing. That line was supposed to be a
special url2pkg command, not a makefile variable.
Discovered by gdt@ while packaging devel/p5-Devel-Entropy.
Changes since 23.2.1:
For Perl and Python packages, use TOOL_DEPENDS instead of BUILD_DEPENDS
for the build-time dependencies.
For Perl modules that use Module::Build, don't add a redundant
dependency to p5-Module-Build.
Changes since 23.2.5:
Do not warn about Meson packages that only use Python as a build-time
tool.
Warn about pkgsrc-wip packages that are missing COMMIT_MSG.
Ignore errors when resolving the username of the current user. This can
happen on systems where the user database uses NIS. In case of an error,
assume that the user is neither maintainer nor owner of any package.
Mark variables from expressions in .info, .warning and .error as used.
Remove the word 'please' from the diagnostics, as the diagnostics are
intended to help the package author, not some unrelated third-party
person.
libfetch's recent behavior change can be viewed as a bugfix or as an
ABI change. pkg_install vendors libfetch from the sources, for
bootstrapping reasons and thus needs a revbump. For consistency and
to reduce confusion, also bump the other two packages that depend on
it.
pkgchkxx and pkgrrxx are complete rewrites of pkgsrc pkg_chk and
pkg_rolling-replace respectively. These are functionally compatible but run
faster.
This implementation achieves better performance by using a faster language,
better algorithms, and making use of many CPUs whenever possible.
Changes since 23.2.4:
For Python packages that do not support Python 2, warn that egg.mk is
deprecated and should be replaced with wheel.mk. Provide detailed
migration instructions.
+ Don't allow mounting of already mounted sandboxes, or unmounting of
unmounted sandboxes.
+ Also, add an extra "ismounted" case label to be able to tell if a
sandbox is mounted. A df(1) invocation should continue to work just
as well :)
No objections on tech-pkg@
Addresses the first part of PR pkg/51992 from Paul Goyette
nih remove:
- now this command works correctly without external package
repository
nih leaf:
- new option "-u" for printing user-installed leaf packages
nih status:
- option -s has been renamed to "-p"
Primary extension for pkg_summary(5) is now "gz"
Updates in man.1
nih.default.conf:
- update default URLs to package repositories
root Makefile:
- +PKG_DBDIR defaults to ${PREFIX}/pkgdb
pkg_summary2leaves:
- new option -u for printing packages installed by user
- option -r does not implies -a any longer
pkg_grep_summary:
- new option -E and "-t nonempty" for matching non-empty fields
Fixes in tests
Minor code clean-ups and coding style correction in grep_summary.c
COPTS defaults to "-O3 -g"
root Makefile: BMAKE variables defaults to "bmake"