nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 skawarePackages,
5 pkgs,
6}:
7
8skawarePackages.buildPackage {
9 pname = "skalibs";
10 version = "2.14.4.0";
11 sha256 = "sha256-DmJiYYSMySBzj5L9UKJMFLIeMDBt/tl7hDU2n0uuAKU=";
12
13 description = "Set of general-purpose C programming libraries";
14
15 outputs = [
16 "lib"
17 "dev"
18 "doc"
19 "out"
20 ];
21
22 configureFlags = [
23 # assume /dev/random works
24 "--enable-force-devr"
25 "--libdir=\${lib}/lib"
26 "--dynlibdir=\${lib}/lib"
27 "--includedir=\${dev}/include"
28 "--sysdepdir=\${lib}/lib/skalibs/sysdeps"
29 # Empty the default path, which would be "/usr/bin:bin".
30 # It would be set when PATH is empty. This hurts hermeticity.
31 "--with-default-path="
32
33 ]
34 ++ lib.optionals (stdenv.buildPlatform.config != stdenv.hostPlatform.config) [
35 # There's a fallback path for BSDs.
36 "--with-sysdep-procselfexe=${
37 if stdenv.hostPlatform.isLinux then
38 "/proc/self/exe"
39 else if stdenv.hostPlatform.isSunOS then
40 "/proc/self/path/a.out"
41 else
42 "none"
43 }"
44 # ./configure: sysdep posixspawnearlyreturn cannot be autodetected
45 # when cross-compiling. Please manually provide a value with the
46 # --with-sysdep-posixspawnearlyreturn=yes|no|... option.
47 #
48 # posixspawnearlyreturn: `yes` if the target has a broken
49 # `posix_spawn()` implementation that can return before the
50 # child has successfully exec'ed. That happens with old glibcs
51 # and some virtual platforms.
52 "--with-sysdep-posixspawnearlyreturn=no"
53 ];
54
55 postInstall = ''
56 rm -rf sysdeps.cfg
57 rm libskarnet.*
58
59 mv doc $doc/share/doc/skalibs/html
60 '';
61
62 passthru.tests = {
63 # fdtools is one of the few non-skalib packages that depends on skalibs
64 # and might break if skalibs gets an breaking update.
65 fdtools = pkgs.fdtools;
66 };
67
68}