Hello, The tarball of hplip 3.18.9 contains several .so files that it installs as-is:
--8<---------------cut here---------------start------------->8--- ludo@ribbon ~/src/guix$ (cd /tmp; tar xf $(guix build -S hplip)) ludo@ribbon ~/src/guix$ find /tmp/hplip-3.18.9 -name \*.so /tmp/hplip-3.18.9/prnt/plugins/hbpl1-arm32.so /tmp/hplip-3.18.9/prnt/plugins/hbpl1-x86_64.so /tmp/hplip-3.18.9/prnt/plugins/lj-x86_32.so /tmp/hplip-3.18.9/prnt/plugins/hbpl1-arm64.so /tmp/hplip-3.18.9/prnt/plugins/hbpl1-x86_32.so /tmp/hplip-3.18.9/prnt/plugins/lj-arm64.so /tmp/hplip-3.18.9/prnt/plugins/lj-x86_64.so /tmp/hplip-3.18.9/prnt/plugins/lj-arm32.so /tmp/hplip-3.18.9/prnt/hpcups/libImageProcessor-x86_32.so /tmp/hplip-3.18.9/prnt/hpcups/libImageProcessor-x86_64.so --8<---------------cut here---------------end--------------->8--- I tried removing them with a snippet (patch attached), but installation eventually fails while trying to link against libImageProcessor, which is now missing. In <https://bugs.launchpad.net/hplip/+bug/1785230/> people suggest that 3.18.6 is the last known-good version. Indeed that version does not have the obnoxious libImageProcessor, so that should be fine. It does come with the non-free binary plug-ins, though these are just plugins so removing them will be easier: --8<---------------cut here---------------start------------->8--- ludo@ribbon ~/src/guix$ find /tmp/hplip-3.18.6/ -name \*.so /tmp/hplip-3.18.6/prnt/plugins/hbpl1-arm32.so /tmp/hplip-3.18.6/prnt/plugins/hbpl1-x86_64.so /tmp/hplip-3.18.6/prnt/plugins/lj-x86_32.so /tmp/hplip-3.18.6/prnt/plugins/hbpl1-arm64.so /tmp/hplip-3.18.6/prnt/plugins/hbpl1-x86_32.so /tmp/hplip-3.18.6/prnt/plugins/lj-arm64.so /tmp/hplip-3.18.6/prnt/plugins/lj-x86_64.so /tmp/hplip-3.18.6/prnt/plugins/lj-arm32.so --8<---------------cut here---------------end--------------->8--- Thus, I propose to: 1. Revert to 3.18.6 (we’ll upgrade if and when hplip becomes free again.) 2. Add a snippet to remove the non-free plugins. Thoughts? Thanks, Ludo’.
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 4259648c69..c0ac365691 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -410,6 +410,19 @@ device-specific programs to convert and print many types of files.") '(begin (substitute* "prnt/hpcups/genPCLm.cpp" (("boolean") "bool")) + + ;; Starting from version 3.18.9, hplip comes with binary + ;; blobs under prnt/hpcups and prnt/plugins. Remove them. + (for-each delete-file (find-files "." "\\.so$")) + + ;; This trick changes the behavior of the + ;; 'install-data-hook' target so that it doesn't install the + ;; binary blobs. + (substitute* "Makefile.in" + (("^UNAME =.*") + "UNAME = free-software-only-thanks\n") + (("prnt/hpcups/libImageProcessor-([[:graph:]]+)\\.so") + "")) #t)))) (build-system gnu-build-system) (home-page "https://developers.hp.com/hp-linux-imaging-and-printing")