On Wed, Nov 07, 2018 at 11:19:35AM +0100, Ludovic Courtès wrote: > 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 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.) Not bad for an interm solution. Debian already has 3.18.10 packaged, and based on their versioning scheme it still contains non-free artifacts. > > 2. Add a snippet to remove the non-free plugins. > > Thoughts? Here's what I have right now: ;; Delete non-free blobs$ (delete-file "prnt/hpcups/libImageProcessor-x86_64.so")$ (delete-file "prnt/hpcups/libImageProcessor-x86_32.so")$ (delete-file-recursively "prnt/plugins")$ (substitute* "Makefile.am"$ (("dist_printplugins_DATA") "# dist_printplugins_DATA")) and a patch from debian to address imageprocessor: https://salsa.debian.org/printing-team/hplip/raw/debian/3.18.10+dfsg0-1/debian/patches/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch > > 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") -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted