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.

+5 -1
+2
pkgs/os-specific/linux/libselinux/default.nix
··· 61 61 62 62 "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a" 63 63 "ARCH=${stdenv.hostPlatform.linuxArch}" 64 + ] ++ optionals (fts != null) [ 65 + "FTS_LDLIBS=-lfts" 64 66 ] ++ optionals stdenv.hostPlatform.isStatic [ 65 67 "DISABLE_SHARED=y" 66 68 ] ++ optionals enablePython [
+2
pkgs/tools/compression/xar/default.nix
··· 23 23 --replace 'openssl/evp.h' 'openssl/crypto.h' 24 24 ''; 25 25 26 + configureFlags = lib.optional (fts != null) "LDFLAGS=-lfts"; 27 + 26 28 meta = { 27 29 homepage = "https://mackyle.github.io/xar/"; 28 30 description = "Extensible Archiver";
+1 -1
pkgs/top-level/all-packages.nix
··· 41815 41815 mount wall hostname more sysctl getconf 41816 41816 getent locale killall xxd watch; 41817 41817 41818 - fts = if stdenv.hostPlatform.isMusl then netbsd.fts else null; 41818 + fts = if stdenv.hostPlatform.isMusl then musl-fts else null; 41819 41819 41820 41820 bsdSetupHook = makeSetupHook { 41821 41821 name = "bsd-setup-hook";