Manually compiling hpijs. Howto?

Asked by Opher Shachar

We're running a central print server (RHEL 5.x x86_64, HPLIP 2.8.10) with some hundreds of print queues and different drivers. And all is well.
We need to support an HP LaserJet Pro MFP m127fn (a client just bought it anew) and turns out it's supported by HPLIP 3.13.11.
So we went ahead to download and install the RHEL 5.x RPM (from hplip.net) on a test box.
We then realized hundreds of print queues (some HP and some non-HP) are not functioning since the RHRL 5.x RPM is not compiled with hpijs.

Well, it's going to be a lot of work to switch all HP queues to use the hpcups driver, and we've done that, but still we have many non-HP printer drivers using hpijs.
So I downloaded the tarball and compiled manually with two variants: with --enable-hpijs-only-build and without it.
The result:
=== with --enable-hpijs-install --enable-hpijs-only-build ===
[opher@fc6 ~/print_drivers]$ tar xzf hplip-3.14.10.tar.gz && cd hplip-3.14.10 && ./configure --enable-libusb01-build --enable-hpijs-install --enable-hpijs-only-build && make
...
[opher@fc6 ~/print_drivers/hplip-3.14.10]$ ls -l hpijs; file hpijs; ldd hpijs
-rwxrwxr-x 1 opher opher 2111937 Nov 6 23:21 hpijs
hpijs: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
        libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x0000003e20800000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003e18c00000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003e1bc00000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003e19000000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003e1b000000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003e18800000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003e18400000)
===============================
=== with --enable-hpijs-install ===
[opher@fc6 ~/print_drivers]$ tar xzf hplip-3.14.10.tar.gz && cd hplip-3.14.10 && ./configure --enable-libusb01-build --enable-hpijs-install && make
...
[opher@fc6 ~/print_drivers/hplip-3.14.10]$ ls -l .libs/hpijs; file .libs/hpijs; ldd .libs/hpijs
-rwxrwxr-x 1 opher opher 2156168 Nov 6 23:33 .libs/hpijs
.libs/hpijs: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
        libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x0000003e20800000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003e18c00000)
        libhpip.so.0 => /usr/lib64/libhpip.so.0 (0x00002adfffcfa000)
        libhpmud.so.0 => /usr/lib64/libhpmud.so.0 (0x0000003000000000)
        libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000003000c00000)
        libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003e1b800000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003e1bc00000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003e19000000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003e1b000000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003e18800000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003e18400000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003e19400000)
        libnetsnmp.so.10 => /usr/lib64/libnetsnmp.so.10 (0x0000003505e00000)
        libusb-0.1.so.4 => /usr/lib64/libusb-0.1.so.4 (0x0000003e1a000000)
        libcap.so.1 => /lib64/libcap.so.1 (0x0000003e1f000000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x0000003e19800000)
===============================

You may note that in the first form 'hpijs' is not linked against any hplip shared-objects. Which is perfect for me as I won't have to recompile every time we update HPLIP in the future.

And now my question are:
 Will both forms of hpijs function identically as a CUPS filter?
 What benefit is there to the form of hpijs that links against hplip shared-objects?

Thanks for your patience (you who read thus far),
Opher.

Question information

Language:
English Edit question
Status:
Expired
For:
HPLIP Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.