Package: gnustep-gui-runtime
Version: 0.25.0-5
Severity: important
Tags: patch fixed-upstream
Control: affects -1 textedit.app
Choosing "Print" from the menu in any app leads to a crash. TextEdit is
completely unusable -- it crashes on Document->New and Open. The
attached test program demonstrates the bug:
#0 0x75c4df46 in strlen () at ../sysdeps/x86_64/strlen.S:106
#1 0x76bc766f in +[NSString stringWithCString:] (self=0x77071880
<_OBJC_Class_NSString>, _cmd=, byteString=0x5597eb5c ) at NSString.m:933
#2 0x7fffd69ee9a2 in +[GSCUPSPrinter printerWithName:] (self=, _cmd=, name=) at GSCUPSPrinter.m:125
#3 0x77893d62 in +[NSPrinter printerWithName:] (self=,
_cmd=, name=0x55aa9f50) at NSPrinter.m:191
#4 0x7fffd69edd9b in +[GSCUPSPrintInfo defaultPrinter] (self=, _cmd=) at GSCUPSPrintInfo.m:84
#5 0x77898c61 in -[NSPrintInfo initWithDictionary:]
(self=0x55d8ee30, _cmd=, aDict=0x0) at NSPrintInfo.m:161
#6 0x77897a6b in +[NSPrintInfo sharedPrintInfo] (self=,
_cmd=) at NSPrintInfo.m:96
#7 0x5637 in main () at bar.m:9
The culprit is cupsGetPPD which is deprecated in recent cups releases
and triggers an implicit function declaration. With the attached patch
(fixed upstream in commit:c8f9e50) the program correctly prints:
2017-12-05 13:50:39.374 bar[31875:31875] Printer: HL-2030-series
TextEdit + all other apps work with the print panel correctly showing
the default printer. The bug does not affect hosts which are not cups
clients (in that case a dummy printer is created), hence the non-RC
severity.
Unfortunately stable is also affected because gnustep-gui/0.25.0-4 was
rebuilt for the imagemagick transition in January 2017 and was built
against recent cups which has the function deprecated.
Eric, do we want to fix this now or we could delay it for 0.26? Do we
want to fix it in stretch?
-- System Information:
Debian Release: buster/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500,
'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.14.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=bg_BG.utf8, LC_CTYPE=bg_BG.utf8 (charmap=UTF-8),
LANGUAGE=bg_BG.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages gnustep-gui-runtime depends on:
ii gnustep-base-runtime 1.25.0-2
ii gnustep-gui-common 0.25.0-5
ii libao4 1.2.2-1
ii libaspell150.60.7~20110707-4
ii libc6 2.25-3
ii libcups2 2.2.6-2
ii libflite1 2.0.0-release-4
ii libgcc11:7.2.0-16
ii libgif75.1.4-1
ii libgnustep-base1.251.25.0-2
ii libgnustep-gui0.25 0.25.0-5
ii libicu57 57.1-8
ii libjpeg62-turbo1:1.5.2-2
ii libmagickcore-6.q16-3 8:6.9.7.4+dfsg-16
ii libobjc4 7.2.0-16
ii libpng16-161.6.34-1
ii libsndfile11.0.28-4
ii libtiff5 4.0.8-6
ii zlib1g 1:1.2.8.dfsg-5
gnustep-gui-runtime recommends no packages.
gnustep-gui-runtime suggests no packages.
-- no debconf information
#import
int
main (void)
{
CREATE_AUTORELEASE_POOL (pool);
[NSApplication sharedApplication];
NSPrinter *printer = [[NSPrintInfo sharedPrintInfo] printer];
NSLog (@"Printer: %@", [printer name]);
RELEASE (pool);
exit (EXIT_SUCCESS);
}
--- gnustep-gui-0.25.0.orig/Printing/GSCUPS/GSCUPSPrinter.m
+++ gnustep-gui-0.25.0/Printing/GSCUPS/GSCUPSPrinter.m
@@ -48,7 +48,7 @@
#import "GNUstepGUI/GSPrinting.h"
#import "GSCUPSPrinter.h"
-#include
+#include
NSString *GSCUPSDummyPrinterName = @"GSCUPSDummyPrinter";