The problem seems to be caused by some kind of war between software
projects. There are two packages taking care of the automatic firmware
upload into the cheap HP LaserJet printers: HPLIP and foo2zjs. Both
packages do not ship the firmware files itself, because they are
proprietary.

HPLIP has one plugin package with all proprietary software pieces used
by different HP printers, including the firmware files. This package is
downloaded if a printer which needs it is detected (using hp-plugin),
but the user is asked before the download happens. This package contains
also the UDEV rules and the firmware uploader scripts, as these software
pieces do not make sense without the firmware files themselves.

foo2zjs contains all scripts and UDEV rules in its base package which is
shipped with the distro. It comes with a script named getweb which
allows to download the proprietary files (firmware or color profiles)
for a given printer. With the firmware file once downloaded, it gets
automatically uploaded by the firmware uploader script.

Problems occur when one downloads the firmware file with both HPLIP's
and foo2zjs' methods. Then one has two copies of the firmware file which
are tried to upload concurrently. This leads to a crash of the printer.
This problem is discussed in bug 732450.

It seems that the author of foo2zjs is either angry about HPLIP's way to
download and install a big package of proprietary files when only the
firmware is actually needed or he simply wants to prevent the concurrent
upload when one sees his radical approach: In the firmware uploader
script (/usr/sbin/hplj1000) which is run triggered by UDEV rules, even
if no firmware file is downloaded for it, he simply deletes HPLIP's UDEV
rule for the firmware upload using these lines:

#
#       Remove HPLIP proprietary rules!
#
model=` echo "$MODEL" | tr 'A-Z' 'a-z' `
rm -f /etc/udev/rules.d/*hpmud*laserjet_${model}*
rm -f /etc/udev/rules.d/*hpmud_support.rules

This is a radical violation against the etiquette of living together of
software projects.

I have wasted several hours of searching on my system and discussing on
IRC, fearing that we have a severe problem in our UDEV subsystem and not
finding the problem's cause some weeks ago. Now, as I looked into the
/usr/sbin/hplj1000 file to prepare for a patch to upload the firmware
without using the usblp kernel module (we have decided to deprecate it
today) I have found these lines.

I was really upset about this behavior.

The author of foo2zjs has broken the out-of-the-box printing experience
of all users of Natty with these printers. The main intention of an
author of a printer driver is to allow users to use their printers as
easy as possible. And if he dislikes the way how other driver authors
solve this problem he should not make the users suffering under the
expression of his angriness.

I will patch out these lines now and issue that as an SRU (Stable
Release Update) for Natty.

I think that this problem is urgent, therefore I have set the bug's
priority to "High" and I will do the SRU before doing the fix for
Oneiric, as Oneiric also needs additional work as there the usblp kernel
module got deprecated and blacklisted today. So doing the SRU after the
Oneiric fix will only delay it.


** Changed in: foo2zjs (Ubuntu Natty)
       Status: Triaged => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/783389

Title:
  HP LaserJet 1020 (on USB) stopped working in 11.04, worked in 10.04

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to