hplip not working after jaunty upgrade

Bug #349781 reported by Thomas Kluyver on 2009-03-27
24
This bug affects 3 people
Affects Status Importance Assigned to Milestone
hplip (Ubuntu)
High
Unassigned
Jaunty
High
Unassigned
python-defaults (Ubuntu)
Critical
Unassigned
Jaunty
Critical
Unassigned

Bug Description

Binary package hint: hplip

After upgrading to Jaunty, the HP (hp-systray, -toolbox, -check...) programs refuse to start, with an error message:
"warning: CUPSEXT could not be loaded. Please check HPLIP installation."

Debugging reveals that the scripts are failing to import the file /usr/lib/python2.6/dist-packages/cupsext.so (in the package hplip), with the error message: "undefined symbol: PyUnicodeUCS2_Decode". Individual programs can be rescued by running them in python 2.5 (rather than 2.6), but since they call each other via dbus, that gets rather fiddly.

Till Kamppeter (till-kamppeter) wrote :

There is aknown issue with Python in Jaunty and you should update your system immediately. Please see the posting from James Westby below.

--------------------------------------------

This morning python2.6 version 2.6.1-1ubuntu5 made it in to Jaunty after
being held for a few days for the freeze. Unfortunately this package
contained an ABI break that meant some python extensions no longer
worked, most notably pygtk. In other words if you installed this version
you would see some apps fail to start with a message "undefined symbol:
PyUnicodeUCS4_DecodeUTF8". Most importantly update-manager was affected,
making it harder to upgrade to a fixed version.

  https://bugs.launchpad.net/ubuntu/+source/python2.6/+bug/349467/

Access to the bad packages was blocked, which is why you might have
seen 403 errors if you attempted to upgrade this morning, and fixed
packages have been uploaded as version 2.6.1-1ubuntu5.1.

To find out if you have the bad version of the package installed you
can run

  dpkg -l python2.6 | cat

If the version is not 2.6.1-1ubuntu5 then you are unaffected, you should
just be sure that you don't install that version if it is still
accessible on your mirror.

If you do have the bad version installed then you can upgrade using
apt-get.

  sudo apt-get update
  sudo apt-get upgrade

The fixed packages have only just been made available on the primary
mirror, so you may need to wait a few hours before they can become
available.

Thanks,

James

Thomas Kluyver (takluyver) wrote :

System is already up to date with python 2.6.1-1ubuntu5.1, and I am still seeing this error. I did get the 403 errors while upgrading this morning--presumably they were fixed by the time I retried.

Note that the error message that I posted is PyUnicodeUCS2_Decode (2, not 4).

Am about to do new upgrades.

Till Kamppeter (till-kamppeter) wrote :

Seems to be a problem similar to the one of 2.6.1-1ubuntu5.

Principally, HPLIP (3.9.2) works with Python 2.6 (worked right after the switchover to 2.6).

Nothing with PyUnicodeUCS2_Decode calkls has been changed in HPLIP

Changed in python-defaults (Ubuntu):
importance: Undecided → Critical
milestone: none → ubuntu-9.04
Changed in hplip (Ubuntu):
importance: Undecided → Critical
milestone: none → ubuntu-9.04
andschuster (andreas-schuster2) wrote :

I am also affected by this bug. Printing to my HP Laserjet 1300 is impossible. In /var/log/syslog I see that "CUPSEXT could not be loaded", if I try to print.

Changed in hplip:
status: New → Confirmed

I am affected by this bug too.

Erick Brunzell (lbsolost) wrote :

I've done some testing. I think it's a dependency thing.

The dependencies for hplip-gui in Intrepid are:

libqt4-assistant
libqt4-help
libqt4-svg
libqt4-test
libqt4-webkit
libqt4-xmlpatterns
python-qt3
python-qt4
python-qt4-common
python-reportlab
python-sip4 ttf-dustin

In Jaunty the dependencies are:

