diff --git a/pkgs/misc/cups/filters.nix b/pkgs/misc/cups/filters.nix index 8a0406203aeb..524662a0ee6c 100644 --- a/pkgs/misc/cups/filters.nix +++ b/pkgs/misc/cups/filters.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, cups, poppler, fontconfig -, libjpeg, libpng, perl, ijs, qpdf, dbus }: +, libjpeg, libpng, perl, ijs, qpdf, dbus, substituteAll, bash }: stdenv.mkDerivation rec { name = "cups-filters-${version}"; @@ -34,6 +34,13 @@ stdenv.mkDerivation rec { substituteInPlace filter/gstoraster.c --replace execve execvpe ''; + patches = [ + (substituteAll { + src = ./longer-shell-path.patch; + bash = "${bash}/bin/bash"; + }) + ]; + postInstall = '' for i in $out/lib/cups/filter/{pstopdf,texttops,imagetops}; do diff --git a/pkgs/misc/cups/longer-shell-path.patch b/pkgs/misc/cups/longer-shell-path.patch new file mode 100644 index 000000000000..a15fd4832258 --- /dev/null +++ b/pkgs/misc/cups/longer-shell-path.patch @@ -0,0 +1,13 @@ +diff --git a/filter/foomatic-rip/foomaticrip.c b/filter/foomatic-rip/foomaticrip.c +index 1c019aa..431d2f9 100644 +--- a/filter/foomatic-rip/foomaticrip.c ++++ b/filter/foomatic-rip/foomaticrip.c +@@ -174,7 +174,7 @@ char cupsfilterpath[PATH_MAX] = "/usr/local/lib/cups/filter:" + "/opt/cups/filter:" + "/usr/lib/cups/filter"; + +-char modern_shell[64] = "/bin/bash"; ++char modern_shell[128] = "@bash@"; + + void config_set_option(const char *key, const char *value) + {