fts: set to musl-fts on musl

NetBSD fts wasn't really designed to be used in this way, and it can
produce some strange errors — e.g. I sometimes see duplicate symbols
when musl and libnbcompat define the same symbol.

More packages used musl-fts directly than the fts package anyway,
which can now be changed to use the generic fts.

Unlike netbsd.fts, musl-fts doesn't have a setup hook, so we have to
tell packages that don't know about it to link against libfts.  We
could decide to copy netbsd.fts's setup hook later if we want to.
This commit is contained in:
Alyssa Ross 2023-10-12 12:00:28 +00:00
parent 0d44b5b773
commit 4739e28eb1
3 changed files with 5 additions and 1 deletions

View file

@ -61,6 +61,8 @@ stdenv.mkDerivation rec {
"LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a"
"ARCH=${stdenv.hostPlatform.linuxArch}"
] ++ optionals (fts != null) [
"FTS_LDLIBS=-lfts"
] ++ optionals stdenv.hostPlatform.isStatic [
"DISABLE_SHARED=y"
] ++ optionals enablePython [

View file

@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
--replace 'openssl/evp.h' 'openssl/crypto.h'
'';
configureFlags = lib.optional (fts != null) "LDFLAGS=-lfts";
meta = {
homepage = "https://mackyle.github.io/xar/";
description = "Extensible Archiver";

View file

@ -41815,7 +41815,7 @@ with pkgs;
mount wall hostname more sysctl getconf
getent locale killall xxd watch;
fts = if stdenv.hostPlatform.isMusl then netbsd.fts else null;
fts = if stdenv.hostPlatform.isMusl then musl-fts else null;
bsdSetupHook = makeSetupHook {
name = "bsd-setup-hook";