Files
nixpkgs/pkgs/development/skaware-packages/skalibs/default.nix
bitbloxhub 2bd54f5f87 skawarePackages: use pkg-config for dependencies
Use pkg-config for dependency discovery while retaining explicit system dependency handling.

Fixes https://github.com/NixOS/nixpkgs/issues/544293.

Assisted-by: pi (GPT-5.6-Luna)
2026-07-30 21:08:53 +00:00

73 lines
2.0 KiB
Nix

{
lib,
stdenv,
skawarePackages,
pkgs,
}:
skawarePackages.buildPackage {
pname = "skalibs";
version = "2.15.1.0";
sha256 = "sha256-+ckF50k1xv6RHH40Tj6J1fvSAUwaBGULUksVzptWNdE=";
meta.description = "Set of general-purpose C programming libraries";
outputs = [
"lib"
"dev"
"doc"
"out"
];
configureFlags = [
"--libdir=${placeholder "lib"}/lib"
"--dynlibdir=${placeholder "out"}/lib"
"--libexecdir=${placeholder "lib"}/libexec"
"--includedir=${placeholder "dev"}/include"
"--pkgconfdir=${placeholder "dev"}/lib/pkgconfig"
# assume /dev/random works
"--enable-force-devr"
"--sysdepdir=\${lib}/lib/skalibs/sysdeps"
# Empty the default path, which would be "/usr/bin:bin".
# It would be set when PATH is empty. This hurts hermeticity.
"--with-default-path="
]
++ lib.optionals (stdenv.buildPlatform.config != stdenv.hostPlatform.config) [
# There's a fallback path for BSDs.
"--with-sysdep-procselfexe=${
if stdenv.hostPlatform.isLinux then
"/proc/self/exe"
else if stdenv.hostPlatform.isSunOS then
"/proc/self/path/a.out"
else
"none"
}"
# ./configure: sysdep posixspawnearlyreturn cannot be autodetected
# when cross-compiling. Please manually provide a value with the
# --with-sysdep-posixspawnearlyreturn=yes|no|... option.
#
# posixspawnearlyreturn: `yes` if the target has a broken
# `posix_spawn()` implementation that can return before the
# child has successfully exec'ed. That happens with old glibcs
# and some virtual platforms.
"--with-sysdep-posixspawnearlyreturn=no"
"--with-sysdep-selectinfinite=${if stdenv.hostPlatform.isDarwin then "no" else "yes"}"
];
postInstall = ''
rm -rf sysdeps.cfg
rm libskarnet.*
mv doc $doc/share/doc/skalibs/html
'';
passthru.tests = {
# fdtools is one of the few non-skalib packages that depends on skalibs
# and might break if skalibs gets an breaking update.
fdtools = pkgs.fdtools;
};
}