diff options
author | Profpatsch <mail@profpatsch.de> | 2018-09-02 23:31:26 +0200 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2018-09-06 11:53:22 +0200 |
commit | 0071ae1d4f1a18542b19a815d06d2b7bbf292dd4 (patch) | |
tree | b6c94409341b69786743eeef397e2ab86c315585 /pkgs/tools | |
parent | 57b431590b3c555469f4ebeffa2dc524ef806293 (diff) | |
download | nixlib-0071ae1d4f1a18542b19a815d06d2b7bbf292dd4.tar nixlib-0071ae1d4f1a18542b19a815d06d2b7bbf292dd4.tar.gz nixlib-0071ae1d4f1a18542b19a815d06d2b7bbf292dd4.tar.bz2 nixlib-0071ae1d4f1a18542b19a815d06d2b7bbf292dd4.tar.lz nixlib-0071ae1d4f1a18542b19a815d06d2b7bbf292dd4.tar.xz nixlib-0071ae1d4f1a18542b19a815d06d2b7bbf292dd4.tar.zst nixlib-0071ae1d4f1a18542b19a815d06d2b7bbf292dd4.zip |
skawarePackages: factor out the common parts
Introduce a `skawarePackages.buildPackage` function that contains the common setup, removing a lot of duplication. In particular, we require that the build directory has to be empty after the `fixupPhase`, to make sure every relevant file is moved to the outputs. A next step would be to deduplicate the `configureFlags` attributes and only require a `skawareInputs` field.
Diffstat (limited to 'pkgs/tools')
-rw-r--r-- | pkgs/tools/misc/execline/default.nix | 39 | ||||
-rw-r--r-- | pkgs/tools/misc/s6-portable-utils/default.nix | 42 | ||||
-rw-r--r-- | pkgs/tools/networking/s6-dns/default.nix | 40 | ||||
-rw-r--r-- | pkgs/tools/networking/s6-networking/default.nix | 41 | ||||
-rw-r--r-- | pkgs/tools/system/s6-rc/default.nix | 40 | ||||
-rw-r--r-- | pkgs/tools/system/s6/default.nix | 40 |
6 files changed, 75 insertions, 167 deletions
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix index 70301cc89e62..00faab0a66f8 100644 --- a/pkgs/tools/misc/execline/default.nix +++ b/pkgs/tools/misc/execline/default.nix @@ -1,28 +1,18 @@ -{ stdenv, fetchgit, skalibs }: +{ stdenv, skawarePackages }: -let +with skawarePackages; +buildPackage { + pname = "execline"; version = "2.5.0.1"; + sha256 = "0d4gvixz7xja03hnwc2bf13xrgh1jq27ij4m1jlrpgrzhfpqz37q"; -in stdenv.mkDerivation rec { - - name = "execline-${version}"; - - src = fetchgit { - url = "git://git.skarnet.org/execline"; - rev = "refs/tags/v${version}"; - sha256 = "0d4gvixz7xja03hnwc2bf13xrgh1jq27ij4m1jlrpgrzhfpqz37q"; - }; + description = "A small scripting language, to be used in place of a shell in non-interactive scripts"; outputs = [ "bin" "lib" "dev" "doc" "out" ]; - dontDisableStatic = true; - - enableParallelBuilding = true; - # TODO: nsss support configureFlags = [ - "--enable-absolute-paths" "--libdir=\${lib}/lib" "--dynlibdir=\${lib}/lib" "--bindir=\${bin}/bin" @@ -31,22 +21,15 @@ in stdenv.mkDerivation rec { "--with-include=${skalibs.dev}/include" "--with-lib=${skalibs.lib}/lib" "--with-dynlib=${skalibs.lib}/lib" - ] - ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]) - ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}"); + ]; postInstall = '' - mkdir -p $doc/share/doc/execline + # remove all execline executables from build directory + rm $(find -type f -mindepth 1 -maxdepth 1 -executable) + rm libexecline.* + mv doc $doc/share/doc/execline/html mv examples $doc/share/doc/execline/examples ''; - meta = { - homepage = http://skarnet.org/software/execline/; - description = "A small scripting language, to be used in place of a shell in non-interactive scripts"; - platforms = stdenv.lib.platforms.all; - license = stdenv.lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ]; - }; - } diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix index c11bd13c799a..04874dedc6e6 100644 --- a/pkgs/tools/misc/s6-portable-utils/default.nix +++ b/pkgs/tools/misc/s6-portable-utils/default.nix @@ -1,47 +1,35 @@ -{ stdenv, fetchurl, skalibs }: +{ stdenv, skawarePackages }: -with stdenv.lib; +with skawarePackages; -stdenv.mkDerivation rec { - name = "s6-portable-utils-${version}"; +let + pname = "s6-portable-utils"; + +in buildPackage { + pname = pname; version = "2.2.1.2"; + sha256 = "1zfanja5mbyafmzw28dlx1bb3fixa7lidbs62sxf849ly3z0zqp2"; - src = fetchurl { - url = "https://www.skarnet.org/software/s6-portable-utils/${name}.tar.gz"; - sha256 = "0if77z07rfygd1yk9d2abxkdbx3dg52vcjhb20isb8kvqxhkg8ih"; - }; + description = "A set of tiny general Unix utilities optimized for simplicity and small size"; outputs = [ "bin" "dev" "doc" "out" ]; - dontDisableStatic = true; - configureFlags = [ - "--enable-absolute-paths" "--bindir=\${bin}/bin" "--includedir=\${dev}/include" "--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps" "--with-include=${skalibs.dev}/include" "--with-lib=${skalibs.lib}/lib" "--with-dynlib=${skalibs.lib}/lib" - ] - # On darwin, the target triplet from -dumpmachine includes version number, but - # skarnet.org software uses the triplet to test binary compatibility. - # Explicitly setting target ensures code can be compiled against a skalibs - # binary built on a different version of darwin. - # http://www.skarnet.org/cgi-bin/archive.cgi?1:mss:623:heiodchokfjdkonfhdph - ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}"); + ]; postInstall = '' - mkdir -p $doc/share/doc/s6-portable-utils/ - mv doc $doc/share/doc/s6-portable-utils/html + # remove all s6 executables from build directory + rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable) + rm seekablepipe + + mv doc $doc/share/doc/${pname}/html ''; - meta = { - homepage = http://www.skarnet.org/software/s6-portable-utils/; - description = "A set of tiny general Unix utilities optimized for simplicity and small size"; - platforms = platforms.all; - license = licenses.isc; - maintainers = with maintainers; [ pmahoney Profpatsch ]; - }; } diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix index ee669b8f9282..6d514d56ed39 100644 --- a/pkgs/tools/networking/s6-dns/default.nix +++ b/pkgs/tools/networking/s6-dns/default.nix @@ -1,27 +1,17 @@ -{ stdenv, fetchgit, skalibs }: +{ stdenv, skawarePackages }: -let +with skawarePackages; +buildPackage { + pname = "s6-dns"; version = "2.3.0.1"; + sha256 = "0flxkrnff2c28514k2nxv2y41k38pbiwd8dxlqaxgs2cl27i0ggb"; -in stdenv.mkDerivation rec { - - name = "s6-dns-${version}"; - - src = fetchgit { - url = "git://git.skarnet.org/s6-dns"; - rev = "refs/tags/v${version}"; - sha256 = "0flxkrnff2c28514k2nxv2y41k38pbiwd8dxlqaxgs2cl27i0ggb"; - }; + description = "A suite of DNS client programs and libraries for Unix systems"; outputs = [ "bin" "lib" "dev" "doc" "out" ]; - dontDisableStatic = true; - - enableParallelBuilding = true; - configureFlags = [ - "--enable-absolute-paths" "--libdir=\${lib}/lib" "--libexecdir=\${lib}/libexec" "--dynlibdir=\${lib}/lib" @@ -31,21 +21,15 @@ in stdenv.mkDerivation rec { "--with-include=${skalibs.dev}/include" "--with-lib=${skalibs.lib}/lib" "--with-dynlib=${skalibs.lib}/lib" - ] - ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]) - ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}"); + ]; postInstall = '' - mkdir -p $doc/share/doc/s6-dns/ + # remove all s6-dns executables from build directory + rm $(find -type f -mindepth 1 -maxdepth 1 -executable) + rm libs6dns.* + rm libskadns.* + mv doc $doc/share/doc/s6-dns/html ''; - meta = { - homepage = http://www.skarnet.org/software/s6-dns/; - description = "A suite of DNS client programs and libraries for Unix systems"; - platforms = stdenv.lib.platforms.all; - license = stdenv.lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ]; - }; - } diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix index d96cff167d90..032287ece835 100644 --- a/pkgs/tools/networking/s6-networking/default.nix +++ b/pkgs/tools/networking/s6-networking/default.nix @@ -1,4 +1,4 @@ -{ stdenv, execline, fetchgit, s6, s6-dns, skalibs +{ stdenv, skawarePackages # Whether to build the TLS/SSL tools and what library to use # acceptable values: "libressl", false @@ -6,11 +6,9 @@ , sslSupport ? "libressl" , libressl }: +with skawarePackages; let inherit (stdenv) lib; - - version = "2.3.0.3"; - sslSupportEnabled = sslSupport != false; sslLibs = { "libressl" = libressl; @@ -19,25 +17,18 @@ let in assert sslSupportEnabled -> sslLibs ? ${sslSupport}; -stdenv.mkDerivation rec { - name = "s6-networking-${version}"; +buildPackage { + pname = "s6-networking"; + version = "2.3.0.3"; + sha256 = "06kv2l31ch0zw538bpivgnwymb056x5hpmqafglffgkbq3izp7wc"; - src = fetchgit { - url = "git://git.skarnet.org/s6-networking"; - rev = "refs/tags/v${version}"; - sha256 = "06kv2l31ch0zw538bpivgnwymb056x5hpmqafglffgkbq3izp7wc"; - }; + description = "A suite of small networking utilities for Unix systems"; outputs = [ "bin" "lib" "dev" "doc" "out" ]; - dontDisableStatic = true; - - enableParallelBuilding = true; - # TODO: nsss support configureFlags = [ - "--enable-absolute-paths" "--libdir=\${lib}/lib" "--libexecdir=\${lib}/libexec" "--dynlibdir=\${lib}/lib" @@ -61,20 +52,16 @@ stdenv.mkDerivation rec { "--enable-ssl=${sslSupport}" "--with-include=${lib.getDev sslLibs.${sslSupport}}/include" "--with-lib=${lib.getLib sslLibs.${sslSupport}}/lib" - ]) - ++ (lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}"); + "--with-dynlib=${lib.getLib sslLibs.${sslSupport}}/lib" + ]); postInstall = '' - mkdir -p $doc/share/doc/s6-networking/ + # remove all s6 executables from build directory + rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable) + rm minidentd + rm libs6net.* libstls.* + mv doc $doc/share/doc/s6-networking/html ''; - meta = { - homepage = http://www.skarnet.org/software/s6-networking/; - description = "A suite of small networking utilities for Unix systems"; - platforms = lib.platforms.all; - license = lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ]; - }; - } diff --git a/pkgs/tools/system/s6-rc/default.nix b/pkgs/tools/system/s6-rc/default.nix index b5cfa8ea4425..3edb0c0fb608 100644 --- a/pkgs/tools/system/s6-rc/default.nix +++ b/pkgs/tools/system/s6-rc/default.nix @@ -1,27 +1,18 @@ -{ stdenv, execline, fetchgit, skalibs, s6 }: +{ stdenv, skawarePackages }: -let +with skawarePackages; +buildPackage { + pname = "s6-rc"; version = "0.4.1.0"; + sha256 = "1as7jhlp4cvh1bzvcli1hk1pbdzkac8gys1h379blymfy8hmp805"; -in stdenv.mkDerivation rec { - - name = "s6-rc-${version}"; - - src = fetchgit { - url = "git://git.skarnet.org/s6-rc"; - rev = "refs/tags/v${version}"; - sha256 = "1as7jhlp4cvh1bzvcli1hk1pbdzkac8gys1h379blymfy8hmp805"; - }; + description = "A service manager for s6-based systems"; + platforms = stdenv.lib.platforms.linux; outputs = [ "bin" "lib" "dev" "doc" "out" ]; - dontDisableStatic = true; - - enableParallelBuilding = true; - configureFlags = [ - "--enable-absolute-paths" "--libdir=\${lib}/lib" "--libexecdir=\${lib}/libexec" "--dynlibdir=\${lib}/lib" @@ -37,22 +28,15 @@ in stdenv.mkDerivation rec { "--with-dynlib=${skalibs.lib}/lib" "--with-dynlib=${execline.lib}/lib" "--with-dynlib=${s6.out}/lib" - ] - ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]) - ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}"); + ]; postInstall = '' - mkdir -p $doc/share/doc/s6-rc/ + # remove all s6 executables from build directory + rm $(find -name "s6-rc-*" -type f -mindepth 1 -maxdepth 1 -executable) + rm s6-rc libs6rc.* + mv doc $doc/share/doc/s6-rc/html mv examples $doc/share/doc/s6-rc/examples ''; - meta = { - homepage = http://skarnet.org/software/s6-rc/; - description = "A service manager for s6-based systems"; - platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ]; - }; - } diff --git a/pkgs/tools/system/s6/default.nix b/pkgs/tools/system/s6/default.nix index 85140bce1ec9..f459c6242606 100644 --- a/pkgs/tools/system/s6/default.nix +++ b/pkgs/tools/system/s6/default.nix @@ -1,32 +1,21 @@ -{ stdenv, execline, fetchgit, skalibs }: +{ stdenv, skawarePackages }: -let +with skawarePackages; +buildPackage { + pname = "s6"; version = "2.7.2.0"; + sha256 = "07j4is7kxkynschwbf83q5rw1872kg3ij2vhxyfp3bg71k5pw1az"; -in stdenv.mkDerivation rec { - - name = "s6-${version}"; - - src = fetchgit { - url = "git://git.skarnet.org/s6"; - rev = "refs/tags/v${version}"; - sha256 = "07j4is7kxkynschwbf83q5rw1872kg3ij2vhxyfp3bg71k5pw1az"; - }; + description = "skarnet.org's small & secure supervision software suite"; # NOTE lib: cannot split lib from bin at the moment, # since some parts of lib depend on executables in bin. # (the `*_startf` functions in `libs6`) - outputs = [ /*"bin" "lib"*/ "out" "dev" "doc" ]; - dontDisableStatic = true; - - enableParallelBuilding = true; - # TODO: nsss support configureFlags = [ - "--enable-absolute-paths" "--libdir=\${out}/lib" "--libexecdir=\${out}/libexec" "--dynlibdir=\${out}/lib" @@ -39,22 +28,15 @@ in stdenv.mkDerivation rec { "--with-lib=${execline.lib}/lib" "--with-dynlib=${skalibs.lib}/lib" "--with-dynlib=${execline.lib}/lib" - ] - ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]) - ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}"); + ]; postInstall = '' - mkdir -p $doc/share/doc/s6/ + # remove all s6 executables from build directory + rm $(find -type f -mindepth 1 -maxdepth 1 -executable) + rm libs6.* + mv doc $doc/share/doc/s6/html mv examples $doc/share/doc/s6/examples ''; - meta = { - homepage = http://www.skarnet.org/software/s6/; - description = "skarnet.org's small & secure supervision software suite"; - platforms = stdenv.lib.platforms.all; - license = stdenv.lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ]; - }; - } |