2019842 - Add more warning messages about drivers going deprecated
Resolves: rhbz#2019842
This commit is contained in:
parent
d3e0a6390d
commit
f4c99f4a13
177
cups-deprecate-drivers.patch
Normal file
177
cups-deprecate-drivers.patch
Normal file
@ -0,0 +1,177 @@
|
||||
diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c
|
||||
index 02b9d9d..669cb65 100644
|
||||
--- a/cgi-bin/admin.c
|
||||
+++ b/cgi-bin/admin.c
|
||||
@@ -619,6 +619,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
|
||||
*oldinfo; /* Old printer information */
|
||||
const cgi_file_t *file; /* Uploaded file, if any */
|
||||
const char *var; /* CGI variable */
|
||||
+ char *ppd_name = NULL; /* Pointer to PPD name */
|
||||
char uri[HTTP_MAX_URI], /* Device or printer URI */
|
||||
*uriptr, /* Pointer into URI */
|
||||
evefile[1024] = ""; /* IPP Everywhere PPD file */
|
||||
@@ -1124,12 +1125,12 @@ do_am_printer(http_t *http, /* I - HTTP connection */
|
||||
|
||||
if (!file)
|
||||
{
|
||||
- var = cgiGetVariable("PPD_NAME");
|
||||
- if (!strcmp(var, "everywhere"))
|
||||
+ ppd_name = cgiGetVariable("PPD_NAME");
|
||||
+ if (!strcmp(ppd_name, "everywhere"))
|
||||
get_printer_ppd(cgiGetVariable("DEVICE_URI"), evefile, sizeof(evefile));
|
||||
- else if (strcmp(var, "__no_change__"))
|
||||
+ else if (strcmp(ppd_name, "__no_change__"))
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "ppd-name",
|
||||
- NULL, var);
|
||||
+ NULL, ppd_name);
|
||||
}
|
||||
|
||||
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-location",
|
||||
@@ -1219,7 +1220,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
|
||||
|
||||
cgiCopyTemplateLang("printer-modified.tmpl");
|
||||
}
|
||||
- else
|
||||
+ else if (ppd_name && (strcmp(ppd_name, "everywhere") == 0 || strstr(ppd_name, "driverless")))
|
||||
{
|
||||
/*
|
||||
* Set the printer options...
|
||||
@@ -1229,6 +1230,16 @@ do_am_printer(http_t *http, /* I - HTTP connection */
|
||||
do_set_options(http, 0);
|
||||
return;
|
||||
}
|
||||
+ else
|
||||
+ {
|
||||
+ /*
|
||||
+ * If we don't have an everywhere model, show printer-added
|
||||
+ * template with warning about drivers going away...
|
||||
+ */
|
||||
+
|
||||
+ cgiStartHTML(title);
|
||||
+ cgiCopyTemplateLang("printer-added.tmpl");
|
||||
+ }
|
||||
|
||||
cgiEndHTML();
|
||||
}
|
||||
diff --git a/scheduler/printers.c b/scheduler/printers.c
|
||||
index 3bfe4a8..248bdba 100644
|
||||
--- a/scheduler/printers.c
|
||||
+++ b/scheduler/printers.c
|
||||
@@ -950,6 +950,8 @@ cupsdLoadAllPrinters(void)
|
||||
*value, /* Pointer to value */
|
||||
*valueptr; /* Pointer into value */
|
||||
cupsd_printer_t *p; /* Current printer */
|
||||
+ int found_raw = 0; /* Flag whether raw queue is installed */
|
||||
+ int found_driver = 0; /* Flag whether queue with classic driver is installed */
|
||||
|
||||
|
||||
/*
|
||||
@@ -1025,6 +1027,30 @@ cupsdLoadAllPrinters(void)
|
||||
|
||||
cupsdSetPrinterAttrs(p);
|
||||
|
||||
+ if ((p->device_uri && strncmp(p->device_uri, "ipp:", 4) && strncmp(p->device_uri, "ipps:", 5) && strncmp(p->device_uri, "implicitclass:", 14)) ||
|
||||
+ !p->make_model ||
|
||||
+ (p->make_model && strstr(p->make_model, "IPP Everywhere") == NULL && strstr(p->make_model, "driverless") == NULL))
|
||||
+ {
|
||||
+ /*
|
||||
+ * Warn users about printer drivers and raw queues will be deprecated.
|
||||
+ * It will warn users in the following scenarios:
|
||||
+ * - the queue doesn't use ipp, ipps or implicitclass backend, which means
|
||||
+ * it doesn't communicate via IPP and is raw or uses a driver for sure
|
||||
+ * - the queue doesn't have make_model - it is raw
|
||||
+ * - the queue uses a correct backend, but the model is not IPP Everywhere/driverless
|
||||
+ */
|
||||
+ if (!p->make_model)
|
||||
+ {
|
||||
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "Queue %s is a raw queue, which is deprecated.", p->name);
|
||||
+ found_raw = 1;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "Queue %s uses a printer driver, which is deprecated.", p->name);
|
||||
+ found_driver = 1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (strncmp(p->device_uri, "file:", 5) && p->state != IPP_PRINTER_STOPPED)
|
||||
{
|
||||
/*
|
||||
@@ -1415,6 +1441,12 @@ cupsdLoadAllPrinters(void)
|
||||
}
|
||||
}
|
||||
|
||||
+ if (found_raw)
|
||||
+ cupsdLogMessage(CUPSD_LOG_WARN, "Raw queues are deprecated and will stop working in a future version of CUPS. See https://github.com/OpenPrinting/cups/issues/103");
|
||||
+
|
||||
+ if (found_driver)
|
||||
+ cupsdLogMessage(CUPSD_LOG_WARN, "Printer drivers are deprecated and will stop working in a future version of CUPS. See https://github.com/OpenPrinting/cups/issues/103");
|
||||
+
|
||||
cupsFileClose(fp);
|
||||
}
|
||||
|
||||
diff --git a/systemv/lpadmin.c b/systemv/lpadmin.c
|
||||
index ca6d386..daf24d5 100644
|
||||
--- a/systemv/lpadmin.c
|
||||
+++ b/systemv/lpadmin.c
|
||||
@@ -632,7 +632,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
|
||||
num_options = cupsRemoveOption("ppd-name", num_options, &options);
|
||||
}
|
||||
- else if (ppd_name || file)
|
||||
+ else if ((ppd_name && strncmp(ppd_name, "driverless:", 11)) || file)
|
||||
{
|
||||
_cupsLangPuts(stderr, _("lpadmin: Printer drivers are deprecated and will stop working in a future version of CUPS."));
|
||||
}
|
||||
diff --git a/templates/choose-model.tmpl b/templates/choose-model.tmpl
|
||||
index e916cf8..9c9b71f 100644
|
||||
--- a/templates/choose-model.tmpl
|
||||
+++ b/templates/choose-model.tmpl
|
||||
@@ -39,7 +39,7 @@
|
||||
<TD>
|
||||
<SELECT NAME="PPD_NAME" SIZE="10">
|
||||
{op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Current Driver - {current_make_and_model}</OPTION>:}
|
||||
-{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model} - IPP Everywhere ™</OPTION>:}
|
||||
+{show_ipp_everywhere?<OPTION VALUE="everywhere" SELECTED>{current_make_and_model?{current_make_and_model} -:} IPP Everywhere ™</OPTION>:}
|
||||
{[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language})
|
||||
}</SELECT>
|
||||
</TD>
|
||||
diff --git a/templates/printer-added.tmpl b/templates/printer-added.tmpl
|
||||
index 0ccf6d3..9ebc835 100644
|
||||
--- a/templates/printer-added.tmpl
|
||||
+++ b/templates/printer-added.tmpl
|
||||
@@ -1,4 +1,15 @@
|
||||
-<H2 CLASS="title">Add Printer</H2>
|
||||
+<H2 CLASS="title">Add Printer {printer_name}</H2>
|
||||
|
||||
<P>Printer <A HREF="/printers/{printer_name}">{printer_name}</A> has been added
|
||||
successfully.
|
||||
+
|
||||
+<blockquote>
|
||||
+<b>Note:<b>Printer drivers and raw queues are deprecated and will stop working in a future version of CUPS.
|
||||
+</blockquote>
|
||||
+
|
||||
+<FORM ACTION="admin/" METHOD="POST">
|
||||
+<INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
|
||||
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="set-printer-options">
|
||||
+<INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}">
|
||||
+<INPUT TYPE="SUBMIT" VALUE="Set Printer Options">
|
||||
+</FORM>
|
||||
diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
|
||||
index 4498a8c..8776874 100755
|
||||
--- a/test/run-stp-tests.sh
|
||||
+++ b/test/run-stp-tests.sh
|
||||
@@ -1049,10 +1049,10 @@ fi
|
||||
|
||||
# Warning log messages
|
||||
count=`$GREP '^W ' $BASE/log/error_log | $GREP -v CreateProfile | $GREP -v 'libusb error' | $GREP -v ColorManager | $GREP -v 'Avahi client failed' | wc -l | awk '{print $1}'`
|
||||
-if test $count != 8; then
|
||||
- echo "FAIL: $count warning messages, expected 8."
|
||||
+if test $count != 10; then
|
||||
+ echo "FAIL: $count warning messages, expected 10."
|
||||
$GREP '^W ' $BASE/log/error_log
|
||||
- echo " <p>FAIL: $count warning messages, expected 8.</p>" >>$strfile
|
||||
+ echo " <p>FAIL: $count warning messages, expected 10.</p>" >>$strfile
|
||||
echo " <pre>" >>$strfile
|
||||
$GREP '^W ' $BASE/log/error_log | sed -e '1,$s/&/&/g' -e '1,$s/</</g' >>$strfile
|
||||
echo " </pre>" >>$strfile
|
@ -86,6 +86,8 @@ Patch19: 0001-scheduler-job.c-use-gziptoany-for-raw-files-not-just.patch
|
||||
Patch20: cups-restart-job-hold-until.patch
|
||||
# 2022365 - Annocheck fails due incorrect flags during compilation/linking
|
||||
Patch21: cups-fstack-strong.patch
|
||||
# 2019842 - Add more warning messages about drivers going deprecated
|
||||
Patch22: cups-deprecate-drivers.patch
|
||||
|
||||
##### Patches removed because IMHO they aren't no longer needed
|
||||
##### but still I'll leave them in git in case their removal
|
||||
@ -303,6 +305,8 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in
|
||||
%patch20 -p1 -b .restart-hold-job
|
||||
# 2022365 - Annocheck fails due incorrect flags during compilation/linking
|
||||
%patch21 -p1 -b .fstack-strong
|
||||
# 2019842 - Add more warning messages about drivers going deprecated
|
||||
%patch22 -p1 -b .deprecate-warnings
|
||||
|
||||
|
||||
%if %{lspp}
|
||||
@ -702,6 +706,9 @@ rm -f %{cups_serverbin}/backend/smb
|
||||
%{_mandir}/man7/ippeveps.7.gz
|
||||
|
||||
%changelog
|
||||
* Fri Nov 12 2021 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.3op2-11
|
||||
- 2019842 - Add more warning messages about drivers going deprecated
|
||||
|
||||
* Fri Nov 12 2021 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.3op2-10
|
||||
- 2022365 - Annocheck fails due incorrect flags during compilation/linking
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user