From 0071ae1d4f1a18542b19a815d06d2b7bbf292dd4 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Sun, 2 Sep 2018 23:31:26 +0200 Subject: 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. --- pkgs/tools/system/s6-rc/default.nix | 40 +++++++++++-------------------------- pkgs/tools/system/s6/default.nix | 40 ++++++++++--------------------------- 2 files changed, 23 insertions(+), 57 deletions(-) (limited to 'pkgs/tools/system') 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 ]; - }; - } -- cgit 1.4.1