libaudio2 (1.9.1-5)
libmysqlclient15off (5.1.30really5.0.75-0ubuntu9)
libphonon4 (4:4.3.1-0ubuntu1)
libqt4-assistant (4.5.0-0ubuntu2)
libqt4-dbus (4.5.0-0ubuntu2)
libqt4-designer (4.5.0-0ubuntu2)
libqt4-help (4.5.0-0ubuntu2)
libqt4-network (4.5.0-0ubuntu2)
libqt4-opengl (4.5.0-0ubuntu2)
libqt4-qt3support (4.5.0-0ubuntu2)
libqt4-script (4.5.0-0ubuntu2)
libqt4-sql (4.5.0-0ubuntu2)
libqt4-sql-mysql (4.5.0-0ubuntu2)
libqt4-svg (4.5.0-0ubuntu2)
libqt4-test (4.5.0-0ubuntu2)
libqt4-webkit (4.5.0-0ubuntu2)
libqt4-xml (4.5.0-0ubuntu2)
libqt4-xmlpatterns (4.5.0-0ubuntu2)
libqtcore4 (4.5.0-0ubuntu2)
libqtgui4 (4.5.0-0ubuntu2)
mysql-common (5.1.30really5.0.75-0ubuntu9)
phonon (4:4.3.1-0ubuntu1)
phonon-backend-gstreamer (4:4.3.1-0ubuntu1)
python-qt4 (4.4.4-2ubuntu5)
python-qt4-common (4.4.4-2ubuntu5)
python-qt4-dbus (4.4.4-2ubuntu5)
python-renderpm (2.3-0ubuntu1)
python-reportlab (2.3-0ubuntu1)
python-reportlab-accel (2.3-0ubuntu1)
python-sip4 (4.7.9-1ubuntu1)
python2.5 (2.5.4-1ubuntu3)
python2.5-minimal (2.5.4-1ubuntu3)

Somehow those dependencies are not getting updated during an upgrade from Intrepid to Jaunty Beta.

More here:

http://ubuntuforums.org/showthread.php?p=6974608#post6974608

I'll gladly do any testing you want! (as time allows)

Erick Brunzell (lbsolost) wrote :

After further testing i can verify that hplip-gui does not work since post-beta updates! The same goes for a clean beta install!

Although if you install hplip from the hplip site it'll work!

Nick B. (futurepilot) wrote :

I have Python 2.6.1-1ubuntu6 and I'm still seeing this error about CUPSEXT. hp-toolbox does not work at all.

python2.6:
  Installed: 2.6.1-1ubuntu6
  Candidate: 2.6.1-1ubuntu6
  Version table:
 *** 2.6.1-1ubuntu6 0
        500 http://us.archive.ubuntu.com jaunty/main Packages
        100 /var/lib/dpkg/status

Till Kamppeter (till-kamppeter) wrote :

I cannot reproduce the problem on my system with Python 2.6.1-1ubuntu7 and HPLIP 3.9.2-3ubuntu2 (Jaunty up-to-date as of today).

Anyone who still has the problem, do not install the auto-installer from HP. Please run "hp-check -r" and post the output here.

Changed in hplip (Ubuntu):
status: Confirmed → Incomplete
Changed in python-defaults (Ubuntu):
status: New → Incomplete
Graeme Glass (graemeglass) wrote :

As of a fully updated system, when I run "hp-check -r" I get the same error message.

warning: CUPSEXT could not be loaded. Please check HPLIP installation.

Thomas Kluyver (takluyver) wrote :

Reproduced with python 2.6.1-1ubuntu7 and HPLIP 3.9.2-3ubuntu2. As Graeme says, the entire output of "hp-check -r" is the same error message is "warning: CUPSEXT could not be loaded. Please check HPLIP installation."

A bit of searching turned up this page, which describes a similar problem when HPLIP was moving from python 2.4 to 2.5 (scroll down to the section entitled "Fixing the hplip package"):
http://www.nslu2-linux.org/wiki/HowTo/UnslungScanWithHPLIP

I can confirm that changing PyUnicodeUCS2 to PyUnicodeUCS4 as that page suggests does allow the hp-* programs to run.

