Zdenek Dohnal [Wed, 25 Nov 2020 08:31:31 +0000 (09:31 +0100)]
[Fedora] cups.service.in: Start cupsd after NIS is started
If an user has a NIS group as SystemGroup in cups-files.conf, then cupsd fails to start if it is activated before ypbind service. Setting 'After=ypbind.service' sets unit's order to cupsd being started after ypbind.
Zdenek Dohnal [Wed, 25 Nov 2020 07:12:32 +0000 (08:12 +0100)]
[Fedora] cups.service.in: Use 'notify' service type and run after network.target
1) If the service is defined with 'simple' type, the result of 'systemctl' is 0 regardless of actual startup result, because it reports success/failure of forking process (even before cupsd is started). This way errors due bad configuration or programming errors are masked during systemctl invocation.
The 'notify' type depends on executable sending a 'Im running' type of message to systemd after successful start and systemctl's return code depends whether this message came or not, which solves the issue.
2) The service needs to be started after all units needed for network.target are activated. This prevents starting cupsd before we have ports ready.
Fedora bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=1153660 (adding network.target)
https://bugzilla.redhat.com/show_bug.cgi?id=1088918 (change of the service type)
Michael R Sweet [Sun, 22 Nov 2020 13:49:56 +0000 (08:49 -0500)]
"make test" now runs the automated test suite.
"make debugtest" now runs the automated test suite with debug printfs enabled.
The old "check" and "debugcheck" targets are still active, however "test" is the
canonical test suite target for most open source projects and CI environments.
The old "test" target behavior is available by running "make testserver" - as
before you can choose to run a more agressive automated test or just run the
test server in the background.
Till Kamppeter [Wed, 26 Aug 2020 11:03:00 +0000 (13:03 +0200)]
Fix fax numbers supplied via GTK print dialog, removing a "Custom." prefix; do not choke if the GTK dialog sends "None" as phone number or pre-dial prefix
Till Kampetter [Tue, 9 Aug 2016 16:11:35 +0000 (18:11 +0200)]
Do not use host names for broadcasting print queues and
managing print queues broadcasted from other servers by default. Many
networks do not have valid host names for all machines.
Bug-Ubuntu: https://bugs.launchpad.net/bugs/449586
Patch-Name: do-not-broadcast-with-hostnames.patch
Tim Waugh [Tue, 9 Aug 2016 16:11:30 +0000 (18:11 +0200)]
Let snmp backend also use manufacturer-specific MIBs
… of HP and Ricoh to obtain the device IDs of network-connected
printers. This way we get more reliable information about make and model
and in addition the supported page description languages, which allows one to
identify whether an optional PostScript add-on is installed or for an
unsupported printer which generic PPD is the best choice (requested by
Ricoh).
Bug: https://github.com/apple/cups/issues/3552
Patch-Name: Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch
Till Kamppeter [Sat, 22 Feb 2020 13:28:58 +0000 (14:28 +0100)]
Fix scheduler cupsd.conf load
When running it without arguments it is supposed to read the local CUPS's
cupsd.conf and show a summary of the setting. in CUPS 2.3.1 it shows a mess
with a lot of HTML inside and this is due to the fact that when loading the
file via HTTP using the /admin/cups/cupsd.conf path the scheduler calls the
admin.cgi program which returns the admin front page of the web admin
interface. cupsctl then tries to interpret that as the config file and displays
garbage. Even worse is if you run cupsctl with command line argument (one of
the five switches or a key=value pair) to change a setting. It seems to load
cupsd.conf again and gets again the HTML code of the web interface page.
cupsctl tries to interpret this again, producing garbage, adds the
user-supplied setting and writes all this back into cupsd.conf. Then it tries
to restart the scheduler which fails due to the broken config file.
The problem is that in the file scheduler/client.conf, in the function
get_file() the URI from the client is at first checked whether it begins with
"/admin/" and in this case the CGI program admin.cgi is responsible. Only after
that the check for "/admin/conf/cupsd.conf" comes and is never reached.
I have changed the order now appropriately and this way cupsctl works again.
Note that the problem only occurs if the web interface is active and the
cupsctl command is issued by a non-root user.
This is a regression caused by issue #5652.
Till Kamppeter [Mon, 17 Feb 2020 08:05:58 +0000 (09:05 +0100)]
Fix conversion of PPD InputSlot choice names
When I create a CUPS queue with a PPD file with choice names "Tray-1", "Tray-2",
... in the InputSlot option CUPS translates these names to double-dashed IPP
attribute names: "tray--1", "tray--2", ... in the "media-source" attribute, both
when passing a job to the printer with the IPP backend, making the printer
ignore the tray choice, and also when answering a get-printer-attributes IPP
request from a client. This happens when in the PPD a dash is followed by a
digit, as the pwg_unppdize_name() function in cups/ppd-cache.c inserts a dash
whenever a non-digit is followed by a digit in the PPD name. As IPP attribute
names generally never have double-dashes and also no dashes in the beginning or
the end of the name, I have modified the pwg_unppdize_name() function
appropriately.
Pranav Batra [Wed, 28 Oct 2020 04:14:16 +0000 (04:14 +0000)]
Fix handling of the output-bin and print-quality IPP attributes
The PPD generation code now works for printers that support a single
output bin. Also the PPD parsing code now parses the cupsPrintQuality
field which is generated by the PPD generation code.