summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
authorTill Kamppeter <till.kamppeter@gmail.com>2010-07-23 22:13:48 +0200
committerTill Kamppeter <till.kamppeter@gmail.com>2010-07-23 22:13:48 +0200
commita2e8a69d33abb5be5738b14e7c7b31eb0c397457 (patch)
tree586e8334bd55cbee517318fddace548f3eb10a04 /debian/patches
parentf41d7293b167e92b81d35078adcd08f16040b1fc (diff)
Added missing changes (patch) from 4.0.4-0ubuntu2.
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/01_foomatic-rip-error-out-on-problems-longer-string-buffers.patch241
1 files changed, 241 insertions, 0 deletions
diff --git a/debian/patches/01_foomatic-rip-error-out-on-problems-longer-string-buffers.patch b/debian/patches/01_foomatic-rip-error-out-on-problems-longer-string-buffers.patch
new file mode 100644
index 0000000..720cf50
--- /dev/null
+++ b/debian/patches/01_foomatic-rip-error-out-on-problems-longer-string-buffers.patch
@@ -0,0 +1,241 @@
+diff -Nur -x '*.orig' -x '*~' foomatic-filters-4.0.4//ChangeLog foomatic-filters-4.0.4.new//ChangeLog
+--- foomatic-filters-4.0.4//ChangeLog 2010-02-15 13:57:40.000000000 +0100
++++ foomatic-filters-4.0.4.new//ChangeLog 2010-06-08 17:19:38.201710562 +0200
+@@ -1,3 +1,32 @@
++2010-06-08 Till Kamppeter <till.kamppeter@gmail.com>
++
++ * USAGE: Documentation correction.
++
++2010-06-07 Till Kamppeter <till.kamppeter@gmail.com>
++
++ * USAGE: Finally completed the documentation update to reflect that
++ the Ghostscript library is not needed any more.
++
++ * foomaticrip.c, foomaticrip.h, pdf.c: Let foomatic-rip actually
++ error out if something goes wrong. It simply continued or closed
++ silently (exit status 0) on the following events: Failure of
++ print_file() function call, failure of Ghostscript to determine
++ the number of pages of a PDF input file (causes Ubuntu bug
++ #570522), failure to start Ghostscript to render a PDF file,
++ failure to create a temporary file for extracting selected pages
++ from a PDF file, failure to run Ghostscript to extract pages from
++ a PDF file, page count result being a negative number.
++
++ * foomaticrip.c: Use EXIT_PRINTED constant and not hard-coded "0"
++ as exit value when terminating successfully.
++
++ * foomaticrip.h: Correct definition of EXIT_STARVED constant.
++
++2010-03-26 Till Kamppeter <till.kamppeter@gmail.com>
++
++ * options.c, options.h: Made some strings longer, to avoid space
++ problems.
++
+ 2010-02-15 Till Kamppeter <till.kamppeter@gmail.com>
+
+ * Tagged branch for release 4.0.4.
+diff -Nur -x '*.orig' -x '*~' foomatic-filters-4.0.4//foomaticrip.c foomatic-filters-4.0.4.new//foomaticrip.c
+--- foomatic-filters-4.0.4//foomaticrip.c 2010-02-15 13:57:40.000000000 +0100
++++ foomatic-filters-4.0.4.new//foomaticrip.c 2010-06-08 17:19:38.201710562 +0200
+@@ -1602,7 +1602,8 @@
+ PostScript file (all before the first page begins). */
+ optionset_copy_values(optionset("userval"), optionset("header"));
+
+- print_file(filename, 1);
++ if (!print_file(filename, 1))
++ rip_die(EXIT_PRNERR_NORETRY, "Could not print file %s\n", filename);
+ filename = strtok_r(NULL, " ", &p);
+ }
+
+@@ -1639,6 +1640,6 @@
+
+ list_free(arglist);
+
+- return 0;
++ return EXIT_PRINTED;
+ }
+
+diff -Nur -x '*.orig' -x '*~' foomatic-filters-4.0.4//foomaticrip.h foomatic-filters-4.0.4.new//foomaticrip.h
+--- foomatic-filters-4.0.4//foomaticrip.h 2010-02-15 13:57:40.000000000 +0100
++++ foomatic-filters-4.0.4.new//foomaticrip.h 2010-06-08 17:19:38.201710562 +0200
+@@ -56,7 +56,7 @@
+ #define EXIT_JOBERR 3 /* job is defective */
+ #define EXIT_SIGNAL 4 /* terminated after catching signal */
+ #define EXIT_ENGAGED 5 /* printer is otherwise engaged (connection refused) */
+-#define EXIT_STARVED = 6; /* starved for system resources */
++#define EXIT_STARVED 6 /* starved for system resources */
+ #define EXIT_PRNERR_NORETRY_ACCESS_DENIED 7 /* bad password? bad port permissions? */
+ #define EXIT_PRNERR_NOT_RESPONDING 8 /* just doesn't answer at all (turned off?) */
+ #define EXIT_PRNERR_NORETRY_BAD_SETTINGS 9 /* interface settings are invalid */
+diff -Nur -x '*.orig' -x '*~' foomatic-filters-4.0.4//options.c foomatic-filters-4.0.4.new//options.c
+--- foomatic-filters-4.0.4//options.c 2010-02-15 13:57:40.000000000 +0100
++++ foomatic-filters-4.0.4.new//options.c 2010-06-08 17:19:38.211630380 +0200
+@@ -34,10 +34,10 @@
+
+ /* Values from foomatic keywords in the ppd file */
+ char printer_model [256];
+-char printer_id [128];
++char printer_id [256];
+ char driver [128];
+-char cmd [1024];
+-char cmd_pdf [1024];
++char cmd [4096];
++char cmd_pdf [4096];
+ dstr_t *postpipe = NULL; /* command into which the output of this
+ filter should be piped */
+ int ps_accounting = 1;
+@@ -751,7 +751,7 @@
+ {
+ choice_t *choice = option_find_choice(opt, "Custom");
+ char ** paramvalues = paramvalues_from_string(opt, values);
+- char width[30], height[20];
++ char width[30], height[30];
+ int pos;
+
+ assert(choice);
+@@ -1215,7 +1215,7 @@
+ }
+
+ if (!startswith(code, "%% FoomaticRIPOptionSetting"))
+- unhtmlify(choice->command, 1024, code);
++ unhtmlify(choice->command, 65536, code);
+ }
+
+ /*
+@@ -1529,10 +1529,10 @@
+ unhtmlify(postpipe->data, postpipe->alloc, value->data);
+ }
+ else if (strcmp(key, "FoomaticRIPCommandLine") == 0) {
+- unhtmlify(cmd, 1024, value->data);
++ unhtmlify(cmd, 4096, value->data);
+ }
+ else if (strcmp(key, "FoomaticRIPCommandLinePDF") == 0) {
+- unhtmlify(cmd_pdf, 1024, value->data);
++ unhtmlify(cmd_pdf, 4096, value->data);
+ }
+ else if (strcmp(key, "FoomaticRIPNoPageAccounting") == 0) {
+ /* Boolean value */
+@@ -1742,7 +1742,7 @@
+ * line */
+ if (startswith(cmd, "gs"))
+ {
+- strncpy(cmd_pdf, cmd, 1024);
++ strncpy(cmd_pdf, cmd, 4096);
+ return 1;
+ }
+
+diff -Nur -x '*.orig' -x '*~' foomatic-filters-4.0.4//options.h foomatic-filters-4.0.4.new//options.h
+--- foomatic-filters-4.0.4//options.h 2010-02-15 13:57:40.000000000 +0100
++++ foomatic-filters-4.0.4.new//options.h 2010-06-08 17:19:38.211630380 +0200
+@@ -55,7 +55,7 @@
+ typedef struct choice_s {
+ char value [128];
+ char text [128];
+- char command[1024];
++ char command[65536];
+ struct choice_s *next;
+ } choice_t;
+
+@@ -125,8 +125,8 @@
+ extern char jclend[256];
+ extern char jclprefix[256];
+
+-extern char cmd[1024];
+-extern char cmd_pdf[1024];
++extern char cmd[4096];
++extern char cmd_pdf[4096];
+
+ extern int ps_accounting;
+
+diff -Nur -x '*.orig' -x '*~' foomatic-filters-4.0.4//pdf.c foomatic-filters-4.0.4.new//pdf.c
+--- foomatic-filters-4.0.4//pdf.c 2010-02-15 13:57:40.000000000 +0100
++++ foomatic-filters-4.0.4.new//pdf.c 2010-06-08 17:19:38.211630380 +0200
+@@ -52,10 +52,8 @@
+ gspath, filename);
+
+ FILE *pd = popen(gscommand, "r");
+- if (!pd) {
+- _log("Failed to execute ghostscript to determine number of input pages!\n");
+- return 0;
+- }
++ if (!pd)
++ rip_die(EXIT_STARVED, "Failed to execute ghostscript to determine number of input pages!\n");
+
+ fread(output, 1, 31, pd);
+ pclose(pd);
+@@ -77,7 +75,7 @@
+ _log("Starting renderer with command: %s\n", cmd);
+ kid3 = start_process("kid3", exec_kid3, (void *)cmd, NULL, NULL);
+ if (kid3 < 0)
+- return 0;
++ rip_die(EXIT_STARVED, "Could not start renderer\n");
+
+ return 1;
+ }
+@@ -118,7 +116,7 @@
+ snprintf(filename, PATH_MAX, "%s/foomatic-XXXXXX", temp_dir());
+ mktemp(filename);
+ if (!filename[0])
+- return 0;
++ rip_die(EXIT_STARVED, "Unable to create temporary file!\n");
+
+ snprintf(filename_arg, PATH_MAX, "-sOutputFile=%s", filename);
+ snprintf(first_arg, 50, "-dFirstPage=%d", first);
+@@ -132,10 +130,8 @@
+ gspath, filename_arg, first_arg, last_arg, pdffilename);
+
+ FILE *pd = popen(gscommand, "r");
+- if (!pd) {
+- _log("Could not run ghostscript to extract the pages!\n");
+- return 0;
+- }
++ if (!pd)
++ rip_die(EXIT_STARVED, "Could not run ghostscript to extract the pages!\n");
+ pclose(pd);
+
+ return 1;
+@@ -158,7 +154,7 @@
+ else
+ {
+ if (!pdf_extract_pages(tmpfile, filename, firstpage, lastpage))
+- return 0;
++ rip_die(EXIT_STARVED, "Could not run ghostscript to extract the pages!\n");
+ dstrcatf(cmd, " < %s", tmpfile);
+ }
+
+@@ -237,7 +233,7 @@
+ page_count = pdf_count_pages(filename);
+
+ if (page_count <= 0)
+- return 0;
++ rip_die(EXIT_JOBERR, "Unable to determine number of pages, page count: %d\n", page_count);
+ _log("File contains %d pages\n", page_count);
+
+ optionset_copy_values(optionset("header"), optionset("currentpage"));
+diff -Nur -x '*.orig' -x '*~' foomatic-filters-4.0.4//USAGE foomatic-filters-4.0.4.new//USAGE
+--- foomatic-filters-4.0.4//USAGE 2010-02-15 13:57:40.000000000 +0100
++++ foomatic-filters-4.0.4.new//USAGE 2010-06-08 17:19:38.201710562 +0200
+@@ -74,9 +74,8 @@
+ Foomatic runs on all systems where one can run the Perl
+ interpreter and Ghostscript.
+
+-foomatic-filters needs the Ghostscript library for foomatic-rip and
+-the Perl interpreter for beh (Backend Error Handler) and the test
+-suite.
++foomatic-filters needs the Perl interpreter for beh (Backend Error
++Handler) and the test suite.
+
+ To build foomatic-rip you need a C compiler and its standard libraries.
+
+@@ -138,9 +137,8 @@
+ a normal user.
+
+ The "configure" script will auto-detect where the programs have to be
+-installed and where the Perl interpreter and the Ghostscript library
+-are located. If "configure" fails because of something not being
+-installed, do
++installed and where the Perl interpreter is located. If "configure"
++fails because of something not being installed, do
+
+ rm -rf config.cache autom*.cache
+