diff options
author | Patrick Mahoney <pat@polycrystal.org> | 2014-11-28 13:10:37 -0600 |
---|---|---|
committer | Patrick Mahoney <pat@polycrystal.org> | 2014-11-28 13:10:37 -0600 |
commit | cf5f282940c9ac07533ef602e2ea415e1a5ed517 (patch) | |
tree | 3195d77badf3e6557f58ad42ed506b22bf1a4494 /pkgs | |
parent | c37611f3e5a35ecfa349362d432708176e1c6fb5 (diff) | |
download | nixlib-cf5f282940c9ac07533ef602e2ea415e1a5ed517.tar nixlib-cf5f282940c9ac07533ef602e2ea415e1a5ed517.tar.gz nixlib-cf5f282940c9ac07533ef602e2ea415e1a5ed517.tar.bz2 nixlib-cf5f282940c9ac07533ef602e2ea415e1a5ed517.tar.lz nixlib-cf5f282940c9ac07533ef602e2ea415e1a5ed517.tar.xz nixlib-cf5f282940c9ac07533ef602e2ea415e1a5ed517.tar.zst nixlib-cf5f282940c9ac07533ef602e2ea415e1a5ed517.zip |
Consolidate conf-compile steps for skarnet.org pkgs.
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/libraries/skalibs/default.nix | 33 | ||||
-rw-r--r-- | pkgs/development/tools/build-managers/skarnet/default.nix | 21 | ||||
-rw-r--r-- | pkgs/development/tools/build-managers/skarnet/setup-hook.sh | 42 | ||||
-rw-r--r-- | pkgs/os-specific/linux/s6-linux-utils/default.nix | 34 | ||||
-rw-r--r-- | pkgs/servers/s6/default.nix | 34 | ||||
-rw-r--r-- | pkgs/tools/misc/execline/default.nix | 35 | ||||
-rw-r--r-- | pkgs/tools/misc/s6-portable-utils/default.nix | 32 | ||||
-rw-r--r-- | pkgs/tools/networking/s6-dns/default.nix | 34 | ||||
-rw-r--r-- | pkgs/tools/networking/s6-networking/default.nix | 34 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
10 files changed, 104 insertions, 197 deletions
diff --git a/pkgs/development/libraries/skalibs/default.nix b/pkgs/development/libraries/skalibs/default.nix index ba8dcc812e83..55c69b137e52 100644 --- a/pkgs/development/libraries/skalibs/default.nix +++ b/pkgs/development/libraries/skalibs/default.nix @@ -1,10 +1,14 @@ -{stdenv, fetchurl}: +{ stdenv +, skarnetConfCompile +, fetchurl +}: let version = "1.6.0.0"; in stdenv.mkDerivation rec { + name = "skalibs-${version}"; src = fetchurl { @@ -17,32 +21,7 @@ in stdenv.mkDerivation rec { # See http://skarnet.org/cgi-bin/archive.cgi?1:mss:75:201405:pkmodhckjklemogbplje patches = [ ./getpeereid.patch ]; - configurePhase = '' - pushd conf-compile - - printf "$out/bin" > conf-defaultpath - printf "$out/etc" > conf-etc - printf "$out/bin" > conf-install-command - printf "$out/include" > conf-install-include - printf "$out/libexec" > conf-install-libexec - printf "$out/lib" > conf-install-library - printf "$out/lib" > conf-install-library.so - printf "$out/sysdeps" > conf-install-sysdeps - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins - truncate --size 0 conf-striplibs - - rm -f flag-slashpackage - touch flag-allstatic - touch flag-forcedevr - - popd - ''; - - preBuild = '' - patchShebangs src/sys - ''; + buildInputs = [ skarnetConfCompile ]; preInstall = '' mkdir -p "$out/etc" diff --git a/pkgs/development/tools/build-managers/skarnet/default.nix b/pkgs/development/tools/build-managers/skarnet/default.nix new file mode 100644 index 000000000000..5490fcabef96 --- /dev/null +++ b/pkgs/development/tools/build-managers/skarnet/default.nix @@ -0,0 +1,21 @@ +{ stdenv }: + +let + + version = "2014-11-28"; + +in stdenv.mkDerivation { + + name = "skarnet-conf-compile-${version}"; + + phases = [ "fixupPhase" ]; + + setupHook = ./setup-hook.sh; + + meta = { + homepage = http://www.skarnet.org/software/conf-compile.html; + description = "Support for configuring skarnet.org packages for nix builds"; + platforms = stdenv.lib.platforms.all; + }; + +} diff --git a/pkgs/development/tools/build-managers/skarnet/setup-hook.sh b/pkgs/development/tools/build-managers/skarnet/setup-hook.sh new file mode 100644 index 000000000000..1c5c7efd4085 --- /dev/null +++ b/pkgs/development/tools/build-managers/skarnet/setup-hook.sh @@ -0,0 +1,42 @@ +# Packages from skarnet.org use a unique build system. These functions +# assist with some common configuration and shebang patching. + +skarnetConfigure() { + runHook preConfigure + + pushd conf-compile >/dev/null + + # paths + > conf-defaultpath printf "$out/bin" + > conf-etc printf "$out/etc" + > conf-install-command printf "$out/bin" + > conf-install-include printf "$out/include" + > conf-install-libexec printf "$out/libexec" + > conf-install-library printf "$out/lib" + > conf-install-library.so printf "$out/lib" + > conf-install-sysdeps printf "$out/sysdeps" + + # let nix builder strip things, cross-platform + truncate --size 0 conf-stripbins conf-striplibs + + rm -f flag-slashpackage + touch flag-allstatic + touch flag-forcedevr # only used for skalibs + + # build inputs + truncate --size 0 import path-include path-library + for input in $nativeBuildInputs; do + [[ -a "$input/sysdeps" ]] && >> import printf "$input/sysdeps" + [[ -a "$input/include" ]] && >> path-include printf "$input/include" + [[ -a "$input/lib" ]] && >> path-library printf "$input/lib" + done + + popd >/dev/null + + # patch various scripts to use stdenv shell + patchShebangs src/sys + + runHook postConfigure +} + +export configurePhase=skarnetConfigure diff --git a/pkgs/os-specific/linux/s6-linux-utils/default.nix b/pkgs/os-specific/linux/s6-linux-utils/default.nix index a50400e492a8..b7a546a3ea06 100644 --- a/pkgs/os-specific/linux/s6-linux-utils/default.nix +++ b/pkgs/os-specific/linux/s6-linux-utils/default.nix @@ -1,4 +1,8 @@ -{ stdenv, fetchurl, skalibs }: +{ stdenv +, fetchurl +, skalibs +, skarnetConfCompile +}: let @@ -13,36 +17,10 @@ in stdenv.mkDerivation rec { sha256 = "1s17g03z5hfpiz32g001g5wyamyvn9l36fr2csk3k7r0jkqfnl0d"; }; - buildInputs = [ skalibs ]; + buildInputs = [ skalibs skarnetConfCompile ]; sourceRoot = "admin/${name}"; - configurePhase = '' - pushd conf-compile - - printf "$out/bin" > conf-install-command - printf "$out/include" > conf-install-include - printf "$out/lib" > conf-install-library - printf "$out/lib" > conf-install-library.so - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins - truncate --size 0 conf-striplibs - - printf "${skalibs}/sysdeps" > import - printf "%s" "${skalibs}/include" > path-include - printf "%s" "${skalibs}/lib" > path-library - - rm -f flag-slashpackage - touch flag-allstatic - - popd - ''; - - preBuild = '' - patchShebangs src/sys - ''; - meta = { homepage = http://www.skarnet.org/software/s6-linux-utils/; description = "A set of minimalistic Linux-specific system utilities"; diff --git a/pkgs/servers/s6/default.nix b/pkgs/servers/s6/default.nix index 039128e9df4c..491dc625cf21 100644 --- a/pkgs/servers/s6/default.nix +++ b/pkgs/servers/s6/default.nix @@ -1,4 +1,9 @@ -{stdenv, fetchurl, skalibs, execline}: +{ stdenv +, execline +, fetchurl +, skalibs +, skarnetConfCompile +}: let @@ -13,38 +18,13 @@ in stdenv.mkDerivation rec { sha256 = "0djxdd3d3mlp63sjqqs0ilf8p68m86c1s98d82fl0kgaaibpsikp"; }; - buildInputs = [ skalibs execline ]; + buildInputs = [ skalibs execline skarnetConfCompile ]; sourceRoot = "admin/${name}"; - configurePhase = '' - pushd conf-compile - - printf "$out/bin" > conf-install-command - printf "$out/include" > conf-install-include - printf "$out/lib" > conf-install-library - printf "$out/lib" > conf-install-library.so - printf "$out/sysdeps" > conf-install-sysdeps - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins - truncate --size 0 conf-striplibs - - printf "${skalibs}/sysdeps" > import - printf "%s\n%s" "${skalibs}/include" "${execline}/include" > path-include - printf "%s\n%s" "${skalibs}/lib" "${execline}/lib" > path-library - - rm -f flag-slashpackage - touch flag-allstatic - - popd - ''; - preBuild = '' substituteInPlace "src/daemontools-extras/s6-log.c" \ --replace '"execlineb"' '"${execline}/bin/execlineb"' - - patchShebangs src/sys ''; meta = { diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix index 8462ca0e9c69..6bfb1852f870 100644 --- a/pkgs/tools/misc/execline/default.nix +++ b/pkgs/tools/misc/execline/default.nix @@ -1,4 +1,8 @@ -{stdenv, fetchurl, skalibs}: +{ stdenv +, fetchurl +, skalibs +, skarnetConfCompile +}: let @@ -13,37 +17,10 @@ in stdenv.mkDerivation rec { sha256 = "1br3qzif166kbp4k813ljbyq058p7mfsp2lj88n8vi4dmj935nzg"; }; - buildInputs = [ skalibs ]; + buildInputs = [ skalibs skarnetConfCompile ]; sourceRoot = "admin/${name}"; - configurePhase = '' - pushd conf-compile - - printf "$out/bin" > conf-install-command - printf "$out/include" > conf-install-include - printf "$out/lib" > conf-install-library - printf "$out/lib" > conf-install-library.so - printf "$out/sysdeps" > conf-install-sysdeps - - printf "${skalibs}/sysdeps" > import - printf "${skalibs}/include" > path-include - printf "${skalibs}/lib" > path-library - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins - truncate --size 0 conf-striplibs - - rm -f flag-slashpackage - touch flag-allstatic - - popd - ''; - - preBuild = '' - patchShebangs src/sys - ''; - meta = { homepage = http://skarnet.org/software/execline/; description = "A small scripting language, to be used in place of a shell in non-interactive scripts"; diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix index 8da10b7eb582..650886351e6b 100644 --- a/pkgs/tools/misc/s6-portable-utils/default.nix +++ b/pkgs/tools/misc/s6-portable-utils/default.nix @@ -1,4 +1,8 @@ -{ stdenv, fetchurl, skalibs }: +{ stdenv +, fetchurl +, skalibs +, skarnetConfCompile +}: let @@ -13,34 +17,10 @@ in stdenv.mkDerivation rec { sha256 = "040nmls7qbgw8yn502lym4kgqh5zxr2ks734bqajpi2ricnasvhl"; }; - buildInputs = [ skalibs ]; + buildInputs = [ skalibs skarnetConfCompile ]; sourceRoot = "admin/${name}"; - configurePhase = '' - pushd conf-compile - - printf "$out/bin" > conf-install-command - printf "$out/libexec" > conf-install-libexec - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins - truncate --size 0 conf-striplibs - - printf "${skalibs}/sysdeps" > import - printf "%s" "${skalibs}/include" > path-include - printf "%s" "${skalibs}/lib" > path-library - - rm -f flag-slashpackage - touch flag-allstatic - - popd - ''; - - preBuild = '' - patchShebangs src/sys - ''; - preInstall = '' mkdir -p "$out/libexec" ''; diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix index 881bb7dd32f4..16467e84a1e7 100644 --- a/pkgs/tools/networking/s6-dns/default.nix +++ b/pkgs/tools/networking/s6-dns/default.nix @@ -1,4 +1,8 @@ -{ stdenv, fetchurl, skalibs }: +{ stdenv +, fetchurl +, skalibs +, skarnetConfCompile +}: let @@ -13,36 +17,10 @@ in stdenv.mkDerivation rec { sha256 = "1r82l5fnz2rrwm5wq2sldqp74lk9fifr0d8hyq98xdyh24hish68"; }; - buildInputs = [ skalibs ]; + buildInputs = [ skalibs skarnetConfCompile ]; sourceRoot = "web/${name}"; - configurePhase = '' - pushd conf-compile - - printf "$out/bin" > conf-install-command - printf "$out/include" > conf-install-include - printf "$out/lib" > conf-install-library - printf "$out/lib" > conf-install-library.so - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins - truncate --size 0 conf-striplibs - - printf "${skalibs}/sysdeps" > import - printf "%s" "${skalibs}/include" > path-include - printf "%s" "${skalibs}/lib" > path-library - - rm -f flag-slashpackage - touch flag-allstatic - - popd - ''; - - preBuild = '' - patchShebangs src/sys - ''; - meta = { homepage = http://www.skarnet.org/software/s6-dns/; description = "A suite of DNS client programs and libraries for Unix systems"; diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix index 5faa2af8ba11..a4482bb71c3f 100644 --- a/pkgs/tools/networking/s6-networking/default.nix +++ b/pkgs/tools/networking/s6-networking/default.nix @@ -3,6 +3,7 @@ , fetchurl , s6Dns , skalibs +, skarnetConfCompile }: let @@ -18,41 +19,10 @@ in stdenv.mkDerivation rec { sha256 = "1np9m2j1i2450mbcjvpbb56kv3wc2fbyvmv2a039q61j2lk6vjz7"; }; - buildInputs = [ skalibs s6Dns execline ]; + buildInputs = [ skalibs s6Dns execline skarnetConfCompile ]; sourceRoot = "net/${name}"; - configurePhase = '' - pushd conf-compile - - printf "$out/bin" > conf-install-command - printf "$out/include" > conf-install-include - printf "$out/lib" > conf-install-library - printf "$out/lib" > conf-install-library.so - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins - truncate --size 0 conf-striplibs - - printf "${skalibs}/sysdeps" > import - - rm -f path-include - rm -f path-library - for dep in "${execline}" "${s6Dns}" "${skalibs}"; do - printf "%s\n" "$dep/include" >> path-include - printf "%s\n" "$dep/lib" >> path-library - done - - rm -f flag-slashpackage - touch flag-allstatic - - popd - ''; - - preBuild = '' - patchShebangs src/sys - ''; - meta = { homepage = http://www.skarnet.org/software/s6-networking/; description = "A suite of small networking utilities for Unix systems"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3b27e447009d..e31bd7ed737a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6831,6 +6831,8 @@ let skalibs = callPackage ../development/libraries/skalibs { }; + skarnetConfCompile = callPackage ../development/tools/build-managers/skarnet { }; + slang = callPackage ../development/libraries/slang { }; slibGuile = callPackage ../development/libraries/slib { |