FFE Request: HPLIP 3.9.2 released one day after FF

Bug #335116 reported by Till Kamppeter
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
hplip (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: hplip

HP released the new HPLIP 3.9.2 one day after the Feature Freeze for Ubuntu Jaunty. Main changes are that now the UI is exclusively based on Qt 4 (our 2.8.12 package uses partially Qt3 and Qt4) and new printer models are supported. See full release notes below.

Main benefit for us is that the GUI part of the package (hplip-gui) does not depend on BOTH Qt3 and Qt4 any more.

I have packaged it and put it into my PPA. There is the source package, the debdiff, and also auto-generated binaries for testing.

Please consider this version for Jaunty.

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

HPLIP 3.9.2 - This release has the following changes:
Significant Changes

    * Qt4 now default UI on most distros
    * Major bug fixing on Qt4 solution
    * Add printing support for HP Color LasetJets 1600, 2600, and CP1215
    * Support policy change -- End of support date is added to all HPLIP supported devices (see http://hplipopensource.com/node/314 for further details)
    * Linpus binary package available for Acer Aspire One now available (see http://hplipopensource.com/node/324 for further details)

Added Support for the Following New Printers:

    * HP Photosmart Premium Fax All-in-one Printer - c309a (DJGenericVIP)
    * HP Color LaserJet cp1215 Printer (LJZjsColor) (REQURIES plug-in)
    * HP Color LaserJet 1600 Printer (LJZjsColor) (REQURIES plug-in)
    * HP Color LaserJet 2600n Printer (LJZjsColor) (REQURIES plug-in)
    * HP Officejet Pro 8000 Printer - a809a (DJGenericVIP)
    * HP Officejet Pro 8000 Wireless Printer - a809n (DJGenericVIP)
    * HP Officejet Pro 8500 Wireless All-in-one Printer - a909g (DJGenericVIP)
    * HP Officejet Pro 8500 All-in-one Printer - a909a (DJGenericVIP)
    * HP Officejet Pro 8500 Premier All-in-one Printer - a909n (DJGenericVIP)

Detailed Change Log

   1. Fixed issue in hp-align for Qt4 so that align-type=4, 5, and 7 work correctly.
   2. Added hp-query (LP bug #329220) at request of Till Kamppeter
   3. Added unrestricted mode (-x) to hp-info at request of Till Kamppeter (LP bug #329220)
   4. Fixed issues with "Unload Photo" and hp-unload when the device does not support pcard-type 1 (HP MLC filesystem). For USB filesystem devices, the toolbox now will properly produce a dialog box informing the user that they should use a standard USB mass storage device mount to unload their photos. hp-unload will now ignore USB devices instead of generating errors.
   5. Fixed defect (Control-C in toolbox causes tracebacks). Added call to os.setsid() in hp-systray to eliminate all but one traceback.
   6. Created a new file /var/lib/hp/hplip.state for runtime variable data. Removed any variable data from /etc/hp/hplip.conf.
   7. Added binary package support for qt4 in hplip.list.
   8. Added a /usr/share/doc/hplip-x.x.x/copyright file for binary package builds.
   9. Fixed an issue with date/time stamps in hp-systemtray (date/time stamps now update whenever the context menu is shown). Also, the most recent item in the event list is bolded, and a (no events) tag has a warning icon.
  10. Fix for defect (hp-makecopies -r<value> isn't reflected in reduction/enlargement spinbox). Changed setValue call to be made on correct widget.
  11. Fix for defect (hp-makecopies spinbox for size too small for >99%). Needed to call setMinValue()/setMaxValue() prior to adding the widget.
  12. Fixed an issue in (Qt4) hp-sendfax where the hp-fab window came up behind the hp-sendfax window and could not be raised to top
  13. Fix for defect (Status can't be refreshed during makecopies). Added status reporting to the makecopies GUI.
  14. Improved --help-rest output for better formatting of tech doc man pages for the web
  15. Fixed defect (Disconnect the device from the computer, the status on the toolbox still displays "Idle".)
  16. Added UI for cases where device status and/or supplies info is not available.
  17. Fixed defect (hp-setup -i allows new printer to use an already existing queue name). Added code to check both fax and printer queue names after the user is prompted for a queue name.
  18. Added code in the installer to close hp-systray at end of install (closes hp-systray from 3.9.2+ only)
  19. Added a simple hotplug notifier for devices that require a plugin or have a optional plugin. The message is only displayed to the console user for 30 seconds. If the message is displayed it simply informs the user to run hp-setup.
  20. Fixed defect (The "Set Defaults" button on the "hp device manager" dialog is invalid.)
  21. Added a pyqt4-dbus dependency to the installer.
  22. Fixed defect (Print settings missing groups/options)
  23. Added the current device URI to the status bar area of the Qt4 toolbox
  24. Fixes for defect ("Default" button on Printer Settings fails) and defect ("Default" button not working for Banner Pages). Fix UI_PICKONE code and UI_BANNER_JOB_SHEETS to set drop downs and values correctly.
  25. Fix for defect (unable to stop printer). Capture return values from cups module stop/start/reject/accept functions and act appropriately. Fixed for Qt3 and Qt4 UIs.
  26. Fix for defect (unable to cancel print job with Qt3 UI). Added call to int() to convert unicode job number.
  27. Fix for defect (Alignment GUI causes traceback on DJ D2560). Fixed coding so that align drop-downs work.
  28. Fix for defect (No setup GUI for Debian 4.0 with Qt3 default). Changed core_install.py to change internal default based on command line input.
  29. Added binary package support for DRV only install. By eliminating the PPDs this save about 2 megs in file size. See hplip.list for more info.
  30. Changed configure option foomatic-rip-hplip-install default from yes to no.
  31. Added extra fax job status output
  32. Fix Qt4 fax send error message
  33. Fixed fax_type for DJ j6400
  34. Fixed defect (temp. removed -q/--lang flags for all hp-#. utilities until the time localization is fixed for Qt3 or completed for Qt4)
  35. Fixed Launchpad defect #204214 (Auto detection of hpfax CUPS backend should be as verbose at of the hp CUPS backend)
  36. Fixed Launchpad defect #242443 (Plug-in download in hp-toolbox: Check whether it is already installed before asking for password)
  37. Fixed an issue with ascii encoding issues in Device.Event.__init__()
  38. Launchpad defect #319231 appears to be fixed. It is unreproducable at this time.
  39. Fixed deprecation warning in installer/core_install.py with sha import (uses hashlib if sha is found to be deprecated)
  40. Changed base/utils.py to use string.strip funcs. if Python version is at least 2.2.3
  41. Added jetdirect scan support for LJ M1120n MFP.
  42. Removed unused "LJColor:300dpiOnly" tag from hpijs.drv.in.template.
  43. Added PPD cupsFilter line for PDF foomatic-rip support as requested by Till.
  44. Added FastDraft SpeedMech support for DJGenericVIP type printers.
  45. Applied patch hplip-2.8.12-force-utf8.patch submitted by Tiago Salem Herrmann (ref: https://bugs.launchpad.net/bugs/162196) and enhanced by Michele D.
  46. Added package support for setting device permission via PAM for Linpus. Use "make rpm_regular LINPUS8=1".
  47. Fixed hal permissions for all xx02 pids. Pids were not specified in hex.
  48. Fix for defect (DJ D2560 fails to print alignment page)
  49. deskjet_d2500_series: Changed align-type from '5' to '10'
  50. photosmart_c4340_series: Changed align-type from '1' to '13'
  51. Fix for defect (OJ4300 alignment causes printer power cycle)
  52. officejet_4300_series: Changed align-type from '5' to '13'
  53. Added make flag UBUNTU804_UNLEADED_DEPENDENCY for building lite packages for Ubuntu 8.04.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

The upload to my PPA shows that the package correctly builds.

Everyone who sees this, please test the package, preferably by adding my PPA to your package download repositories for apt (see instructions on the PPA page).

Report here whether it installs and whether it works correctly.

There are no other packages depending on HPLIP. So it should not break other packages.

Revision history for this message
Linus Araque (linus-araque) wrote :

I tested the package today in Jaunty. I found that the following packages need to be installed for HPLIP to work properly:

python-qt4
python-qt4-dbus

We talked about the freeze exception at our meeting this morning. The only remaining concern is that the most recent patches (particularly Don's fix for the qt4 systray) get picked by the 3.9.2 package which will be included in Jaunty.

Revision history for this message
Steve Langasek (vorlon) wrote :

Hi Till,

Are the dependency issues that Linus mentions addressed?

I'm ok with granting an FFe for the upstream changes, but would like to know what testing the package has had since there are dependency questions.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Linux. if you have a Jaunty Desktop-CD-only environment, which means that no Qt packages and no hplip-gui package is installed. Do all non-GUI functions work, like checking ink levels with hp-levels, sending faxes via command line with hp-sendfax via command line, ...

I have found out that on a system with python-qt4-dbus not installed (but python-qt4 installed) all utilities except hp-toolbox can be started in GUI mode.

The hplip-gui package requires both python-qt4 and python-qt4-dbus in its dependencies.

The systray patch is not needed any more as Qt4 is the default now, so forcing use of Qt4 with "--qt4" should not be needed any more.

Testing:

Please test whether all non-GUI functionality is working on a pure Desktop CD (live CD of Jaunty alpha 5 with only the HPLIP packages updated): hp-levels, hp-sendfax, ... If something does not work, did it work with the HPLIP 2.8.12 packages? If there are no regressions against the 2.8.12 package we are OK.

Install hplip-gui (which pulls the mentioned two python-qt4 packages). Do all GUI tools now work with their GUIs?

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

PPA is updated to a version (...~ppa2) built with Python 2.6 now.

Revision history for this message
Steve Langasek (vorlon) wrote :

Till tells me on IRC that he's tested that the GUI apps do still work correctly, so this FFe is approved. Please mind the milestone freeze (tomorrow through Thursday) when uploading.

Changed in hplip:
status: New → Confirmed
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

I have tested the GUIs of HPLIP and the Qt4 versions seem to work as well.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Tested also faxing on the HP LaserJet 3390 as it is the most bug-prone. Works.

Uploaded 3.9.2 to Ubuntu.

Changed in hplip:
status: Confirmed → Fix Released
Revision history for this message
dwelch91 (dwelch91) wrote : Re: [Bug 335116] Re: FFE Request: HPLIP 3.9.2 released one day after FF

There are 2 important defect patches for 3.9.2 that should be applied for
9.04. The patch to hpdio fixes an issue that causes 100% CPU utilization
when the user logs out or switches to another user. The issue with
settingsdialog is a traceback in the UI code due to a syntax error in the
code. Both of these fixes have been tested by HP.

Index: hpdio.py
===================================================================
--- hpdio.py (revision 10469)
+++ hpdio.py (working copy)
@@ -85,12 +85,20 @@
                 r, w, e = select.select([r2], [], [r2], 1.0)
             except KeyboardInterrupt:
                 break
+ except select.error, e:
+ if e[0] == errno.EINTR:
+ continue
+ else:
+ break

             if not r: continue
             if e: break

             m = ''.join([m, os.read(r2, fmt_size)])

+ if not m:
+ break
+
             while len(m) >= fmt_size:
                 response.clear()
                 event = device.Event(*struct.unpack(fmt, m[:fmt_size]))
Index: ui4/settingsdialog.py
===================================================================
--- ui4/settingsdialog.py (revision 10469)
+++ ui4/settingsdialog.py (working copy)
@@ -55,7 +55,7 @@
         if self.user_settings.auto_refresh_type == 1:
             self.RefreshCurrentRadioButton.setChecked(True)
         else:
- RefreshAllRadioButton.setChecked(True)
+ self.RefreshAllRadioButton.setChecked(True)

         self.ScanCommandLineEdit.setText(self.user_settings.cmd_scan)
         self.SystemTraySettings.systray_visible =
self.user_settings.systray_visible

On 3/9/09, Till Kamppeter <email address hidden> wrote:
>
> Tested also faxing on the HP LaserJet 3390 as it is the most bug-prone.
> Works.
>
> Uploaded 3.9.2 to Ubuntu.
>
>
> ** Changed in: hplip (Ubuntu)
> Status: Confirmed => Fix Released
>
>
> --
> FFE Request: HPLIP 3.9.2 released one day after FF
> https://bugs.launchpad.net/bugs/335116
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Thank yo for the patch. I have applied it now.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Don, I have another problem which should get fixed in Ubuntu Jaunty: Whenever I do an operation involving status (starting hp-toolbox, starting hp-systray, using hp-levels, ...) I get a traceback like

Traceback (most recent call last):
  File "/usr/bin/hp-systray", line 141, in <module>
    hpdio.run(r2, w3)
  File "/usr/share/hplip/hpdio.py", line 140, in run
    dev.queryDevice()
  File "/usr/share/hplip/base/device.py", line 1673, in queryDevice
    status_block = status.parseStatus(self.deviceID)
  File "/usr/share/hplip/base/status.py", line 321, in parseStatus
    return parseSStatus(DeviceID['S'], DeviceID.get('Z', ''))
  File "/usr/share/hplip/base/status.py", line 172, in parseSStatus
    info = long(s[c : c + pen_data_size], 16)
ValueError: invalid literal for long() with base 16: ''

This is perhaps the cause of the hp-toolbox not showing ink levels any more for most devices and also not showing status for many devices.

Ubuntu has switched from Python 2.5 to 2.6 in the last days. Perhaps there is an incompatible change which leads to this

ValueError: invalid literal for long() with base 16: ''

Can you provide a patch to fix this? Thanks.

Revision history for this message
dwelch91 (dwelch91) wrote :

What device was used to get this error? We have not seen this in our
testing, AFAIK.

On Mon, Mar 9, 2009 at 10:28 AM, Till Kamppeter <email address hidden>wrote:

> Don, I have another problem which should get fixed in Ubuntu Jaunty:
> Whenever I do an operation involving status (starting hp-toolbox,
> starting hp-systray, using hp-levels, ...) I get a traceback like
>
> Traceback (most recent call last):
> File "/usr/bin/hp-systray", line 141, in <module>
> hpdio.run(r2, w3)
> File "/usr/share/hplip/hpdio.py", line 140, in run
> dev.queryDevice()
> File "/usr/share/hplip/base/device.py", line 1673, in queryDevice
> status_block = status.parseStatus(self.deviceID)
> File "/usr/share/hplip/base/status.py", line 321, in parseStatus
> return parseSStatus(DeviceID['S'], DeviceID.get('Z', ''))
> File "/usr/share/hplip/base/status.py", line 172, in parseSStatus
> info = long(s[c : c + pen_data_size], 16)
> ValueError: invalid literal for long() with base 16: ''
>
> This is perhaps the cause of the hp-toolbox not showing ink levels any
> more for most devices and also not showing status for many devices.
>
> Ubuntu has switched from Python 2.5 to 2.6 in the last days. Perhaps
> there is an incompatible change which leads to this
>
> ValueError: invalid literal for long() with base 16: ''
>
> Can you provide a patch to fix this? Thanks.
>
> --
> FFE Request: HPLIP 3.9.2 released one day after FF
> https://bugs.launchpad.net/bugs/335116
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Checked with hp-levels:

hp:/net/Photosmart_C8100_series?ip=192.168.2.101: OK
hp:/net/Photosmart_Pro_B9100_series?ip=192.168.2.108: Gives Traceback "ValueError: invalid literal for long() with base 16: ''", with 2.8,12 it showed the ink levels correctly
hp:/usb/Photosmart_A710_series?serial=CN6B92118304R4: Printer not connected, gives "Unable to communicate with device" OK
hp:/usb/Officejet_H470?serial=CN7BU18154: Printer not connected, gives "Unable to communicate with device" OK
hp:/usb/HP_LaserJet_3390?serial=00CNMJP81545: OK
hp:/net/HP_Color_LaserJet_3600?ip=192.168.2.103: OK
hp:/usb/Photosmart_C5200_series?serial=MY7C3FD0XZ0559: Printer not connected, gives "Unable to communicate with device" OK

hp-systray gives the "ValueError: invalid literal for long() with base 16: ''" on startup, but I do not know which device triggers it. The right click menu of the hp-systray shows correct status for all devices before the HP PhotoSmart B9100 and beginning from this printer to the end of the list no status is shown. Seems that the B9100 crashes the status reporting process with said segfault.

Note that the B9100 is not officially supported, but it reported status and ink levels correctly with HPLIP 2.8.12. In general an unsupported device should not crash the whole framework but at least give a decent error message.

Within the hp-toolbox the Supplies tab says "Supplies information not available for this device." and the Status tab says "Status information not available for this device.", independent which printer I choose (but no traceback appears). Perhaps this is caused due to the crashed status reporting process in hp-systray.

When I start the hp-toolbox I am on the "Action" tab of the HP Color LaserJet 3600 and the tab stays empty. It gets only filled if I go to another printer and then back to the HP Color LaserJet 3600. Seems that it gets only filled by changing between printers but not by starting hp-toolbox.

The same happens even with the B9100 not plugged in. So the traceback happens already before communicating with the B9100.

If I remove the print queue for the B9100 all problems disappear.

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.