Auto sync2gitlab import of cups-filters-1.20.0-27.el8.src.rpm
This commit is contained in:
parent
71343fbe2c
commit
1bd12bb3e0
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/cups-filters-1.20.0.tar.xz
|
@ -0,0 +1,28 @@
|
||||
From 144322be6e06ff12f101fc35e472d62978861e28 Mon Sep 17 00:00:00 2001
|
||||
From: Till Kamppeter <till.kamppeter@gmail.com>
|
||||
Date: Thu, 15 Apr 2021 14:26:44 +0200
|
||||
Subject: [PATCH] cups-browsed: Always save "...-default" option entries from
|
||||
printers.conf
|
||||
|
||||
(cherry picked from commit cdd61132e1719a88dd8006c65e8e260c1aaa02e4)
|
||||
---
|
||||
utils/cups-browsed.c | 4 +---
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c
|
||||
index bffd1e09..0c335055 100644
|
||||
--- a/utils/cups-browsed.c
|
||||
+++ b/utils/cups-browsed.c
|
||||
@@ -5648,9 +5648,7 @@ record_printer_options(const char *printer) {
|
||||
strcasecmp(key + strlen(key) - strlen(*ptr) + 1, *ptr + 1) == 0))
|
||||
break;
|
||||
if (*ptr != NULL) {
|
||||
- if (strcasecmp(key, CUPS_BROWSED_DEST_PRINTER "-default") != 0 &&
|
||||
- (ppdname == NULL ||
|
||||
- strncasecmp(key + strlen(key) - 8, "-default", 8))) {
|
||||
+ if (strcasecmp(key, CUPS_BROWSED_DEST_PRINTER "-default") != 0) {
|
||||
ippAttributeString(attr, buf, sizeof(buf));
|
||||
buf[sizeof(buf) - 1] = '\0';
|
||||
c = buf;
|
||||
--
|
||||
2.30.2
|
@ -0,0 +1,22 @@
|
||||
From 297cc2decc53e0b08eb03049fce375db33df2131 Mon Sep 17 00:00:00 2001
|
||||
From: Till Kamppeter <till.kamppeter@gmail.com>
|
||||
Date: Sun, 7 Apr 2019 16:34:16 +0200
|
||||
Subject: [PATCH] foomatic-rip: Changed Ghostscript call to count pages in a
|
||||
PDF file so that it works with GS 9.27.
|
||||
|
||||
diff --git a/filter/foomatic-rip/pdf.c b/filter/foomatic-rip/pdf.c
|
||||
index 9c3979bb..bc739bd8 100644
|
||||
--- a/filter/foomatic-rip/pdf.c
|
||||
+++ b/filter/foomatic-rip/pdf.c
|
||||
@@ -47,9 +47,8 @@ static int pdf_count_pages(const char *filename)
|
||||
size_t bytes;
|
||||
|
||||
snprintf(gscommand, CMDLINE_MAX, "%s -dNODISPLAY -q -c "
|
||||
- "'/pdffile (%s) (r) file def pdfdict begin pdffile pdfopen begin "
|
||||
- "(PageCount: ) print pdfpagecount == flush currentdict pdfclose "
|
||||
- "end end quit'",
|
||||
+ "'/pdffile (%s) (r) file runpdfbegin (PageCount: ) print "
|
||||
+ "pdfpagecount = quit'",
|
||||
gspath, filename);
|
||||
|
||||
FILE *pd = popen(gscommand, "r");
|
@ -0,0 +1,27 @@
|
||||
From e7103a7aaa43ab613701cbf094e0aa91e6526112 Mon Sep 17 00:00:00 2001
|
||||
From: Till Kamppeter <till.kamppeter@gmail.com>
|
||||
Date: Tue, 8 Oct 2019 23:38:54 +0200
|
||||
Subject: [PATCH] gstoraster: Use ".setfilladjust2" PostScript command for
|
||||
Center-of-Pixel method to fill paths.
|
||||
|
||||
---
|
||||
NEWS | 6 ++++++
|
||||
filter/gstoraster.c | 2 +-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/filter/gstoraster.c b/filter/gstoraster.c
|
||||
index 4aec0799..59f39927 100644
|
||||
--- a/filter/gstoraster.c
|
||||
+++ b/filter/gstoraster.c
|
||||
@@ -895,7 +895,7 @@ main (int argc, char **argv, char *envp[])
|
||||
(t && (!strcasecmp(t, "true") || !strcasecmp(t, "on") ||
|
||||
!strcasecmp(t, "yes")))) {
|
||||
fprintf(stderr, "DEBUG: Ghostscript using Center-of-Pixel method to fill paths.\n");
|
||||
- cupsArrayAdd(gs_args, strdup("0 .setfilladjust"));
|
||||
+ cupsArrayAdd(gs_args, strdup("0 0 .setfilladjust2"));
|
||||
} else
|
||||
fprintf(stderr, "DEBUG: Ghostscript using Any-Part-of-Pixel method to fill paths.\n");
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 022c34fedb66f706b2ab82d7506d5b5b1fa18e1f Mon Sep 17 00:00:00 2001
|
||||
From: Bryan Mason <bmason@redhat.com>
|
||||
Date: Fri, 16 Jul 2021 11:19:42 -0700
|
||||
Subject: [PATCH] libcupsfilter: Fix page range like "10-" in pdftopdf()
|
||||
filter function
|
||||
|
||||
---
|
||||
filter/pdftopdf/pdftopdf.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/filter/pdftopdf/pdftopdf.cc b/filter/pdftopdf/pdftopdf.cc
|
||||
index 5725e199..979644f1 100644
|
||||
--- a/filter/pdftopdf/pdftopdf.cc
|
||||
+++ b/filter/pdftopdf/pdftopdf.cc
|
||||
@@ -256,7 +256,7 @@ static void parseRanges(const char *range,IntervalSet &ret) // {{{
|
||||
} else {
|
||||
upper=strtol(range,(char **)&range,10);
|
||||
if (upper>=2147483647) {
|
||||
- ret.add(1);
|
||||
+ ret.add(lower);
|
||||
} else {
|
||||
ret.add(lower,upper+1);
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
63
cups-browsed-error-messages.patch
Normal file
63
cups-browsed-error-messages.patch
Normal file
@ -0,0 +1,63 @@
|
||||
diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c
|
||||
index 80bde46..54ae2ac 100644
|
||||
--- a/utils/cups-browsed.c
|
||||
+++ b/utils/cups-browsed.c
|
||||
@@ -439,6 +439,19 @@ static remote_printer_t
|
||||
#define HAVE_CUPS_1_6 1
|
||||
#endif
|
||||
|
||||
+/*
|
||||
+ * Option 'printer-is-shared' cannot be set on remote CUPS
|
||||
+ * queue and requests for setting it ends with error since
|
||||
+ * 2.1.1. Define HAVE_CUPS_2_2 to do not send IPP request
|
||||
+ * for setting 'printer-is-shared' option on remote CUPS queues
|
||||
+ * for newer versions of CUPS.
|
||||
+ */
|
||||
+#if (CUPS_VERSION_MAJOR > 2) || (CUPS_VERSION_MINOR > 1)
|
||||
+#define HAVE_CUPS_2_2 1
|
||||
+#else
|
||||
+#define HAVE_CUPS_2_2 0
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* CUPS 1.6 makes various structures private and
|
||||
* introduces these ippGet and ippSet functions
|
||||
@@ -4394,7 +4407,20 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
num_options, &options);
|
||||
cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
|
||||
cupsEncodeOptions2(request, num_options, options, IPP_TAG_PRINTER);
|
||||
- ippDelete(cupsDoRequest(http, request, "/admin/"));
|
||||
+ /*
|
||||
+ * Do IPP request for printer-is-shared option only when we have
|
||||
+ * network printer or if we have remote CUPS queue, do IPP request
|
||||
+ * only if we have CUPS older than 2.2.
|
||||
+ * When you have remote queue, clean up and break from the loop.
|
||||
+ */
|
||||
+ if (p->netprinter != 0 || !HAVE_CUPS_2_2)
|
||||
+ ippDelete(cupsDoRequest(http, request, "/admin/"));
|
||||
+ else
|
||||
+ {
|
||||
+ ippDelete(request);
|
||||
+ cupsFreeOptions(num_options, options);
|
||||
+ break;
|
||||
+ }
|
||||
cupsFreeOptions(num_options, options);
|
||||
if (cupsLastError() > IPP_STATUS_OK_EVENTS_COMPLETE) {
|
||||
debug_printf("Unable change printer-is-shared bit to %s (%s)!\n",
|
||||
@@ -4803,7 +4829,15 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
}
|
||||
cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
|
||||
cupsEncodeOptions2(request, num_options, options, IPP_TAG_PRINTER);
|
||||
- ippDelete(cupsDoRequest(http, request, "/admin/"));
|
||||
+ /*
|
||||
+ * Do IPP request for printer-is-shared option only when we have
|
||||
+ * network printer or if we have remote CUPS queue, do IPP request
|
||||
+ * only if we have CUPS older than 2.2.
|
||||
+ */
|
||||
+ if (p->netprinter != 0 || !HAVE_CUPS_2_2)
|
||||
+ ippDelete(cupsDoRequest(http, request, "/admin/"));
|
||||
+ else
|
||||
+ ippDelete(request);
|
||||
cupsFreeOptions(num_options, options);
|
||||
if (cupsLastError() > IPP_STATUS_OK_EVENTS_COMPLETE)
|
||||
debug_printf("Unable to set printer-is-shared bit to false (%s)!\n",
|
219
cups-browsed-memory-leaks.patch
Normal file
219
cups-browsed-memory-leaks.patch
Normal file
@ -0,0 +1,219 @@
|
||||
diff --git a/cupsfilters/ppdgenerator.c b/cupsfilters/ppdgenerator.c
|
||||
index 3bc4d8a..44d9313 100644
|
||||
--- a/cupsfilters/ppdgenerator.c
|
||||
+++ b/cupsfilters/ppdgenerator.c
|
||||
@@ -752,12 +752,17 @@ load_opt_strings_catalog(const char *location, cups_array_t *options)
|
||||
2: "..." = "..."
|
||||
10: EOF, save last entry */
|
||||
int digit;
|
||||
+ int found_in_catalog = 0;
|
||||
|
||||
if (location == NULL || (strncasecmp(location, "http:", 5) &&
|
||||
strncasecmp(location, "https:", 6))) {
|
||||
if (location == NULL ||
|
||||
(stat(location, &statbuf) == 0 && S_ISDIR(statbuf.st_mode))) /* directory? */
|
||||
+ {
|
||||
filename = _findCUPSMessageCatalog(location);
|
||||
+ if (filename)
|
||||
+ found_in_catalog = 1;
|
||||
+ }
|
||||
else
|
||||
filename = location;
|
||||
} else {
|
||||
@@ -943,6 +948,8 @@ load_opt_strings_catalog(const char *location, cups_array_t *options)
|
||||
free(opt_name);
|
||||
if (filename == tmpfile)
|
||||
unlink(filename);
|
||||
+ if (found_in_catalog)
|
||||
+ free(filename);
|
||||
}
|
||||
|
||||
|
||||
@@ -1417,10 +1424,16 @@ ppdCreateFromIPP(char *buffer, /* I - Filename buffer */
|
||||
} else {
|
||||
if ((current_res = resolutionArrayNew()) != NULL) {
|
||||
if ((current_def = resolutionNew(lowdpi, lowdpi)) != NULL)
|
||||
+ {
|
||||
cupsArrayAdd(current_res, current_def);
|
||||
+ free_resolution(current_def, NULL);
|
||||
+ }
|
||||
if (hidpi != lowdpi &&
|
||||
(current_def = resolutionNew(hidpi, hidpi)) != NULL)
|
||||
+ {
|
||||
cupsArrayAdd(current_res, current_def);
|
||||
+ free_resolution(current_def, NULL);
|
||||
+ }
|
||||
current_def = NULL;
|
||||
if (cupsArrayCount(current_res) > 0 &&
|
||||
joinResolutionArrays(&common_res, ¤t_res, &common_def,
|
||||
@@ -1506,7 +1519,10 @@ ppdCreateFromIPP(char *buffer, /* I - Filename buffer */
|
||||
if (common_res == NULL) {
|
||||
if ((common_res = resolutionArrayNew()) != NULL) {
|
||||
if ((current_def = resolutionNew(300, 300)) != NULL)
|
||||
+ {
|
||||
cupsArrayAdd(common_res, current_def);
|
||||
+ free_resolution(current_def, NULL);
|
||||
+ }
|
||||
current_def = NULL;
|
||||
} else
|
||||
goto bad_ppd;
|
||||
diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c
|
||||
index 54ae2ac..507977c 100644
|
||||
--- a/utils/cups-browsed.c
|
||||
+++ b/utils/cups-browsed.c
|
||||
@@ -2555,7 +2555,7 @@ record_printer_options(const char *printer) {
|
||||
const char *key;
|
||||
char buf[65536], *c;
|
||||
const char *ppdname = NULL;
|
||||
- ppd_file_t *ppd;
|
||||
+ ppd_file_t *ppd = NULL;
|
||||
ppd_option_t *ppd_opt;
|
||||
cups_option_t *option;
|
||||
int i;
|
||||
@@ -2825,7 +2825,8 @@ on_printer_state_changed (CupsNotifier *object,
|
||||
char *ptr, buf[1024];
|
||||
remote_printer_t *p, *q;
|
||||
http_t *http = NULL;
|
||||
- ipp_t *request, *response;
|
||||
+ ipp_t *request = NULL;
|
||||
+ ipp_t *response = NULL;
|
||||
ipp_attribute_t *attr;
|
||||
const char *pname = NULL;
|
||||
char *remote_cups_queue;
|
||||
@@ -3107,6 +3108,10 @@ on_printer_state_changed (CupsNotifier *object,
|
||||
break;
|
||||
}
|
||||
}
|
||||
+ if (response) {
|
||||
+ ippDelete(response);
|
||||
+ response = NULL;
|
||||
+ }
|
||||
if (pstate == IPP_PRINTER_IDLE && paccept) {
|
||||
q->last_printer = i;
|
||||
break;
|
||||
@@ -3863,7 +3868,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
debug_printf("Default page size: %s\n",
|
||||
default_page_size);
|
||||
p->num_options = cupsAddOption("media-default",
|
||||
- strdup(default_page_size),
|
||||
+ default_page_size,
|
||||
p->num_options, &(p->options));
|
||||
} else {
|
||||
attr = ippFindAttribute(response,
|
||||
@@ -3874,7 +3879,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
debug_printf("Default page size: %s\n",
|
||||
default_page_size);
|
||||
p->num_options = cupsAddOption("media-default",
|
||||
- strdup(default_page_size),
|
||||
+ default_page_size,
|
||||
p->num_options, &(p->options));
|
||||
} else
|
||||
debug_printf("No default page size found!\n");
|
||||
@@ -3889,7 +3894,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
bottom = 1270;
|
||||
snprintf(buffer, sizeof(buffer), "%d", bottom);
|
||||
p->num_options = cupsAddOption("media-bottom-margin-default",
|
||||
- strdup(buffer),
|
||||
+ buffer,
|
||||
p->num_options, &(p->options));
|
||||
|
||||
if ((attr = ippFindAttribute(response, "media-left-margin-supported", IPP_TAG_INTEGER)) != NULL) {
|
||||
@@ -3900,7 +3905,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
left = 635;
|
||||
snprintf(buffer, sizeof(buffer), "%d", left);
|
||||
p->num_options = cupsAddOption("media-left-margin-default",
|
||||
- strdup(buffer),
|
||||
+ buffer,
|
||||
p->num_options, &(p->options));
|
||||
|
||||
if ((attr = ippFindAttribute(response, "media-right-margin-supported", IPP_TAG_INTEGER)) != NULL) {
|
||||
@@ -3911,7 +3916,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
right = 635;
|
||||
snprintf(buffer, sizeof(buffer), "%d", right);
|
||||
p->num_options = cupsAddOption("media-right-margin-default",
|
||||
- strdup(buffer),
|
||||
+ buffer,
|
||||
p->num_options, &(p->options));
|
||||
|
||||
if ((attr = ippFindAttribute(response, "media-top-margin-supported", IPP_TAG_INTEGER)) != NULL) {
|
||||
@@ -3922,7 +3927,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
top = 1270;
|
||||
snprintf(buffer, sizeof(buffer), "%d", top);
|
||||
p->num_options = cupsAddOption("media-top-margin-default",
|
||||
- strdup(buffer),
|
||||
+ buffer,
|
||||
p->num_options, &(p->options));
|
||||
|
||||
debug_printf("Margins: Left: %d, Right: %d, Top: %d, Bottom: %d\n",
|
||||
@@ -3943,7 +3948,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
debug_printf("Best color space: %s\n",
|
||||
best_color_space);
|
||||
p->num_options = cupsAddOption("print-color-mode-default",
|
||||
- strdup(best_color_space),
|
||||
+ best_color_space,
|
||||
p->num_options, &(p->options));
|
||||
} else {
|
||||
debug_printf("No info about supported color spaces found!\n");
|
||||
@@ -3956,7 +3961,7 @@ create_remote_printer_entry (const char *queue_name,
|
||||
p->num_options = cupsAddOption("sides-default", "two-sided-long-edge",
|
||||
p->num_options, &(p->options));
|
||||
|
||||
- p->num_options = cupsAddOption("output-format-default", strdup(pdl),
|
||||
+ p->num_options = cupsAddOption("output-format-default", pdl,
|
||||
p->num_options, &(p->options));
|
||||
p->num_options = cupsAddOption("make-and-model-default",
|
||||
remove_bad_chars(make_model, 0),
|
||||
@@ -4119,7 +4124,7 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
char *disabled_str, *ptr, *prefix;
|
||||
const char *loadedppd = NULL;
|
||||
int pass_through_ppd;
|
||||
- ppd_file_t *ppd;
|
||||
+ ppd_file_t *ppd = NULL;
|
||||
ppd_choice_t *choice;
|
||||
cups_file_t *in, *out;
|
||||
char keyword[1024], *keyptr;
|
||||
@@ -4588,6 +4593,7 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
p->timeout = current_time + TIMEOUT_RETRY;
|
||||
p->no_autosave = 0;
|
||||
ppdClose(ppd);
|
||||
+ ppd = NULL;
|
||||
unlink(loadedppd);
|
||||
break;
|
||||
}
|
||||
@@ -4597,6 +4603,7 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
p->no_autosave = 0;
|
||||
cupsFileClose(out);
|
||||
ppdClose(ppd);
|
||||
+ ppd = NULL;
|
||||
unlink(loadedppd);
|
||||
break;
|
||||
}
|
||||
@@ -4710,6 +4717,7 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
cupsFileClose(in);
|
||||
cupsFileClose(out);
|
||||
ppdClose(ppd);
|
||||
+ ppd = NULL;
|
||||
unlink(loadedppd);
|
||||
loadedppd = NULL;
|
||||
if (p->ppd)
|
||||
@@ -4748,8 +4756,8 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
/* Default option settings from printer entry */
|
||||
for (i = 0; i < p->num_options; i ++)
|
||||
if (strcasecmp(p->options[i].name, "printer-is-shared"))
|
||||
- num_options = cupsAddOption(strdup(p->options[i].name),
|
||||
- strdup(p->options[i].value),
|
||||
+ num_options = cupsAddOption(p->options[i].name,
|
||||
+ p->options[i].value,
|
||||
num_options, &options);
|
||||
/* Encode option list into IPP attributes */
|
||||
cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
|
||||
@@ -8342,6 +8350,9 @@ fail:
|
||||
|
||||
if (local_printers_context) {
|
||||
browse_poll_cancel_subscription (local_printers_context);
|
||||
+#ifdef HAVE_CUPS_2_0
|
||||
+ free(local_printers_context->server);
|
||||
+#endif
|
||||
g_list_free_full (local_printers_context->printers,
|
||||
browsepoll_printer_free);
|
||||
free (local_printers_context);
|
13
cups-browsed-renew.patch
Normal file
13
cups-browsed-renew.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c
|
||||
index 078348a..2b30c63 100644
|
||||
--- a/utils/cups-browsed.c
|
||||
+++ b/utils/cups-browsed.c
|
||||
@@ -8268,7 +8268,7 @@ int main(int argc, char*argv[]) {
|
||||
/* Subscribe to CUPS' D-Bus notifications and create a proxy to receive
|
||||
the notifications */
|
||||
subscription_id = create_subscription ();
|
||||
- g_timeout_add_seconds (NOTIFY_LEASE_DURATION - 60,
|
||||
+ g_timeout_add_seconds (NOTIFY_LEASE_DURATION / 2,
|
||||
renew_subscription_timeout,
|
||||
&subscription_id);
|
||||
cups_notifier = cups_notifier_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
|
18
cups-browsed-socket-leak.patch
Normal file
18
cups-browsed-socket-leak.patch
Normal file
@ -0,0 +1,18 @@
|
||||
diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c
|
||||
index c6c257e..2cc64dd 100644
|
||||
--- a/utils/cups-browsed.c
|
||||
+++ b/utils/cups-browsed.c
|
||||
@@ -2747,6 +2747,13 @@ on_printer_state_changed (CupsNotifier *object,
|
||||
if (i == q->last_printer)
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ /* Close remote connection */
|
||||
+ if (http) {
|
||||
+ httpClose(http);
|
||||
+ http = NULL;
|
||||
+ }
|
||||
+
|
||||
/* Find the ID of the current job */
|
||||
request = ippNewRequest(IPP_GET_JOBS);
|
||||
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
|
14
cups-browsed.8.patch
Normal file
14
cups-browsed.8.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff -up cups-filters-1.20.0/utils/cups-browsed.8.manpage cups-filters-1.20.0/utils/cups-browsed.8
|
||||
--- cups-filters-1.20.0/utils/cups-browsed.8.manpage 2018-11-12 14:14:48.436062013 +0100
|
||||
+++ cups-filters-1.20.0/utils/cups-browsed.8 2018-11-12 14:19:10.188091043 +0100
|
||||
@@ -100,8 +100,8 @@ and command line tools.
|
||||
|
||||
\fBcups-browsed.conf\fP(5)
|
||||
.PP
|
||||
-/usr/share/doc/\fBcups-browsed\fP/README.gz
|
||||
+/usr/share/doc/cups-filters/README.gz
|
||||
.SH AUTHOR
|
||||
-The authors of \fBcups-browsed\fP are listed in /usr/share/doc/\fBcups-browsed\fP/AUTHORS.
|
||||
+The authors of \fBcups-browsed\fP are listed in /usr/share/doc/cups-filters/AUTHORS.
|
||||
.PP
|
||||
This manual page was written for the Debian Project, but it may be used by others.
|
172
cups-filters-brftopagedbrf-install.patch
Normal file
172
cups-filters-brftopagedbrf-install.patch
Normal file
@ -0,0 +1,172 @@
|
||||
diff -up cups-filters-1.20.0/configure.ac.brftopagedbrf-install cups-filters-1.20.0/configure.ac
|
||||
--- cups-filters-1.20.0/configure.ac.brftopagedbrf-install 2018-01-29 19:14:59.000000000 +0100
|
||||
+++ cups-filters-1.20.0/configure.ac 2018-04-27 11:19:33.987213243 +0200
|
||||
@@ -856,6 +856,7 @@ AC_CONFIG_FILES([
|
||||
filter/braille/filters/cups-braille.sh
|
||||
filter/braille/filters/imagetobrf
|
||||
filter/braille/filters/texttobrf
|
||||
+ filter/braille/filters/brftopagedbrf
|
||||
filter/braille/filters/vectortopdf
|
||||
filter/braille/filters/vectortobrf
|
||||
filter/braille/filters/musicxmltobrf
|
||||
diff -up cups-filters-1.20.0/filter/braille/filters/brftopagedbrf.in.brftopagedbrf-install cups-filters-1.20.0/filter/braille/filters/brftopagedbrf.in
|
||||
--- cups-filters-1.20.0/filter/braille/filters/brftopagedbrf.in.brftopagedbrf-install 2018-04-27 11:19:41.038152279 +0200
|
||||
+++ cups-filters-1.20.0/filter/braille/filters/brftopagedbrf.in 2018-04-27 11:21:47.344068714 +0200
|
||||
@@ -0,0 +1,146 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+#
|
||||
+# Copyright (c) 2015-2017 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
+#
|
||||
+# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
+# of this software and associated documentation files (the "Software"), to deal
|
||||
+# in the Software without restriction, including without limitation the rights
|
||||
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
+# copies of the Software, and to permit persons to whom the Software is
|
||||
+# furnished to do so, subject to the following conditions:
|
||||
+#
|
||||
+#
|
||||
+# The above copyright notice and this permission notice shall be included in
|
||||
+# all copies or substantial portions of the Software.
|
||||
+#
|
||||
+#
|
||||
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
+# THE SOFTWARE.
|
||||
+#
|
||||
+
|
||||
+# Make sure we have enough options
|
||||
+if [ $# != 5 -a $# != 6 ]; then
|
||||
+ echo "ERROR: $0 jobid user name nb options [filename]" >&2
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+NB=$4
|
||||
+OPTIONS=$5
|
||||
+FILE=$6
|
||||
+
|
||||
+. @CUPS_DATADIR@/braille/cups-braille.sh
|
||||
+
|
||||
+shopt -s extglob
|
||||
+
|
||||
+# Construct list of pages from PAGERANGES
|
||||
+
|
||||
+PAGES=" " # Explicit list of pages
|
||||
+AFTER= # All pages including and after this
|
||||
+BEFORE= # All pages before and including this
|
||||
+
|
||||
+[ -n "$PAGERANGES" ] || PAGERANGES="1-"
|
||||
+
|
||||
+while [ -n "${PAGERANGES}" ]
|
||||
+do
|
||||
+ PAGERANGE=${PAGERANGES/,*}
|
||||
+ PAGERANGE=${PAGERANGE%%*( )}
|
||||
+ PAGERANGE=${PAGERANGE##*( )}
|
||||
+ if [ -n "${PAGERANGES/*,*}" ]
|
||||
+ then
|
||||
+ # last range
|
||||
+ PAGERANGES=""
|
||||
+ else
|
||||
+ # Remove leading range
|
||||
+ PAGERANGES="${PAGERANGES#*,}"
|
||||
+ fi
|
||||
+
|
||||
+ if [ -n "${PAGERANGE/*-*}" ]
|
||||
+ then
|
||||
+ # single-page
|
||||
+ PAGES="$PAGES$PAGERANGE "
|
||||
+
|
||||
+ elif [ -z "${PAGERANGE%%*-}" ]
|
||||
+ then
|
||||
+ # To the end
|
||||
+ FIRST=${PAGERANGE%%-*}
|
||||
+ if [ -z "$AFTER" ] || [ "$FIRST" -lt "$AFTER" ]
|
||||
+ then
|
||||
+ AFTER="$FIRST"
|
||||
+ fi
|
||||
+
|
||||
+ elif [ -z "${PAGERANGE##-*}" ]
|
||||
+ then
|
||||
+ # From the beginning
|
||||
+ LAST=${PAGERANGE##*-}
|
||||
+ if [ -z "$BEFORE" ] || [ "$LAST" -gt "$BEFORE" ]
|
||||
+ then
|
||||
+ BEFORE="$LAST"
|
||||
+ fi
|
||||
+
|
||||
+ else
|
||||
+ # page range
|
||||
+ FIRST=${PAGERANGE/-*}
|
||||
+ LAST=${PAGERANGE/*-}
|
||||
+ PAGES="$PAGES$(seq "$FIRST" "$LAST" | tr $'\012' ' ')"
|
||||
+
|
||||
+ fi
|
||||
+done
|
||||
+
|
||||
+# Determine whether to print this page
|
||||
+doprint() {
|
||||
+ PAGE="$1"
|
||||
+ if [ -n "$BEFORE" ] && [ "$PAGE" -le "$BEFORE" ]
|
||||
+ then
|
||||
+ echo 1
|
||||
+ return
|
||||
+ elif [ -n "$AFTER" ] && [ "$PAGE" -ge "$AFTER" ]
|
||||
+ then
|
||||
+ echo 1
|
||||
+ return
|
||||
+ fi
|
||||
+ case "$PAGES" in
|
||||
+ *\ $PAGE\ *)
|
||||
+ echo 1
|
||||
+ return
|
||||
+ ;;
|
||||
+ esac
|
||||
+ echo 0
|
||||
+}
|
||||
+
|
||||
+if [ -z "$FILE" ]
|
||||
+then
|
||||
+ cat
|
||||
+else
|
||||
+ cat "$FILE"
|
||||
+fi | (
|
||||
+ P=1
|
||||
+ DOPRINT=$(doprint $P)
|
||||
+ while IFS=$'\n' read -r LINE
|
||||
+ do
|
||||
+ while [ -z "${LINE/*$'\014'*}" ]
|
||||
+ do
|
||||
+ # Possibly print before FF
|
||||
+ HEAD=${LINE%%$'\014'*}
|
||||
+ [ $DOPRINT == 0 ] || printf %s "$HEAD"$'\014'
|
||||
+
|
||||
+ # Next page
|
||||
+ P=$(($P + 1))
|
||||
+ DOPRINT=$(doprint $P)
|
||||
+
|
||||
+ # Drop head of line
|
||||
+ LINE=${LINE#*$'\014'}
|
||||
+ done
|
||||
+
|
||||
+ # Remainder of line
|
||||
+ [ $DOPRINT == 0 ] || printf "%s\n" "$LINE"
|
||||
+ done
|
||||
+)
|
||||
+
|
||||
+echo "INFO: Ready" >&2
|
||||
+exit 0
|
||||
diff -up cups-filters-1.20.0/Makefile.am.brftopagedbrf-install cups-filters-1.20.0/Makefile.am
|
||||
--- cups-filters-1.20.0/Makefile.am.brftopagedbrf-install 2017-12-15 02:15:32.000000000 +0100
|
||||
+++ cups-filters-1.20.0/Makefile.am 2018-04-27 11:19:33.987213243 +0200
|
||||
@@ -591,6 +591,7 @@ nodist_pkgfilter_SCRIPTS = \
|
||||
filter/braille/filters/vectortopdf \
|
||||
filter/braille/filters/vectortobrf \
|
||||
filter/braille/filters/texttobrf \
|
||||
+ filter/braille/filters/brftopagedbrf \
|
||||
filter/braille/filters/musicxmltobrf
|
||||
endif
|
||||
|
11
cups-filters-cleareof.patch
Normal file
11
cups-filters-cleareof.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -up cups-filters-1.20.3/filter/foomatic-rip/foomaticrip.c.cleareof cups-filters-1.20.3/filter/foomatic-rip/foomaticrip.c
|
||||
--- cups-filters-1.20.3/filter/foomatic-rip/foomaticrip.c.cleareof 2018-09-21 13:38:05.882666106 +0200
|
||||
+++ cups-filters-1.20.3/filter/foomatic-rip/foomaticrip.c 2018-09-21 13:38:55.330277816 +0200
|
||||
@@ -663,6 +663,7 @@ int print_file(const char *filename, int
|
||||
rip_die(EXIT_PRNERR_NORETRY_BAD_SETTINGS,
|
||||
"Couldn't dup stdout of pdf-to-ps\n");
|
||||
|
||||
+ clearerr(stdin);
|
||||
ret = print_file("<STDIN>", 0);
|
||||
|
||||
wait_for_process(renderer_pid);
|
678
cups-filters-covscan.patch
Normal file
678
cups-filters-covscan.patch
Normal file
@ -0,0 +1,678 @@
|
||||
diff --git a/backend/beh.c b/backend/beh.c
|
||||
index 9ba6613..7514e33 100644
|
||||
--- a/backend/beh.c
|
||||
+++ b/backend/beh.c
|
||||
@@ -223,6 +223,8 @@ call_backend(char *uri, /* I - URI of final destination */
|
||||
*/
|
||||
|
||||
strncpy(scheme, uri, sizeof(scheme));
|
||||
+ if (strlen(uri) > 1023)
|
||||
+ scheme[1023] = '\0';
|
||||
if ((ptr = strchr(scheme, ':')) != NULL)
|
||||
*ptr = '\0';
|
||||
|
||||
diff --git a/backend/implicitclass.c b/backend/implicitclass.c
|
||||
index 3ce4d10..1593191 100644
|
||||
--- a/backend/implicitclass.c
|
||||
+++ b/backend/implicitclass.c
|
||||
@@ -104,6 +104,8 @@ main(int argc, /* I - Number of command-line args */
|
||||
}
|
||||
ptr1 ++;
|
||||
strncpy(queue_name, ptr1, sizeof(queue_name));
|
||||
+ if (strlen(ptr1) > 1023)
|
||||
+ queue_name[1023] = '\0';
|
||||
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
|
||||
"localhost", ippPort(), "/printers/%s", queue_name);
|
||||
job_id = argv[1];
|
||||
@@ -162,6 +164,8 @@ main(int argc, /* I - Number of command-line args */
|
||||
/* Read destination host name (or message) and check whether it is
|
||||
complete (second double quote) */
|
||||
strncpy(dest_host, ptr1, sizeof(dest_host));
|
||||
+ if (strlen(ptr1) > 1023)
|
||||
+ dest_host[1023] = '\0';
|
||||
ptr1 = dest_host;
|
||||
if ((ptr2 = strchr(ptr1, '"')) != NULL) {
|
||||
*ptr2 = '\0';
|
||||
diff --git a/cupsfilters/colormanager.c b/cupsfilters/colormanager.c
|
||||
index 70074a3..a4a929d 100644
|
||||
--- a/cupsfilters/colormanager.c
|
||||
+++ b/cupsfilters/colormanager.c
|
||||
@@ -272,6 +272,9 @@ _get_colord_profile(const char *printer_name, /* Dest name */
|
||||
free(qualifier);
|
||||
}
|
||||
|
||||
+ if (icc_profile != NULL)
|
||||
+ free(icc_profile);
|
||||
+
|
||||
return is_profile_set;
|
||||
|
||||
}
|
||||
@@ -325,8 +328,11 @@ _get_ppd_icc_fallback (ppd_file_t *ppd, char **qualifier)
|
||||
if (attr->value[0] != '/')
|
||||
snprintf(full_path, sizeof(full_path),
|
||||
"%s/profiles/%s", CUPSDATA, attr->value);
|
||||
- else
|
||||
+ else {
|
||||
strncpy(full_path, attr->value, sizeof(full_path));
|
||||
+ if (strlen(attr->value) > 1023)
|
||||
+ full_path[1023] = '\0';
|
||||
+ }
|
||||
|
||||
/* check the file exists */
|
||||
if (access(full_path, 0)) {
|
||||
diff --git a/cupsfilters/image-sgilib.c b/cupsfilters/image-sgilib.c
|
||||
index 0b70c13..bf2dd80 100644
|
||||
--- a/cupsfilters/image-sgilib.c
|
||||
+++ b/cupsfilters/image-sgilib.c
|
||||
@@ -282,7 +282,7 @@ sgiOpenFile(FILE *file, /* I - File to open */
|
||||
sgip->mode = SGI_WRITE;
|
||||
|
||||
putshort(SGI_MAGIC, sgip->file);
|
||||
- putc((sgip->comp = comp) != 0, sgip->file);
|
||||
+ putc(((sgip->comp = comp) != 0) ? '1': '0', sgip->file);
|
||||
putc(sgip->bpp = bpp, sgip->file);
|
||||
putshort(3, sgip->file); /* Dimensions */
|
||||
putshort(sgip->xsize = xsize, sgip->file);
|
||||
diff --git a/cupsfilters/image-sun.c b/cupsfilters/image-sun.c
|
||||
index 609b194..989d039 100644
|
||||
--- a/cupsfilters/image-sun.c
|
||||
+++ b/cupsfilters/image-sun.c
|
||||
@@ -114,6 +114,7 @@ _cupsImageReadSunRaster(
|
||||
ras_depth == 0 || ras_depth > 32)
|
||||
{
|
||||
fputs("DEBUG: Raster image cannot be loaded!\n", stderr);
|
||||
+ fclose(fp);
|
||||
return (1);
|
||||
}
|
||||
|
||||
diff --git a/cupsfilters/ppdgenerator.c b/cupsfilters/ppdgenerator.c
|
||||
index 052e3c5..3bc4d8a 100644
|
||||
--- a/cupsfilters/ppdgenerator.c
|
||||
+++ b/cupsfilters/ppdgenerator.c
|
||||
@@ -937,6 +937,10 @@ load_opt_strings_catalog(const char *location, cups_array_t *options)
|
||||
}
|
||||
}
|
||||
cupsFileClose(fp);
|
||||
+ if (choice_name != NULL)
|
||||
+ free(choice_name);
|
||||
+ if (opt_name != NULL)
|
||||
+ free(opt_name);
|
||||
if (filename == tmpfile)
|
||||
unlink(filename);
|
||||
}
|
||||
diff --git a/cupsfilters/raster.c b/cupsfilters/raster.c
|
||||
index 8203690..67d6b9b 100644
|
||||
--- a/cupsfilters/raster.c
|
||||
+++ b/cupsfilters/raster.c
|
||||
@@ -151,11 +151,14 @@ cupsRasterParseIPPOptions(cups_page_header2_t *h, /* I - Raster header */
|
||||
strcasestr(s, "right") ||
|
||||
strcasestr(s, "side") ||
|
||||
strcasestr(s, "main"))
|
||||
- media_source = strdup(s);
|
||||
+ {
|
||||
+ if (media_source == NULL)
|
||||
+ media_source = strdup(s);
|
||||
+ }
|
||||
else
|
||||
media_type = strdup(s);
|
||||
}
|
||||
- if (size_found)
|
||||
+ if (page_size == NULL && size_found)
|
||||
page_size = strdup(size_found->pwg);
|
||||
}
|
||||
}
|
||||
@@ -1079,6 +1082,13 @@ cupsRasterParseIPPOptions(cups_page_header2_t *h, /* I - Raster header */
|
||||
h->cupsRenderingIntent[0] = '\0';
|
||||
#endif /* HAVE_CUPS_1_7 */
|
||||
|
||||
+ if (media_source != NULL)
|
||||
+ free(media_source);
|
||||
+ if (media_type != NULL)
|
||||
+ free(media_type);
|
||||
+ if (page_size != NULL)
|
||||
+ free(page_size);
|
||||
+
|
||||
return (0);
|
||||
}
|
||||
|
||||
diff --git a/filter/bannertopdf.c b/filter/bannertopdf.c
|
||||
index b78ea37..2b9bd76 100644
|
||||
--- a/filter/bannertopdf.c
|
||||
+++ b/filter/bannertopdf.c
|
||||
@@ -513,6 +513,15 @@ static int generate_banner_pdf(banner_t *banner,
|
||||
pdf_duplicate_page(doc, 1, copies);
|
||||
|
||||
pdf_write(doc, stdout);
|
||||
+
|
||||
+ opt_t * opt_current = known_opts;
|
||||
+ opt_t * opt_next = NULL;
|
||||
+ while (opt_current != NULL)
|
||||
+ {
|
||||
+ opt_next = opt_current->next;
|
||||
+ free(opt_current);
|
||||
+ opt_current = opt_next;
|
||||
+ }
|
||||
free(buf);
|
||||
pdf_free(doc);
|
||||
return 0;
|
||||
diff --git a/filter/foomatic-rip/foomaticrip.c b/filter/foomatic-rip/foomaticrip.c
|
||||
index 2a642ed..13d2035 100644
|
||||
--- a/filter/foomatic-rip/foomaticrip.c
|
||||
+++ b/filter/foomatic-rip/foomaticrip.c
|
||||
@@ -666,6 +666,11 @@ int print_file(const char *filename, int convert)
|
||||
ret = print_file("<STDIN>", 0);
|
||||
|
||||
wait_for_process(renderer_pid);
|
||||
+ if (in != NULL)
|
||||
+ fclose(in);
|
||||
+ if (out != NULL)
|
||||
+ fclose(out);
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -683,6 +688,8 @@ int print_file(const char *filename, int convert)
|
||||
|
||||
case UNKNOWN_FILE:
|
||||
_log("Cannot process \"%s\": Unknown filetype.\n", filename);
|
||||
+ if (file != NULL)
|
||||
+ fclose(file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -811,10 +818,14 @@ int main(int argc, char** argv)
|
||||
|
||||
if (getenv("PPD")) {
|
||||
strncpy(job->ppdfile, getenv("PPD"), 2048);
|
||||
+ if (strlen(getenv("PPD")) > 2047)
|
||||
+ job->ppdfile[2047] = '\0';
|
||||
spooler = SPOOLER_CUPS;
|
||||
- if (getenv("CUPS_SERVERBIN"))
|
||||
- strncpy(cupsfilterpath, getenv("CUPS_SERVERBIN"),
|
||||
- sizeof(cupsfilterpath));
|
||||
+ if (getenv("CUPS_SERVERBIN")) {
|
||||
+ strncpy(cupsfilterpath, getenv("CUPS_SERVERBIN"), sizeof(cupsfilterpath));
|
||||
+ if (strlen(getenv("CUPS_SERVERBIN")) > PATH_MAX-1)
|
||||
+ cupsfilterpath[PATH_MAX-1] = '\0';
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Check status of printer color management from the color manager */
|
||||
@@ -834,10 +845,14 @@ int main(int argc, char** argv)
|
||||
allow duplicates, and use the last specified one */
|
||||
while ((str = arglist_get_value(arglist, "-p"))) {
|
||||
strncpy(job->ppdfile, str, 2048);
|
||||
+ if (strlen(str) > 2047)
|
||||
+ job->ppdfile[2047] = '\0';
|
||||
arglist_remove(arglist, "-p");
|
||||
}
|
||||
while ((str = arglist_get_value(arglist, "--ppd"))) {
|
||||
strncpy(job->ppdfile, str, 2048);
|
||||
+ if (strlen(str) > 2047)
|
||||
+ job->ppdfile[2047] = '\0';
|
||||
arglist_remove(arglist, "--ppd");
|
||||
}
|
||||
|
||||
@@ -1020,6 +1035,7 @@ int main(int argc, char** argv)
|
||||
cmd[0] = '\0';
|
||||
|
||||
snprintf(gstoraster, sizeof(gstoraster), "gs -dQUIET -dDEBUG -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOINTERPOLATE -dNOMEDIAATTRS -sDEVICE=cups -dShowAcroForm %s -sOutputFile=- -", cmd);
|
||||
+ free(icc_profile);
|
||||
}
|
||||
|
||||
/* build Ghostscript/CUPS driver command line */
|
||||
diff --git a/filter/foomatic-rip/options.c b/filter/foomatic-rip/options.c
|
||||
index 325a0a6..798ddf9 100644
|
||||
--- a/filter/foomatic-rip/options.c
|
||||
+++ b/filter/foomatic-rip/options.c
|
||||
@@ -1031,12 +1031,10 @@ int option_set_value(option_t *opt, int optionset, const char *value)
|
||||
/* TODO only set the changed option, not all of them */
|
||||
choice = option_find_choice(fromopt,
|
||||
option_get_value(fromopt, optionset));
|
||||
-
|
||||
composite_set_values(fromopt, optionset, choice->command);
|
||||
- }
|
||||
- else {
|
||||
+ free(newvalue);
|
||||
+ } else
|
||||
val->value = newvalue;
|
||||
- }
|
||||
|
||||
if (option_is_composite(opt)) {
|
||||
/* set dependent values */
|
||||
@@ -1914,6 +1912,8 @@ int ppd_supports_pdf()
|
||||
if (startswith(cmd, "gs"))
|
||||
{
|
||||
strncpy(cmd_pdf, cmd, 4096);
|
||||
+ if (strlen(cmd) > 4095)
|
||||
+ cmd_pdf[4095] = '\0';
|
||||
return 1;
|
||||
}
|
||||
|
||||
diff --git a/filter/foomatic-rip/spooler.c b/filter/foomatic-rip/spooler.c
|
||||
index 236551f..4f27563 100644
|
||||
--- a/filter/foomatic-rip/spooler.c
|
||||
+++ b/filter/foomatic-rip/spooler.c
|
||||
@@ -94,6 +94,8 @@ void init_cups(list_t *arglist, dstr_t *filelist, jobparams_t *job)
|
||||
CUPS puts the print queue name into the PRINTER environment variable
|
||||
when calling filters. */
|
||||
strncpy(job->printer, getenv("PRINTER"), 256);
|
||||
+ if (strlen(getenv("PRINTER")) > 255)
|
||||
+ job->printer[255] = '\0';
|
||||
|
||||
free(cups_options);
|
||||
}
|
||||
diff --git a/filter/pdftops.c b/filter/pdftops.c
|
||||
index 55d2ec1..a648444 100644
|
||||
--- a/filter/pdftops.c
|
||||
+++ b/filter/pdftops.c
|
||||
@@ -427,6 +427,8 @@ main(int argc, /* I - Number of command-line args */
|
||||
if ((val = cupsGetOption("make-and-model", num_options, options)) != NULL)
|
||||
{
|
||||
strncpy(make_model, val, sizeof(make_model));
|
||||
+ if (strlen(val) > 127)
|
||||
+ make_model[127] = '\0';
|
||||
for (ptr = make_model; *ptr; ptr ++)
|
||||
if (*ptr == '-') *ptr = ' ';
|
||||
}
|
||||
diff --git a/filter/pdftoraster.cxx b/filter/pdftoraster.cxx
|
||||
index 4cd656a..0c63ab8 100644
|
||||
--- a/filter/pdftoraster.cxx
|
||||
+++ b/filter/pdftoraster.cxx
|
||||
@@ -558,8 +558,10 @@ static void parseOpts(int argc, char **argv)
|
||||
if (!cm_disabled)
|
||||
cmGetPrinterIccProfile(getenv("PRINTER"), &profile, ppd);
|
||||
|
||||
- if (profile != NULL)
|
||||
- colorProfile = cmsOpenProfileFromFile(profile,"r");
|
||||
+ if (profile != NULL) {
|
||||
+ colorProfile = cmsOpenProfileFromFile(profile,"r");
|
||||
+ free(profile);
|
||||
+ }
|
||||
|
||||
#ifdef HAVE_CUPS_1_7
|
||||
if ((attr = ppdFindAttr(ppd,"PWGRaster",0)) != 0 &&
|
||||
diff --git a/filter/rastertoescpx.c b/filter/rastertoescpx.c
|
||||
index 5a3e5df..a0ec416 100644
|
||||
--- a/filter/rastertoescpx.c
|
||||
+++ b/filter/rastertoescpx.c
|
||||
@@ -1141,7 +1141,10 @@ EndPage(ppd_file_t *ppd, /* I - PPD file */
|
||||
}
|
||||
}
|
||||
else
|
||||
+ {
|
||||
free(DotBuffers[0]);
|
||||
+ DotBuffers[0] = NULL;
|
||||
+ }
|
||||
|
||||
/*
|
||||
* Output a page eject sequence...
|
||||
@@ -1440,7 +1443,7 @@ CompressData(ppd_file_t *ppd, /* I - PPD file information */
|
||||
|
||||
printf("\033i");
|
||||
putchar(ctable[PrinterPlanes - 1][plane]);
|
||||
- putchar(type != 0);
|
||||
+ putchar((type != 0) ? '1': '0');
|
||||
putchar(BitPlanes);
|
||||
putchar(bytes & 255);
|
||||
putchar(bytes >> 8);
|
||||
@@ -1470,7 +1473,7 @@ CompressData(ppd_file_t *ppd, /* I - PPD file information */
|
||||
bytes *= 8;
|
||||
|
||||
printf("\033.");
|
||||
- putchar(type != 0);
|
||||
+ putchar((type != 0) ? '1': '0');
|
||||
putchar(ystep);
|
||||
putchar(xstep);
|
||||
putchar(rows);
|
||||
@@ -1907,6 +1910,10 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
if (fd != 0)
|
||||
close(fd);
|
||||
|
||||
+ for (int i = 0; i < 7; i++)
|
||||
+ if (DotBuffers[i] != NULL)
|
||||
+ free(DotBuffers[i]);
|
||||
+
|
||||
return (page == 0);
|
||||
}
|
||||
|
||||
diff --git a/filter/rastertops.c b/filter/rastertops.c
|
||||
index d5d955b..531eb70 100644
|
||||
--- a/filter/rastertops.c
|
||||
+++ b/filter/rastertops.c
|
||||
@@ -282,6 +282,8 @@ write_flate(cups_raster_t *ras, /* I - Image data */
|
||||
if (fwrite(out, 1, have, stdout) != have)
|
||||
{
|
||||
(void)deflateEnd(&strm);
|
||||
+ if (convertedpix != NULL)
|
||||
+ free(convertedpix);
|
||||
return Z_ERRNO;
|
||||
}
|
||||
} while (strm.avail_out == 0);
|
||||
diff --git a/filter/sys5ippprinter.c b/filter/sys5ippprinter.c
|
||||
index ad75551..9a92c8e 100644
|
||||
--- a/filter/sys5ippprinter.c
|
||||
+++ b/filter/sys5ippprinter.c
|
||||
@@ -570,6 +570,8 @@ exec_filter(const char *filter, /* I - Filter to execute */
|
||||
dup2(fd, 2);
|
||||
close(fd);
|
||||
}
|
||||
+ else
|
||||
+ close(fd);
|
||||
fcntl(2, F_SETFL, O_NDELAY);
|
||||
}
|
||||
|
||||
@@ -578,6 +580,8 @@ exec_filter(const char *filter, /* I - Filter to execute */
|
||||
dup2(fd, 3);
|
||||
close(fd);
|
||||
}
|
||||
+ else
|
||||
+ close(fd);
|
||||
fcntl(3, F_SETFL, O_NDELAY);
|
||||
|
||||
if ((fd = open("/dev/null", O_RDWR)) > 4)
|
||||
@@ -585,6 +589,8 @@ exec_filter(const char *filter, /* I - Filter to execute */
|
||||
dup2(fd, 4);
|
||||
close(fd);
|
||||
}
|
||||
+ else
|
||||
+ close(fd);
|
||||
fcntl(4, F_SETFL, O_NDELAY);
|
||||
|
||||
/*
|
||||
@@ -654,8 +660,11 @@ exec_filters(cups_array_t *filters, /* I - Array of filters to run */
|
||||
{
|
||||
next = (char *)cupsArrayNext(filters);
|
||||
|
||||
- if (filter[0] == '/')
|
||||
+ if (filter[0] == '/') {
|
||||
strncpy(program, filter, sizeof(program));
|
||||
+ if (strlen(filter) > 1023)
|
||||
+ program[1023] = '\0';
|
||||
+ }
|
||||
else
|
||||
{
|
||||
if ((cups_serverbin = getenv("CUPS_SERVERBIN")) == NULL)
|
||||
diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c
|
||||
index a2a4a08..19a2ac8 100644
|
||||
--- a/utils/cups-browsed.c
|
||||
+++ b/utils/cups-browsed.c
|
||||
@@ -2245,7 +2245,10 @@ is_disabled(const char *printer, const char *reason) {
|
||||
pstate = (ipp_pstate_t)ippGetInteger(attr, 0);
|
||||
else if (!strcmp(ippGetName(attr), "printer-state-message") &&
|
||||
ippGetValueTag(attr) == IPP_TAG_TEXT) {
|
||||
- free(pstatemsg);
|
||||
+ if (pstatemsg != NULL) {
|
||||
+ free(pstatemsg);
|
||||
+ pstatemsg = NULL;
|
||||
+ }
|
||||
p = ippGetString(attr, 0, NULL);
|
||||
if (p != NULL) pstatemsg = strdup(p);
|
||||
}
|
||||
@@ -2262,16 +2265,22 @@ is_disabled(const char *printer, const char *reason) {
|
||||
case IPP_PRINTER_IDLE:
|
||||
case IPP_PRINTER_PROCESSING:
|
||||
ippDelete(response);
|
||||
- free(pstatemsg);
|
||||
+ if (pstatemsg != NULL) {
|
||||
+ free(pstatemsg);
|
||||
+ pstatemsg = NULL;
|
||||
+ }
|
||||
return NULL;
|
||||
case IPP_PRINTER_STOPPED:
|
||||
ippDelete(response);
|
||||
if (reason == NULL)
|
||||
return pstatemsg;
|
||||
- else if (strcasestr(pstatemsg, reason) != NULL)
|
||||
+ else if (pstatemsg != NULL && (strcasestr(pstatemsg, reason) != NULL))
|
||||
return pstatemsg;
|
||||
else {
|
||||
- free(pstatemsg);
|
||||
+ if (pstatemsg != NULL) {
|
||||
+ free(pstatemsg);
|
||||
+ pstatemsg = NULL;
|
||||
+ }
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -2280,12 +2289,18 @@ is_disabled(const char *printer, const char *reason) {
|
||||
debug_printf("No information regarding enabled/disabled found about the requested printer '%s'\n",
|
||||
printer);
|
||||
ippDelete(response);
|
||||
- free(pstatemsg);
|
||||
+ if (pstatemsg != NULL) {
|
||||
+ free(pstatemsg);
|
||||
+ pstatemsg = NULL;
|
||||
+ }
|
||||
return NULL;
|
||||
}
|
||||
debug_printf("ERROR: Request for printer info failed: %s\n",
|
||||
cupsLastErrorString());
|
||||
- free(pstatemsg);
|
||||
+ if (pstatemsg != NULL) {
|
||||
+ free(pstatemsg);
|
||||
+ pstatemsg = NULL;
|
||||
+ }
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -3040,6 +3055,8 @@ on_printer_state_changed (CupsNotifier *object,
|
||||
dest_host = p->ip ? p->ip : p->host;
|
||||
dest_port = p->port;
|
||||
strncpy(dest_name, remote_cups_queue, sizeof(dest_name));
|
||||
+ if (strlen(remote_cups_queue) > 1023)
|
||||
+ dest_name[1023] = '\0';
|
||||
dest_index = i;
|
||||
debug_printf("Printer %s on host %s, port %d is idle, take this as destination and stop searching.\n",
|
||||
remote_cups_queue, p->host, p->port);
|
||||
@@ -3056,8 +3073,9 @@ on_printer_state_changed (CupsNotifier *object,
|
||||
min_jobs = num_jobs;
|
||||
dest_host = p->ip ? p->ip : p->host;
|
||||
dest_port = p->port;
|
||||
- strncpy(dest_name, remote_cups_queue,
|
||||
- sizeof(dest_name));
|
||||
+ strncpy(dest_name, remote_cups_queue, sizeof(dest_name));
|
||||
+ if (strlen(remote_cups_queue) > 1023)
|
||||
+ dest_name[1023] = '\0';
|
||||
dest_index = i;
|
||||
}
|
||||
debug_printf("Printer %s on host %s, port %d is printing and it has %d jobs.\n",
|
||||
@@ -3566,8 +3584,9 @@ create_remote_printer_entry (const char *queue_name,
|
||||
IPP_TAG_KEYWORD)) != NULL) {
|
||||
debug_printf(" Attr: %s\n", ippGetName(attr));
|
||||
for (i = 0; i < ippGetCount(attr); i ++) {
|
||||
- strncpy(valuebuffer, ippGetString(attr, i, NULL),
|
||||
- sizeof(valuebuffer));
|
||||
+ strncpy(valuebuffer, ippGetString(attr, i, NULL), sizeof(valuebuffer));
|
||||
+ if (strlen(ippGetString(attr, i, NULL)) > 65535)
|
||||
+ valuebuffer[65535] = '\0';
|
||||
debug_printf(" Keyword: %s\n", valuebuffer);
|
||||
if (valuebuffer[0] > '1')
|
||||
break;
|
||||
@@ -3598,8 +3617,9 @@ create_remote_printer_entry (const char *queue_name,
|
||||
debug_printf(" Value: %s\n", valuebuffer);
|
||||
if (valuebuffer[0] == '\0') {
|
||||
for (i = 0; i < ippGetCount(attr); i ++) {
|
||||
- strncpy(valuebuffer, ippGetString(attr, i, NULL),
|
||||
- sizeof(valuebuffer));
|
||||
+ strncpy(valuebuffer, ippGetString(attr, i, NULL), sizeof(valuebuffer));
|
||||
+ if (strlen(ippGetString(attr, i, NULL)) > 65535)
|
||||
+ valuebuffer[65535] = '\0';
|
||||
debug_printf(" Keyword: %s\n", valuebuffer);
|
||||
if (valuebuffer[0] != '\0')
|
||||
break;
|
||||
@@ -3629,8 +3649,9 @@ create_remote_printer_entry (const char *queue_name,
|
||||
debug_printf(" Value: %s\n", valuebuffer);
|
||||
if (valuebuffer[0] == '\0') {
|
||||
for (i = 0; i < ippGetCount(attr); i ++) {
|
||||
- strncpy(valuebuffer, ippGetString(attr, i, NULL),
|
||||
- sizeof(valuebuffer));
|
||||
+ strncpy(valuebuffer, ippGetString(attr, i, NULL), sizeof(valuebuffer));
|
||||
+ if (strlen(ippGetString(attr, i, NULL)) > 65535)
|
||||
+ valuebuffer[65535] = '\0';
|
||||
debug_printf(" Keyword: %s\n", valuebuffer);
|
||||
if (valuebuffer[0] != '\0')
|
||||
break;
|
||||
@@ -3663,8 +3684,9 @@ create_remote_printer_entry (const char *queue_name,
|
||||
debug_printf(" Value: %s\n", p->queue_name, valuebuffer);
|
||||
if (valuebuffer[0] == '\0') {
|
||||
for (i = 0; i < ippGetCount(attr); i ++) {
|
||||
- strncpy(valuebuffer, ippGetString(attr, i, NULL),
|
||||
- sizeof(valuebuffer));
|
||||
+ strncpy(valuebuffer, ippGetString(attr, i, NULL), sizeof(valuebuffer));
|
||||
+ if (strlen(ippGetString(attr, i, NULL)) > 65535)
|
||||
+ valuebuffer[65535] = '\0';
|
||||
debug_printf(" Keyword: %s\n", valuebuffer);
|
||||
if (valuebuffer[0] != '\0')
|
||||
break;
|
||||
@@ -4498,6 +4520,8 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
} else {
|
||||
/* Device URI: ipp(s)://<remote host>:631/printers/<remote queue> */
|
||||
strncpy(device_uri, p->uri, sizeof(device_uri));
|
||||
+ if (strlen(p->uri) > HTTP_MAX_URI-1)
|
||||
+ device_uri[HTTP_MAX_URI-1] = '\0';
|
||||
debug_printf("Print queue %s is for an IPP network printer, or we do not get notifications from CUPS, using direct device URI %s\n",
|
||||
p->queue_name, device_uri);
|
||||
}
|
||||
@@ -4606,6 +4630,8 @@ gboolean update_cups_queues(gpointer unused) {
|
||||
} else if (!strncmp(line, "*Default", 8)) {
|
||||
cont_line_read = 0;
|
||||
strncpy(keyword, line + 8, sizeof(keyword));
|
||||
+ if ((strlen(line) + 8) > 1023)
|
||||
+ keyword[1023] = '\0';
|
||||
for (keyptr = keyword; *keyptr; keyptr ++)
|
||||
if (*keyptr == ':' || isspace(*keyptr & 255))
|
||||
break;
|
||||
@@ -7144,7 +7170,7 @@ read_configuration (const char *filename)
|
||||
in the configuration file is used. */
|
||||
while ((i < cupsArrayCount(command_line_config) &&
|
||||
(value = cupsArrayIndex(command_line_config, i++)) &&
|
||||
- strncpy(line, value, sizeof(line))) ||
|
||||
+ strncpy(line, value, sizeof(line)) && ((strlen(value) > HTTP_MAX_BUFFER-1)? line[HTTP_MAX_BUFFER-1] = '\0': 1)) ||
|
||||
cupsFileGetConf(fp, line, sizeof(line), &value, &linenum)) {
|
||||
if (linenum < 0) {
|
||||
/* We are still reading options from the command line ("-o ..."),
|
||||
@@ -7371,6 +7397,7 @@ read_configuration (const char *filename)
|
||||
if (filter->cregexp)
|
||||
regfree(filter->cregexp);
|
||||
free(filter);
|
||||
+ filter = NULL;
|
||||
}
|
||||
} else if ((!strcasecmp(line, "BrowseInterval") || !strcasecmp(line, "BrowseTimeout")) && value) {
|
||||
int t = atoi(value);
|
||||
@@ -7386,8 +7413,11 @@ read_configuration (const char *filename)
|
||||
debug_printf("Invalid %s value: %d\n",
|
||||
line, t);
|
||||
} else if (!strcasecmp(line, "DomainSocket") && value) {
|
||||
- if (value[0] != '\0')
|
||||
+ if (value[0] != '\0') {
|
||||
+ if (DomainSocket != NULL)
|
||||
+ free(DomainSocket);
|
||||
DomainSocket = strdup(value);
|
||||
+ }
|
||||
} else if ((!strcasecmp(line, "HttpLocalTimeout") || !strcasecmp(line, "HttpRemoteTimeout")) && value) {
|
||||
int t = atoi(value);
|
||||
if (t >= 0) {
|
||||
@@ -7555,6 +7585,10 @@ read_configuration (const char *filename)
|
||||
}
|
||||
}
|
||||
cupsArrayAdd (clusters, cluster);
|
||||
+ if (start != NULL) {
|
||||
+ free(start);
|
||||
+ start = NULL;
|
||||
+ }
|
||||
continue;
|
||||
cluster_fail:
|
||||
if (cluster) {
|
||||
@@ -7568,6 +7602,11 @@ read_configuration (const char *filename)
|
||||
cupsArrayDelete (cluster->members);
|
||||
}
|
||||
free(cluster);
|
||||
+ cluster = NULL;
|
||||
+ }
|
||||
+ if (start != NULL) {
|
||||
+ free(start);
|
||||
+ start = NULL;
|
||||
}
|
||||
} else if (!strcasecmp(line, "LoadBalancing") && value) {
|
||||
if (!strncasecmp(value, "QueueOnClient", 13))
|
||||
@@ -7575,7 +7614,7 @@ read_configuration (const char *filename)
|
||||
else if (!strncasecmp(value, "QueueOnServers", 14))
|
||||
LoadBalancingType = QUEUE_ON_SERVERS;
|
||||
} else if (!strcasecmp(line, "DefaultOptions") && value) {
|
||||
- if (strlen(value) > 0)
|
||||
+ if (DefaultOptions == NULL && strlen(value) > 0)
|
||||
DefaultOptions = strdup(value);
|
||||
} else if (!strcasecmp(line, "AutoShutdown") && value) {
|
||||
char *p, *saveptr;
|
||||
@@ -7949,10 +7988,12 @@ int main(int argc, char*argv[]) {
|
||||
daemon, not with remote ones. */
|
||||
if (getenv("CUPS_SERVER") != NULL) {
|
||||
strncpy(local_server_str, getenv("CUPS_SERVER"), sizeof(local_server_str));
|
||||
+ if (strlen(getenv("CUPS_SERVER")) > 1023)
|
||||
+ local_server_str[1023] = '\0';
|
||||
} else {
|
||||
#ifdef CUPS_DEFAULT_DOMAINSOCKET
|
||||
if (DomainSocket == NULL)
|
||||
- DomainSocket = CUPS_DEFAULT_DOMAINSOCKET;
|
||||
+ DomainSocket = strdup(CUPS_DEFAULT_DOMAINSOCKET);
|
||||
#endif
|
||||
if (DomainSocket != NULL) {
|
||||
struct stat sockinfo; /* Domain socket information */
|
||||
@@ -8293,6 +8334,11 @@ fail:
|
||||
if (debug_logfile == 1)
|
||||
stop_debug_logging();
|
||||
|
||||
+ if (DefaultOptions != NULL)
|
||||
+ free(DefaultOptions);
|
||||
+ if (DomainSocket != NULL)
|
||||
+ free(DomainSocket);
|
||||
+
|
||||
return ret;
|
||||
|
||||
help:
|
||||
diff --git a/utils/driverless.c b/utils/driverless.c
|
||||
index 7fc6dae..fe61e58 100644
|
||||
--- a/utils/driverless.c
|
||||
+++ b/utils/driverless.c
|
||||
@@ -227,12 +227,16 @@ list_printers (int mode)
|
||||
|
||||
if (txt_usb_mfg[0] != '\0') {
|
||||
strncpy(make, txt_usb_mfg, sizeof(make));
|
||||
+ if (strlen(txt_usb_mfg) > 511)
|
||||
+ make[511] = '\0';
|
||||
ptr = device_id + strlen(device_id);
|
||||
snprintf(ptr, sizeof(device_id) - (size_t)(ptr - device_id),
|
||||
"MFG:%s;", txt_usb_mfg);
|
||||
}
|
||||
if (txt_usb_mdl[0] != '\0') {
|
||||
strncpy(model, txt_usb_mdl, sizeof(model));
|
||||
+ if (strlen(txt_usb_mdl) > 255)
|
||||
+ model[255] = '\0';
|
||||
ptr = device_id + strlen(device_id);
|
||||
snprintf(ptr, sizeof(device_id) - (size_t)(ptr - device_id),
|
||||
"MDL:%s;", txt_usb_mdl);
|
||||
@@ -243,15 +247,22 @@ list_printers (int mode)
|
||||
*ptr == ')')
|
||||
*ptr = '\0';
|
||||
strncpy(model, txt_product + 1, sizeof(model));
|
||||
+ if ((strlen(txt_product) + 1) > 255)
|
||||
+ model[255] = '\0';
|
||||
} else
|
||||
strncpy(model, txt_product, sizeof(model));
|
||||
} else if (txt_ty[0] != '\0') {
|
||||
strncpy(model, txt_ty, sizeof(model));
|
||||
+ if (strlen(txt_ty) > 255)
|
||||
+ model[255] = '\0';
|
||||
if ((ptr = strchr(model, ',')) != NULL)
|
||||
*ptr = '\0';
|
||||
}
|
||||
- if (txt_pdl[0] != '\0')
|
||||
+ if (txt_pdl[0] != '\0') {
|
||||
strncpy(pdl, txt_pdl, sizeof(pdl));
|
||||
+ if (strlen(txt_pdl) > 255)
|
||||
+ pdl[255] = '\0';
|
||||
+ }
|
||||
|
||||
if (!device_id[0] && strcasecmp(model, "Unknown")) {
|
||||
if (make[0])
|
21
cups-filters-createall.patch
Normal file
21
cups-filters-createall.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff -up cups-filters-1.16.1/utils/cups-browsed.conf.in.createall cups-filters-1.16.1/utils/cups-browsed.conf.in
|
||||
--- cups-filters-1.16.1/utils/cups-browsed.conf.in.createall 2018-01-02 17:17:51.555941155 +0100
|
||||
+++ cups-filters-1.16.1/utils/cups-browsed.conf.in 2018-01-02 17:19:49.651048564 +0100
|
||||
@@ -359,7 +359,7 @@ BrowseRemoteProtocols @BROWSEREMOTEPROTO
|
||||
|
||||
# LocalQueueNamingRemoteCUPS DNS-SD
|
||||
# LocalQueueNamingRemoteCUPS MakeModel
|
||||
-# LocalQueueNamingRemoteCUPS RemoteName
|
||||
+LocalQueueNamingRemoteCUPS RemoteName
|
||||
# LocalQueueNamingIPPPrinter DNS-SD
|
||||
# LocalQueueNamingIPPPrinter MakeModel
|
||||
|
||||
@@ -453,7 +453,7 @@ BrowseRemoteProtocols @BROWSEREMOTEPROTO
|
||||
# CreateIPPPrinterQueues AppleRaster
|
||||
# CreateIPPPrinterQueues Everywhere AppleRaster
|
||||
# CreateIPPPrinterQueues Driverless
|
||||
-# CreateIPPPrinterQueues All
|
||||
+CreateIPPPrinterQueues All
|
||||
|
||||
|
||||
# If cups-browsed is automatically creating print queues for native
|
983
cups-filters.spec
Normal file
983
cups-filters.spec
Normal file
@ -0,0 +1,983 @@
|
||||
# we build CUPS also with relro
|
||||
%global _hardened_build 1
|
||||
|
||||
Summary: OpenPrinting CUPS filters and backends
|
||||
Name: cups-filters
|
||||
Version: 1.20.0
|
||||
Release: 27%{?dist}
|
||||
|
||||
# For a breakdown of the licensing, see COPYING file
|
||||
# GPLv2: filters: commandto*, imagetoraster, pdftops, rasterto*,
|
||||
# imagetopdf, pstopdf, texttopdf
|
||||
# backends: parallel, serial
|
||||
# GPLv2+: filters: gstopxl, textonly, texttops, imagetops, foomatic-rip
|
||||
# GPLv3: filters: bannertopdf
|
||||
# GPLv3+: filters: urftopdf, rastertopdf
|
||||
# LGPLv2+: utils: cups-browsed
|
||||
# MIT: filters: gstoraster, pdftoijs, pdftoopvp, pdftopdf, pdftoraster
|
||||
License: GPLv2 and GPLv2+ and GPLv3 and GPLv3+ and LGPLv2+ and MIT and BSD with advertising
|
||||
|
||||
Url: http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters
|
||||
Source0: http://www.openprinting.org/download/cups-filters/cups-filters-%{version}.tar.xz
|
||||
|
||||
Patch01: cups-filters-createall.patch
|
||||
Patch02: cups-filters-brftopagedbrf-install.patch
|
||||
# covscan fixes from upstream
|
||||
Patch03: cups-filters-covscan.patch
|
||||
# 1626996 - cups-filters: Sticky EOF behavior in glibc breaks descriptor concatenation using dup2
|
||||
Patch04: cups-filters-cleareof.patch
|
||||
# 1609264 - links in man page is wrong - it shows 'cups-browsed' in path, but we
|
||||
# have 'cups-filters' in path, because it is shipped in 'cups-filters' package
|
||||
# instead of 'cups-browsed' as Ubuntu does. I can repack the project later,
|
||||
# so cups-browsed would have separate sub package, so the link would be correct
|
||||
Patch05: cups-browsed.8.patch
|
||||
# change in ghostscript broke printing for several printer models, the fix is to use
|
||||
# different ghostscript option, taken from upstream
|
||||
# bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1712814
|
||||
Patch06: 0001-foomatic-rip-Changed-Ghostscript-call-to-count-pages.patch
|
||||
# rebuild and patch for FIPS compliance, backported from upstream (#1605101)
|
||||
Patch07: pdftopdf-nocrypt.patch
|
||||
# 1776270 - cups-browsed leaks sockets
|
||||
Patch08: cups-browsed-socket-leak.patch
|
||||
# 1677731 - error messages when using cups-browsed
|
||||
Patch09: cups-browsed-error-messages.patch
|
||||
# 1813229 - cups-browsed leaks memory
|
||||
Patch10: cups-browsed-memory-leaks.patch
|
||||
# 1891681 - [RHEL 8] foomatic-rip files up /var/spool/tmp with temporary files
|
||||
Patch11: foomatic-remove-tmpfile.patch
|
||||
# 1889798 - Rebuild cups-filters due to rebase of poppler
|
||||
Patch12: poppler-20.11.0.patch
|
||||
# 1894543 - Fix '.setfilladjust' usage after gs upgrade to 9.27
|
||||
Patch13: 0001-gstoraster-Use-.setfilladjust2-PostScript-command-fo.patch
|
||||
# 1931603 - cups-browsed doesn't save "-default" options
|
||||
Patch14: 0001-cups-browsed-Always-save-.-default-option-entries-fr.patch
|
||||
# 1972981 - cups-browsed doesn't renew DBus subscription in time and all printing comes to a halt
|
||||
Patch15: cups-browsed-renew.patch
|
||||
# 1981612 - [RHEL 8] pdftopdf doesn't handle "page-range=10-2147483647" correctly
|
||||
Patch16: 0001-libcupsfilters-Fix-page-range-like-10-in-pdftopdf-fi.patch
|
||||
|
||||
Requires: cups-filters-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
# gcc and gcc-c++ is not in buildroot by default
|
||||
|
||||
# gcc for backends (implicitclass, parallel, serial, backend error handling)
|
||||
# cupsfilters (colord, color manager...), filter (banners,
|
||||
# commandto*, braille, foomatic-rip, imagetoraster, imagetopdf, gstoraster e.g.),
|
||||
# fontembed, cups-browsed
|
||||
BuildRequires: gcc
|
||||
# gcc-c++ for pdftoopvp, pdftopdf
|
||||
BuildRequires: gcc-c++
|
||||
|
||||
BuildRequires: cups-devel
|
||||
BuildRequires: pkgconfig
|
||||
# pdftopdf
|
||||
BuildRequires: pkgconfig(libqpdf)
|
||||
# pdftops
|
||||
BuildRequires: poppler-utils
|
||||
# pdftoijs, pdftoopvp, pdftoraster, gstoraster
|
||||
BuildRequires: pkgconfig(poppler)
|
||||
BuildRequires: poppler-cpp-devel
|
||||
BuildRequires: libjpeg-devel
|
||||
BuildRequires: libtiff-devel
|
||||
BuildRequires: pkgconfig(libpng)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: ghostscript
|
||||
# libijs
|
||||
BuildRequires: pkgconfig(ijs)
|
||||
BuildRequires: pkgconfig(freetype2)
|
||||
BuildRequires: pkgconfig(fontconfig)
|
||||
BuildRequires: pkgconfig(lcms2)
|
||||
# cups-browsed
|
||||
BuildRequires: avahi-devel
|
||||
BuildRequires: pkgconfig(avahi-glib)
|
||||
BuildRequires: pkgconfig(glib-2.0)
|
||||
BuildRequires: systemd
|
||||
|
||||
# Make sure we get postscriptdriver tags.
|
||||
BuildRequires: python3-cups
|
||||
|
||||
# Testing font for test scripts.
|
||||
BuildRequires: dejavu-sans-fonts
|
||||
|
||||
# autogen.sh
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
|
||||
Requires: cups-filesystem
|
||||
# poppler required for banner printing and with ghostscript needed when project
|
||||
# is configured with --with-pdftops=hybrid
|
||||
Requires: poppler-utils
|
||||
# 1894543 - just to make sure our filter will work if there is a case when cups-filters
|
||||
# is updated alone and ghostscript isn't updated. This requirement will make sure we will
|
||||
# bring along a new ghostscript too.
|
||||
Requires: ghostscript%{?_isa} >= 0:9.27-1
|
||||
|
||||
# texttopdf
|
||||
Requires: liberation-mono-fonts
|
||||
|
||||
# pstopdf
|
||||
Requires: bc grep sed which
|
||||
|
||||
# cups-browsed
|
||||
# it needs cups.service for running
|
||||
Requires: cups
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
|
||||
# recommends avahi and cups-ipptool - it is needed for driverless support,
|
||||
# but it is useless for older devices and cups servers
|
||||
Recommends: avahi
|
||||
Recommends: cups-ipptool
|
||||
|
||||
# older installations can still have ghostscript-cups and foomatic-filters
|
||||
# installed, but they are replaced by cups-filters now. We need to obsolete
|
||||
# them to have them uninstalled (#1632268)
|
||||
# rpm complains about unversioned Obsoletes - use NVR bigger than is in RHEL7
|
||||
# to make the upgrade to RHEL8 work even if RHEL7 obsoleted packages
|
||||
# get an update
|
||||
Obsoletes: ghostscript-cups < 9.26-1
|
||||
Obsoletes: foomatic-filters < 4.0.10-1
|
||||
|
||||
%package libs
|
||||
Summary: OpenPrinting CUPS filters and backends - cupsfilters and fontembed libraries
|
||||
# LGPLv2: libcupsfilters
|
||||
# MIT: libfontembed
|
||||
License: LGPLv2 and MIT
|
||||
|
||||
%package devel
|
||||
Summary: OpenPrinting CUPS filters and backends - development environment
|
||||
License: LGPLv2 and MIT
|
||||
Requires: cups-filters-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description
|
||||
Contains backends, filters, and other software that was
|
||||
once part of the core CUPS distribution but is no longer maintained by
|
||||
Apple Inc. In addition it contains additional filters developed
|
||||
independently of Apple, especially filters for the PDF-centric printing
|
||||
workflow introduced by OpenPrinting.
|
||||
|
||||
%description libs
|
||||
This package provides cupsfilters and fontembed libraries.
|
||||
|
||||
%description devel
|
||||
This is the development package for OpenPrinting CUPS filters and backends.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%patch01 -p1 -b .createall
|
||||
# 1572450 - cupsd: Filter "brftopagedbrf" not found.
|
||||
%patch02 -p1 -b .brftopagedbrf-install
|
||||
# covscan fixes from upstream
|
||||
%patch03 -p1 -b .covscan
|
||||
# 1626996 - cups-filters: Sticky EOF behavior in glibc breaks descriptor concatenation using dup2
|
||||
%patch04 -p1 -b .cleareof
|
||||
# 1609264 - man pages: wrong links in man cups-browsed
|
||||
%patch05 -p1 -b .manpage
|
||||
# 1712814 - Removed option from Ghostscript causes breakage of printing by foomatic-rip filter
|
||||
%patch06 -p1 -b .foomatic-rip-crash
|
||||
# 1605101 - qpdf: should not re-implement crypto
|
||||
%patch07 -p1 -b .pdftopdf-nocrypt
|
||||
# 1776270 - cups-browsed leaks sockets
|
||||
%patch08 -p1 -b .cups-browsed-socket-leak
|
||||
# 1677731 - error messages when using cups-browsed
|
||||
%patch09 -p1 -b .cups-browsed-error-messages
|
||||
# 1813229 - cups-browsed leaks memory
|
||||
%patch10 -p1 -b .cups-browsed-memory-leak
|
||||
# 1891681 - [RHEL 8] foomatic-rip files up /var/spool/tmp with temporary files
|
||||
%patch11 -p1 -b .remove-tmpfile
|
||||
# 1889798 - Rebuild cups-filters due to rebase of poppler
|
||||
%patch12 -p1 -b .poppler2011
|
||||
# 1894543 - Fix '.setfilladjust' usage after gs upgrade to 9.27
|
||||
%patch13 -p1 -b .setfilladjust
|
||||
# 1931603 - cups-browsed doesn't save "-default" options
|
||||
%patch14 -p1 -b .cups-browsed-save-default-options
|
||||
# 1972981 - cups-browsed doesn't renew DBus subscription in time and all printing comes to a halt
|
||||
%patch15 -p1 -b .renew
|
||||
# 1981612 - [RHEL 8] pdftopdf doesn't handle "page-range=10-2147483647" correctly
|
||||
%patch16 -p1 -b .ranges
|
||||
|
||||
|
||||
%build
|
||||
# work-around Rpath
|
||||
./autogen.sh
|
||||
|
||||
# --with-pdftops=hybrid - use Poppler's pdftops instead of Ghostscript for
|
||||
# Brother, Minolta, and Konica Minolta to work around
|
||||
# bugs in the printer's PS interpreters
|
||||
# --with-rcdir=no - don't install SysV init script
|
||||
# --enable-auto-setup-driverless - enable automatic setup of IPP network printers
|
||||
# with driverless support
|
||||
# --enable-driverless - enable PPD generator for driverless printing in
|
||||
# /usr/lib/cups/driver, it is for manual setup of
|
||||
# driverless printers with printer setup tool
|
||||
# --disable-static - do not build static libraries (becuase of Fedora Packaging
|
||||
# Guidelines)
|
||||
# --enable-dbus - enable DBus Connection Manager's code
|
||||
# --disable-silent-rules - verbose build output
|
||||
# --disable-mutool - mupdf is retired in Fedora, use qpdf
|
||||
|
||||
%configure --disable-static \
|
||||
--disable-silent-rules \
|
||||
--with-pdftops=hybrid \
|
||||
--enable-dbus \
|
||||
--with-rcdir=no \
|
||||
--disable-mutool \
|
||||
--enable-driverless \
|
||||
--enable-auto-setup-driverless
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot}
|
||||
|
||||
# Don't ship libtool la files.
|
||||
rm -f %{buildroot}%{_libdir}/lib*.la
|
||||
|
||||
# Not sure what is this good for.
|
||||
rm -f %{buildroot}%{_bindir}/ttfread
|
||||
|
||||
rm -f %{buildroot}%{_pkgdocdir}/INSTALL
|
||||
mkdir -p %{buildroot}%{_pkgdocdir}/fontembed/
|
||||
cp -p fontembed/README %{buildroot}%{_pkgdocdir}/fontembed/
|
||||
|
||||
# systemd unit file
|
||||
mkdir -p %{buildroot}%{_unitdir}
|
||||
install -p -m 644 utils/cups-browsed.service %{buildroot}%{_unitdir}
|
||||
|
||||
# LSB3.2 requires /usr/bin/foomatic-rip,
|
||||
# create it temporarily as a relative symlink
|
||||
ln -sf %{_cups_serverbin}/filter/foomatic-rip %{buildroot}%{_bindir}/foomatic-rip
|
||||
|
||||
# Don't ship urftopdf for now (bug #1002947).
|
||||
rm -f %{buildroot}%{_cups_serverbin}/filter/urftopdf
|
||||
sed -i '/urftopdf/d' %{buildroot}%{_datadir}/cups/mime/cupsfilters.convs
|
||||
|
||||
# Don't ship pdftoopvp for now (bug #1027557).
|
||||
rm -f %{buildroot}%{_cups_serverbin}/filter/pdftoopvp
|
||||
rm -f %{buildroot}%{_sysconfdir}/fonts/conf.d/99pdftoopvp.conf
|
||||
|
||||
|
||||
%check
|
||||
make check
|
||||
|
||||
%post
|
||||
%systemd_post cups-browsed.service
|
||||
|
||||
%preun
|
||||
%systemd_preun cups-browsed.service
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart cups-browsed.service
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
||||
|
||||
%files
|
||||
%{_pkgdocdir}/README
|
||||
%{_pkgdocdir}/AUTHORS
|
||||
%{_pkgdocdir}/NEWS
|
||||
%config(noreplace) %{_sysconfdir}/cups/cups-browsed.conf
|
||||
%attr(0755,root,root) %{_cups_serverbin}/filter/*
|
||||
%attr(0755,root,root) %{_cups_serverbin}/backend/parallel
|
||||
# Serial backend needs to run as root (bug #212577#c4).
|
||||
%attr(0700,root,root) %{_cups_serverbin}/backend/serial
|
||||
%attr(0755,root,root) %{_cups_serverbin}/backend/implicitclass
|
||||
%attr(0755,root,root) %{_cups_serverbin}/backend/beh
|
||||
%attr(0755,root,root) %{_cups_serverbin}/backend/cups-brf
|
||||
%{_bindir}/foomatic-rip
|
||||
%{_bindir}/driverless
|
||||
%{_cups_serverbin}/backend/driverless
|
||||
%{_cups_serverbin}/driver/driverless
|
||||
%{_datadir}/cups/banners
|
||||
%{_datadir}/cups/braille
|
||||
%{_datadir}/cups/charsets
|
||||
%{_datadir}/cups/data/*
|
||||
# this needs to be in the main package because of cupsfilters.drv
|
||||
%{_datadir}/cups/ppdc/pcl.h
|
||||
%{_datadir}/cups/ppdc/braille.defs
|
||||
%{_datadir}/cups/ppdc/fr-braille.po
|
||||
%{_datadir}/cups/ppdc/imagemagick.defs
|
||||
%{_datadir}/cups/ppdc/index.defs
|
||||
%{_datadir}/cups/ppdc/liblouis.defs
|
||||
%{_datadir}/cups/ppdc/liblouis1.defs
|
||||
%{_datadir}/cups/ppdc/liblouis2.defs
|
||||
%{_datadir}/cups/ppdc/liblouis3.defs
|
||||
%{_datadir}/cups/ppdc/liblouis4.defs
|
||||
%{_datadir}/cups/ppdc/media-braille.defs
|
||||
%{_datadir}/cups/drv/cupsfilters.drv
|
||||
%{_datadir}/cups/drv/generic-brf.drv
|
||||
%{_datadir}/cups/drv/generic-ubrl.drv
|
||||
%{_datadir}/cups/drv/indexv3.drv
|
||||
%{_datadir}/cups/drv/indexv4.drv
|
||||
%{_datadir}/cups/mime/cupsfilters.types
|
||||
%{_datadir}/cups/mime/cupsfilters.convs
|
||||
%{_datadir}/cups/mime/cupsfilters-ghostscript.convs
|
||||
%{_datadir}/cups/mime/cupsfilters-poppler.convs
|
||||
%{_datadir}/cups/mime/braille.convs
|
||||
%{_datadir}/cups/mime/braille.types
|
||||
%{_datadir}/ppd/cupsfilters
|
||||
%{_sbindir}/cups-browsed
|
||||
%{_unitdir}/cups-browsed.service
|
||||
%{_mandir}/man8/cups-browsed.8.gz
|
||||
%{_mandir}/man5/cups-browsed.conf.5.gz
|
||||
%{_mandir}/man1/foomatic-rip.1.gz
|
||||
%{_mandir}/man1/driverless.1.gz
|
||||
|
||||
%files libs
|
||||
%dir %{_pkgdocdir}/
|
||||
%{_pkgdocdir}/COPYING
|
||||
%{_pkgdocdir}/fontembed/README
|
||||
%{_libdir}/libcupsfilters.so.*
|
||||
%{_libdir}/libfontembed.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/cupsfilters
|
||||
%{_includedir}/fontembed
|
||||
%{_datadir}/cups/ppdc/escp.h
|
||||
%{_libdir}/pkgconfig/libcupsfilters.pc
|
||||
%{_libdir}/pkgconfig/libfontembed.pc
|
||||
%{_libdir}/libcupsfilters.so
|
||||
%{_libdir}/libfontembed.so
|
||||
|
||||
%changelog
|
||||
* Tue Jul 13 2021 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-27
|
||||
- 1981612 - [RHEL 8] pdftopdf doesn't handle "page-range=10-2147483647" correctly
|
||||
|
||||
* Mon Jun 21 2021 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-26
|
||||
- 1972981 - cups-browsed doesn't renew DBus subscription in time and all printing comes to a halt
|
||||
|
||||
* Thu Jun 03 2021 Richard Lescak <zdohnal@redhat.com> - 1.20.0-25
|
||||
- 1931603 - cups-browsed doesn't save "*-default" options
|
||||
|
||||
* Mon Dec 14 2020 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-24
|
||||
- require the explicit gs version
|
||||
|
||||
* Tue Dec 08 2020 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-23
|
||||
- 1894543 - Fix '.setfilladjust' usage after gs upgrade to 9.27
|
||||
|
||||
* Wed Nov 18 2020 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-22
|
||||
- 1889798 - Rebuild cups-filters due to rebase of poppler
|
||||
|
||||
* Tue Oct 27 2020 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-21
|
||||
- 1891681 - [RHEL 8] foomatic-rip files up /var/spool/tmp with temporary files
|
||||
|
||||
* Wed Apr 08 2020 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-20
|
||||
- 1813229 - cups-browsed leaks memory
|
||||
|
||||
* Mon Apr 06 2020 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-20
|
||||
- 1677731 - error messages when using cups-browsed
|
||||
- 1776230 - missing dependency for ippfind
|
||||
|
||||
* Mon Nov 25 2019 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-19
|
||||
- 1776270 - cups-browsed leaks sockets
|
||||
|
||||
* Mon Sep 02 2019 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-18
|
||||
- 1605101 - qpdf: should not re-implement crypto
|
||||
|
||||
* Wed Aug 07 2019 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-17
|
||||
- 1738533 - rpm -V failed for /etc/cups/cups-browsed.conf
|
||||
|
||||
* Fri Jun 28 2019 Marek Kasik <mkasik@redhat.com> - 1.20.0-16
|
||||
- Rebuild due to soname bump in poppler-0.66.0-21
|
||||
- Resolves: #1715836
|
||||
|
||||
* Thu May 23 2019 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-15
|
||||
- 1712814 - Removed option from Ghostscript causes breakage of printing by foomatic-rip filter
|
||||
|
||||
* Mon Nov 12 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-14
|
||||
- 1609264 - man pages: wrong links in man cups-browsed
|
||||
|
||||
* Fri Sep 21 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-13
|
||||
- 1602470 - covscan fixes from upstream
|
||||
- 1632268 - cups-filters needs to obsolete ghostscript-cups and foomatic-filters
|
||||
- 1626996 - cups-filters: Sticky EOF behavior in glibc breaks descriptor concatenation using dup2
|
||||
|
||||
* Tue Jul 24 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-12
|
||||
- correcting license
|
||||
|
||||
* Thu Jul 12 2018 Marek Kasik <mkasik@redhat.com> - 1.20.0-11
|
||||
- Rebuild for poppler-0.66.0
|
||||
|
||||
* Tue Jun 12 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-10
|
||||
- requires ghostscript and poppler-utils
|
||||
|
||||
* Tue Jun 12 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-9
|
||||
- cups-browsed needs cups.service to run
|
||||
|
||||
* Fri Apr 27 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-8
|
||||
- 1572450 - cupsd: Filter "brftopagedbrf" not found.
|
||||
|
||||
* Thu Apr 05 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-7
|
||||
- dependency on poppler-utils is now only recommended
|
||||
|
||||
* Mon Feb 19 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-6
|
||||
- gcc and gcc-c++ is no longer in buildroot by default
|
||||
|
||||
* Wed Feb 14 2018 David Tardon <dtardon@redhat.com> - 1.20.0-5
|
||||
- rebuild for poppler 0.62.0
|
||||
|
||||
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.20.0-4
|
||||
- Escape macros in %%changelog
|
||||
|
||||
* Thu Feb 08 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-3
|
||||
- remove old stuff https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/MRWOMRZ6KPCV25EFHJ2O67BCCP3L4Y6N/
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Tue Jan 30 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.20.0-1
|
||||
- Rebase to 1.20.0
|
||||
|
||||
* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 1.19.0-2
|
||||
- Rebuilt for switch to libxcrypt
|
||||
|
||||
* Tue Jan 16 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.19.0-1
|
||||
- Rebase to 1.19.0
|
||||
|
||||
* Thu Jan 11 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.9-5
|
||||
- adding build dependency on ghostscript because of its package changes
|
||||
|
||||
* Tue Jan 02 2018 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.9-4
|
||||
- 1529680 - set CreateIPPPrintQueues to ALL and LocalRemoteCUPSQueueNaming to RemoteName
|
||||
|
||||
* Mon Nov 20 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.9-3
|
||||
- fixing patch for upstream issue 1413
|
||||
|
||||
* Wed Nov 08 2017 David Tardon <dtardon@redhat.com> - 1.17.9-2
|
||||
- rebuild for poppler 0.61.0
|
||||
|
||||
* Wed Oct 18 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.9-1
|
||||
- rebase to 1.17.9
|
||||
|
||||
* Mon Oct 09 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.8-4
|
||||
- removing Provides ghostscript-cups and foomatic-filters
|
||||
|
||||
* Fri Oct 06 2017 David Tardon <dtardon@redhat.com> - 1.17.8-3
|
||||
- rebuild for poppler 0.60.1
|
||||
|
||||
* Fri Oct 06 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.8-2
|
||||
- upstream 1413 - Propagation of location doesn't work
|
||||
|
||||
* Tue Oct 03 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.8-1
|
||||
- rebase to 1.17.8
|
||||
|
||||
* Tue Sep 19 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.7-1
|
||||
- rebase to 1.17.7
|
||||
|
||||
* Fri Sep 08 2017 David Tardon <dtardon@redhat.com> - 1.17.2-2
|
||||
- rebuild for poppler 0.59.0
|
||||
|
||||
* Wed Sep 06 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.17.2-1
|
||||
- rebase to 1.17.2
|
||||
|
||||
* Tue Aug 22 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.16.3-1
|
||||
- rebase to 1.16.3
|
||||
|
||||
* Mon Aug 14 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.16.1-1
|
||||
- rebase to 1.16.1
|
||||
|
||||
* Thu Aug 10 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.16.0-2
|
||||
- rebuilt for qpdf-libs
|
||||
|
||||
* Mon Aug 07 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.16.0-1
|
||||
- rebase to 1.16.0
|
||||
|
||||
* Thu Aug 03 2017 David Tardon <dtardon@redhat.com> - 1.14.1-5
|
||||
- rebuild for poppler 0.57.0
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Mon Jul 03 2017 Jonathan Wakely <jwakely@redhat.com> - 1.14.1-2
|
||||
- Rebuilt for Boost 1.64
|
||||
|
||||
* Fri Jun 30 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.14.1-1
|
||||
- rebase to 1.14.1
|
||||
|
||||
* Thu Jun 29 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.14.0-3
|
||||
- update python Requires/BuildRequires accordingly to Fedora Guidelines for Python (python-cups -> python3-cups)
|
||||
|
||||
* Wed May 31 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.14.0-2
|
||||
- removing BuildRequires: mupdf
|
||||
|
||||
* Wed May 17 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.14.0-1
|
||||
- rebase to 1.14.0
|
||||
|
||||
* Fri Apr 28 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.13.5-1
|
||||
- rebase to 1.13.5
|
||||
|
||||
* Tue Mar 28 2017 David Tardon <dtardon@redhat.com> - 1.13.4-2
|
||||
- rebuild for poppler 0.53.0
|
||||
|
||||
* Fri Feb 24 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.13.4-1
|
||||
- rebase to 1.13.4
|
||||
- 1426567 - Added queues are not marked as remote ones
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.3-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Fri Jan 27 2017 Jonathan Wakely <jwakely@redhat.com> - 1.13.3-3
|
||||
- Rebuilt for Boost 1.63
|
||||
|
||||
* Fri Jan 27 2017 Jonathan Wakely <jwakely@redhat.com> - 1.13.3-2
|
||||
- Rebuilt for Boost 1.63
|
||||
|
||||
* Thu Jan 19 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.13.3-1
|
||||
- rebase to 1.13.3
|
||||
|
||||
* Mon Jan 02 2017 Zdenek Dohnal <zdohnal@redhat.com> - 1.13.2-1
|
||||
- rebase to 1.13.2
|
||||
|
||||
* Mon Dec 19 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.13.1-1
|
||||
- rebase to 1.13.1
|
||||
|
||||
* Fri Dec 16 2016 David Tardon <dtardon@redhat.com> - 1.13.0-2
|
||||
- rebuild for poppler 0.50.0
|
||||
|
||||
* Mon Dec 12 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.13.0-1
|
||||
- rebase to 1.13.0
|
||||
|
||||
* Fri Dec 02 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.12.0-2
|
||||
- adding new sources
|
||||
|
||||
* Fri Dec 02 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.12.0-1
|
||||
- rebase to 1.12.0
|
||||
|
||||
* Wed Nov 23 2016 David Tardon <dtardon@redhat.com> - 1.11.6-2
|
||||
- rebuild for poppler 0.49.0
|
||||
|
||||
* Fri Nov 11 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.11.6-1
|
||||
- rebase to 1.11.6
|
||||
|
||||
* Mon Oct 31 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.11.5-1
|
||||
- rebase to 1.11.5
|
||||
|
||||
* Fri Oct 21 2016 Marek Kasik <mkasik@redhat.com> - 1.11.4-2
|
||||
- Rebuild for poppler-0.48.0
|
||||
|
||||
* Tue Sep 27 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.11.4-1
|
||||
- rebase to 1.11.4
|
||||
|
||||
* Tue Sep 20 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.11.3-1
|
||||
- rebase to 1.11.3
|
||||
|
||||
* Tue Aug 30 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.11.2-1
|
||||
- rebase to 1.11.2, adding cupsfilters-poppler.convs and cupsfilters-mupdf.convs into package
|
||||
|
||||
* Wed Aug 03 2016 Jiri Popelka <jpopelka@redhat.com> - 1.10.0-3
|
||||
- %%{_defaultdocdir}/cups-filters/ -> %%{_pkgdocdir}
|
||||
|
||||
* Mon Jul 18 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.10.0-2
|
||||
- adding new sources cups-filters-1.10.0
|
||||
|
||||
* Mon Jul 18 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.10.0-1
|
||||
- rebase 1.10.0, include missing ppd.h
|
||||
|
||||
* Mon Jul 18 2016 Marek Kasik <mkasik@redhat.com> - 1.9.0-2
|
||||
- Rebuild for poppler-0.45.0
|
||||
|
||||
* Fri Jun 10 2016 Jiri Popelka <jpopelka@redhat.com> - 1.9.0-1
|
||||
- 1.9.0
|
||||
|
||||
* Tue May 3 2016 Marek Kasik <mkasik@redhat.com> - 1.8.3-2
|
||||
- Rebuild for poppler-0.43.0
|
||||
|
||||
* Thu Mar 24 2016 Zdenek Dohnal <zdohnal@redhat.com> - 1.8.3-1
|
||||
- Update to 1.8.3, adding cupsfilters-ghostscript.convs to %%files
|
||||
|
||||
* Fri Feb 12 2016 Jiri Popelka <jpopelka@redhat.com> - 1.8.2-1
|
||||
- 1.8.2
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Fri Jan 22 2016 Marek Kasik <mkasik@redhat.com> - 1.8.1-2
|
||||
- Rebuild for poppler-0.40.0
|
||||
|
||||
* Fri Jan 22 2016 Jiri Popelka <jpopelka@redhat.com> - 1.8.1-1
|
||||
- 1.8.1
|
||||
|
||||
* Thu Jan 21 2016 Jiri Popelka <jpopelka@redhat.com> - 1.8.0-1
|
||||
- 1.8.0
|
||||
|
||||
* Tue Jan 19 2016 Jiri Popelka <jpopelka@redhat.com> - 1.7.0-1
|
||||
- 1.7.0
|
||||
|
||||
* Fri Jan 15 2016 Jonathan Wakely <jwakely@redhat.com> - 1.6.0-2
|
||||
- Rebuilt for Boost 1.60
|
||||
|
||||
* Thu Jan 14 2016 Jiri Popelka <jpopelka@redhat.com> - 1.6.0-1
|
||||
- 1.6.0
|
||||
|
||||
* Fri Dec 18 2015 Jiri Popelka <jpopelka@redhat.com> - 1.5.0-1
|
||||
- 1.5.0
|
||||
|
||||
* Tue Dec 15 2015 Jiri Popelka <jpopelka@redhat.com> - 1.4.0-1
|
||||
- 1.4.0
|
||||
|
||||
* Wed Dec 09 2015 Jiri Popelka <jpopelka@redhat.com> - 1.3.0-1
|
||||
- 1.3.0
|
||||
|
||||
* Fri Nov 27 2015 Jiri Popelka <jpopelka@redhat.com> - 1.2.0-1
|
||||
- 1.2.0
|
||||
|
||||
* Wed Nov 11 2015 Peter Robinson <pbrobinson@fedoraproject.org> 1.1.0-2
|
||||
- Rebuild (qpdf-6)
|
||||
|
||||
* Tue Oct 27 2015 Jiri Popelka <jpopelka@redhat.com> - 1.1.0-1
|
||||
- 1.1.0 (version numbering change: minor version = feature, revision = bugfix)
|
||||
|
||||
* Sun Sep 13 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.76-1
|
||||
- 1.0.76
|
||||
|
||||
* Tue Sep 08 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.75-1
|
||||
- 1.0.75
|
||||
|
||||
* Thu Aug 27 2015 Jonathan Wakely <jwakely@redhat.com> - 1.0.74-2
|
||||
- Rebuilt for Boost 1.59
|
||||
|
||||
* Wed Aug 26 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.74-1
|
||||
- 1.0.74
|
||||
|
||||
* Wed Aug 19 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.73-1
|
||||
- 1.0.73 - new implicitclass backend
|
||||
|
||||
* Fri Jul 24 2015 David Tardon <dtardon@redhat.com> - 1.0.71-3
|
||||
- rebuild for Boost 1.58 to fix deps
|
||||
|
||||
* Thu Jul 23 2015 Orion Poplawski <orion@cora.nwra.com> - 1.0.71-2
|
||||
- Add upstream patch for poppler 0.34 support
|
||||
|
||||
* Wed Jul 22 2015 Marek Kasik <mkasik@redhat.com> - 1.0.71-2
|
||||
- Rebuild (poppler-0.34.0)
|
||||
|
||||
* Fri Jul 03 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.71-1
|
||||
- 1.0.71
|
||||
|
||||
* Mon Jun 29 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.70-1
|
||||
- 1.0.70
|
||||
|
||||
* Mon Jun 22 2015 Tim Waugh <twaugh@redhat.com> - 1.0.69-3
|
||||
- Fixes for glib source handling (bug #1228555).
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.69-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Thu Jun 11 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.69-1
|
||||
- 1.0.69
|
||||
|
||||
* Fri Jun 5 2015 Marek Kasik <mkasik@redhat.com> - 1.0.68-2
|
||||
- Rebuild (poppler-0.33.0)
|
||||
|
||||
* Tue Apr 14 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.68-1
|
||||
- 1.0.68
|
||||
|
||||
* Wed Mar 11 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.67-1
|
||||
- 1.0.67
|
||||
|
||||
* Mon Mar 02 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.66-1
|
||||
- 1.0.66
|
||||
|
||||
* Mon Feb 16 2015 Jiri Popelka <jpopelka@redhat.com> - 1.0.65-1
|
||||
- 1.0.65
|
||||
|
||||
* Fri Jan 23 2015 Marek Kasik <mkasik@redhat.com> - 1.0.61-3
|
||||
- Rebuild (poppler-0.30.0)
|
||||
|
||||
* Thu Nov 27 2014 Marek Kasik <mkasik@redhat.com> - 1.0.61-2
|
||||
- Rebuild (poppler-0.28.1)
|
||||
|
||||
* Fri Oct 10 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.61-1
|
||||
- 1.0.61
|
||||
|
||||
* Tue Oct 07 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.60-1
|
||||
- 1.0.60
|
||||
|
||||
* Sun Sep 28 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.59-1
|
||||
- 1.0.59
|
||||
|
||||
* Thu Aug 21 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.58-1
|
||||
- 1.0.58
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.55-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Fri Aug 15 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.55-2
|
||||
- Use %%_defaultdocdir instead of %%doc
|
||||
|
||||
* Mon Jul 28 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.55-1
|
||||
- 1.0.55
|
||||
|
||||
* Fri Jun 13 2014 Tim Waugh <twaugh@redhat.com> - 1.0.54-4
|
||||
- Really fix execmem issue (bug #1079534).
|
||||
|
||||
* Wed Jun 11 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.54-3
|
||||
- Remove (F21) pdf-landscape.patch
|
||||
|
||||
* Wed Jun 11 2014 Tim Waugh <twaugh@redhat.com> - 1.0.54-2
|
||||
- Fix build issue (bug #1106101).
|
||||
- Don't use grep's -P switch in pstopdf as it needs execmem (bug #1079534).
|
||||
- Return work-around patch for bug #768811.
|
||||
|
||||
* Mon Jun 09 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.54-1
|
||||
- 1.0.54
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.53-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Tue Jun 03 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.53-3
|
||||
- Remove BuildRequires pkgconfig(lcms). pkgconfig(lcms2) is enough.
|
||||
|
||||
* Tue May 13 2014 Marek Kasik <mkasik@redhat.com> - 1.0.53-2
|
||||
- Rebuild (poppler-0.26.0)
|
||||
|
||||
* Mon Apr 28 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.53-1
|
||||
- 1.0.53
|
||||
|
||||
* Wed Apr 23 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.52-2
|
||||
- Remove pdftoopvp and urftopdf in %%install instead of not building them.
|
||||
|
||||
* Tue Apr 08 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.52-1
|
||||
- 1.0.52
|
||||
|
||||
* Wed Apr 02 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.51-1
|
||||
- 1.0.51 (#1083327)
|
||||
|
||||
* Thu Mar 27 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.50-1
|
||||
- 1.0.50
|
||||
|
||||
* Mon Mar 24 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.49-1
|
||||
- 1.0.49
|
||||
|
||||
* Wed Mar 12 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.48-1
|
||||
- 1.0.48
|
||||
|
||||
* Tue Mar 11 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.47-2
|
||||
- Don't ship pdftoopvp (#1027557) and urftopdf (#1002947).
|
||||
|
||||
* Tue Mar 11 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.47-1
|
||||
- 1.0.47: CVE-2013-6473 CVE-2013-6476 CVE-2013-6474 CVE-2013-6475 (#1074840)
|
||||
|
||||
* Mon Mar 10 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.46-3
|
||||
- BuildRequires: pkgconfig(foo) instead of foo-devel
|
||||
|
||||
* Tue Mar 4 2014 Tim Waugh <twaugh@redhat.com> - 1.0.46-2
|
||||
- The texttopdf filter requires a TrueType monospaced font
|
||||
(bug #1070729).
|
||||
|
||||
* Thu Feb 20 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.46-1
|
||||
- 1.0.46
|
||||
|
||||
* Fri Feb 14 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.45-1
|
||||
- 1.0.45
|
||||
|
||||
* Mon Jan 20 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.44-1
|
||||
- 1.0.44
|
||||
|
||||
* Tue Jan 14 2014 Jiri Popelka <jpopelka@redhat.com> - 1.0.43-2
|
||||
- add /usr/bin/foomatic-rip symlink, due to LSB3.2 (#1052452)
|
||||
|
||||
* Fri Dec 20 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.43-1
|
||||
- 1.0.43: upstream fix for bug #768811 (pdf-landscape)
|
||||
|
||||
* Sat Nov 30 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.42-1
|
||||
- 1.0.42: includes foomatic-rip (obsoletes foomatic-filters package)
|
||||
|
||||
* Tue Nov 19 2013 Tim Waugh <twaugh@redhat.com> - 1.0.41-4
|
||||
- Adjust filter costs so application/vnd.adobe-read-postscript input
|
||||
doesn't go via pstotiff (bug #1008166).
|
||||
|
||||
* Thu Nov 14 2013 Jaromír Končický <jkoncick@redhat.com> - 1.0.41-3
|
||||
- Fix memory leaks in cups-browsed (bug #1027317).
|
||||
|
||||
* Wed Nov 6 2013 Tim Waugh <twaugh@redhat.com> - 1.0.41-2
|
||||
- Include dbus so that colord support works (bug #1026928).
|
||||
|
||||
* Wed Oct 30 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.41-1
|
||||
- 1.0.41 - PPD-less printing support
|
||||
|
||||
* Mon Oct 21 2013 Tim Waugh <twaugh@redhat.com> - 1.0.40-4
|
||||
- Fix socket leaks in the BrowsePoll code (bug #1021512).
|
||||
|
||||
* Wed Oct 16 2013 Tim Waugh <twaugh@redhat.com> - 1.0.40-3
|
||||
- Ship the gstoraster MIME conversion rule now we provide that filter
|
||||
(bug #1019261).
|
||||
|
||||
* Fri Oct 11 2013 Tim Waugh <twaugh@redhat.com> - 1.0.40-2
|
||||
- Fix PDF landscape printing (bug #768811).
|
||||
|
||||
* Fri Oct 11 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.40-1
|
||||
- 1.0.40
|
||||
- Use new "hybrid" pdftops renderer.
|
||||
|
||||
* Thu Oct 03 2013 Jaromír Končický <jkoncick@redhat.com> - 1.0.39-1
|
||||
- 1.0.39
|
||||
- Removed obsolete patches "pdf-landscape" and "browsepoll-notifications"
|
||||
|
||||
* Tue Oct 1 2013 Tim Waugh <twaugh@redhat.com> - 1.0.38-4
|
||||
- Use IPP notifications for BrowsePoll when possible (bug #975241).
|
||||
|
||||
* Tue Oct 1 2013 Tim Waugh <twaugh@redhat.com> - 1.0.38-3
|
||||
- Fixes for some printf-type format mismatches (bug #1014093).
|
||||
|
||||
* Tue Sep 17 2013 Tim Waugh <twaugh@redhat.com> - 1.0.38-2
|
||||
- Fix landscape printing for PDFs (bug #768811).
|
||||
|
||||
* Wed Sep 04 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.38-1
|
||||
- 1.0.38
|
||||
|
||||
* Thu Aug 29 2013 Jaromír Končický <jkoncick@redhat.com> - 1.0.37-1
|
||||
- 1.0.37.
|
||||
|
||||
* Tue Aug 27 2013 Jaromír Končický <jkoncick@redhat.com> - 1.0.36-5
|
||||
- Added build dependency - font required for running tests
|
||||
|
||||
* Tue Aug 27 2013 Jaromír Končický <jkoncick@redhat.com> - 1.0.36-4
|
||||
- Added checking phase (make check)
|
||||
|
||||
* Wed Aug 21 2013 Tim Waugh <twaugh@redhat.com> - 1.0.36-3
|
||||
- Upstream patch to re-work filter costs (bug #998977). No longer need
|
||||
text filter costs patch as paps gets used by default now if
|
||||
installed.
|
||||
|
||||
* Mon Aug 19 2013 Marek Kasik <mkasik@redhat.com> - 1.0.36-2
|
||||
- Rebuild (poppler-0.24.0)
|
||||
|
||||
* Tue Aug 13 2013 Tim Waugh <twaugh@redhat.com> - 1.0.36-1
|
||||
- 1.0.36.
|
||||
|
||||
* Tue Aug 13 2013 Tim Waugh <twaugh@redhat.com> - 1.0.35-7
|
||||
- Upstream patch to move in filters from ghostscript.
|
||||
|
||||
* Tue Jul 30 2013 Tim Waugh <twaugh@redhat.com> - 1.0.35-6
|
||||
- Set cost for text filters to 200 so that the paps filter gets
|
||||
preference for the time being (bug #988909).
|
||||
|
||||
* Wed Jul 24 2013 Tim Waugh <twaugh@redhat.com> - 1.0.35-5
|
||||
- Handle page-label when printing n-up as well.
|
||||
|
||||
* Tue Jul 23 2013 Tim Waugh <twaugh@redhat.com> - 1.0.35-4
|
||||
- Added support for page-label (bug #987515).
|
||||
|
||||
* Thu Jul 11 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.35-3
|
||||
- Rebuild (qpdf-5.0.0)
|
||||
|
||||
* Mon Jul 01 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.35-2
|
||||
- add cups-browsed(8) and cups-browsed.conf(5)
|
||||
- don't reverse lookup IP address in URI (#975822)
|
||||
|
||||
* Wed Jun 26 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.35-1
|
||||
- 1.0.35
|
||||
|
||||
* Mon Jun 24 2013 Marek Kasik <mkasik@redhat.com> - 1.0.34-9
|
||||
- Rebuild (poppler-0.22.5)
|
||||
|
||||
* Wed Jun 19 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-8
|
||||
- fix the note we add in cups-browsed.conf
|
||||
|
||||
* Wed Jun 12 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-7
|
||||
- Obsolete cups-php (#971741)
|
||||
|
||||
* Wed Jun 05 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-6
|
||||
- one more cups-browsed leak fixed (#959682)
|
||||
|
||||
* Wed Jun 05 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-5
|
||||
- perl is actually not required by pstopdf, because the calling is in dead code
|
||||
|
||||
* Mon Jun 03 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-4
|
||||
- fix resource leaks and other problems found by Coverity & Valgrind (#959682)
|
||||
|
||||
* Wed May 15 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-3
|
||||
- ship ppdc/pcl.h because of cupsfilters.drv
|
||||
|
||||
* Tue May 07 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-2
|
||||
- pstopdf requires bc (#960315)
|
||||
|
||||
* Thu Apr 11 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.34-1
|
||||
- 1.0.34
|
||||
|
||||
* Fri Apr 05 2013 Fridolin Pokorny <fpokorny@redhat.com> - 1.0.33-1
|
||||
- 1.0.33
|
||||
- removed cups-filters-1.0.32-null-info.patch, accepted by upstream
|
||||
|
||||
* Thu Apr 04 2013 Fridolin Pokorny <fpokorny@redhat.com> - 1.0.32-2
|
||||
- fixed segfault when info is NULL
|
||||
|
||||
* Thu Apr 04 2013 Fridolin Pokorny <fpokorny@redhat.com> - 1.0.32-1
|
||||
- 1.0.32
|
||||
|
||||
* Fri Mar 29 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.31-3
|
||||
- add note to cups-browsed.conf
|
||||
|
||||
* Thu Mar 28 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.31-2
|
||||
- check cupsd.conf existence prior to grepping it (#928816)
|
||||
|
||||
* Fri Mar 22 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.31-1
|
||||
- 1.0.31
|
||||
|
||||
* Tue Mar 19 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.30-4
|
||||
- revert previous change
|
||||
|
||||
* Wed Mar 13 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.30-3
|
||||
- don't ship banners for now (#919489)
|
||||
|
||||
* Tue Mar 12 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.30-2
|
||||
- move BrowsePoll from cupsd.conf to cups-browsed.conf in %%post
|
||||
|
||||
* Fri Mar 08 2013 Jiri Popelka <jpopelka@redhat.com> - 1.0.30-1
|
||||
- 1.0.30: CUPS browsing and broadcasting in cups-browsed
|
||||
|
||||
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.29-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Sat Jan 19 2013 Rex Dieter <rdieter@fedoraproject.org> 1.0.29-3
|
||||
- backport upstream buildfix for poppler-0.22.x
|
||||
|
||||
* Fri Jan 18 2013 Adam Tkac <atkac redhat com> - 1.0.29-2
|
||||
- rebuild due to "jpeg8-ABI" feature drop
|
||||
|
||||
* Thu Jan 03 2013 Jiri Popelka <jpopelka@redhat.com> 1.0.29-1
|
||||
- 1.0.29
|
||||
|
||||
* Wed Jan 02 2013 Jiri Popelka <jpopelka@redhat.com> 1.0.28-1
|
||||
- 1.0.28: cups-browsed daemon and service
|
||||
|
||||
* Thu Nov 29 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.25-1
|
||||
- 1.0.25
|
||||
|
||||
* Fri Sep 07 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.24-1
|
||||
- 1.0.24
|
||||
|
||||
* Wed Aug 22 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.23-1
|
||||
- 1.0.23: old pdftopdf removed
|
||||
|
||||
* Tue Aug 21 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.22-1
|
||||
- 1.0.22: new pdftopdf (uses qpdf instead of poppler)
|
||||
|
||||
* Wed Aug 08 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.20-4
|
||||
- rebuild
|
||||
|
||||
* Thu Aug 02 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.20-3
|
||||
- commented multiple licensing breakdown (#832130)
|
||||
- verbose build output
|
||||
|
||||
* Thu Aug 02 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.20-2
|
||||
- BuildRequires: poppler-cpp-devel (to build against poppler-0.20)
|
||||
|
||||
* Mon Jul 23 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.20-1
|
||||
- 1.0.20
|
||||
|
||||
* Tue Jul 17 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.19-1
|
||||
- 1.0.19
|
||||
|
||||
* Wed May 30 2012 Jiri Popelka <jpopelka@redhat.com> 1.0.18-1
|
||||
- initial spec file
|
17
foomatic-remove-tmpfile.patch
Normal file
17
foomatic-remove-tmpfile.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff --git a/filter/foomatic-rip/foomaticrip.c b/filter/foomatic-rip/foomaticrip.c
|
||||
index 7dc2426..146125f 100644
|
||||
--- a/filter/foomatic-rip/foomaticrip.c
|
||||
+++ b/filter/foomatic-rip/foomaticrip.c
|
||||
@@ -672,6 +672,12 @@ int print_file(const char *filename, int convert)
|
||||
if (out != NULL)
|
||||
fclose(out);
|
||||
|
||||
+ // Delete temp file if we created one
|
||||
+ if ( *tmpfilename ) {
|
||||
+ _log("Removing temporary file %s\n", tmpfilename);
|
||||
+ unlink(tmpfilename);
|
||||
+ }
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
20
pdftopdf-nocrypt.patch
Normal file
20
pdftopdf-nocrypt.patch
Normal file
@ -0,0 +1,20 @@
|
||||
diff --git a/filter/pdftopdf/qpdf_pdftopdf_processor.cc b/filter/pdftopdf/qpdf_pdftopdf_processor.cc
|
||||
index 73e4f06..0752a99 100644
|
||||
--- a/filter/pdftopdf/qpdf_pdftopdf_processor.cc
|
||||
+++ b/filter/pdftopdf/qpdf_pdftopdf_processor.cc
|
||||
@@ -623,6 +623,7 @@ void QPDF_PDFTOPDF_Processor::emitFile(FILE *f,ArgOwnership take) // {{{
|
||||
if (!extraheader.empty()) {
|
||||
out.setExtraHeaderText(extraheader);
|
||||
}
|
||||
+ out.setPreserveEncryption(false);
|
||||
out.write();
|
||||
}
|
||||
// }}}
|
||||
@@ -642,6 +643,7 @@ void QPDF_PDFTOPDF_Processor::emitFilename(const char *name) // {{{
|
||||
if (!extraheader.empty()) {
|
||||
out.setExtraHeaderText(extraheader);
|
||||
}
|
||||
+ out.setPreserveEncryption(false);
|
||||
out.write();
|
||||
}
|
||||
// }}}
|
459
poppler-20.11.0.patch
Normal file
459
poppler-20.11.0.patch
Normal file
@ -0,0 +1,459 @@
|
||||
--- cups-filters-1.20.0/filter/pdf.cxx
|
||||
+++ cups-filters-1.20.0/filter/pdf.cxx
|
||||
@@ -87,7 +87,11 @@ static EMB_PARAMS *Font;
|
||||
extern "C" pdf_t * pdf_load_template(const char *filename)
|
||||
{
|
||||
/* Init poppler */
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 83
|
||||
+ globalParams.reset(new GlobalParams());
|
||||
+#else
|
||||
globalParams = new GlobalParams();
|
||||
+#endif
|
||||
|
||||
PDFDoc *doc = new PDFDoc(new GooString(filename));
|
||||
|
||||
@@ -136,7 +140,7 @@ extern "C" void pdf_prepend_stream(pdf_t
|
||||
#endif
|
||||
if (!pageobj.isDict() ||
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- (contents = pageobj.dictLookupNF("Contents")).isNull()
|
||||
+ (contents = pageobj.dictLookupNF("Contents").copy()).isNull()
|
||||
#else
|
||||
!pageobj.dictLookupNF("Contents", &contents)
|
||||
#endif
|
||||
@@ -166,11 +170,15 @@ extern "C" void pdf_prepend_stream(pdf_t
|
||||
#endif
|
||||
|
||||
r = xref->addIndirectObject(&stream);
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ streamrefobj = Object(r);
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
streamrefobj = Object(r.num, r.gen);
|
||||
#else
|
||||
streamrefobj.initRef(r.num, r.gen);
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
array = Object(new Array(xref));
|
||||
@@ -182,7 +190,7 @@ extern "C" void pdf_prepend_stream(pdf_t
|
||||
|
||||
if (contents.isStream()) {
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- contents = pageobj.dictLookupNF("Contents"); // streams must be indirect, i.e. not fetch()-ed
|
||||
+ contents = pageobj.dictLookupNF("Contents").copy(); // streams must be indirect, i.e. not fetch()-ed
|
||||
array.arrayAdd(std::move(contents));
|
||||
#else
|
||||
pageobj.dictLookupNF("Contents", &contents); // streams must be indirect, i.e. not fetch()-ed
|
||||
@@ -194,7 +202,7 @@ extern "C" void pdf_prepend_stream(pdf_t
|
||||
Object obj;
|
||||
for (i = 0; i < len; i++) {
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- obj = contents.arrayGetNF(i);
|
||||
+ obj = contents.arrayGetNF(i).copy();
|
||||
array.arrayAdd(std::move(obj));
|
||||
#else
|
||||
contents.arrayGetNF(i, &obj);
|
||||
@@ -258,7 +266,7 @@ static Object * get_resource_dict(XRef *
|
||||
|
||||
/* TODO resource dict can also be inherited */
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- res = pagedict->lookupNF("Resources");
|
||||
+ res = pagedict->lookupNF("Resources").copy();
|
||||
if (res.isNull())
|
||||
#else
|
||||
if (!pagedict->lookupNF("Resources", &res))
|
||||
@@ -331,7 +339,7 @@ extern "C" void pdf_add_type1_font(pdf_t
|
||||
xref->addIndirectObject(&font);
|
||||
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- fonts = resdict.dictLookupNF("Font");
|
||||
+ fonts = resdict.dictLookupNF("Font").copy();
|
||||
#else
|
||||
resdict.dictLookupNF("Font", &fonts);
|
||||
#endif
|
||||
@@ -540,7 +548,7 @@ extern "C" void pdf_duplicate_page (pdf_
|
||||
}
|
||||
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- parentref = page.dictLookupNF("Parent");
|
||||
+ parentref = page.dictLookupNF("Parent").copy();
|
||||
parent = parentref.fetch(xref);
|
||||
#else
|
||||
page.dictLookupNF("Parent", &parentref);
|
||||
@@ -568,6 +576,9 @@ extern "C" void pdf_duplicate_page (pdf_
|
||||
// the pages tree (not supported by major pdf implementations).
|
||||
for (i = 1; i < count; i++) {
|
||||
Ref r = xref->addIndirectObject(&page);
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ kids.arrayAdd(Object(r));
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
kids.arrayAdd(Object(r.num, r.gen));
|
||||
#else
|
||||
@@ -575,6 +586,7 @@ extern "C" void pdf_duplicate_page (pdf_
|
||||
kids.arrayAdd(&ref);
|
||||
ref.free();
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
@@ -734,7 +746,7 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
}
|
||||
|
||||
FormField *ff = fm_text->getField();
|
||||
- GooString *field_name;
|
||||
+ const GooString *field_name;
|
||||
field_name = ff->getFullyQualifiedName();
|
||||
if ( ! field_name )
|
||||
field_name = ff->getPartialName();
|
||||
@@ -743,7 +755,11 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
continue;
|
||||
}
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 72
|
||||
+ const char *name = field_name->c_str();
|
||||
+#else
|
||||
const char *name = field_name->getCString();
|
||||
+#endif
|
||||
const char *fill_with = lookup_opt(opt, name);
|
||||
if ( ! fill_with ) {
|
||||
fprintf(stderr, "Lack information for widget: %s.\n", name);
|
||||
@@ -831,6 +847,9 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
appearance_stream_dic.dictSet("Type", name_object("XObject"));
|
||||
appearance_stream_dic.dictSet("Subtype", name_object("Form"));
|
||||
appearance_stream_dic.dictSet("FormType", int_object(1));
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ appearance_stream_dic.dictSet("Resources", Object(resref));
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
appearance_stream_dic.dictSet("Resources", Object(resref.num, resref.gen));
|
||||
#else
|
||||
@@ -838,6 +857,7 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
obj_ref_x.initRef(resref.num, resref.gen);
|
||||
appearance_stream_dic.dictSet("Resources", &obj_ref_x);
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
/* BBox array: TODO. currently out of the head. */
|
||||
Object array;
|
||||
@@ -851,8 +871,13 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
appearance_stream_dic.dictSet("BBox", std::move(array));
|
||||
appearance_stream_dic.dictSet("Length", Object(appearance_stream->getLength()));
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 72
|
||||
+ MemStream *mem_stream = new MemStream(appearance_stream->c_str(),
|
||||
+ 0, appearance_stream->getLength(), std::move(appearance_stream_dic));
|
||||
+#else
|
||||
MemStream *mem_stream = new MemStream(appearance_stream->getCString(),
|
||||
0, appearance_stream->getLength(), std::move(appearance_stream_dic));
|
||||
+#endif
|
||||
|
||||
/* Make obj stream */
|
||||
Object stream = Object(static_cast<Stream *>(mem_stream));
|
||||
@@ -860,8 +885,11 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
Ref r = xref->addIndirectObject(&stream);
|
||||
|
||||
/* Update Xref table */
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ Object obj_ref = Object(r);
|
||||
+#else
|
||||
Object obj_ref = Object(r.num, r.gen);
|
||||
-
|
||||
+#endif
|
||||
/*
|
||||
* Fill Annotation's appearance streams dic /AP
|
||||
* See: 8.4.4 Appearance Streams
|
||||
@@ -884,8 +912,13 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
appearance_stream_dic.dictSet("BBox", &array);
|
||||
appearance_stream_dic.dictSet("Length", int_object(appearance_stream->getLength()));
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 72
|
||||
+ MemStream *mem_stream = new MemStream(appearance_stream->c_str(),
|
||||
+ 0, appearance_stream->getLength(), &appearance_stream_dic);
|
||||
+#else
|
||||
MemStream *mem_stream = new MemStream(appearance_stream->getCString(),
|
||||
0, appearance_stream->getLength(), &appearance_stream_dic);
|
||||
+#endif
|
||||
|
||||
/* Make obj stream */
|
||||
Object stream;
|
||||
@@ -925,10 +958,10 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
*/
|
||||
Object *obj_form = catalog->getAcroForm();
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- obj_form->dictSet("NeedAppearances", Object(gFalse));
|
||||
+ obj_form->dictSet("NeedAppearances", Object(false));
|
||||
#else
|
||||
Object obj1;
|
||||
- obj1.initBool(gFalse);
|
||||
+ obj1.initBool(false);
|
||||
obj_form->dictSet("NeedAppearances", &obj1);
|
||||
#endif
|
||||
|
||||
@@ -948,7 +981,11 @@ extern "C" int pdf_fill_form(pdf_t *doc,
|
||||
catRef.gen = xref->getRootGen();
|
||||
catRef.num = xref->getRootNum();
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ catObj.dictSet("AcroForm", Object(ref_form));
|
||||
+#else
|
||||
catObj.dictSet("AcroForm", Object(ref_form.num, ref_form.gen));
|
||||
+#endif
|
||||
xref->setModifiedObject(&catObj, catRef);
|
||||
#else
|
||||
Object obj2;
|
||||
@@ -1020,12 +1057,22 @@ static int pdf_embed_font(pdf_t *doc,
|
||||
|
||||
/* Create memory stream font. Add it to font dic. */
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 72
|
||||
+ MemStream *mem_stream = new MemStream(font_stream->c_str(),
|
||||
+ 0, outlen, std::move(f_dic));
|
||||
+#else
|
||||
MemStream *mem_stream = new MemStream(font_stream->getCString(),
|
||||
0, outlen, std::move(f_dic));
|
||||
+#endif
|
||||
Object stream = Object(static_cast<Stream *>(mem_stream));
|
||||
#else
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 72
|
||||
+ MemStream *mem_stream = new MemStream(font_stream->c_str(),
|
||||
+ 0, outlen, &f_dic);
|
||||
+#else
|
||||
MemStream *mem_stream = new MemStream(font_stream->getCString(),
|
||||
0, outlen, &f_dic);
|
||||
+#endif
|
||||
|
||||
/* Make obj stream */
|
||||
Object stream;
|
||||
@@ -1066,7 +1113,7 @@ static int pdf_embed_font(pdf_t *doc,
|
||||
Object fonts;
|
||||
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
- fonts = resdict.dictLookupNF("Font");
|
||||
+ fonts = resdict.dictLookupNF("Font").copy();
|
||||
#else
|
||||
resdict.dictLookupNF("Font", &fonts);
|
||||
#endif
|
||||
@@ -1074,7 +1121,7 @@ static int pdf_embed_font(pdf_t *doc,
|
||||
/* Create new one, if doesn't exists */
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
resdict.dictSet("Font", Object(new Dict(xref)));
|
||||
- fonts = resdict.dictLookupNF("Font");
|
||||
+ fonts = resdict.dictLookupNF("Font").copy();
|
||||
#else
|
||||
fonts.initDict(xref);
|
||||
resdict.dictSet("Font", &fonts);
|
||||
@@ -1108,11 +1155,15 @@ static int pdf_embed_font(pdf_t *doc,
|
||||
|
||||
/* r - cid resource dic */
|
||||
Object font_res_obj_ref;
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ font_res_obj_ref = Object(r);
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
font_res_obj_ref = Object(r.num, r.gen);
|
||||
#else
|
||||
font_res_obj_ref.initRef(r.num, r.gen);
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
Object *fonts_dic;
|
||||
Object dereferenced_obj;
|
||||
@@ -1440,6 +1491,9 @@ static Object *make_fontdescriptor_dic(
|
||||
#endif
|
||||
}
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ dic->dictSet(emb_pdf_get_fontfile_key(emb), Object(fontfile_obj_ref));
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
dic->dictSet(emb_pdf_get_fontfile_key(emb), Object(fontfile_obj_ref.num, fontfile_obj_ref.gen));
|
||||
#else
|
||||
@@ -1447,6 +1501,7 @@ static Object *make_fontdescriptor_dic(
|
||||
ref_obj.initRef(fontfile_obj_ref.num, fontfile_obj_ref.gen);
|
||||
dic->dictSet(emb_pdf_get_fontfile_key(emb), &ref_obj);
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
return dic;
|
||||
}
|
||||
@@ -1480,6 +1535,9 @@ static Object *make_font_dic(
|
||||
"BaseFont",
|
||||
name_object(copyString(emb_pdf_escape_name(fdes->fontname,-1))));
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ dic->dictSet("FontDescriptor", Object(fontdescriptor_obj_ref));
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
dic->dictSet("FontDescriptor", Object(fontdescriptor_obj_ref.num, fontdescriptor_obj_ref.gen));
|
||||
#else
|
||||
@@ -1487,6 +1545,7 @@ static Object *make_font_dic(
|
||||
ref_obj.initRef(fontdescriptor_obj_ref.num, fontdescriptor_obj_ref.gen);
|
||||
dic->dictSet("FontDescriptor", &ref_obj);
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
if ( emb->plan & EMB_A_MULTIBYTE ) {
|
||||
assert(fwid->warray);
|
||||
@@ -1573,17 +1632,26 @@ static Object *make_cidfont_dic(
|
||||
basefont->append(addenc);
|
||||
basefont->append((addenc[0])?encoding:"");
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 72
|
||||
+ dic->dictSet("BaseFont",
|
||||
+ name_object(copyString(basefont->c_str())));
|
||||
+#else
|
||||
dic->dictSet("BaseFont",
|
||||
name_object(copyString(basefont->getCString())));
|
||||
+#endif
|
||||
|
||||
dic->dictSet("Encoding", name_object(copyString(encoding)));
|
||||
|
||||
Object obj;
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 75
|
||||
+ obj = Object(fontdescriptor_obj_ref);
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
obj = Object(fontdescriptor_obj_ref.num, fontdescriptor_obj_ref.gen);
|
||||
#else
|
||||
obj.initRef(fontdescriptor_obj_ref.num, fontdescriptor_obj_ref.gen);
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
Object array;
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 58
|
||||
--- cups-filters-1.20.0/filter/pdftoraster.cxx
|
||||
+++ cups-filters-1.20.0/filter/pdftoraster.cxx
|
||||
@@ -282,8 +282,13 @@ cmsHPROFILE sgray_profile()
|
||||
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 19
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 23
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 85
|
||||
+void CDECL myErrorFun(ErrorCategory category,
|
||||
+ Goffset pos, const char *msg)
|
||||
+#else
|
||||
void CDECL myErrorFun(void *data, ErrorCategory category,
|
||||
Goffset pos, char *msg)
|
||||
+#endif
|
||||
#else
|
||||
void CDECL myErrorFun(void *data, ErrorCategory category,
|
||||
int pos, char *msg)
|
||||
@@ -412,9 +417,9 @@ static GBool getColorProfilePath(ppd_fil
|
||||
path->append("/profiles/");
|
||||
}
|
||||
path->append(attr->value);
|
||||
- return gTrue;
|
||||
+ return true;
|
||||
}
|
||||
- return gFalse;
|
||||
+ return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1686,7 +1691,7 @@ static void outPage(PDFDoc *doc, Catalog
|
||||
{
|
||||
SplashBitmap *bitmap;
|
||||
Page *page = catalog->getPage(pageNo);
|
||||
- PDFRectangle *mediaBox = page->getMediaBox();
|
||||
+ const PDFRectangle *mediaBox = page->getMediaBox();
|
||||
int rotate = page->getRotate();
|
||||
double paperdimensions[2], /* Physical size of the paper */
|
||||
margins[4]; /* Physical margins of print */
|
||||
@@ -1814,7 +1819,7 @@ static void outPage(PDFDoc *doc, Catalog
|
||||
|
||||
doc->displayPage(out,pageNo,header.HWResolution[0],
|
||||
header.HWResolution[1],(landscape == 0 ? 0 : 90),
|
||||
- gTrue,gTrue,gTrue);
|
||||
+ true,true,true);
|
||||
bitmap = out->getBitmap();
|
||||
bitmapoffset[0] = margins[0] / 72.0 * header.HWResolution[0];
|
||||
bitmapoffset[1] = margins[3] / 72.0 * header.HWResolution[1];
|
||||
@@ -1867,7 +1872,7 @@ static void outPage(PDFDoc *doc, Catalog
|
||||
writePageImage(raster,bitmap,pageNo);
|
||||
}
|
||||
|
||||
-static void setPopplerColorProfile()
|
||||
+static void setPopplerColorProfile(SplashOutputDev *out)
|
||||
{
|
||||
if (header.cupsBitsPerColor != 8 && header.cupsBitsPerColor != 16) {
|
||||
/* color Profile is not supported */
|
||||
@@ -1951,7 +1956,13 @@ static void setPopplerColorProfile()
|
||||
break;
|
||||
}
|
||||
if (popplerColorProfile != NULL) {
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 90
|
||||
+#ifdef USE_CMS
|
||||
+ out->setDisplayProfile(make_GfxLCMSProfilePtr(popplerColorProfile));
|
||||
+#endif
|
||||
+#else
|
||||
GfxColorSpace::setDisplayProfile(popplerColorProfile);
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1966,13 +1977,21 @@ int main(int argc, char *argv[]) {
|
||||
int rowpad;
|
||||
Catalog *catalog;
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 85
|
||||
+ setErrorCallback(::myErrorFun);
|
||||
+#else
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 19
|
||||
setErrorCallback(::myErrorFun,NULL);
|
||||
#else
|
||||
setErrorFunction(::myErrorFun);
|
||||
#endif
|
||||
+#endif
|
||||
cmsSetLogErrorHandler(lcmsErrorHandler);
|
||||
- globalParams = new GlobalParams();
|
||||
+#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 83
|
||||
+ globalParams.reset(new GlobalParams());
|
||||
+#else
|
||||
+ globalParams = new GlobalParams();
|
||||
+#endif
|
||||
parseOpts(argc, argv);
|
||||
|
||||
if (argc == 6) {
|
||||
@@ -2119,14 +2138,10 @@ int main(int argc, char *argv[]) {
|
||||
break;
|
||||
}
|
||||
|
||||
- if (!cm_disabled) {
|
||||
- setPopplerColorProfile();
|
||||
- }
|
||||
-
|
||||
out = new SplashOutputDev(cmode,rowpad/* row padding */,
|
||||
- gFalse,paperColor,gTrue
|
||||
+ false,paperColor,true
|
||||
#if POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR <= 30
|
||||
- ,gFalse
|
||||
+ ,false
|
||||
#endif
|
||||
);
|
||||
#if POPPLER_VERSION_MAJOR > 0 || POPPLER_VERSION_MINOR >= 19
|
||||
@@ -2135,6 +2150,10 @@ int main(int argc, char *argv[]) {
|
||||
out->startDoc(doc->getXRef());
|
||||
#endif
|
||||
|
||||
+ if (!cm_disabled) {
|
||||
+ setPopplerColorProfile(out);
|
||||
+ }
|
||||
+
|
||||
if ((raster = cupsRasterOpen(1, pwgraster ? CUPS_RASTER_WRITE_PWG :
|
||||
CUPS_RASTER_WRITE)) == 0) {
|
||||
pdfError(-1,const_cast<char *>("Can't open raster stream"));
|
||||
@@ -2162,9 +2181,11 @@ err1:
|
||||
cmsDeleteTransform(colorTransform);
|
||||
}
|
||||
|
||||
+#if POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR <= 68
|
||||
// Check for memory leaks
|
||||
Object::memCheck(stderr);
|
||||
gMemReport(stderr);
|
||||
+#endif
|
||||
|
||||
return exitCode;
|
||||
}
|
Loading…
Reference in New Issue
Block a user