diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix index 3041dccfd1545e..7ce2ae38fb36e0 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 47e82d06e0eb1f..30e8af85b2aef8 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 0860a90192f0d1..d4b85e0dfe4338 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 51f518867abba0..f47ba022c352b3 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 0569eabe8f14b8..16b40798a5daab 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 # 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 8ef788df66fba0..26bd771e023a39 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/