Compare commits
6 Commits
imports/c8
...
c8
Author | SHA1 | Date |
---|---|---|
eabdullin | 7e2b8b480c | |
eabdullin | b1f8ca4f28 | |
eabdullin | 4991be94be | |
eabdullin | f47bbf6a0a | |
CentOS Sources | 96a3eee944 | |
CentOS Sources | 2ebcd8030e |
|
@ -0,0 +1,21 @@
|
|||
diff -up cups-2.3.3op2/backend/lpd.c.lpd-delay cups-2.3.3op2/backend/lpd.c
|
||||
--- cups-2.3.3op2/backend/lpd.c.lpd-delay 2021-02-01 22:10:25.000000000 +0100
|
||||
+++ cups-2.3.3op2/backend/lpd.c 2023-06-28 17:28:52.465476261 +0200
|
||||
@@ -63,7 +63,7 @@ static int abort_job = 0; /* Non-zero i
|
||||
|
||||
#define RESERVE_NONE 0 /* Don't reserve a priviledged port */
|
||||
#define RESERVE_RFC1179 1 /* Reserve port 721-731 */
|
||||
-#define RESERVE_ANY 2 /* Reserve port 1-1023 */
|
||||
+#define RESERVE_ANY 2 /* Reserve port 512-1023 */
|
||||
|
||||
|
||||
/*
|
||||
@@ -778,7 +778,7 @@ lpd_queue(const char *hostname, /*
|
||||
|
||||
if (lport < 721 && reserve == RESERVE_RFC1179)
|
||||
lport = 731;
|
||||
- else if (lport < 1)
|
||||
+ else if (lport < 512)
|
||||
lport = 1023;
|
||||
|
||||
#ifdef HAVE_GETEUID
|
|
@ -0,0 +1,64 @@
|
|||
From ffd290b4ab247f82722927ba9b21358daa16dbf1 Mon Sep 17 00:00:00 2001
|
||||
From: Rose <83477269+AtariDreams@users.noreply.github.com>
|
||||
Date: Thu, 1 Jun 2023 11:33:39 -0400
|
||||
Subject: [PATCH] Log result of httpGetHostname BEFORE closing the connection
|
||||
|
||||
httpClose frees the memory of con->http. This is problematic because httpGetHostname then tries to access the memory it points to.
|
||||
|
||||
We have to log the hostname first.
|
||||
---
|
||||
scheduler/client.c | 16 +++++++---------
|
||||
1 file changed, 7 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/scheduler/client.c b/scheduler/client.c
|
||||
index 91e441188..327473a4d 100644
|
||||
--- a/scheduler/client.c
|
||||
+++ b/scheduler/client.c
|
||||
@@ -193,13 +193,11 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
|
||||
/*
|
||||
* Can't have an unresolved IP address with double-lookups enabled...
|
||||
*/
|
||||
-
|
||||
- httpClose(con->http);
|
||||
-
|
||||
cupsdLogClient(con, CUPSD_LOG_WARN,
|
||||
- "Name lookup failed - connection from %s closed!",
|
||||
+ "Name lookup failed - closing connection from %s!",
|
||||
httpGetHostname(con->http, NULL, 0));
|
||||
|
||||
+ httpClose(con->http);
|
||||
free(con);
|
||||
return;
|
||||
}
|
||||
@@ -235,11 +233,11 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
|
||||
* with double-lookups enabled...
|
||||
*/
|
||||
|
||||
- httpClose(con->http);
|
||||
-
|
||||
cupsdLogClient(con, CUPSD_LOG_WARN,
|
||||
- "IP lookup failed - connection from %s closed!",
|
||||
+ "IP lookup failed - closing connection from %s!",
|
||||
httpGetHostname(con->http, NULL, 0));
|
||||
+
|
||||
+ httpClose(con->http);
|
||||
free(con);
|
||||
return;
|
||||
}
|
||||
@@ -256,11 +254,11 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
|
||||
|
||||
if (!hosts_access(&wrap_req))
|
||||
{
|
||||
- httpClose(con->http);
|
||||
-
|
||||
cupsdLogClient(con, CUPSD_LOG_WARN,
|
||||
"Connection from %s refused by /etc/hosts.allow and "
|
||||
"/etc/hosts.deny rules.", httpGetHostname(con->http, NULL, 0));
|
||||
+
|
||||
+ httpClose(con->http);
|
||||
free(con);
|
||||
return;
|
||||
}
|
||||
--
|
||||
2.41.0
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From a0c8b9c9556882f00c68b9727a95a1b6d1452913 Mon Sep 17 00:00:00 2001
|
||||
From: Michael R Sweet <michael.r.sweet@gmail.com>
|
||||
Date: Tue, 6 Dec 2022 09:04:01 -0500
|
||||
Subject: [PATCH] Require authentication for CUPS-Get-Document.
|
||||
|
||||
---
|
||||
conf/cupsd.conf.in | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/conf/cupsd.conf.in b/conf/cupsd.conf.in
|
||||
index b25884907..a07536f3e 100644
|
||||
--- a/conf/cupsd.conf.in
|
||||
+++ b/conf/cupsd.conf.in
|
||||
@@ -68,7 +68,13 @@ IdleExitTimeout @EXIT_TIMEOUT@
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
|
||||
- <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
|
||||
+ <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job>
|
||||
+ Require user @OWNER @SYSTEM
|
||||
+ Order deny,allow
|
||||
+ </Limit>
|
||||
+
|
||||
+ <Limit CUPS-Get-Document>
|
||||
+ AuthType Default
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
--
|
||||
2.41.0
|
||||
|
|
@ -0,0 +1,899 @@
|
|||
From 4d6787bd98c2fac8dcc58f34125d299d82e622aa Mon Sep 17 00:00:00 2001
|
||||
From: Michael R Sweet <michael.r.sweet@gmail.com>
|
||||
Date: Mon, 2 May 2022 15:35:20 -0400
|
||||
Subject: [PATCH] Update man pages for -h option (Issue #357)
|
||||
|
||||
---
|
||||
CHANGES.md | 1 +
|
||||
doc/help/man-cancel.html | 7 ++++---
|
||||
doc/help/man-cupsctl.html | 7 ++++---
|
||||
doc/help/man-ipptool.html | 6 ++++++
|
||||
doc/help/man-lp.html | 9 +++++----
|
||||
doc/help/man-lpinfo.html | 9 +++++----
|
||||
doc/help/man-lpmove.html | 9 +++++----
|
||||
doc/help/man-lpoptions.html | 17 +++++++++--------
|
||||
doc/help/man-lpq.html | 5 +++--
|
||||
doc/help/man-lpr.html | 5 +++--
|
||||
doc/help/man-lprm.html | 6 +++---
|
||||
doc/help/man-lpstat.html | 5 +++--
|
||||
man/cancel.1 | 9 +++++----
|
||||
man/cupsctl.8 | 9 +++++----
|
||||
man/lp.1 | 11 ++++++-----
|
||||
man/lpinfo.8 | 11 ++++++-----
|
||||
man/lpmove.8 | 11 ++++++-----
|
||||
man/lpoptions.1 | 19 ++++++++++---------
|
||||
man/lpq.1 | 7 ++++---
|
||||
man/lpr.1 | 7 ++++---
|
||||
man/lprm.1 | 8 ++++----
|
||||
man/lpstat.1 | 11 ++++++-----
|
||||
22 files changed, 107 insertions(+), 82 deletions(-)
|
||||
|
||||
diff --git a/doc/help/man-cancel.html b/doc/help/man-cancel.html
|
||||
index d51bb2b91..a0b52369c 100644
|
||||
--- a/doc/help/man-cancel.html
|
||||
+++ b/doc/help/man-cancel.html
|
||||
@@ -12,6 +12,9 @@ cancel - cancel jobs
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>cancel</b>
|
||||
[
|
||||
+<b>-h</b>
|
||||
+<i>hostname[:port]</i>
|
||||
+] [
|
||||
<b>-E</b>
|
||||
] [
|
||||
<b>-U</b>
|
||||
@@ -19,9 +22,6 @@ cancel - cancel jobs
|
||||
] [
|
||||
<b>-a</b>
|
||||
] [
|
||||
-<b>-h</b>
|
||||
-<i>hostname[:port]</i>
|
||||
-] [
|
||||
<b>-u</b>
|
||||
<i>username</i>
|
||||
] [
|
||||
@@ -46,6 +46,7 @@ destinations if none is provided.
|
||||
<dd style="margin-left: 5.0em">Forces encryption when connecting to the server.
|
||||
<dt><b>-h </b><i>hostname</i>[<i>:port</i>]
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>-U </b><i>username</i>
|
||||
<dd style="margin-left: 5.0em">Specifies the username to use when connecting to the server.
|
||||
<dt><b>-u </b><i>username</i>
|
||||
diff --git a/doc/help/man-cupsctl.html b/doc/help/man-cupsctl.html
|
||||
index b3f892ef9..e5c98dccb 100644
|
||||
--- a/doc/help/man-cupsctl.html
|
||||
+++ b/doc/help/man-cupsctl.html
|
||||
@@ -12,14 +12,14 @@ cupsctl - configure cupsd.conf options
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>cupsctl</b>
|
||||
[
|
||||
+<b>-h</b>
|
||||
+<i>server</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
<b>-E</b>
|
||||
] [
|
||||
<b>-U</b>
|
||||
<i>username</i>
|
||||
] [
|
||||
-<b>-h</b>
|
||||
-<i>server</i>[<b>:</b><i>port</i>]
|
||||
-] [
|
||||
<b>--</b>[<b>no-</b>]<b>debug-logging</b>
|
||||
] [
|
||||
<b>--</b>[<b>no-</b>]<b>remote-admin</b>
|
||||
@@ -45,6 +45,7 @@ The following options are recognized:
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate username to use when authenticating with the scheduler.
|
||||
<dt><b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Specifies the server address.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>--</b>[<b>no-</b>]<b>debug-logging</b>
|
||||
<dd style="margin-left: 5.0em">Enables (disables) debug logging to the <i>error_log</i> file.
|
||||
<dt><b>--</b>[<b>no-</b>]<b>remote-admin</b>
|
||||
diff --git a/doc/help/man-ipptool.html b/doc/help/man-ipptool.html
|
||||
index 81f67d77f..688454c69 100644
|
||||
--- a/doc/help/man-ipptool.html
|
||||
+++ b/doc/help/man-ipptool.html
|
||||
@@ -59,6 +59,8 @@ ipptool - perform internet printing protocol requests
|
||||
<b>-i</b>
|
||||
<i>seconds</i>
|
||||
] [
|
||||
+<b>-j</b>
|
||||
+] [
|
||||
<b>-n</b>
|
||||
<i>repeat-count</i>
|
||||
] [
|
||||
@@ -150,6 +152,10 @@ This option is incompatible with the <b>-i</b> (interval) and <b>-n</b> (repeat-
|
||||
<i>testfile</i>
|
||||
should be repeated at the specified interval.
|
||||
This option is incompatible with the <b>-X</b> (XML plist output) option.
|
||||
+<dt><b>-j</b>
|
||||
+<dd style="margin-left: 5.0em">Specifies that
|
||||
+<b>ipptool</b>
|
||||
+will produce JSON output.
|
||||
<dt><b>-l</b>
|
||||
<dd style="margin-left: 5.0em">Specifies that plain text output is desired.
|
||||
<dt><b>-n</b><i> repeat-count</i>
|
||||
diff --git a/doc/help/man-lp.html b/doc/help/man-lp.html
|
||||
index f70c088d3..6442e900d 100644
|
||||
--- a/doc/help/man-lp.html
|
||||
+++ b/doc/help/man-lp.html
|
||||
@@ -12,6 +12,8 @@ lp - print files
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lp</b>
|
||||
[
|
||||
+<b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
<b>-E</b>
|
||||
] [
|
||||
<b>-U</b>
|
||||
@@ -21,8 +23,6 @@ lp - print files
|
||||
] [
|
||||
<b>-d </b><i>destination</i>[<b>/</b><i>instance</i>]
|
||||
] [
|
||||
-<b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
-] [
|
||||
<b>-m</b>
|
||||
] [
|
||||
<b>-n</b>
|
||||
@@ -51,6 +51,8 @@ lp - print files
|
||||
<br>
|
||||
<b>lp</b>
|
||||
[
|
||||
+<b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
<b>-E</b>
|
||||
] [
|
||||
<b>-U</b>
|
||||
@@ -58,8 +60,6 @@ lp - print files
|
||||
] [
|
||||
<b>-c</b>
|
||||
] [
|
||||
-<b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
-] [
|
||||
<b>-i</b>
|
||||
<i>job-id</i>
|
||||
] [
|
||||
@@ -106,6 +106,7 @@ In CUPS, print files are always sent to the scheduler via IPP which has the same
|
||||
<dd style="margin-left: 5.0em">Prints files to the named printer.
|
||||
<dt><b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Chooses an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>-i </b><i>job-id</i>
|
||||
<dd style="margin-left: 5.0em">Specifies an existing job to modify.
|
||||
<dt><b>-m</b>
|
||||
diff --git a/doc/help/man-lpinfo.html b/doc/help/man-lpinfo.html
|
||||
index a1aed9421..30df7691c 100644
|
||||
--- a/doc/help/man-lpinfo.html
|
||||
+++ b/doc/help/man-lpinfo.html
|
||||
@@ -12,10 +12,10 @@ lpinfo - show available devices or drivers (deprecated)
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lpinfo</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
<b>-l</b>
|
||||
] [
|
||||
<b>--device-id</b>
|
||||
@@ -40,10 +40,10 @@ lpinfo - show available devices or drivers (deprecated)
|
||||
<br>
|
||||
<b>lpinfo</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
<b>-l</b>
|
||||
] [
|
||||
<b>--exclude-schemes</b>
|
||||
@@ -66,6 +66,7 @@ The first form (<i>-m</i>) lists the available drivers, while the second form (<
|
||||
<dd style="margin-left: 5.0em">Forces encryption when connecting to the server.
|
||||
<dt><b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Selects an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>-l</b>
|
||||
<dd style="margin-left: 5.0em">Shows a "long" listing of devices or drivers.
|
||||
<dt><b>--device-id </b><i>device-id-string</i>
|
||||
diff --git a/doc/help/man-lpmove.html b/doc/help/man-lpmove.html
|
||||
index d8019ee25..b0db753f9 100644
|
||||
--- a/doc/help/man-lpmove.html
|
||||
+++ b/doc/help/man-lpmove.html
|
||||
@@ -12,10 +12,10 @@ lpmove - move a job or all jobs to a new destination
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lpmove</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
<b>-U</b>
|
||||
<i>username</i>
|
||||
]
|
||||
@@ -24,10 +24,10 @@ lpmove - move a job or all jobs to a new destination
|
||||
<br>
|
||||
<b>lpmove</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
<b>-U</b>
|
||||
<i>username</i>
|
||||
]
|
||||
@@ -44,6 +44,7 @@ The <b>lpmove</b> command supports the following options:
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate username.
|
||||
<dt><b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
</dl>
|
||||
<h2 class="title"><a name="EXAMPLES">Examples</a></h2>
|
||||
Move job 123 from "oldprinter" to "newprinter":
|
||||
diff --git a/doc/help/man-lpoptions.html b/doc/help/man-lpoptions.html
|
||||
index 6dda87f64..6af78290b 100644
|
||||
--- a/doc/help/man-lpoptions.html
|
||||
+++ b/doc/help/man-lpoptions.html
|
||||
@@ -12,12 +12,12 @@
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lpoptions</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
-<b>-U</b>
|
||||
-<i>username</i>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
+<b>-U</b>
|
||||
+<i>username</i>
|
||||
]
|
||||
<b>-d </b><i>destination</i>[<b>/</b><i>instance</i>]
|
||||
[
|
||||
@@ -26,26 +26,26 @@
|
||||
<br>
|
||||
<b>lpoptions</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
-<b>-U</b>
|
||||
-<i>username</i>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
+<b>-U</b>
|
||||
+<i>username</i>
|
||||
+] [
|
||||
<b>-p </b><i>destination</i>[<b>/</b><i>instance</i>]
|
||||
]
|
||||
<b>-o </b><i>option</i>[<b>=</b><i>value</i>] ...
|
||||
<br>
|
||||
<b>lpoptions</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
-<b>-U</b>
|
||||
-<i>username</i>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
+<b>-U</b>
|
||||
+<i>username</i>
|
||||
+] [
|
||||
<b>-p </b><i>destination</i>[<b>/</b><i>instance</i>]
|
||||
]
|
||||
<b>-r</b>
|
||||
@@ -53,12 +53,12 @@
|
||||
<br>
|
||||
<b>lpoptions</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
-<b>-U</b>
|
||||
-<i>username</i>
|
||||
-] [
|
||||
<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
+<b>-U</b>
|
||||
+<i>username</i>
|
||||
]
|
||||
<b>-x </b><i>destination</i>[<b>/</b><i>instance</i>]
|
||||
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
|
||||
@@ -84,6 +84,7 @@
|
||||
This option overrides the system default printer for the current user.
|
||||
<dt><b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Uses an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>-l</b>
|
||||
<dd style="margin-left: 5.0em">Lists the printer specific options and their current settings.
|
||||
<dt><b>-o </b><i>option</i>[<b>=</b><i>value</i>]
|
||||
@@ -119,7 +120,7 @@
|
||||
<a href="man-lprm.html?TOPIC=Man+Pages"><b>lprm</b>(1),</a>
|
||||
CUPS Online Help (<a href="http://localhost:631/help">http://localhost:631/help</a>)
|
||||
<h2 class="title"><a name="COPYRIGHT">Copyright</a></h2>
|
||||
-Copyright © 2007-2017 by Apple Inc.
|
||||
+Copyright © 2021-2022 by OpenPrinting.
|
||||
|
||||
</body>
|
||||
</html>
|
||||
diff --git a/doc/help/man-lpq.html b/doc/help/man-lpq.html
|
||||
index 1c9e704ff..19e536d3c 100644
|
||||
--- a/doc/help/man-lpq.html
|
||||
+++ b/doc/help/man-lpq.html
|
||||
@@ -12,13 +12,13 @@ lpq - show printer queue status
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lpq</b>
|
||||
[
|
||||
+<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
<b>-E</b>
|
||||
] [
|
||||
<b>-U</b>
|
||||
<i>username</i>
|
||||
] [
|
||||
-<b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
-] [
|
||||
<b>-P </b><i>destination</i>[<b>/</b><i>instance</i>]
|
||||
] [
|
||||
<b>-a</b>
|
||||
@@ -44,6 +44,7 @@ Jobs queued on the default destination will be shown if no printer or class is s
|
||||
<dd style="margin-left: 5.0em">Reports jobs on all printers.
|
||||
<dt><b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>-l</b>
|
||||
<dd style="margin-left: 5.0em">Requests a more verbose (long) reporting format.
|
||||
</dl>
|
||||
diff --git a/doc/help/man-lpr.html b/doc/help/man-lpr.html
|
||||
index d044ab1a8..f9b19e1fe 100644
|
||||
--- a/doc/help/man-lpr.html
|
||||
+++ b/doc/help/man-lpr.html
|
||||
@@ -12,10 +12,10 @@ lpr - print files
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lpr</b>
|
||||
[
|
||||
-<b>-E</b>
|
||||
-] [
|
||||
<b>-H </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
] [
|
||||
+<b>-E</b>
|
||||
+] [
|
||||
<b>-U</b>
|
||||
<i>username</i>
|
||||
] [
|
||||
@@ -67,6 +67,7 @@ The following options are recognized by <i>lpr</i>:
|
||||
<dd style="margin-left: 5.0em">Forces encryption when connecting to the server.
|
||||
<dt><b>-H </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>-C "</b><i>name</i><b>"</b>
|
||||
<dd style="margin-left: 5.0em"><dt><b>-J "</b><i>name</i><b>"</b>
|
||||
<dd style="margin-left: 5.0em"><dt><b>-T "</b><i>name</i><b>"</b>
|
||||
diff --git a/doc/help/man-lprm.html b/doc/help/man-lprm.html
|
||||
index 7410320a3..dbe7f20de 100644
|
||||
--- a/doc/help/man-lprm.html
|
||||
+++ b/doc/help/man-lprm.html
|
||||
@@ -12,14 +12,13 @@ lprm - cancel print jobs
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lprm</b>
|
||||
[
|
||||
+<b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
<b>-E</b>
|
||||
] [
|
||||
<b>-U</b>
|
||||
<i>username</i>
|
||||
] [
|
||||
-<b>-h</b>
|
||||
-<i>server</i>[<i>:port</i>]
|
||||
-] [
|
||||
<b>-P</b>
|
||||
<i>destination</i>[<i>/instance</i>]
|
||||
] [
|
||||
@@ -45,6 +44,7 @@ command supports the following options:
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate username.
|
||||
<dt><b>-h </b><i>server</i>[<i>:port</i>]
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
</dl>
|
||||
<h2 class="title"><a name="CONFORMING_TO">Conforming To</a></h2>
|
||||
The CUPS version of
|
||||
diff --git a/doc/help/man-lpstat.html b/doc/help/man-lpstat.html
|
||||
index f23089bbe..2c5dedc7c 100644
|
||||
--- a/doc/help/man-lpstat.html
|
||||
+++ b/doc/help/man-lpstat.html
|
||||
@@ -12,6 +12,8 @@ lpstat - print cups status information
|
||||
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
|
||||
<b>lpstat</b>
|
||||
[
|
||||
+<b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
+] [
|
||||
<b>-E</b>
|
||||
] [
|
||||
<b>-H</b>
|
||||
@@ -19,8 +21,6 @@ lpstat - print cups status information
|
||||
<b>-U</b>
|
||||
<i>username</i>
|
||||
] [
|
||||
-<b>-h </b><i>hostname</i>[<b>:</b><i>port</i>]
|
||||
-] [
|
||||
<b>-l</b>
|
||||
] [
|
||||
<b>-W</b>
|
||||
@@ -91,6 +91,7 @@ If no classes are specified then all classes are listed.
|
||||
<dd style="margin-left: 5.0em">Shows all available destinations on the local network.
|
||||
<dt><b>-h </b><i>server</i>[<b>:</b><i>port</i>]
|
||||
<dd style="margin-left: 5.0em">Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
<dt><b>-l</b>
|
||||
<dd style="margin-left: 5.0em">Shows a long listing of printers, classes, or jobs.
|
||||
<dt><b>-o </b>[<i>destination(s)</i>]
|
||||
diff --git a/man/cancel.man b/man/cancel.man
|
||||
index 34a5d9fc0..caea0ed69 100644
|
||||
--- a/man/cancel.man
|
||||
+++ b/man/cancel.man
|
||||
@@ -10,12 +10,15 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH cancel 1 "CUPS" "15 April 2014" "Apple Inc."
|
||||
+.TH cancel 1 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
cancel \- cancel jobs
|
||||
.SH SYNOPSIS
|
||||
.B cancel
|
||||
[
|
||||
+.B \-h
|
||||
+.I hostname[:port]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
@@ -23,9 +26,6 @@
|
||||
] [
|
||||
.B \-a
|
||||
] [
|
||||
-.B \-h
|
||||
-.I hostname[:port]
|
||||
-] [
|
||||
.B \-u
|
||||
.I username
|
||||
] [
|
||||
@@ -52,6 +52,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIhostname\fR[\fI:port\fR]
|
||||
Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
\fB\-U \fIusername\fR
|
||||
Specifies the username to use when connecting to the server.
|
||||
diff --git a/man/cupsctl.man b/man/cupsctl.man
|
||||
index 1b1ff4183..7e50d07ac 100644
|
||||
--- a/man/cupsctl.man
|
||||
+++ b/man/cupsctl.man
|
||||
@@ -10,20 +10,20 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH cupsctl 8 "CUPS" "30 May 2016" "Apple Inc."
|
||||
+.TH cupsctl 8 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
cupsctl \- configure cupsd.conf options
|
||||
.SH SYNOPSIS
|
||||
.B cupsctl
|
||||
[
|
||||
+.B \-h
|
||||
+\fIserver\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
.I username
|
||||
] [
|
||||
-.B \-h
|
||||
-\fIserver\fR[\fB:\fIport\fR]
|
||||
-] [
|
||||
\fB\-\-\fR[\fBno\-\fR]\fBdebug\-logging\fR
|
||||
] [
|
||||
\fB\-\-\fR[\fBno\-\fR]\fBremote\-admin\fR
|
||||
@@ -51,6 +51,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
Specifies the server address.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
\fB\-\-\fR[\fBno\-\fR]\fBdebug\-logging\fR
|
||||
Enables (disables) debug logging to the \fIerror_log\fR file.
|
||||
diff --git a/man/lp.man b/man/lp.man
|
||||
index a54f904a5..4bdd2de7b 100644
|
||||
--- a/man/lp.man
|
||||
+++ b/man/lp.man
|
||||
@@ -10,12 +10,14 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lp 1 "CUPS" "2 May 2016" "Apple Inc."
|
||||
+.TH lp 1 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lp \- print files
|
||||
.SH SYNOPSIS
|
||||
.B lp
|
||||
[
|
||||
+\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
@@ -25,8 +27,6 @@
|
||||
] [
|
||||
\fB\-d \fIdestination\fR[\fB/\fIinstance\fR]
|
||||
] [
|
||||
-\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
-] [
|
||||
.B \-m
|
||||
] [
|
||||
.B \-n
|
||||
@@ -55,6 +55,8 @@
|
||||
.br
|
||||
.B lp
|
||||
[
|
||||
+\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
@@ -62,8 +64,6 @@
|
||||
] [
|
||||
.B \-c
|
||||
] [
|
||||
-\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
-] [
|
||||
.B \-i
|
||||
.I job-id
|
||||
] [
|
||||
@@ -115,6 +115,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
Chooses an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
\fB\-i \fIjob-id\fR
|
||||
Specifies an existing job to modify.
|
||||
diff --git a/man/lpinfo.man b/man/lpinfo.man
|
||||
index d238f9a60..d44b568d2 100644
|
||||
--- a/man/lpinfo.man
|
||||
+++ b/man/lpinfo.man
|
||||
@@ -10,16 +10,16 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lpinfo 8 "CUPS" "12 June 2014" "Apple Inc."
|
||||
+.TH lpinfo 8 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lpinfo \- show available devices or drivers
|
||||
.SH SYNOPSIS
|
||||
.B lpinfo
|
||||
[
|
||||
-.B \-E
|
||||
-] [
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
] [
|
||||
+.B \-E
|
||||
+] [
|
||||
.B \-l
|
||||
] [
|
||||
.B \-\-device\-id
|
||||
@@ -44,10 +44,10 @@
|
||||
.br
|
||||
.B lpinfo
|
||||
[
|
||||
-.B \-E
|
||||
-] [
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
] [
|
||||
+.B \-E
|
||||
+] [
|
||||
.B \-l
|
||||
] [
|
||||
.B \-\-exclude\-schemes
|
||||
@@ -71,6 +71,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
Selects an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
.B \-l
|
||||
Shows a "long" listing of devices or drivers.
|
||||
diff --git a/man/lpmove.man b/man/lpmove.man
|
||||
index af3c6b63c..62adba654 100644
|
||||
--- a/man/lpmove.man
|
||||
+++ b/man/lpmove.man
|
||||
@@ -10,16 +10,16 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lpmove 8 "CUPS" "26 May 2016" "Apple Inc."
|
||||
+.TH lpmove 8 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lpmove \- move a job or all jobs to a new destination
|
||||
.SH SYNOPSIS
|
||||
.B lpmove
|
||||
[
|
||||
-.B \-E
|
||||
-] [
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
] [
|
||||
+.B \-E
|
||||
+] [
|
||||
.B \-U
|
||||
.I username
|
||||
]
|
||||
@@ -28,10 +28,10 @@
|
||||
.br
|
||||
.B lpmove
|
||||
[
|
||||
-.B \-E
|
||||
-] [
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
] [
|
||||
+.B \-E
|
||||
+] [
|
||||
.B \-U
|
||||
.I username
|
||||
]
|
||||
@@ -50,6 +50,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.SH EXAMPLES
|
||||
Move job 123 from "oldprinter" to "newprinter":
|
||||
.nf
|
||||
diff --git a/man/lpoptions.man.in b/man/lpoptions.man.in
|
||||
index 372f46a37..2eb5b6010 100644
|
||||
--- a/man/lpoptions.man.in
|
||||
+++ b/man/lpoptions.man.in
|
||||
@@ -10,18 +10,18 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lpoptions 1 "CUPS" "12 June 2014" "Apple Inc."
|
||||
+.TH lpoptions 1 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lpoptions \- display or set printer options and defaults
|
||||
.SH SYNOPSIS
|
||||
.B lpoptions
|
||||
[
|
||||
+\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
.I username
|
||||
-] [
|
||||
-\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
]
|
||||
\fB\-d \fIdestination\fR[\fB/\fIinstance\fR]
|
||||
[
|
||||
@@ -30,13 +30,13 @@
|
||||
.br
|
||||
.B lpoptions
|
||||
[
|
||||
+\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
.I username
|
||||
] [
|
||||
-\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
-] [
|
||||
\fB\-p \fIdestination\fR[\fB/\fIinstance\fR]
|
||||
]
|
||||
\fB\-o \fIoption\fR[\fB=\fIvalue\fR] ...
|
||||
@@ -43,13 +43,13 @@
|
||||
.br
|
||||
.B lpoptions
|
||||
[
|
||||
+\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
.I username
|
||||
] [
|
||||
-\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
-] [
|
||||
\fB\-p \fIdestination\fR[\fB/\fIinstance\fR]
|
||||
]
|
||||
.B \-r
|
||||
@@ -57,12 +57,12 @@
|
||||
.br
|
||||
.B lpoptions
|
||||
[
|
||||
+\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
.I username
|
||||
-] [
|
||||
-\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
]
|
||||
\fB\-x \fIdestination\fR[\fB/\fIinstance\fR]
|
||||
.SH DESCRIPTION
|
||||
@@ -96,6 +96,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
Uses an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
.B \-l
|
||||
Lists the printer specific options and their current settings.
|
||||
diff --git a/man/lpq.man b/man/lpq.man
|
||||
index ce23a6c81..a81633ecb 100644
|
||||
--- a/man/lpq.man
|
||||
+++ b/man/lpq.man
|
||||
@@ -10,19 +10,19 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lpq 1 "CUPS" "12 June 2014" "Apple Inc."
|
||||
+.TH lpq 1 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lpq \- show printer queue status
|
||||
.SH SYNOPSIS
|
||||
.B lpq
|
||||
[
|
||||
+\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
.I username
|
||||
] [
|
||||
-\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
-] [
|
||||
\fB\-P \fIdestination\fR[\fB/\fIinstance\fR]
|
||||
] [
|
||||
.B \-a
|
||||
@@ -53,6 +53,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
.B \-l
|
||||
Requests a more verbose (long) reporting format.
|
||||
diff --git a/man/lpr.man b/man/lpr.man
|
||||
index e5f9f9018..77a62b305 100644
|
||||
--- a/man/lpr.man
|
||||
+++ b/man/lpr.man
|
||||
@@ -10,16 +10,16 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lpr 1 "CUPS" "2 May 2016" "Apple Inc."
|
||||
+.TH lpr 1 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lpr \- print files
|
||||
.SH SYNOPSIS
|
||||
.B lpr
|
||||
[
|
||||
-.B \-E
|
||||
-] [
|
||||
\fB\-H \fIserver\fR[\fB:\fIport\fR]
|
||||
] [
|
||||
+.B \-E
|
||||
+] [
|
||||
.B \-U
|
||||
.I username
|
||||
] [
|
||||
@@ -72,6 +72,7 @@
|
||||
.TP 5
|
||||
\fB\-H \fIserver\fR[\fB:\fIport\fR]
|
||||
Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
\fB\-C "\fIname\fB"\fR
|
||||
.TP 5
|
||||
diff --git a/man/lprm.man b/man/lprm.man
|
||||
index 094166539..0cf88ac51 100644
|
||||
--- a/man/lprm.man
|
||||
+++ b/man/lprm.man
|
||||
@@ -10,20 +10,19 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lprm 1 "CUPS" "22 May 2014" "Apple Inc."
|
||||
+.TH lprm 1 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lprm \- cancel print jobs
|
||||
.SH SYNOPSIS
|
||||
.B lprm
|
||||
[
|
||||
+\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-U
|
||||
.I username
|
||||
] [
|
||||
-.B \-h
|
||||
-.IR server [ :port ]
|
||||
-] [
|
||||
.B \-P
|
||||
.IR destination [ /instance ]
|
||||
] [
|
||||
@@ -52,6 +51,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIserver\fR[\fI:port\fR]
|
||||
Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.SH CONFORMING TO
|
||||
The CUPS version of
|
||||
.B lprm
|
||||
diff --git a/man/lpstat.man b/man/lpstat.man
|
||||
index 0a10cd9bc..88acff7b3 100644
|
||||
--- a/man/lpstat.man
|
||||
+++ b/man/lpstat.man
|
||||
@@ -1,8 +1,8 @@
|
||||
.\"
|
||||
.\" lpstat man page for CUPS.
|
||||
.\"
|
||||
-.\" Copyright 2007-2017 by Apple Inc.
|
||||
-.\" Copyright 1997-2006 by Easy Software Products.
|
||||
+.\" Copyright © 2007-2019 by Apple Inc.
|
||||
+.\" Copyright © 1997-2006 by Easy Software Products.
|
||||
.\"
|
||||
.\" These coded instructions, statements, and computer programs are the
|
||||
.\" property of Apple Inc. and are protected by Federal copyright
|
||||
@@ -10,12 +10,14 @@
|
||||
.\" which should have been included with this file. If this file is
|
||||
.\" file is missing or damaged, see the license at "http://www.cups.org/".
|
||||
.\"
|
||||
-.TH lpstat 1 "CUPS" "26 May 2017" "Apple Inc."
|
||||
+.TH lpstat 1 "CUPS" "2022-05-02" "OpenPrinting"
|
||||
.SH NAME
|
||||
lpstat \- print cups status information
|
||||
.SH SYNOPSIS
|
||||
.B lpstat
|
||||
[
|
||||
+\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
+] [
|
||||
.B \-E
|
||||
] [
|
||||
.B \-H
|
||||
@@ -23,8 +25,6 @@
|
||||
.B \-U
|
||||
.I username
|
||||
] [
|
||||
-\fB\-h \fIhostname\fR[\fB:\fIport\fR]
|
||||
-] [
|
||||
.B \-l
|
||||
] [
|
||||
.B \-W
|
||||
@@ -104,6 +104,7 @@
|
||||
.TP 5
|
||||
\fB\-h \fIserver\fR[\fB:\fIport\fR]
|
||||
Specifies an alternate server.
|
||||
+Note: This option must occur before all others.
|
||||
.TP 5
|
||||
.B \-l
|
||||
Shows a long listing of printers, classes, or jobs.
|
|
@ -0,0 +1,109 @@
|
|||
From 7271db11d27fe436f0c743bed3be8a5c6f93f2c2 Mon Sep 17 00:00:00 2001
|
||||
From: Michael R Sweet <michael.r.sweet@gmail.com>
|
||||
Date: Mon, 9 Apr 2018 09:50:19 -0400
|
||||
Subject: [PATCH] Use cupsGetNamedDest for legacy printing APIs (Issue #5288)
|
||||
|
||||
---
|
||||
cups/util.c | 59 +++++-----------------------
|
||||
xcode/CUPS.xcodeproj/project.pbxproj | 6 ++-
|
||||
2 files changed, 15 insertions(+), 50 deletions(-)
|
||||
|
||||
diff --git a/cups/util.c b/cups/util.c
|
||||
index ebc54d3cf..b15963e9e 100644
|
||||
--- a/cups/util.c
|
||||
+++ b/cups/util.c
|
||||
@@ -21,19 +22,6 @@
|
||||
#endif /* WIN32 || __EMX__ */
|
||||
|
||||
|
||||
-/*
|
||||
- * Enumeration data and callback...
|
||||
- */
|
||||
-
|
||||
-typedef struct _cups_createdata_s
|
||||
-{
|
||||
- const char *name; /* Destination name */
|
||||
- cups_dest_t *dest; /* Matching destination */
|
||||
-} _cups_createdata_t;
|
||||
-
|
||||
-static int cups_create_cb(_cups_createdata_t *data, unsigned flags, cups_dest_t *dest);
|
||||
-
|
||||
-
|
||||
/*
|
||||
* 'cupsCancelJob()' - Cancel a print job on the default server.
|
||||
*
|
||||
@@ -168,7 +156,7 @@ cupsCreateJob(
|
||||
{
|
||||
int job_id = 0; /* job-id value */
|
||||
ipp_status_t status; /* Create-Job status */
|
||||
- _cups_createdata_t data; /* Enumeration data */
|
||||
+ cups_dest_t *dest; /* Destination */
|
||||
cups_dinfo_t *info; /* Destination information */
|
||||
|
||||
|
||||
@@ -188,12 +176,7 @@ cupsCreateJob(
|
||||
* Lookup the destination...
|
||||
*/
|
||||
|
||||
- data.name = name;
|
||||
- data.dest = NULL;
|
||||
-
|
||||
- cupsEnumDests(0, 1000, NULL, 0, 0, (cups_dest_cb_t)cups_create_cb, &data);
|
||||
-
|
||||
- if (!data.dest)
|
||||
+ if ((dest = cupsGetNamedDest(http, name, NULL)) == NULL)
|
||||
{
|
||||
DEBUG_puts("1cupsCreateJob: Destination not found.");
|
||||
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(ENOENT), 0);
|
||||
@@ -205,18 +188,18 @@ cupsCreateJob(
|
||||
*/
|
||||
|
||||
DEBUG_puts("1cupsCreateJob: Querying destination info.");
|
||||
- if ((info = cupsCopyDestInfo(http, data.dest)) == NULL)
|
||||
+ if ((info = cupsCopyDestInfo(http, dest)) == NULL)
|
||||
{
|
||||
DEBUG_puts("1cupsCreateJob: Query failed.");
|
||||
- cupsFreeDests(1, data.dest);
|
||||
+ cupsFreeDests(1, dest);
|
||||
return (0);
|
||||
}
|
||||
|
||||
- status = cupsCreateDestJob(http, data.dest, info, &job_id, title, num_options, options);
|
||||
+ status = cupsCreateDestJob(http, dest, info, &job_id, title, num_options, options);
|
||||
DEBUG_printf(("1cupsCreateJob: cupsCreateDestJob returned %04x (%s)", status, ippErrorString(status)));
|
||||
|
||||
cupsFreeDestInfo(info);
|
||||
- cupsFreeDests(1, data.dest);
|
||||
+ cupsFreeDests(1, dest);
|
||||
|
||||
/*
|
||||
* Return the job...
|
||||
@@ -968,25 +951,3 @@ cupsStartDocument(
|
||||
return (status);
|
||||
}
|
||||
|
||||
-
|
||||
-/*
|
||||
- * 'cups_create_cb()' - Find the destination for printing.
|
||||
- */
|
||||
-
|
||||
-static int /* O - 0 on match */
|
||||
-cups_create_cb(
|
||||
- _cups_createdata_t *data, /* I - Data from cupsCreateJob call */
|
||||
- unsigned flags, /* I - Enumeration flags */
|
||||
- cups_dest_t *dest) /* I - Destination */
|
||||
-{
|
||||
- DEBUG_printf(("2cups_create_cb(data=%p(%s), flags=%08x, dest=%p(%s))", (void *)data, data->name, flags, (void *)dest, dest->name));
|
||||
-
|
||||
- (void)flags;
|
||||
-
|
||||
- if (dest->instance || strcasecmp(data->name, dest->name))
|
||||
- return (1);
|
||||
-
|
||||
- cupsCopyDest(dest, 0, &data->dest);
|
||||
-
|
||||
- return (0);
|
||||
-}
|
||||
--
|
||||
2.35.1
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
From c5ad7aaf6c8063a39974c6b4a3cf59b7f912daae Mon Sep 17 00:00:00 2001
|
||||
From: Bryan Mason <bmason@redhat.com>
|
||||
Date: Tue, 27 Jun 2023 04:18:46 -0700
|
||||
Subject: [PATCH 1/2] Use "purge-job" instead of "purge-jobs" when canceling a
|
||||
single job (#742)
|
||||
|
||||
The command "cancel -x <job>" adds "purge-jobs true" to the Cancel-Job
|
||||
operation; however, the correct attribute to use for Cancel-job is
|
||||
"purge-job" (singular), not "purge-jobs" (plural). As a result, job
|
||||
files are not removed from /var/spool/cups when "cancel -x <job>" is
|
||||
executed.
|
||||
|
||||
This patch resolves the issue by adding "purge-job" when the IPP
|
||||
operation is Cancel-Job and "purge-jobs" for other IPP operations
|
||||
(Purge-Jobs, Cancel-Jobs, and Cancel-My-Jobs)
|
||||
---
|
||||
systemv/cancel.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/systemv/cancel.c b/systemv/cancel.c
|
||||
index 572f413e1..f5b8e12b5 100644
|
||||
--- a/systemv/cancel.c
|
||||
+++ b/systemv/cancel.c
|
||||
@@ -260,6 +260,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
* attributes-natural-language
|
||||
* printer-uri + job-id *or* job-uri
|
||||
* [requesting-user-name]
|
||||
+ * [purge-job] or [purge-jobs]
|
||||
*/
|
||||
|
||||
request = ippNewRequest(op);
|
||||
@@ -294,7 +295,12 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
"requesting-user-name", NULL, cupsUser());
|
||||
|
||||
if (purge)
|
||||
- ippAddBoolean(request, IPP_TAG_OPERATION, "purge-jobs", (char)purge);
|
||||
+ {
|
||||
+ if (op == IPP_CANCEL_JOB)
|
||||
+ ippAddBoolean(request, IPP_TAG_OPERATION, "purge-job", (char)purge);
|
||||
+ else
|
||||
+ ippAddBoolean(request, IPP_TAG_OPERATION, "purge-jobs", (char)purge);
|
||||
+ }
|
||||
|
||||
/*
|
||||
* Do the request and get back a response...
|
||||
--
|
||||
2.41.0
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From 876fdc1c90a885a58644c8757bc1283c9fd5bcb7 Mon Sep 17 00:00:00 2001
|
||||
From: Vasilis Liaskovitis <vliaskovitis@suse.com>
|
||||
Date: Wed, 1 Mar 2023 13:46:28 +0100
|
||||
Subject: [PATCH] cups/http-addr.c: Set listen backlog size to INT_MAX (fixes
|
||||
#308)
|
||||
|
||||
Use a listen queue size of INT_MAX, which should default to the maximum
|
||||
supported queue size on the system.
|
||||
|
||||
This avoids the problem of the listening backlog queue getting full when
|
||||
there are too many requests at the same time. The problem was observed
|
||||
with the previous backlog size (128) by customers when submitting large
|
||||
batches of print jobs, resulting in some jobs getting lost.
|
||||
|
||||
Signed-off-by: Vasilis Liaskovitis <vliaskovitis@suse.com>
|
||||
---
|
||||
cups/http-addr.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cups/http-addr.c b/cups/http-addr.c
|
||||
index a61ee0449..6aeeb8074 100644
|
||||
--- a/cups/http-addr.c
|
||||
+++ b/cups/http-addr.c
|
||||
@@ -249,7 +249,7 @@ httpAddrListen(http_addr_t *addr, /* I - Address to bind to */
|
||||
* Listen...
|
||||
*/
|
||||
|
||||
- if (listen(fd, 5))
|
||||
+ if (listen(fd, INT_MAX))
|
||||
{
|
||||
_cupsSetHTTPError(HTTP_STATUS_ERROR);
|
||||
|
||||
--
|
||||
2.41.0
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From 5e3107e734f06d410a490e8bc923dc3119f17671 Mon Sep 17 00:00:00 2001
|
||||
From: Michael R Sweet <michael.r.sweet@gmail.com>
|
||||
Date: Wed, 17 May 2023 12:59:57 -0400
|
||||
Subject: [PATCH] Consensus fix.
|
||||
|
||||
---
|
||||
cups/string.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/cups/string.c b/cups/string.c
|
||||
index 00454203c..b4fc12050 100644
|
||||
--- a/cups/string.c
|
||||
+++ b/cups/string.c
|
||||
@@ -730,6 +731,9 @@ _cups_strlcpy(char *dst, /* O - Destination string */
|
||||
size_t srclen; /* Length of source string */
|
||||
|
||||
|
||||
+ if (size == 0)
|
||||
+ return (0);
|
||||
+
|
||||
/*
|
||||
* Figure out how much room is needed...
|
||||
*/
|
||||
--
|
||||
2.40.1
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
diff -up cups-2.2.6/cups/http-addrlist.c.cupsgetjobs-pollhup cups-2.2.6/cups/http-addrlist.c
|
||||
--- cups-2.2.6/cups/http-addrlist.c.cupsgetjobs-pollhup 2023-12-19 18:25:15.484637450 +0100
|
||||
+++ cups-2.2.6/cups/http-addrlist.c 2023-12-19 18:28:57.129163387 +0100
|
||||
@@ -313,6 +313,39 @@ httpAddrConnect2(
|
||||
{
|
||||
# ifdef HAVE_POLL
|
||||
DEBUG_printf(("pfds[%d].revents=%x\n", i, pfds[i].revents));
|
||||
+
|
||||
+# ifdef _WIN32
|
||||
+ if (((WSAGetLastError() == WSAEINPROGRESS) && (pfds[i].revents & POLLIN) && (pfds[i].revents & POLLOUT)) ||
|
||||
+ ((pfds[i].revents & POLLHUP) && (pfds[i].revents & (POLLIN|POLLOUT))))
|
||||
+# else
|
||||
+ if (((errno == EINPROGRESS) && (pfds[i].revents & POLLIN) && (pfds[i].revents & POLLOUT)) ||
|
||||
+ ((pfds[i].revents & POLLHUP) && (pfds[i].revents & (POLLIN|POLLOUT))))
|
||||
+# endif /* _WIN32 */
|
||||
+ {
|
||||
+ // Some systems generate POLLIN or POLLOUT together with POLLHUP when doing
|
||||
+ // asynchronous connections. The solution seems to be to use getsockopt to
|
||||
+ // check the SO_ERROR value and ignore the POLLHUP if there is no error or
|
||||
+ // the error is EINPROGRESS.
|
||||
+
|
||||
+ int sres, /* Return value from getsockopt() - 0, or -1 if error */
|
||||
+ serr; /* Option SO_ERROR value */
|
||||
+ socklen_t slen = sizeof(serr); /* Option value size */
|
||||
+
|
||||
+ sres = getsockopt(fds[i], SOL_SOCKET, SO_ERROR, &serr, &slen);
|
||||
+
|
||||
+ if (sres || serr)
|
||||
+ {
|
||||
+ pfds[i].revents |= POLLERR;
|
||||
+# ifdef DEBUG
|
||||
+ DEBUG_printf(("1httpAddrConnect2: getsockopt returned: %d with error: %s", sres, strerror(serr)));
|
||||
+# endif
|
||||
+ }
|
||||
+ else if (pfds[i].revents && (pfds[i].revents & POLLHUP) && (pfds[i].revents & (POLLIN | POLLOUT)))
|
||||
+ {
|
||||
+ pfds[i].revents &= ~POLLHUP;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (pfds[i].revents && !(pfds[i].revents & (POLLERR | POLLHUP)))
|
||||
# else
|
||||
if (FD_ISSET(fds[i], &input_set) && !FD_ISSET(fds[i], &error_set))
|
|
@ -0,0 +1,36 @@
|
|||
From db9cecdd932e58c51d2d659f63415ad47d151717 Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
||||
Date: Fri, 1 Sep 2023 17:11:54 +0200
|
||||
Subject: [PATCH] scheduler/conf.c: Print to stderr if we don't open
|
||||
cups-files.conf
|
||||
|
||||
In case cupsd can't open the cups-files.conf, the error message is lost
|
||||
if journal and syslog don't exist or work on system (usually in
|
||||
containers).
|
||||
|
||||
Log the error into stderr at this place to get the error message if
|
||||
needed.
|
||||
---
|
||||
scheduler/conf.c | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/scheduler/conf.c b/scheduler/conf.c
|
||||
index b18535162..4fa7eb1df 100644
|
||||
--- a/scheduler/conf.c
|
||||
+++ b/scheduler/conf.c
|
||||
@@ -811,11 +811,7 @@ cupsdReadConfiguration(void)
|
||||
cupsdLogMessage(CUPSD_LOG_INFO, "No %s, using defaults.", CupsFilesFile);
|
||||
else
|
||||
{
|
||||
-#ifdef HAVE_SYSTEMD_SD_JOURNAL_H
|
||||
- sd_journal_print(LOG_ERR, "Unable to open \"%s\" - %s", CupsFilesFile, strerror(errno));
|
||||
-#else
|
||||
- syslog(LOG_LPR, "Unable to open \"%s\" - %s", CupsFilesFile, strerror(errno));
|
||||
-#endif /* HAVE_SYSTEMD_SD_JOURNAL_H */
|
||||
+ fprintf(stderr, "Unable to read \"%s\" - %s\n", CupsFilesFile, strerror(errno));
|
||||
|
||||
return (0);
|
||||
}
|
||||
--
|
||||
2.41.0
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
diff -Napur cups-2.2.6-old/scheduler/job.c cups-2.2.6-new/scheduler/job.c
|
||||
--- cups-2.2.6-old/scheduler/job.c 2022-04-12 17:32:00.635282080 -0700
|
||||
+++ cups-2.2.6-new/scheduler/job.c 2022-04-12 17:33:34.349452614 -0700
|
||||
@@ -474,7 +474,7 @@ cupsdCleanJobs(void)
|
||||
cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing from history.");
|
||||
cupsdDeleteJob(job, CUPSD_JOB_PURGE);
|
||||
}
|
||||
- else if (job->file_time && job->file_time <= curtime)
|
||||
+ else if (job->file_time && job->file_time <= curtime && job->num_files > 0)
|
||||
{
|
||||
cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing document files.");
|
||||
remove_job_files(job);
|
|
@ -0,0 +1,23 @@
|
|||
diff --git a/backend/ipp.c b/backend/ipp.c
|
||||
index f8bf7e1..8440d2f 100644
|
||||
--- a/backend/ipp.c
|
||||
+++ b/backend/ipp.c
|
||||
@@ -422,8 +422,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
* that way.
|
||||
*/
|
||||
|
||||
- if (!getuid() && (value = getenv("AUTH_UID")) != NULL &&
|
||||
- !getenv("AUTH_PASSWORD"))
|
||||
+ if (!getuid() && (value = getenv("AUTH_UID")) != NULL)
|
||||
{
|
||||
uid_t uid = (uid_t)atoi(value);
|
||||
/* User ID */
|
||||
@@ -457,7 +456,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
|
||||
# else /* No XPC, just try to run as the user ID */
|
||||
if (uid > 0)
|
||||
- seteuid(uid);
|
||||
+ setuid(uid);
|
||||
# endif /* HAVE_XPC */
|
||||
}
|
||||
#endif /* HAVE_GSSAPI */
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/scheduler/colorman.c b/scheduler/colorman.c
|
||||
index 8af4e5c..9bfdb0c 100644
|
||||
--- a/scheduler/colorman.c
|
||||
+++ b/scheduler/colorman.c
|
||||
@@ -1083,7 +1083,7 @@ colord_create_profile(
|
||||
|
||||
dbus_message_iter_get_basic(&args, &profile_path);
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG, "Created profile \"%s\".", profile_path);
|
||||
- cupsArrayAdd(profiles, strdup(profile_path));
|
||||
+ cupsArrayAdd(profiles, profile_path);
|
||||
|
||||
out:
|
||||
|
||||
diff --git a/scheduler/job.c b/scheduler/job.c
|
||||
index 0223bee..47d4c72 100644
|
||||
--- a/scheduler/job.c
|
||||
+++ b/scheduler/job.c
|
||||
@@ -1496,11 +1496,11 @@ cupsdDeleteJob(cupsd_job_t *job, /* I - Job */
|
||||
job->num_files = 0;
|
||||
}
|
||||
|
||||
+ unload_job(job);
|
||||
+
|
||||
if (job->history)
|
||||
free_job_history(job);
|
||||
|
||||
- unload_job(job);
|
||||
-
|
||||
cupsArrayRemove(Jobs, job);
|
||||
cupsArrayRemove(ActiveJobs, job);
|
||||
cupsArrayRemove(PrintingJobs, job);
|
|
@ -0,0 +1,52 @@
|
|||
diff --git a/doc/help/man-cupsd.conf.html b/doc/help/man-cupsd.conf.html
|
||||
index 9082348..8ab1ce8 100644
|
||||
--- a/doc/help/man-cupsd.conf.html
|
||||
+++ b/doc/help/man-cupsd.conf.html
|
||||
@@ -90,7 +90,7 @@ The default value is "30".
|
||||
<dd style="margin-left: 5.0em">Specifies that a failed print job should be aborted (discarded) unless otherwise specified for the printer.
|
||||
<dt><b>ErrorPolicy retry-job</b>
|
||||
<dd style="margin-left: 5.0em">Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer.
|
||||
-<dt><b>ErrorPolicy retry-this-job</b>
|
||||
+<dt><b>ErrorPolicy retry-current-job</b>
|
||||
<dd style="margin-left: 5.0em">Specifies that a failed print job should be retried immediately unless otherwise specified for the printer.
|
||||
<dt><b>ErrorPolicy stop-printer</b>
|
||||
<dd style="margin-left: 5.0em">Specifies that a failed print job should stop the printer unless otherwise specified for the printer. The 'stop-printer' error policy is the default.
|
||||
diff --git a/man/cupsd.conf.man.in b/man/cupsd.conf.man.in
|
||||
index 53a028d..ba12b07 100644
|
||||
--- a/man/cupsd.conf.man.in
|
||||
+++ b/man/cupsd.conf.man.in
|
||||
@@ -135,7 +135,7 @@ Specifies that a failed print job should be aborted (discarded) unless otherwise
|
||||
\fBErrorPolicy retry-job\fR
|
||||
Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer.
|
||||
.TP 5
|
||||
-\fBErrorPolicy retry-this-job\fR
|
||||
+\fBErrorPolicy retry-current-job\fR
|
||||
Specifies that a failed print job should be retried immediately unless otherwise specified for the printer.
|
||||
.TP 5
|
||||
\fBErrorPolicy stop-printer\fR
|
||||
diff --git a/man/cupsd.conf.man.in.privilege-escalation b/man/cupsd.conf.man.in.privilege-escalation
|
||||
index ab89e15..130ea8a 100644
|
||||
--- a/man/cupsd.conf.man.in.privilege-escalation
|
||||
+++ b/man/cupsd.conf.man.in.privilege-escalation
|
||||
@@ -135,7 +135,7 @@ Specifies that a failed print job should be aborted (discarded) unless otherwise
|
||||
\fBErrorPolicy retry-job\fR
|
||||
Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer.
|
||||
.TP 5
|
||||
-\fBErrorPolicy retry-this-job\fR
|
||||
+\fBErrorPolicy retry-current-job\fR
|
||||
Specifies that a failed print job should be retried immediately unless otherwise specified for the printer.
|
||||
.TP 5
|
||||
\fBErrorPolicy stop-printer\fR
|
||||
diff --git a/man/cupsd.conf.man.in.remove-weak-ciphers b/man/cupsd.conf.man.in.remove-weak-ciphers
|
||||
index 5516780..35065ca 100644
|
||||
--- a/man/cupsd.conf.man.in.remove-weak-ciphers
|
||||
+++ b/man/cupsd.conf.man.in.remove-weak-ciphers
|
||||
@@ -135,7 +135,7 @@ Specifies that a failed print job should be aborted (discarded) unless otherwise
|
||||
\fBErrorPolicy retry-job\fR
|
||||
Specifies that a failed print job should be retried at a later time unless otherwise specified for the printer.
|
||||
.TP 5
|
||||
-\fBErrorPolicy retry-this-job\fR
|
||||
+\fBErrorPolicy retry-current-job\fR
|
||||
Specifies that a failed print job should be retried immediately unless otherwise specified for the printer.
|
||||
.TP 5
|
||||
\fBErrorPolicy stop-printer\fR
|
|
@ -0,0 +1,171 @@
|
|||
@PYTHON_SHEBANG@
|
||||
|
||||
"""
|
||||
Upgrade script to enable authentication for CUPS-Get-Document in
|
||||
default policy
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from shutil import copy
|
||||
|
||||
|
||||
def get_cupsd_conf():
|
||||
"""
|
||||
Get all lines from cupsd.conf
|
||||
"""
|
||||
if not os.path.exists('/etc/cups/cupsd.conf'):
|
||||
return None
|
||||
|
||||
lines = []
|
||||
with open('/etc/cups/cupsd.conf', 'r') as conf:
|
||||
lines = conf.readlines()
|
||||
|
||||
return lines
|
||||
|
||||
|
||||
def get_default_policy(lines):
|
||||
"""
|
||||
Get the default policy lines
|
||||
|
||||
:param list lines: lines from cupsd.conf
|
||||
"""
|
||||
default_policy = []
|
||||
in_policy = False
|
||||
|
||||
for line in lines:
|
||||
if not in_policy and not line.lstrip().startswith('<Policy default>'):
|
||||
continue
|
||||
|
||||
default_policy.append(line)
|
||||
|
||||
if line.lstrip().startswith('</Policy>'):
|
||||
return default_policy
|
||||
|
||||
in_policy = True
|
||||
|
||||
return default_policy
|
||||
|
||||
|
||||
def get_limit_with_document(lines):
|
||||
"""
|
||||
Get <Limit> scope which defines CUPS-Get-Document operation
|
||||
|
||||
:param list lines: Lines containing the default policy
|
||||
"""
|
||||
limit = []
|
||||
in_limit = False
|
||||
|
||||
for line in lines:
|
||||
if not in_limit and not line.lstrip().startswith('<Limit'):
|
||||
continue
|
||||
|
||||
if (not in_limit and line.lstrip().startswith('<Limit') and
|
||||
not 'CUPS-Get-Document' in line.lstrip().split('#')[0][1:-1]):
|
||||
continue
|
||||
|
||||
limit.append(line)
|
||||
|
||||
if line.lstrip().startswith('</Limit>'):
|
||||
return limit
|
||||
|
||||
in_limit = True
|
||||
|
||||
return limit
|
||||
|
||||
|
||||
def check_for_authtype(lines):
|
||||
"""
|
||||
Check if <Limit> defining CUPS-Get-Document defines
|
||||
any authentication
|
||||
|
||||
:param list lines: Lines of <Limit> scope which defines CUPS-Get-Document
|
||||
"""
|
||||
for line in lines:
|
||||
if line.lstrip().startswith('AuthType'):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def migrate_cupsd_conf(lines):
|
||||
"""
|
||||
Make changes to cupsd.conf contents to use authentication
|
||||
for CUPS-Get-Document
|
||||
|
||||
:param list lines: Lines from cupsd.conf
|
||||
"""
|
||||
new_lines = []
|
||||
in_policy = False
|
||||
create_document_limit = False
|
||||
|
||||
for line in lines:
|
||||
if (in_policy and line.lstrip().startswith('<Limit') and
|
||||
not line.lstrip().startswith('<Limit CUPS-Get-Document>') and
|
||||
'CUPS-Get-Document' in line.lstrip().split('#')[0][1:-1]):
|
||||
line = line.replace(' CUPS-Get-Document', '')
|
||||
create_document_limit = True
|
||||
|
||||
if in_policy and line.lstrip().startswith('</Policy>') and create_document_limit:
|
||||
new_lines.append('\n')
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 2) * ' ' +
|
||||
'# added during upgrade\n')
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 2) * ' ' +
|
||||
'<Limit CUPS-Get-Document>\n')
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 4) * ' ' +
|
||||
'AuthType Default\n')
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 4) * ' ' +
|
||||
'Require user @OWNER @SYSTEM\n')
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 4) * ' ' +
|
||||
'Order deny,allow\n')
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 2) * ' ' +
|
||||
'</Limit>\n')
|
||||
create_document_limit = False
|
||||
|
||||
new_lines.append(line)
|
||||
|
||||
if not in_policy:
|
||||
if line.lstrip().startswith('<Policy default>'):
|
||||
in_policy = True
|
||||
continue
|
||||
|
||||
if line.lstrip().startswith('<Limit CUPS-Get-Document>'):
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 2) * ' ' +
|
||||
'# added during upgrade\n')
|
||||
new_lines.append((len(line) - len(line.lstrip()) + 2) * ' ' +
|
||||
'AuthType Default\n')
|
||||
continue
|
||||
|
||||
if line.lstrip().startswith('</Policy>'):
|
||||
in_policy = False
|
||||
continue
|
||||
|
||||
return new_lines
|
||||
|
||||
|
||||
def apply_changes(lines):
|
||||
"""
|
||||
Backup the original file if there is no .rpmsave already and
|
||||
apply changes to the actual cupsd.conf
|
||||
|
||||
:param list lines: New lines for cupsd.conf
|
||||
"""
|
||||
if not os.path.exists('/etc/cups/cupsd.conf.rpmsave'):
|
||||
copy('/etc/cups/cupsd.conf', '/etc/cups/cupsd.conf.rpmsave')
|
||||
|
||||
with open('/etc/cups/cupsd.conf', 'w') as conf:
|
||||
conf.writelines(lines)
|
||||
|
||||
|
||||
|
||||
content = get_cupsd_conf()
|
||||
if content is None:
|
||||
sys.exit(1)
|
||||
|
||||
if check_for_authtype(get_limit_with_document(get_default_policy(content))):
|
||||
sys.exit(0)
|
||||
|
||||
new_content = migrate_cupsd_conf(content)
|
||||
|
||||
apply_changes(new_content)
|
||||
|
||||
sys.exit(0)
|
134
SPECS/cups.spec
134
SPECS/cups.spec
|
@ -7,6 +7,13 @@
|
|||
# but we use lib for compatibility with 3rd party drivers (at upstream request).
|
||||
%global cups_serverbin %{_exec_prefix}/lib/cups
|
||||
|
||||
# we still need something for python2...
|
||||
%if 0%{?rhel} >= 8 || 0%{?fedora}
|
||||
%global __python %{__python3}
|
||||
%else
|
||||
%global __python /usr/bin/python2
|
||||
%endif
|
||||
|
||||
#%%global prever rc1
|
||||
#%%global VERSION %%{version}%%{prever}
|
||||
%global VERSION %{version}
|
||||
|
@ -15,7 +22,7 @@ Summary: CUPS printing system
|
|||
Name: cups
|
||||
Epoch: 1
|
||||
Version: 2.2.6
|
||||
Release: 45%{?dist}.2
|
||||
Release: 57%{?dist}
|
||||
License: GPLv2+ and LGPLv2 with exceptions and AML
|
||||
Url: http://www.cups.org/
|
||||
Source0: https://github.com/apple/cups/releases/download/v%{VERSION}/cups-%{VERSION}-source.tar.gz
|
||||
|
@ -26,6 +33,8 @@ Source6: cups.logrotate
|
|||
# Backend for NCP protocol
|
||||
Source7: ncp.backend
|
||||
Source8: macros.cups
|
||||
# CVE-2023-32360 migration script
|
||||
Source9: upgrade_get_document.py.in
|
||||
|
||||
Patch1: cups-no-gzip-man.patch
|
||||
Patch2: cups-system-auth.patch
|
||||
|
@ -129,10 +138,38 @@ Patch70: 0001-Add-with-idle-exit-timeout-configure-option.patch
|
|||
Patch71: 0001-Add-with-systemd-timeoutstartsec-configure-option.patch
|
||||
# 2032965 - [RFE] RHEL8 - CUPS Web UI supports adding IPP Everywhere
|
||||
Patch72: cups-ippeve-web-support.patch
|
||||
# 2073531 - 30-second delays printing to Windows 2016 server via HTTPS
|
||||
# 2071417 - 30-second delays printing to Windows 2016 server via HTTPS
|
||||
Patch73: 0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch
|
||||
# 2074684 - lp to a remote server takes a long time
|
||||
Patch74: 0001-Use-cupsGetNamedDest-for-legacy-printing-APIs-Issue-.patch
|
||||
# 2074736 - CUPS is too chatty about "Removing document files." in debug mode
|
||||
Patch75: cups-cupsd-too-chatty.patch
|
||||
# CVE-2022-26691 cups: authorization bypass when using "local" authorization
|
||||
Patch74: 0001-scheduler-cert.c-Fix-string-comparison-fixes-CVE-202.patch
|
||||
Patch76: 0001-scheduler-cert.c-Fix-string-comparison-fixes-CVE-202.patch
|
||||
# 2084257 - ErrorPolicy documentation is incorrect
|
||||
Patch77: cups-retry-current-job-man.patch
|
||||
# 1910415 - manpage update to acknowledge order dependency of -h option
|
||||
Patch78: 0001-Update-man-pages-for-h-option-Issue-357.patch
|
||||
# 2130391 - Kerberized IPP Printing Fails
|
||||
Patch79: cups-kerberos.patch
|
||||
# 2217178 - Delays printing to lpd when reserved ports are exhausted
|
||||
Patch80: 0001-Fix-delays-printing-to-lpd-when-reserved-ports-are-e.patch
|
||||
# 2217283 - The command "cancel -x <job>" does not remove job files
|
||||
Patch81: 0001-Use-purge-job-instead-of-purge-jobs-when-canceling-a.patch
|
||||
# 2217955 - Enlarge backlog queue for listen() in cupsd
|
||||
Patch82: 0001-cups-http-addr.c-Set-listen-backlog-size-to-INT_MAX-.patch
|
||||
# CVE-2023-34241 cups: use-after-free in cupsdAcceptClient() in scheduler/client.c
|
||||
Patch83: 0001-Log-result-of-httpGetHostname-BEFORE-closing-the-con.patch
|
||||
# CVE-2023-32324 cups: heap buffer overflow may lead to DoS
|
||||
Patch84: 0001-cups-strlcpy-handle-zero-size.patch
|
||||
# CVE-2023-32360 cups: Information leak through Cups-Get-Document operation
|
||||
Patch85: 0001-Require-authentication-for-CUPS-Get-Document.patch
|
||||
# RHEL-14933 cupsd memory leak in cupsdDeleteJob() with "PreserveJobHistory Off"
|
||||
Patch86: cups-preservejob-leak.patch
|
||||
# RHEL-15309 cupsd fails to open cups-files.conf and the resulting error message is lost
|
||||
Patch87: 0001-scheduler-conf.c-Print-to-stderr-if-we-don-t-open-cu.patch
|
||||
# RHEL-10702 cupsGetJobs fails to connect if poll() gets POLLOUT|POLLHUP in revents
|
||||
Patch88: 0001-httpAddrConnect2-Check-for-error-if-POLLHUP-is-in-va.patch
|
||||
|
||||
Patch1000: cups-lspp.patch
|
||||
|
||||
|
@ -179,6 +216,9 @@ Requires(post): grep, sed
|
|||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
|
||||
# for upgrade-get-document script
|
||||
Requires(post): %{__python}
|
||||
|
||||
# We ship udev rules which use setfacl.
|
||||
Requires: systemd
|
||||
Requires: acl
|
||||
|
@ -405,10 +445,38 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
|
|||
%patch71 -p1 -b .timeoutstartsec
|
||||
# 2032965 - [RFE] RHEL8 - CUPS Web UI supports adding IPP Everywhere
|
||||
%patch72 -p1 -b .ippeve-web-support
|
||||
# 2073531 - 30-second delays printing to Windows 2016 server via HTTPS
|
||||
# 2071417 - 30-second delays printing to Windows 2016 server via HTTPS
|
||||
%patch73 -p1 -b .gnutlsbye
|
||||
# 2074684 - lp to a remote server takes a long time
|
||||
%patch74 -p1 -b .lp-long-time
|
||||
# 2074736 - CUPS is too chatty about "Removing document files." in debug mode
|
||||
%patch75 -p1 -b .cupsd-too-chatty
|
||||
# CVE-2022-26691 cups: authorization bypass when using "local" authorization
|
||||
%patch74 -p1 -b .cve26691
|
||||
%patch76 -p1 -b .cve26691
|
||||
# 2084257 - ErrorPolicy documentation is incorrect
|
||||
%patch77 -p1 -b .retry-current-job-man
|
||||
# 1910415 - manpage update to acknowledge order dependency of -h option
|
||||
%patch78 -p1 -b .manpage-update
|
||||
# 2130391 - Kerberized IPP Printing Fails
|
||||
%patch79 -p1 -b .kerberos
|
||||
# 2217178 - Delays printing to lpd when reserved ports are exhausted
|
||||
%patch80 -p1 -b .lpd-delay
|
||||
# 2217283 - The command "cancel -x <job>" does not remove job files
|
||||
%patch81 -p1 -b .purge-job
|
||||
# 2217955 - Enlarge backlog queue for listen() in cupsd
|
||||
%patch82 -p1 -b .listen-backlog
|
||||
# CVE-2023-34241 cups: use-after-free in cupsdAcceptClient() in scheduler/client.c
|
||||
%patch83 -p1 -b .cve34241
|
||||
# CVE-2023-32324 cups: heap buffer overflow may lead to DoS
|
||||
%patch84 -p1 -b .cve32324
|
||||
# CVE-2023-32360 cups: Information leak through Cups-Get-Document operation
|
||||
%patch85 -p1 -b .get-document-auth
|
||||
# RHEL-14933 cupsd memory leak in cupsdDeleteJob() with "PreserveJobHistory Off"
|
||||
%patch86 -p1 -b .preservejob-leak
|
||||
# RHEL-15309 cupsd fails to open cups-files.conf and the resulting error message is lost
|
||||
%patch87 -p1 -b .message-stderr
|
||||
# RHEL-10702 cupsGetJobs fails to connect if poll() gets POLLOUT|POLLHUP in revents
|
||||
%patch88 -p1 -b .cupsgetjobs-pollhup
|
||||
|
||||
sed -i -e '1iMaxLogSize 0' conf/cupsd.conf.in
|
||||
|
||||
|
@ -558,6 +626,11 @@ s:.*\('%{_datadir}'/\)\([^/_]\+\)\(.*\.po$\):%lang(\2) \1\2\3:
|
|||
/^\([^%].*\)/d
|
||||
' > %{name}.lang
|
||||
|
||||
# install get-document upgrade script
|
||||
install -m 0755 %{SOURCE9} %{buildroot}%{_sbindir}/upgrade_get_document
|
||||
|
||||
sed -i 's,@PYTHON_SHEBANG@,#!%{__python},' %{buildroot}%{_sbindir}/upgrade_get_document
|
||||
|
||||
%post
|
||||
%systemd_post %{name}.path %{name}.socket %{name}.service
|
||||
|
||||
|
@ -620,6 +693,8 @@ fi
|
|||
grep '^\s*IdleExitTimeout' %{_sysconfdir}/cups/cupsd.conf &> /dev/null || echo -e '\nIdleExitTimeout 0' \
|
||||
>> %{_sysconfdir}/cups/cupsd.conf
|
||||
|
||||
%{_sbindir}/upgrade_get_document
|
||||
|
||||
exit 0
|
||||
|
||||
%post client
|
||||
|
@ -828,11 +903,54 @@ rm -f %{cups_serverbin}/backend/smb
|
|||
%{_mandir}/man5/ipptoolfile.5.gz
|
||||
|
||||
%changelog
|
||||
* Thu May 26 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-45.2
|
||||
* Mon Feb 26 2024 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-57
|
||||
- revert RHEL-19200 - no new subpackages are needed
|
||||
|
||||
* Wed Dec 20 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-56
|
||||
- RHEL-10702 cupsGetJobs fails to connect if poll() gets POLLOUT|POLLHUP in revents
|
||||
- RHEL-19200 Recommend new cups-filters subpackages with weak dep for better upgrade exp
|
||||
|
||||
* Fri Nov 03 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-55
|
||||
- RHEL-14933 cupsd memory leak in cupsdDeleteJob() with "PreserveJobHistory Off"
|
||||
- RHEL-15309 cupsd fails to open cups-files.conf and the resulting error message is lost
|
||||
|
||||
* Tue Sep 12 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-54
|
||||
- RHEL-2612 - cups pulls an unneeded dependency on python3
|
||||
|
||||
* Tue Aug 29 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-53
|
||||
- CVE-2023-32360 cups: Information leak through Cups-Get-Document operation
|
||||
|
||||
* Thu Jun 29 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-52
|
||||
- 2217178 - Delays printing to lpd when reserved ports are exhausted
|
||||
- 2217283 - The command "cancel -x <job>" does not remove job files
|
||||
- 2217955 - Enlarge backlog queue for listen() in cupsd
|
||||
- CVE-2023-34241 cups: use-after-free in cupsdAcceptClient() in scheduler/client.c
|
||||
- CVE-2023-32324 cups: heap buffer overflow may lead to DoS
|
||||
|
||||
* Mon Apr 03 2023 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-51
|
||||
- RHEL-316 - Enable fmf tests in centos stream
|
||||
|
||||
* Wed Dec 14 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-51
|
||||
- 2130391 - Kerberized IPP Printing Fails
|
||||
|
||||
* Fri Jul 01 2022 Richard Lescak <rlescak@redhat.com> - 1:2.2.6-50
|
||||
- 1910415 - corrected manpage patch, one lpoptions usage wasn't changed
|
||||
|
||||
* Thu Jun 16 2022 Richard Lescak <rlescak@redhat.com> - 1:2.2.6-49
|
||||
- 1910415 - manpage update to acknowledge order dependency of -h option
|
||||
|
||||
* Tue May 31 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-48
|
||||
- 2084257 - ErrorPolicy documentation is incorrect
|
||||
|
||||
* Thu May 26 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-47
|
||||
- CVE-2022-26691 cups: authorization bypass when using "local" authorization
|
||||
|
||||
* Sat Apr 09 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-45.1
|
||||
- 2073531 - 30-second delays printing to Windows 2016 server via HTTPS
|
||||
* Fri May 13 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-46
|
||||
- 2074684 - lp to a remote server takes a long time
|
||||
- 2074736 - CUPS is too chatty about "Removing document files." in debug mode
|
||||
|
||||
* Fri Apr 08 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-45
|
||||
- 2071417 - 30-second delays printing to Windows 2016 server via HTTPS
|
||||
|
||||
* Wed Jan 19 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.2.6-44
|
||||
- 2015182 - RFE: Implement IdleExitTimeout configuration during build
|
||||
|
|
Loading…
Reference in New Issue