LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 11-17-2014, 08:29 AM   #1
Bambi535
LQ Newbie
 
Registered: Nov 2007
Posts: 9

Rep: Reputation: 0
Question Manually compiling hpijs. Howto?


Hi,
I've originally asked this on HPLIP Forum but got no reply...

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.
 
Old 11-17-2014, 10:02 AM   #2
tronayne
Senior Member
 
Registered: Oct 2003
Location: Northeastern Michigan, where Carhartt is a Designer Label
Distribution: Slackware 32- & 64-bit Stable
Posts: 3,541

Rep: Reputation: 1065Reputation: 1065Reputation: 1065Reputation: 1065Reputation: 1065Reputation: 1065Reputation: 1065Reputation: 1065
I don't know if this will actually help but I did some looking around (about hpijs). There is a web page How are HPLIP and HPIJS related?, http://hplipopensource.com/node/276) that states:
Quote:
HPIJS is a subcomponent of HPLIP. HPIJS provides basic printing support for non-postscript printers. HPIJS can operate in any spooler environment (including no spooler). HPIJS provides no I/O. HPLIP provides I/O for bi-directional communication, scanning, photo card access, and toolbox functionality. HPLIP requires the CUPS spooler.
and (from a link on that page) When would I want to use HPIJS instead of HPLIP? (http://hplipopensource.com/node/277) that states:
Quote:
There are several possible reasons:

On a server where no GUI is present and only shared printing is desired.
When printing to a SAMBA shared printer (using the CUPS smb: backend, for example).
There is a desire to have the smallest printing system possible.

Most people do NOT need to do this.
The "Most people do NOT need to do this" is a link that you may want to pursue.

I'm running the latest HPLIP, 3.14.10, built from the tarball. Now, this on a Slackware system but the arguments to configure are pretty standard and you may find them useful:
Code:
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --with-cupsbackenddir=/usr/lib${LIBDIRSUFFIX}/cups/backend \
  --with-cupsfilterdir=/usr/lib${LIBDIRSUFFIX}/cups/filter \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --docdir=/usr/doc/hplip-$VERSION \
  --with-docdir=/usr/doc/hplip-$VERSION \
  --with-hpppddir=/usr/share/cups/model/HP \
  --with-drvdir=/usr/share/cups/drv/hp \
  --enable-hpijs-install \
  --enable-shadow-build \
  --enable-scan-build \
  --enable-gui-build \
  --enable-fax-build \
  --enable-foomatic-rip-hplip-install \
  --disable-foomatic-ppd-install \
  --enable-foomatic-drv-install \
  --enable-network-build=yes \
  --enable-qt4 \
  --enable-policykit \
  --enable-cups-ppd-install \
  --build=$ARCH-slackware-linux \
  --host=$ARCH-slackware-linux \
You might want to ignore those last two line, though and address the line that contain LIBDIRSUFFIX (the entire build script determines the location of system libraries which will be, for example /usr/lib on a 32-bit system or /usr/lib64 on a 64-bit system).

These configure arguments result in a full-boat HPLIP with hpijs installed (so you don't need to build two separate versions, methinks).

I have only H-P printers and plotter so I can't advise about non-H-P units but CUPS should be able to handle H-P and any other Linux-compatible device without a lot of fooling around. Just remember to install H-P devices with hp-setup. I have noticed that when I connect an H-P printer to a system with HPLIP installed and working on it that the printer gets automatically configured (this seems to work with USB, don't know about Ethernet).

I'd take a look at the links above and follow them down the line to answer the hpijs questions (their documentation is pretty good in my opinion) and maybe download the latest version from the HPLIP web set and see if the configure arguments above help out -- be nice if you have a testbed box to play with.

Hope this helps some.
 
1 members found this post helpful.
Old 11-20-2014, 02:02 AM   #3
Bambi535
LQ Newbie
 
Registered: Nov 2007
Posts: 9

Original Poster
Rep: Reputation: 0
Thumbs up [semi-solved]

Thank you tronayne for your detailed answer and your time.
I ran through the links you mentioned, but did not find a direct answer to my (first) question.
So, I gambled that compiling with the first form is just fine. Testing shows that, at least for my installed drivers, it works fine.

Thanks,
Opher.
 
  


Reply

Tags
compilation, hplip, printer driver


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Getting printer drivers (hpijs) on Mini2440 ARM9 (cross compiling) PJvG Linux - Software 9 04-23-2010 04:20 AM
Compiling FFMPEG Manually mindrunner Linux - Software 2 06-08-2007 12:04 AM
Howto set display to standby manually? JoSch1337 Linux - Software 2 05-16-2007 01:54 AM
howto manually remove hardware mcalizo Linux - Hardware 5 04-29-2005 08:32 AM
Howto manually download and install Mandrake bugfixes? Fnurr Mandriva 2 01-18-2005 03:27 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 11:54 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration