From ba77c90161cd83ad0079e3fd4d8441b76c2a6945 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Sat, 15 Nov 2014 17:00:15 +0300 Subject: [PATCH] Revert "cups: update package" This reverts commit aa548af5a5e997b94df41b1da57232bd10b76612. --- nixos/modules/services/printing/cupsd.nix | 2 +- pkgs/misc/cups/default.nix | 21 +++--- pkgs/misc/cups/pdf-filter.nix | 39 +++++++++++ pkgs/misc/cups/use-initgroups.patch | 80 ----------------------- pkgs/top-level/all-packages.nix | 1 + 5 files changed, 50 insertions(+), 93 deletions(-) create mode 100644 pkgs/misc/cups/pdf-filter.nix delete mode 100644 pkgs/misc/cups/use-initgroups.patch diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix index fab1318f5b9..8a8085cad28 100644 --- a/nixos/modules/services/printing/cupsd.nix +++ b/nixos/modules/services/printing/cupsd.nix @@ -175,7 +175,7 @@ in }; services.printing.drivers = - [ pkgs.cups pkgs.ghostscript additionalBackends + [ pkgs.cups pkgs.cups_pdf_filter pkgs.ghostscript additionalBackends pkgs.perl pkgs.coreutils pkgs.gnused pkgs.bc pkgs.gawk pkgs.gnugrep ]; diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix index 56ccf7bd04a..c332dc02154 100644 --- a/pkgs/misc/cups/default.nix +++ b/pkgs/misc/cups/default.nix @@ -1,27 +1,24 @@ -{ stdenv, fetchurl, pkgconfig, zlib, pam, openssl +{ stdenv, fetchurl, pkgconfig, zlib, libjpeg, libpng, libtiff, pam, openssl , dbus, libusb, acl }: -let version = "2.0.0"; in +let version = "1.5.4"; in -stdenv.mkDerivation rec { +stdenv.mkDerivation { name = "cups-${version}"; + passthru = { inherit version; }; + src = fetchurl { - url = "https://www.cups.org/software/${version}/${name}-source.tar.bz2"; - sha256 = "1qjv1w8m3f9lbrnd9wx8gman4sjbgb75svfypd4jkn649b5vpzc3"; + url = "https://www.cups.org/software/${version}/cups-${version}-source.tar.bz2"; + sha256 = "1rfhlv9b37120d6shngvyrcp99vh4a3lwdkrfanv3sjqid7068w0"; }; - buildInputs = [ pkgconfig zlib libusb ] + buildInputs = [ pkgconfig zlib libjpeg libpng libtiff libusb ] ++ stdenv.lib.optionals stdenv.isLinux [ pam dbus.libs acl ] ; propagatedBuildInputs = [ openssl ]; - patches = [ ./use-initgroups.patch ]; - - configureFlags = [ "--localstatedir=/var" "--enable-dbus" - # Workaround for installing systemd path - "--with-systemd=$out/lib/systemd/system" - ]; + configureFlags = "--localstatedir=/var --enable-dbus"; # --with-dbusdir installFlags = [ # Don't try to write in /var at build time. diff --git a/pkgs/misc/cups/pdf-filter.nix b/pkgs/misc/cups/pdf-filter.nix new file mode 100644 index 00000000000..e99ad03212c --- /dev/null +++ b/pkgs/misc/cups/pdf-filter.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, pkgconfig, cups, poppler }: + +stdenv.mkDerivation { + name = "cups-pdf-filter-${cups.version}"; + + inherit (cups) src; + + buildInputs = [ pkgconfig cups poppler ]; + + preConfigure = '' + sed -e 's@\.\./cups/$(LIBCUPS)@@' -e 's@$(LIBCUPSIMAGE)@@' -i filter/Makefile + ''; + + NIX_LDFLAGS="-L${cups}/lib"; + + configureFlags = '' + --localstatedir=/var --enable-dbus + --enable-image --with-pdftops=pdftops''; + + buildPhase = '' + cd filter + make pdftops + ''; + + installPhase = '' + mkdir -pv $out/lib/cups/filter $out/share/cups/mime + cp -v pdftops $out/lib/cups/filter + echo >$out/share/cups/mime/pdftops.convs 'application/pdf application/vnd.cups-postscript 66 pdftops' + ''; + + + meta = { + homepage = http://www.cups.org/; + description = "Image and pdf filters for CUPS"; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.urkud ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/misc/cups/use-initgroups.patch b/pkgs/misc/cups/use-initgroups.patch deleted file mode 100644 index 3976ce74a8a..00000000000 --- a/pkgs/misc/cups/use-initgroups.patch +++ /dev/null @@ -1,80 +0,0 @@ -diff -ru3 cups-2.0.0-old/scheduler/cups-exec.c cups-2.0.0/scheduler/cups-exec.c ---- cups-2.0.0-old/scheduler/cups-exec.c 2014-11-04 19:55:05.734768315 +0300 -+++ cups-2.0.0/scheduler/cups-exec.c 2014-11-04 20:24:15.936670878 +0300 -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - #ifdef HAVE_SANDBOX_H - # include -@@ -55,6 +56,7 @@ - uid_t uid = getuid(); /* UID */ - gid_t gid = getgid(); /* GID */ - int niceval = 0; /* Nice value */ -+ struct passwd *pwd; /* User passwd entry */ - #ifdef HAVE_SANDBOX_H - char *sandbox_error = NULL; /* Sandbox error, if any */ - #endif /* HAVE_SANDBOX_H */ -@@ -135,7 +137,15 @@ - if (setgid(gid)) - exit(errno + 100); - -- if (setgroups(1, &gid)) -+ if (uid) -+ { -+ if ((pwd = getpwuid(uid)) == NULL) -+ exit(errno + 100); -+ -+ if (initgroups(pwd->pw_name, gid)) -+ exit(errno + 100); -+ } -+ else if (setgroups(1, &gid)) - exit(errno + 100); - - if (uid && setuid(uid)) -diff -ru3 cups-2.0.0-old/scheduler/process.c cups-2.0.0/scheduler/process.c ---- cups-2.0.0-old/scheduler/process.c 2014-11-04 19:55:05.736768298 +0300 -+++ cups-2.0.0/scheduler/process.c 2014-11-04 20:23:55.001850057 +0300 -@@ -19,6 +19,7 @@ - - #include "cupsd.h" - #include -+#include - #ifdef __APPLE__ - # include - #endif /* __APPLE__ */ -@@ -462,6 +463,7 @@ - cups_exec[1024]; /* Path to "cups-exec" program */ - uid_t user; /* Command UID */ - cupsd_proc_t *proc; /* New process record */ -+ struct passwd *pwd; /* User passwd entry */ - #ifdef HAVE_POSIX_SPAWN - posix_spawn_file_actions_t actions; /* Spawn file actions */ - posix_spawnattr_t attrs; /* Spawn attributes */ -@@ -716,13 +718,22 @@ - nice(FilterNice); - - /* -- * Reset group membership to just the main one we belong to. -+ * Reset group membership to the main one we belong to with its -+ * supplementary groups. - */ - - if (!RunUser && setgid(Group)) - exit(errno + 100); - -- if (!RunUser && setgroups(1, &Group)) -+ if (!RunUser && user) -+ { -+ if ((pwd = getpwuid(user)) == NULL) -+ exit(errno + 100); -+ -+ if (initgroups(pwd->pw_name, Group)) -+ exit(errno + 100); -+ } -+ else if (!RunUser && setgroups(1, &Group)) - exit(errno + 100); - - /* diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6fb9591a40a..22be1d18368 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12277,6 +12277,7 @@ let cups = callPackage ../misc/cups { libusb = libusb1; }; + cups_pdf_filter = callPackage ../misc/cups/pdf-filter.nix { }; crashplan = callPackage ../applications/backup/crashplan { };