From 60df55c9fba36891b2c76eda50d5e2c9a0731e4e Mon Sep 17 00:00:00 2001 From: Bryan Gardiner Date: Fri, 8 Jan 2021 20:20:00 -0800 Subject: hplip: fix hp-setup crash by adding proper NixOS PPD search path HPLIP's getSystemPPDs() function relies on searching for PPDs below common FHS paths. None of these exist on NixOS, but the code assumes that at least one of the directories will be found, and crashes when it doesn't (cups_ppd_path is None and the code passes that to os.path.join). A usable PPD search path for the running system on NixOS is /var/lib/cups/path/share, so this patches the source to check this path as well. This should fix the NixOS case and keep non-NixOS cases working too. --- pkgs/misc/drivers/hplip/default.nix | 6 ++++++ .../hplip-3.20.11-nixos-cups-ppd-search-path.patch | 24 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/misc/drivers/hplip/hplip-3.20.11-nixos-cups-ppd-search-path.patch (limited to 'pkgs/misc/drivers') diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix index b29463d61ddf..f1688a1b56fc 100644 --- a/pkgs/misc/drivers/hplip/default.nix +++ b/pkgs/misc/drivers/hplip/default.nix @@ -93,6 +93,12 @@ python3Packages.buildPythonApplication { # https://bugs.launchpad.net/hplip/+bug/1788706 # https://bugs.launchpad.net/hplip/+bug/1787289 ./image-processor.patch + + # HPLIP's getSystemPPDs() function relies on searching for PPDs below common FHS + # paths, and hp-setup crashes if none of these paths actually exist (which they + # don't on NixOS). Add the equivalent NixOS path, /var/lib/cups/path/share. + # See: https://github.com/NixOS/nixpkgs/issues/21796 + ./hplip-3.20.11-nixos-cups-ppd-search-path.patch ]; prePatch = '' diff --git a/pkgs/misc/drivers/hplip/hplip-3.20.11-nixos-cups-ppd-search-path.patch b/pkgs/misc/drivers/hplip/hplip-3.20.11-nixos-cups-ppd-search-path.patch new file mode 100644 index 000000000000..d26e13dd2d63 --- /dev/null +++ b/pkgs/misc/drivers/hplip/hplip-3.20.11-nixos-cups-ppd-search-path.patch @@ -0,0 +1,24 @@ +From: Bryan Gardiner +Date: Sat, 9 Jan 2021 16:51:20 -0800 +Subject: [PATCH] Add NixOS CUPS PPD search path. + +--- + base/g.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/base/g.py b/base/g.py +index f73e23f..758f339 100644 +--- a/base/g.py ++++ b/base/g.py +@@ -283,7 +283,7 @@ prop.max_message_len = 8192 + prop.max_message_read = 65536 + prop.read_timeout = 90 + +-prop.ppd_search_path = '/usr/share;/usr/local/share;/usr/lib;/usr/local/lib;/usr/libexec;/opt;/usr/lib64' ++prop.ppd_search_path = '/var/lib/cups/path/share;/usr/share;/usr/local/share;/usr/lib;/usr/local/lib;/usr/libexec;/opt;/usr/lib64' + prop.ppd_search_pattern = 'HP-*.ppd.*' + prop.ppd_download_url = 'http://www.linuxprinting.org/ppd-o-matic.cgi' + prop.ppd_file_suffix = '-hpijs.ppd' +-- +2.29.2 + -- cgit v1.2.3