Changed in hplip:
status: Incomplete → New

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Till Kamppeter wrote:
> I cannot reproduce the problem on my system with Python 2.6.1-1ubuntu7
> and HPLIP 3.9.2-3ubuntu2 (Jaunty up-to-date as of today).
>
> Anyone who still has the problem, do not install the auto-installer from
> HP. Please run "hp-check -r" and post the output here.
>
>
> ** Changed in: hplip (Ubuntu)
> Status: Confirmed => Incomplete
>
> ** Changed in: python-defaults (Ubuntu)
> Status: New => Incomplete
>
Still isn't working

hp-check -r
warning: CUPSEXT could not be loaded. Please check HPLIP installation.

python2.6:
  Installed: 2.6.1-1ubuntu7
  Candidate: 2.6.1-1ubuntu7
  Version table:
 *** 2.6.1-1ubuntu7 0
        500 http://us.archive.ubuntu.com jaunty/main Packages
        100 /var/lib/dpkg/status

hplip:
  Installed: 3.9.2-3ubuntu2
  Candidate: 3.9.2-3ubuntu2
  Version table:
 *** 3.9.2-3ubuntu2 0
        500 http://us.archive.ubuntu.com jaunty/main Packages
        100 /var/lib/dpkg/status

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAknP6TEACgkQAGHzB9Tvw4x3YwCfTSSZDrT4G2eO4LD+SgMgfc01
0uUAn1av49LCrR27Jf0/OaYlqDXLx1Cn
=CaDB
-----END PGP SIGNATURE-----

Thank you for the new hints.

So I tried on my system (amd64):

till@till-laptop:~/lf/200903$ grep PyUnicodeUCS2 /usr/lib/python2.6/dist-packages/cupsext.so
till@till-laptop:~/lf/200903$ grep PyUnicodeUCS4 /usr/lib/python2.6/dist-packages/cupsext.so
Binary file /usr/lib/debug/usr/lib/python2.6/dist-packages/cupsext.so matches
till@till-laptop:~/lf/200903$

This is with my self-built Ubuntu package of HPLIP 3.9.2-3ubuntu2 (I am the Ubuntu maintainer of HPLIP) with which I could not reproduce the bug.

No I did

sudo apt-get install --reinstall hplip

to get the package as built by the Ubuntu build servers. Here I got the same result.

"hp-check -r" always works for me.

Can everyone of you tell which architecture he is using (i386, amd64, ppc, ...) and do the commands

grep PyUnicodeUCS2 /usr/lib/python2.6/dist-packages/cupsext.so
grep PyUnicodeUCS4 /usr/lib/python2.6/dist-packages/cupsext.so

and post the output?

Nick B. (futurepilot) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Till Kamppeter wrote:
> Thank you for the new hints.
>
> So I tried on my system (amd64):
>
> till@till-laptop:~/lf/200903$ grep PyUnicodeUCS2
> /usr/lib/python2.6/dist-packages/cupsext.so
> till@till-laptop:~/lf/200903$ grep PyUnicodeUCS4
> /usr/lib/python2.6/dist-packages/cupsext.so Binary file
> /usr/lib/debug/usr/lib/python2.6/dist-packages/cupsext.so matches
> till@till-laptop:~/lf/200903$
>
> This is with my self-built Ubuntu package of HPLIP 3.9.2-3ubuntu2
> (I am the Ubuntu maintainer of HPLIP) with which I could not
> reproduce the bug.
>
> No I did
>
> sudo apt-get install --reinstall hplip
>
> to get the package as built by the Ubuntu build servers. Here I got
> the same result.
>
> "hp-check -r" always works for me.
>
> Can everyone of you tell which architecture he is using (i386,
> amd64, ppc, ...) and do the commands
>
> grep PyUnicodeUCS2 /usr/lib/python2.6/dist-packages/cupsext.so grep
> PyUnicodeUCS4 /usr/lib/python2.6/dist-packages/cupsext.so
>
> and post the output?
>
I can reproduce this on 2 different i386 machines. It looks like it
definitely has something to do with PyUnicodeUCS2 as I get the
opposite output as you did.

