diff --git a/hplip-dbus-exception.patch b/hplip-dbus-exception.patch new file mode 100644 index 0000000..b32fc3d --- /dev/null +++ b/hplip-dbus-exception.patch @@ -0,0 +1,18 @@ +diff -up hplip-3.10.9/ui4/sendfaxdialog.py~ hplip-3.10.9/ui4/sendfaxdialog.py +--- hplip-3.10.9/ui4/sendfaxdialog.py~ 2010-09-26 18:07:19.000000000 +0100 ++++ hplip-3.10.9/ui4/sendfaxdialog.py 2010-12-13 16:44:56.857648866 +0000 +@@ -915,8 +915,12 @@ class SendFaxDialog(QDialog, Ui_Dialog): + def CheckTimer_timeout(self): + if not self.busy: + #log.debug("Checking for incoming faxes...") +- device_uri, printer_name, event_code, username, job_id, title, timedate, fax_file = \ +- self.service.CheckForWaitingFax(self.device_uri, prop.username, self.last_job_id) ++ try: ++ device_uri, printer_name, event_code, username, job_id, title, timedate, fax_file = \ ++ self.service.CheckForWaitingFax(self.device_uri, prop.username, self.last_job_id) ++ except Exception, e: ++ log.debug("Exception caught: %s" % e) ++ fax_file = None + + if fax_file: + self.last_job_id = 0 diff --git a/hplip-dbus-threads.patch b/hplip-dbus-threads.patch new file mode 100644 index 0000000..ceae607 --- /dev/null +++ b/hplip-dbus-threads.patch @@ -0,0 +1,16 @@ +diff -up hplip-3.10.9/toolbox.py.dbus-threads hplip-3.10.9/toolbox.py +--- hplip-3.10.9/toolbox.py.dbus-threads 2010-12-15 10:54:17.178739842 +0000 ++++ hplip-3.10.9/toolbox.py 2010-12-15 10:57:09.923712662 +0000 +@@ -100,8 +100,11 @@ if ui_toolkit == 'qt3': + try: + from dbus import SessionBus + import dbus.service +- from dbus.mainloop.glib import DBusGMainLoop ++ from dbus.mainloop.glib import DBusGMainLoop, threads_init + from gobject import MainLoop ++ import glib ++ glib.threads_init(); ++ dbus.mainloop.glib.threads_init() + except ImportError: + log.error("Unable to load dbus - Automatic status updates in HPLIP Device Manager will be disabled.") + disable_dbus = True diff --git a/hplip-emit-SIGNAL.patch b/hplip-emit-SIGNAL.patch index e627fd5..aa72dce 100644 --- a/hplip-emit-SIGNAL.patch +++ b/hplip-emit-SIGNAL.patch @@ -1,20 +1,24 @@ diff -up hplip-3.10.9/ui4/setupdialog.py.emit-SIGNAL hplip-3.10.9/ui4/setupdialog.py ---- hplip-3.10.9/ui4/setupdialog.py.emit-SIGNAL 2010-11-10 18:42:13.000000000 +0100 -+++ hplip-3.10.9/ui4/setupdialog.py 2010-11-11 11:59:47.000000000 +0100 -@@ -868,7 +868,7 @@ class SetupDialog(QDialog, Ui_Dialog): +--- hplip-3.10.9/ui4/setupdialog.py.emit-SIGNAL 2010-12-14 15:51:43.579041162 +0000 ++++ hplip-3.10.9/ui4/setupdialog.py 2010-12-14 15:52:02.631111875 +0000 +@@ -867,8 +867,8 @@ class SetupDialog(QDialog, Ui_Dialog): + self.printer_fax_names_same = False self.printer_name_ok = True - self.FaxNameLineEdit.emit(SIGNAL("textChanged(const QString &)"), +- self.FaxNameLineEdit.emit(SIGNAL("textChanged(const QString &)"), - (self.FaxNameLineEdit.text(),)) ++ self.FaxNameLineEdit.emit(SIGNAL("textEdited(const QString &)"), + self.FaxNameLineEdit.text()) self.setIndicators() self.setAddPrinterButton() -@@ -900,7 +900,7 @@ class SetupDialog(QDialog, Ui_Dialog): +@@ -899,8 +899,8 @@ class SetupDialog(QDialog, Ui_Dialog): + self.printer_fax_names_same = False self.fax_name_ok = True - self.PrinterNameLineEdit.emit(SIGNAL("textChanged(const QString&)"), +- self.PrinterNameLineEdit.emit(SIGNAL("textChanged(const QString&)"), - (self.PrinterNameLineEdit.text(),)) ++ self.PrinterNameLineEdit.emit(SIGNAL("textEdited(const QString &)"), + self.PrinterNameLineEdit.text()) self.setIndicators() diff --git a/hplip-hpaio-segfault.patch b/hplip-hpaio-segfault.patch new file mode 100644 index 0000000..936c5d0 --- /dev/null +++ b/hplip-hpaio-segfault.patch @@ -0,0 +1,11 @@ +diff -up hplip-3.10.9/io/hpmud/hpmud.c.hpaio-segfault hplip-3.10.9/io/hpmud/hpmud.c +--- hplip-3.10.9/io/hpmud/hpmud.c.hpaio-segfault 2010-12-13 16:53:16.470306314 +0000 ++++ hplip-3.10.9/io/hpmud/hpmud.c 2010-12-13 16:53:17.423332321 +0000 +@@ -305,6 +305,7 @@ static int new_device(const char *uri, e + { + BUG("invalid uri %s\n", uri); + *result = HPMUD_R_INVALID_URI; ++ index = 0; + goto bugout; + } + msp->device[i].io_mode = mode; diff --git a/hplip-newline.patch b/hplip-newline.patch new file mode 100644 index 0000000..a94f67f --- /dev/null +++ b/hplip-newline.patch @@ -0,0 +1,12 @@ +diff -up hplip-3.10.9/prnt/hpcups/HPCupsFilter.cpp.newline hplip-3.10.9/prnt/hpcups/HPCupsFilter.cpp +--- hplip-3.10.9/prnt/hpcups/HPCupsFilter.cpp.newline 2010-12-14 15:10:25.730407116 +0000 ++++ hplip-3.10.9/prnt/hpcups/HPCupsFilter.cpp 2010-12-14 15:11:27.343440547 +0000 +@@ -608,7 +608,7 @@ int HPCupsFilter::processRasterData(cups + WriteBMPHeader (kfp, cups_header.cupsWidth, cups_header.cupsHeight, BLACK_RASTER); + } + +- fprintf(stderr, "PAGE: %d %s", current_page_number, m_argv[4]); ++ fprintf(stderr, "PAGE: %d %s\n", current_page_number, m_argv[4]); + // Iterating through the raster per page + for (int y = 0; y < (int) cups_header.cupsHeight; y++) { + cupsRasterReadPixels (cups_raster, m_pPrinterBuffer, cups_header.cupsBytesPerLine); diff --git a/hplip.spec b/hplip.spec index d289641..ae9ed2d 100644 --- a/hplip.spec +++ b/hplip.spec @@ -1,7 +1,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.10.9 -Release: 8%{?dist} +Release: 9%{?dist} License: GPLv2+ and MIT Group: System Environment/Daemons Conflicts: system-config-printer < 0.6.132 @@ -40,6 +40,10 @@ Patch26: hplip-UnicodeDecodeError.patch Patch27: hplip-emit-SIGNAL.patch Patch28: hplip-fab-root-crash.patch Patch29: hplip-addprinter.patch +Patch30: hplip-dbus-exception.patch +Patch31: hplip-hpaio-segfault.patch +Patch32: hplip-newline.patch +Patch33: hplip-dbus-threads.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -96,6 +100,7 @@ Group: Applications/System License: BSD Requires: PyQt4 Requires: python-reportlab +Requires: pygobject2 Requires(post): desktop-file-utils >= 0.2.92 Requires(postun): desktop-file-utils >= 0.2.92 Requires: %{name} = %{version}-%{release} @@ -268,6 +273,18 @@ done # that we can get an authentication callback (bug #538352). %patch29 -p1 -b .addprinter +# Catch D-Bus exceptions in fax dialog (bug #645316). +%patch30 -p1 -b .dbus-exception + +# Prevent hpaio segfaulting on invalid URIs (bug #649092). +%patch31 -p1 -b .hpaio-segfault + +# Another missing newline in filter output (Ubuntu #418053). +%patch32 -p1 -b .newline + +# Enable D-Bus threading (and require pygobject2) (bug #600932). +%patch33 -p1 -b .dbus-threads + sed -i.duplex-constraints \ -e 's,\(UIConstraints.* \*Duplex\),//\1,' \ prnt/drv/hpcups.drv.in @@ -494,6 +511,13 @@ fi %postun libs -p /sbin/ldconfig %changelog +* Wed Dec 15 2010 Tim Waugh - 3.10.9-9 +- Enable D-Bus threading (and require pygobject2) (bug #600932). +- Fixed incorrect signal name in setup dialog (bug #653626). +- Another missing newline in filter output (Ubuntu #418053). +- Prevent hpaio segfaulting on invalid URIs (bug #649092). +- Catch D-Bus exceptions in fax dialog (bug #645316). + * Fri Dec 03 2010 Jiri Popelka 3.10.9-8 - Corrected IEEE 1284 Device IDs: HP Color LaserJet CP2025dn (bug #651509).