summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2017-03-12 18:09:39 +0100
committerVladimír Čunát <vcunat@gmail.com>2017-03-12 18:36:30 +0100
commit50fadc8b18fb3da6bda2f3710009a15f6ac45567 (patch)
tree0989221d5ff841e488134b76758c2c7761ca6820
parent2e4c5711a29ccf47bab1a16efc2743bf31b1874f (diff)
downloadnixlib-50fadc8b18fb3da6bda2f3710009a15f6ac45567.tar
nixlib-50fadc8b18fb3da6bda2f3710009a15f6ac45567.tar.gz
nixlib-50fadc8b18fb3da6bda2f3710009a15f6ac45567.tar.bz2
nixlib-50fadc8b18fb3da6bda2f3710009a15f6ac45567.tar.lz
nixlib-50fadc8b18fb3da6bda2f3710009a15f6ac45567.tar.xz
nixlib-50fadc8b18fb3da6bda2f3710009a15f6ac45567.tar.zst
nixlib-50fadc8b18fb3da6bda2f3710009a15f6ac45567.zip
cups: split the $lib output
This saves > 10 MB from most closures.
Printing test succeeds on x86_64-linux.
-rw-r--r--nixos/modules/services/printing/cupsd.nix1
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix2
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix2
-rw-r--r--pkgs/misc/cups/default.nix12
-rw-r--r--pkgs/misc/cups/drivers/samsung/4.00.39/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/samsung/default.nix4
6 files changed, 16 insertions, 7 deletions
diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix
index 3041dccfd154..7ce2ae38fb36 100644
--- a/nixos/modules/services/printing/cupsd.nix
+++ b/nixos/modules/services/printing/cupsd.nix
@@ -52,6 +52,7 @@ let
 
     ServerBin ${bindir}/lib/cups
     DataDir ${bindir}/share/cups
+    DocumentRoot ${cups.out}/share/doc/cups
 
     AccessLog syslog
     ErrorLog syslog
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 47e82d06e0eb..30e8af85b2ae 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -46,7 +46,7 @@ let
     alsaLib.out
     atk.out
     cairo.out
-    cups.out
+    cups
     curl.out
     dbus.lib
     expat.out
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 0860a90192f0..d4b85e0dfe43 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
       ./libressl.patch
       (substituteAll {
         src = ./dlopen-absolute-paths.diff;
-        cups = if cups != null then cups.out else null;
+        cups = if cups != null then stdenv.lib.getLib cups else null;
         icu = icu.out;
         libXfixes = libXfixes.out;
         glibc = stdenv.cc.libc.out;
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index 51f518867abb..f47ba022c352 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -18,8 +18,7 @@ stdenv.mkDerivation rec {
     sha256 = "1xp4ji4rz3xffsz6w6nd60ajxvvihn02pkyp2l4smhqxbmyvp2gm";
   };
 
-  # FIXME: the cups libraries contains some $out/share strings so can't be split.
-  outputs = [ "out" "dev" "man" ]; # TODO: above
+  outputs = [ "out" "lib" "dev" "man" ];
 
   buildInputs = [ pkgconfig zlib libjpeg libpng libtiff libusb gnutls libpaper ]
     ++ optionals stdenv.isLinux [ avahi pam dbus systemd acl ]
@@ -30,6 +29,13 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ gmp ];
 
   configureFlags = [
+    # Put just lib/* and locale into $lib; this didn't work directly.
+    # lib/cups is moved back to $out in postInstall.
+    # Beware: some parts of cups probably don't fully respect these.
+    "--prefix=$(lib)"
+    "--datadir=$(out)/share"
+    "--localedir=$(lib)/share/locale"
+
     "--localstatedir=/var"
     "--sysconfdir=/etc"
     "--with-systemd=\${out}/lib/systemd/system"
@@ -68,6 +74,8 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   postInstall = ''
+      moveToOutput lib/cups "$out"
+
       # Delete obsolete stuff that conflicts with cups-filters.
       rm -rf $out/share/cups/banners $out/share/cups/data/testprint
 
diff --git a/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix b/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
index 0569eabe8f14..16b40798a5da 100644
--- a/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
+++ b/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
@@ -16,7 +16,7 @@
 # Do not bump lightly! Visit <http://www.bchemnet.com/suldr/supported.html>
 # to see what will break when upgrading. Consider a new versioned attribute.
 let
-  cups' = cups.out;
+  cups' = stdenv.lib.getLib cups;
 in stdenv.mkDerivation rec {
   name = "samsung-UnifiedLinuxDriver-${version}";
   version = "4.00.39";
diff --git a/pkgs/misc/cups/drivers/samsung/default.nix b/pkgs/misc/cups/drivers/samsung/default.nix
index 8ef788df66fb..26bd771e023a 100644
--- a/pkgs/misc/cups/drivers/samsung/default.nix
+++ b/pkgs/misc/cups/drivers/samsung/default.nix
@@ -72,10 +72,10 @@ in stdenv.mkDerivation rec {
 
   for bin in $out/bin/*; do
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$bin"
-    patchelf --set-rpath "$out/lib:${cups.out}/lib" "$bin"
+    patchelf --set-rpath "$out/lib:${stdenv.lib.getLib cups}/lib" "$bin"
   done
 
-  patchelf --set-rpath "$out/lib:${cups.out}/lib" "$out/lib/libscmssc.so"
+  patchelf --set-rpath "$out/lib:${stdenv.lib.getLib cups}/lib" "$out/lib/libscmssc.so"
 
   ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/