This allows RELRO to be used when building imake packages.
XXX: I'm not certain if this is the right place, but this already seems
to be cargo-culted in individual package Makefiles...
The documentation did not mention that conditional entries in PLIST
files are skipped. Pkglint doesn't know this either and issues wrong
notes that some directories are redundant in INSTALLATION_DIRS when in
reality they need to be listed there.
While here, filter out some duplicate directories. This invokes the
command for creating a single directory less often. Since PLIST files
are usually sorted, files in the same directory tend to be listed near
each other.
The fallback to the plain 'uniq' is needed for SCO_SV, which does not
define TOOLS_PLATFORM.uniq.
Add a test to check that an xbase set is installed when a tool depends on
X11 and X11_TYPE=native.
Thanks to Greg and Edgar for their comments and suggestions!
Fixes builds inside an x86_64 chroot where packages add x86-specific flags
based on the output of uname even though we're building for aarch64. CMake
provides the CMAKE_APPLE_SILICON_PROCESSOR variable for this situation.
dash considers \1 to be octal escape.
for PR pkg/56248, from Michael Forney's suggestion.
$echo seems to be used for performance here (was previously cat) and not
for compatibility with some esoteric system.
I misunderstood things, and failed to test the last bootstrap diff, breaking
bootstrap on Ubuntu for a while.
This delivers 64 bit index BLAS libraries alongside 32 bit ones. This is often
called ILP64 in the BLAS world, as opposed to LP64 where integers are 32 bit
due to the Fortran default integer type, not to be confused with the basic
system ABI used by C. For really large vectors on modern machines, you want
an 'ILP64' BLAS and layers on top of it.
In preparation of better support for vendor BLAS libraries, I had to realize
that you better use the C interfaces supplied by them, not the netlib one
strapped on. A simple reason of practicability: The vendor blas libraries,
just like openblas, like to ship all symbols in one library, so you get them
whether you want it or not. Also implementations may skip Fortran and implement
the underlying functionality directly in C anyway, so one might skip a
layer of indirection. Future will tell if other layers will follow. We still
have the framework of individual layers from Netlib to combine with certain
implementations that miss them (Accelerate framework comes to mind, which
needs further work).
The framework of netlib reference packages for the separate libraries
is instructive and helps keeping things small when you not need all of them.
The installation location of the headers is now in a subdirectory to be able
to have 32 and 64 bit variants independently. The 32 bit ones are linked to
${PREFIX}/include to keep the old picture. We could be brave and remove
those, but there is some value in a build just trying -lcblas and
inclusion of <cblas.h> to be happy.
There is one blas.buildlink3.mk that is supposed to be used only once and
so avoids a combination of conflicting libraries (as the 64 bit index symbols
have the same names as the 32 bit ones).
Basic usage for getting LAPACK+BLAS is still the same as before. You get
CBLAS and LAPACKE by setting BLAS_C_INTERFACE=yes in the package. The 64 bit
indices are selected via BLAS_INDEX64=yes.
Due to the special nature of the Accelerate framework, a package has to
explicitly indicate support for it and it will also not appear on the
list of implementations by default. The reason is that it does provide
mainly CBLAS and CLAPACK (another version of C interface to LAPACK, f2c-based)
and BLAS/LAPACK with f2c/g77 calling conventions. A default build with
gfortran would not like that
This commit also fixes up math/py-numpy and math/py-numpy16 to follow the
new scheme, as that are the only packages directly affected by the change
in CBLAS providership.
BUILDLINK_CONTENTS_FILTER, as discussed on tech-pkg on may 26 and 27.
Fix an issue with www/libwebsockets/buildink3.mk where some cmake files
are missing from the .buildlink dir, causing config failure in consumer
packages.
This is part 1 to support additional platforms with the RC scripts provided in
pkgsrc, in privileged as well as in unprivileged mode, including on NetBSD
(with part 2 in pkgtools/rc.subr).
This variable is meant to point to the configuration directory of the base
system (as opposed to pkgsrc's own prefix) when it should be used by pkgsrc in
special cases (e.g. installing RC scripts), or to point to the existing
PKG_SYSCONFBASE directory otherwise (e.g. for any unprivileged bootstrap).
This teaches pkgsrc where the RC scripts should be installed, and more
importantly, where the local copy of rc.subr can be expected. Part 3 will
progressively update each and every RC script to substitute this path as
expected.
No functional changes are intended in privileged mode without a bootstrap. The
only variable affected by this change directly is RCD_SCRIPTS_DIR, which
currently remains with the same default of /etc/rc.d, and can be overridden as
before.
When bootstrapping, SYSCONFBASE also remains with the existing default when no
prefix is set or is "/usr/pkg" or "/usr"; it is set to $prefix/etc otherwise. It
can be specified specifically with --sysconfbase if necessary.
Existing installations or bootstraps are not affected, as this change needs
setting SYSCONFBASE in the corresponding $sysconfdir/mk.conf to have an impact.
Tested in privileged and unprivileged modes on NetBSD/amd64, and unprivileged
mode on Darwin/amd64; submitted for review on tech-pkg@.
- Avoid shouting in version names. Users may still set MYSQL_VERSION_DEFAULT
to "MARIADB104", but it is preferred to switch to "mariadb104".
- Set the correct variables in BUILD_DEFS_EFFECTS and _SYS_VARS.
- Instead of hardcoding library names with per-OPSYS logic and testing for
their existence to see if the package is installed, do it the correct way
using pkg_info(1).
- Make it easier to add new MySQL versions.
- Avoid unnecesary variables. Use bmake(1) slices to select the first item
in a list rather than a temporary variable.
- Improve documentation.
Based on a patch I've had sitting in the joyent/pkgsrc tree for far too many
years. No functional change other than the switch to lowercase package names
by default. Tested in a bulk build with additional Percona packages.
At least on FreeBSD 13.0, awk '/^[\t -~]/' does not match alphabetical
characters with some utf-8 locales (e.g. neither en_US.UTF-8 nor
fr_FR.UTF-8 works but C.UTF-8 does).
This enables use of MPI compiler wrappers present in the host
system via MPI_TYPE=native. Also, it checks for conflicts with
a preintalled different MPI choice from pkgsrc and.