[nick@s0m3wh3r3:~]$ grep PyUnicodeUCS2
/usr/lib/python2.6/dist-packages/cupsext.so
Binary file /usr/lib/python2.6/dist-packages/cupsext.so matches
[nick@s0m3wh3r3:~]$ grep PyUnicodeUCS4
/usr/lib/python2.6/dist-packages/cupsext.so
[nick@s0m3wh3r3:~]$
:(

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAknP+hAACgkQAGHzB9Tvw4zYkACfYOn/hCRmLvMVETo21MiZ6eM5
vh8An0c8u6JODUSVxgvGR/qFFuqgE3uD
=aFPN
-----END PGP SIGNATURE-----

Nick B. (and everyone else with the same observation), can you then try

sudo perl -p -i -e 's/PyUnicodeUCS2/PyUnicodeUCS4/g' /usr/lib/python2.6/dist-packages/cupsext.so

and see whether this fixes the bug?

The book looks like that it occurs only on i386 and not on amd64. It can be that a package on which HPLIP depends (Python or a Python library) is broken in its i386 version or there is an inconsistency on the i386 build server. So the bug seems to be somewhere in the Python infrastructure. After the fix is done and available on the i386 build server, HPLIP needs to be rebuilt without changes in the source package (only bumping release number).

Nick B. (futurepilot) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Till Kamppeter wrote:
> Nick B. (and everyone else with the same observation), can you then try
>
> sudo perl -p -i -e 's/PyUnicodeUCS2/PyUnicodeUCS4/g' /usr/lib/python2.6
> /dist-packages/cupsext.so
>
> and see whether this fixes the bug?
>

Yep, it works after running that.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAknQAcwACgkQAGHzB9Tvw4yQ/gCgjvFgHWZPD8WhDgvNxmJBeDgi
9GgAmwa3SYqEK14hGscORKp3R22y+2ZO
=KvEB
-----END PGP SIGNATURE-----

Nick B., thank you for your testing.

To cure the symptoms I could do

perl -p -i -e 's/PyUnicodeUCS2/PyUnicodeUCS4/g' debian/hplip/usr/lib/python2.6/dist-packages/cupsext.so

during the build process of the HPLIP package, but the real fix has to be done in the Python infrastructure so that cupsext.so gets built correctly in the first place.

So I am setting the HPLIP task to "Triaged" as HPLIP only needs to be rebuilt when the Python infrastructure is ready.

Changed in hplip (Ubuntu):
status: New → Triaged
Graeme Glass (graemeglass) wrote :

grep PyUnicodeUCS2 /usr/lib/python2.6/dist-packages/cupsext.so
Binary file /usr/lib/python2.6/dist-packages/cupsext.so matches

grep PyUnicodeUCS4 /usr/lib/python2.6/dist-packages/cupsext.so
(nothing)

Running sudo perl -p -i -e 's/PyUnicodeUCS2/PyUnicodeUCS4/g' /usr/lib/python2.6/dist-packages/cupsext.so does indeed fix the problem.

Many Thanks Till

Steve Langasek (vorlon) wrote :

The problem is that hplip was built against the broken version of python2.6-minimal. A rebuild of hplip is sufficient to correct this.

Changed in python-defaults:
status: Incomplete → Invalid
Changed in hplip:
importance: Critical → High
Changed in hplip (Ubuntu Jaunty):
status: Triaged → In Progress
Changed in hplip (Ubuntu Jaunty):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hplip - 3.9.2-3ubuntu3

---------------
hplip (3.9.2-3ubuntu3) jaunty; urgency=low

  * Rebuild of unchanged source package. The Python installed on the Ubuntu
    build server for i386 was broken and produced a broken cupsext.so file
    (LP: #349781, LP: #349467).

 -- Till Kamppeter <email address hidden> Mon, 30 Mar 2009 11:24:49 +0200

Changed in hplip:
status: Fix Committed → Fix Released

Note: See also bug 349467 for more info about this problem.

Erick Brunzell (lbsolost) wrote :

I can confirm that this bug is fixed as of this AM.

Many thanks.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers