<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PRINT HEAD &#187; printing</title>
	<atom:link href="http://cyberelk.net/tim/tag/printing/feed/" rel="self" type="application/rss+xml" />
	<link>http://cyberelk.net/tim</link>
	<description></description>
	<lastBuildDate>Mon, 06 Feb 2012 11:16:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CUPS 1.6 changes ahead</title>
		<link>http://cyberelk.net/tim/2012/02/06/cups-1-6-changes-ahead/</link>
		<comments>http://cyberelk.net/tim/2012/02/06/cups-1-6-changes-ahead/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 11:16:36 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[printing]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=940</guid>
		<description><![CDATA[As I mentioned elsewhere, there are some changes ahead in CUPS 1.6. These changes are not imminent but give an indication of the direction the CUPS project is heading. Back in 2007 CUPS became an Apple project.  Now the parts that are not relevant on Mac OS are being dropped, with some of the Linux-relevant [...]]]></description>
			<content:encoded><![CDATA[<p>As I <a href="http://lists.fedoraproject.org/pipermail/devel/2012-January/161306.html" target="_blank">mentioned elsewhere</a>, there are some changes ahead in CUPS 1.6. These changes are not imminent but give an indication of the direction the CUPS project is heading.</p>
<p>Back in 2007 CUPS became an Apple project.  Now the parts that are not relevant on Mac OS are being dropped, with some of the Linux-relevant parts being gathered together in a separate project, cups-filters.</p>
<p><span id="more-940"></span></p>
<p>The main part that is being dropped completely is <strong>CUPS Browsing</strong>. This is currently the primary mechanism for CUPS-to-CUPS printer queue discovery on Linux. It works by having each CUPS server periodically broadcast UDP packets on port 631 announcing its available queues, and listening for broadcasts from other CUPS servers.</p>
<p>This discovery method is being dropped because DNS-SD is preferred upstream. Support for it has been upstream in CUPS for a while, and it is what CUPS uses on Mac OS X, but it uses Apple&#8217;s libdns_sd library and not Avahi. I have added support for this in Fedora, and the patch is <a href="http://cups.org/str.php?L3066" target="_blank">submitted upstream</a>.</p>
<p>So in CUPS 1.6, automatic CUPS queue discovery <strong>will require Avahi to be running</strong> on both the server (i.e. the system hosting the CUPS queue) and the clients (i.e. the systems wanting to print to it).</p>
<p>Of course, you will be able to run CUPS without having Avahi running &#8212; but you won&#8217;t have automatic CUPS queue discovery in that case.  Clients will have to have queues explicitly configured, or else use the BrowsePoll configuration setting to periodically query a particular CUPS server for its queues.</p>
<p>Several other filters will be dropped from CUPS in 1.6, to be picked up by the <strong>new cups-filters package</strong>. Information about this package is on the <a href="http://www.linuxfoundation.org/collaborate/workgroups/openprinting" target="_blank">OpenPrinting web site</a> and a <a href="http://www.openprinting.org/download/cups-filters/" target="_blank">beta release</a> is now available.</p>
<p>This new package restores the filters that will be dropped in CUPS 1.6 and also adds new filters to support PDF as the baseline document format rather than PostScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2012/02/06/cups-1-6-changes-ahead/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Printing Test Day</title>
		<link>http://cyberelk.net/tim/2011/10/05/printing-test-day-2/</link>
		<comments>http://cyberelk.net/tim/2011/10/05/printing-test-day-2/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 09:51:18 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[printing]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=929</guid>
		<description><![CDATA[It&#8217;s that time again.  Fedora 16&#8242;s Printing Test Day is tomorrow, Thursday October 6th.  Come along and help make printing work better on Fedora! The Test Day page has instructions on what you need and how to test.]]></description>
			<content:encoded><![CDATA[<p><a href="http://cyberelk.net/tim/wp-content/uploads/2011/03/test-day-100.png"><img class="alignright size-full wp-image-892" title="test-day-100" src="http://cyberelk.net/tim/wp-content/uploads/2011/03/test-day-100.png" alt="" width="100" height="100" /></a>It&#8217;s that time again.  Fedora 16&#8242;s Printing Test Day is tomorrow, Thursday October 6th.  Come along and help make printing work better on Fedora!</p>
<p>The <a href="https://fedoraproject.org/wiki/Test_Day:2011-10-06_Printing">Test Day page</a> has instructions on what you need and how to test.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2011/10/05/printing-test-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More D-Bus goodness in system-config-printer</title>
		<link>http://cyberelk.net/tim/2011/07/22/more-d-bus-goodness-in-system-config-printer/</link>
		<comments>http://cyberelk.net/tim/2011/07/22/more-d-bus-goodness-in-system-config-printer/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 16:02:25 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[system-config-printer]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=902</guid>
		<description><![CDATA[Previously I&#8217;ve described the D-Bus activation of dialogs in system-config-printer-1.3.  That D-Bus interface has been extended to help improve GNOME. Fedora 15 has been released for a little while now, including GNOME 3.  One of the great new features in this release of GNOME is the System Settings window.  It is easily accessed from the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cyberelk.net/tim/2011/04/13/using-system-config-printer-from-d-bus/">Previously</a> I&#8217;ve described the D-Bus activation of dialogs in system-config-printer-1.3.  That D-Bus interface has been extended to help improve GNOME.</p>
<p>Fedora 15 has been released for a little while now, including GNOME 3.  One of the great new features in this release of GNOME is the System Settings window.  It is easily accessed from the system menu in the top right corner of the desktop.</p>
<p><img class="size-full wp-image-903 alignnone" title="menu" src="http://cyberelk.net/tim/wp-content/uploads/2011/07/menu.png" alt="" width="160" height="284" /></p>
<p>This shows a System Settings window containing an overview of all the various tweakable settings for the system, including personal preferences.  They are shown as icons, such as &#8220;Keyboard&#8221;, &#8220;Background&#8221;, &#8220;Printers&#8221; etc, organised into groups: Personal, Hardware, System, and Other.  Clicking on one of them changes the window so it shows the settings relating to that topic.  So if you click on Printers, you get this:</p>
<p><a href="http://cyberelk.net/tim/wp-content/uploads/2011/07/Screenshot-Printers1.png"><img class="alignnone size-full wp-image-908" title="Screenshot-Printers" src="http://cyberelk.net/tim/wp-content/uploads/2011/07/Screenshot-Printers1.png" alt="" width="450" height="332" /></a></p>
<p>It&#8217;s great to have printer configuration in GNOME, and this interface is nice and simple.  There are a couple of things that it needs to learn to do though.</p>
<p><span id="more-902"></span></p>
<p>One of them is choosing a good driver when adding a printer.  This is something that is <a href="http://cyberelk.net/tim/2011/02/23/adding-a-printer-to-cups/">not easy</a>, and system-config-printer has a fair amount of logic to deal with it.  Now that logic is exposed via D-Bus, so the GNOME System Settings program will be able to use it in future.</p>
<pre>node "/org/fedoraproject/Config/Printing" {
  interface "org.fedoraproject.Config.Printing" {
    method "GetBestDrivers"      (
      in s device_id
      in s device_make_and_model
      in s device_uri
      out a(ss) drivers
    )
  }
}</pre>
<p>Given the IEEE 1284 Device ID of the printer, and/or a string describing the make and model, and the CUPS device URI to be used, this method returns a list of drivers that should work.  They are ordered with the &#8220;best&#8221; choice first, and with descriptions of how good a fit each driver is for this model (e.g. <tt>exact</tt>, <tt>close</tt>, etc).</p>
<p>Two other methods have been exposed using D-Bus.  The first is a method for examining a PPD and deciding whether it has unmet requirements.  Often a PPD will containing information about what commands to run to convert from various different formats into the format required for the printer.  This method parses those and returns a list of executables that are missing.</p>
<pre>node "/org/fedoraproject/Config/Printing" {
  interface "org.fedoraproject.Config.Printing" {
    method "MissingExecutables"      (
      in s ppd_filename
      out as missing_executables
    )
  }
}</pre>
<p>The final method is for grouping together CUPS device URIs that address the same physical device.  It is often the case that there is a choice of backends to use for a printer, and this method helps to sort out which devices are just different choices for the same printer.</p>
<pre>node "/org/fedoraproject/Config/Printing" {
  interface "org.fedoraproject.Config.Printing" {
    method "GroupPhysicalDevices"      (
      in a{sa{ss}} devices
      out aas grouped_devices
    )
  }
}</pre>
<p>It takes a dictionary (keyed by device URI) of IPP attribute dictionaries describing devices, and returns a list of physical devices, each one represented by a list of device URIs that refer to it.</p>
<p>These methods will be in system-config-printer 1.3.5.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2011/07/22/more-d-bus-goodness-in-system-config-printer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adding a printer to CUPS</title>
		<link>http://cyberelk.net/tim/2011/02/23/adding-a-printer-to-cups/</link>
		<comments>http://cyberelk.net/tim/2011/02/23/adding-a-printer-to-cups/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 16:15:11 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[printing]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=883</guid>
		<description><![CDATA[The GNOME 3 printer settings module looks like it will be great. The plan for adding a new printer is deceptively ambitious: the user interface design is that you click &#8220;+&#8221;, choose a printer device, and then click &#8220;Add&#8221; and the job is done. For those unfamiliar with printing, this sounds easy enough. To make [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://live.gnome.org/action/subscribe/Design/SystemSettings/Printers">GNOME 3 printer settings module</a> looks like it will be great. The plan for adding a new printer is deceptively ambitious: the user interface design is that you click &#8220;+&#8221;, choose a printer device, and then click &#8220;Add&#8221; and the job is done.</p>
<p>For those unfamiliar with printing, this sounds easy enough. To make the user interface as easy to use as that takes more work than you would think at first glance. It&#8217;s the direction I&#8217;ve been moving towards in <a href="http://cyberelk.net/tim/software/system-config-printer/">system-config-printer</a>.</p>
<p>Here is a description of the issues involved.</p>
<p><span id="more-883"></span></p>
<ol>
<li>Once you&#8217;ve found a printer, you then have to choose a driver for it.</li>
<li>Once you have a driver, it may need adjusting so that the installable<br />
options are correct.</li>
</ol>
<h3>Choosing a driver</h3>
<p>The thing to know about choosing a driver is that it is not well-defined. CUPS takes care not to take sides or pick favourites, and leaves it to the client application to decide which driver to use and indeed which drivers are likely to work for the printer.</p>
<p>There is no way to be certain you have a complete list of drivers that will work for a given printer. The most reliable way of matching up printers and drivers is to have each PPD file list all of the IEEE 1284 Device IDs for devices that it supports. This practice is not wide-spread, although there has been <a href="http://cyberelk.net/tim/2010/04/01/printer-device-ids-wanted/">progress towards this in Fedora</a>.</p>
<p>In response to a <strong>CUPS-Get-Devices</strong> IPP request, CUPS will have given you attributes describing the device: <em>device-id</em>, <em>device-make-and-model</em>, <em>device-info</em> and so on. Likewise, each driver has attributes in the response to <strong>CUPS-Get-PPDs</strong> describing itself, including <em>ppd-make-and-model</em>. However, <em>device-make-and-model</em> is not quite the same type of thing as <em>ppd-make-and-model</em>.</p>
<p>The <em>device-make-and-model</em> describes the make and model of the device. The <em>ppd-make-and-model</em> describes the make and model of the printer that the driver is written for, as well as the driver itself.</p>
<p>There is no canonical list of printer manufacturer names, and printer manufacturers routinely write their names differently, e.g. HP, Hewlett-Packard, Hewlett Packard, HEWLETT PACKARD, etc.</p>
<p>There are very often discrepancies between how the device describes its model name and how PPDs describe it, especially when it comes to drivers that support a range of models.</p>
<p>Since Fedora 13 we&#8217;ve had <a href="https://fedoraproject.org/wiki/Features/AutomaticPrintDriverInstallation">special RPM tags on driver packages</a> which can be used to give the user the opportunity to install any packages containing drivers that are known to support this device, once we know the <em>device-id</em>.  They are tagged with the make and model of the device as reported in its Device ID.</p>
<p>There isn&#8217;t really an easy way to pick the right driver.  What <a href="http://cyberelk.net/tim/software/system-config-printer/">system-config-printer</a> does is filter the available drivers using a variety of methods to find a list of the drivers that might support the printer, and then sort them into a preference order based on some XML-coded rules.  Ways of finding candidate drivers include:</p>
<ul>
<li>Matching MFG and MDL fields of the Device ID (but not all PPDs contain Device IDs)</li>
<li>Converting the <em>ppd-</em> and <em>device-make-and-model</em> strings at runtime into semi-canonical representations in hopes of getting a match that way (but this will not always be successful)</li>
<li>Looking for what look like model numbers and making this successively generic, e.g. 2215&#8230; 2210&#8230; 2200&#8230; 2000 (but the driver stands less chance of working the more generic the match)</li>
<li>Matching CMD fields of the Device ID (but this is only good for finding &#8220;generic&#8221; drivers, e.g. PCL)</li>
</ul>
<p>After this, some PPDs are eliminated: those that seem to match but which depend on an optional PostScript module which is not present in this device. If the Device IDs match in the MFG and MDL fields, but the PPD&#8217;s CMD field has POSTSCRIPT and the device&#8217;s CMD field does not, the PPD is likely no good. (This is a recent convention but has been adopted by Ricoh.)</p>
<p>The reason for sorting PPDs into a preference order is that there are lots of situations where one driver is most likely better than another.  The situations are numerous but include:</p>
<ul>
<li>If the manufacturer has supplied a driver, use that.</li>
<li>Otherwise, if we can send PostScript straight to the printer, we should probably do that rather than sending raster data.</li>
<li>&#8230;except if the printer does not come with a large amount of memory, in which case raster drivers may be more reliable.</li>
<li>Gutenprint is usually a high quality driver to use, so use that when possible.</li>
<li>&#8230;except if we&#8217;re printing to a colour laserjet, because Gutenrprint only provides black and white output at the moment.</li>
<li>Native CUPS drivers are generally preferred to the older-style Foomatic drivers.</li>
</ul>
<p>&#8230;and so on.  I wrote about the <a href="http://cyberelk.net/tim/2010/10/26/choosing-the-best-printer-driver/">mechanism used in system-config-printer</a> a while ago.  The current rules are <a href="http://git.fedorahosted.org/git/?p=system-config-printer.git;a=blob;f=xml/preferreddrivers.xml;hb=HEAD">here</a>.</p>
<p>Note that there may not be any driver you can choose that will work. There is no &#8220;fail-safe&#8221; driver that will work for all printers — not even sending them ASCII text or some sort of bitmap.</p>
<h3>Setting installable options</h3>
<p>Now, assuming you have chosen the right driver it may need some tweaking once it has been assigned.  This is because printers have optional parts, e.g. extra memory, duplexer units, binders, staplers etc.</p>
<p>CUPS provides a way to ask the printer to tell CUPS what those settings are: it&#8217;s a special print job of type <a href="http://www.cups.org/documentation.php/doc-1.4/spec-command.html">CUPS-Command</a> that says &#8220;AutoConfigure&#8221;.  There are attributes that will tell you whether CUPS-Command jobs are accepted, and if so whether the AutoConfigure command job is accepted.  If this is the case, sending this small job should complete the set-up of the PPD.</p>
<p>Most (if not all) non-PostScript printer drivers do not support the CUPS-Command format, however. If there are installable options in this case (which you can detect by seeing if there is an InstallableOptions group in the PPD), the only way to avoid asking the user about them is to hope the defaults are safe to use as they are.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2011/02/23/adding-a-printer-to-cups/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Presenting at OpenPrinting Summit today</title>
		<link>http://cyberelk.net/tim/2010/04/15/presenting-at-openprinting-summit-today/</link>
		<comments>http://cyberelk.net/tim/2010/04/15/presenting-at-openprinting-summit-today/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 07:47:02 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[dbus]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[PackageKit]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[system-config-printer]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=838</guid>
		<description><![CDATA[Just a quick note that I&#8217;ll be presenting by phone today, Thursday 15th April, at the OpenPrinting Summit on the topic of automatic printer driver installation in Fedora 13.  The talk is at 1600 UTC / 1700 BST, and was not Wednesday as scheduled.  The schedule hasn&#8217;t been updated yet, but when it is you [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note that I&#8217;ll be presenting by phone today, Thursday 15th April, at the OpenPrinting Summit on the topic of <a href="https://fedoraproject.org/wiki/Features/AutomaticPrintDriverInstallation">automatic printer driver installation in Fedora 13</a>.  The talk is at 1600 UTC / 1700 BST, and was not Wednesday as scheduled.  The schedule hasn&#8217;t been updated yet, but when it is you can find it and the dial-in information <a href="https://www.linuxfoundation.org/collaborate/workgroups/lf/openprinting-summit-san-francisco-2010">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2010/04/15/presenting-at-openprinting-summit-today/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Printer Device IDs wanted</title>
		<link>http://cyberelk.net/tim/2010/04/01/printer-device-ids-wanted/</link>
		<comments>http://cyberelk.net/tim/2010/04/01/printer-device-ids-wanted/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 17:40:53 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[printing]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=832</guid>
		<description><![CDATA[The new feature in Fedora 13 for installing printer drivers automatically makes it all the more important to have correct IEEE 1284 Device IDs for printers.  Unfortunately many drivers shipped in Fedora do not declare Device IDs for all the printers they support, and some of the ones we do have are wrong. You can [...]]]></description>
			<content:encoded><![CDATA[<p>The new feature in Fedora 13 for <a href="https://fedoraproject.org/wiki/Features/AutomaticPrintDriverInstallation">installing printer drivers automatically</a> makes it all the more important to have correct IEEE 1284 Device IDs for printers.  Unfortunately many drivers shipped in Fedora do not declare Device IDs for all the printers they support, and some of the ones we do have are wrong.</p>
<p>You can help put this right, whether you are running Fedora 13 Alpha, or Fedora 11/12.</p>
<p><span id="more-832"></span></p>
<p>Information on collecting Device IDs is given on the <a href="https://fedoraproject.org/wiki/Test_Day:2010-03-25_Printing#Device_ID_checking">Printing Test Day page</a> but here is a good way of doing it:</p>
<ol>
<li>Make sure you have the foomatic, gutenprint-cups, and hpijs packages installed</li>
<li>Connect and switch on your printer(s) &#8212; yes, even network ones</li>
<li>
<pre>git clone http://git.fedoraproject.org/git/system-config-printer.git
cd system-config-printer
su -c ./check-device-ids.py</pre>
</li>
<li>If you see &#8220;MISSING&#8221; in the output, file a bug in <a href="https://bugzilla.redhat.com/">Bugzilla</a> against the relevant driver</li>
</ol>
<p>Incidentally, some statistics on Device IDs in Fedora 13:</p>
<ul>
<li>We have at least 10,100 drivers</li>
<li>Of those, over 6,200 have Device IDs associated with them</li>
<li>That means we&#8217;re missing Device IDs for nearly 40% of all our printer drivers</li>
</ul>
<pre>$ lpinfo -l -m | grep 'device-id = ' | wc -l
10135
$ lpinfo -l -m | grep 'device-id = $' | wc -l
3922
</pre>
<p><small>UPDATED:</small> Changed instructions to run check-device-ids.py using su.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2010/04/01/printer-device-ids-wanted/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Printing Test Day this Thursday</title>
		<link>http://cyberelk.net/tim/2010/03/23/printing-test-day-this-thursday/</link>
		<comments>http://cyberelk.net/tim/2010/03/23/printing-test-day-this-thursday/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 11:49:11 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[test day]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=829</guid>
		<description><![CDATA[This Thursday (March 25th) is when a Printing Test Day is being held for Fedora.  This is an opportunity to check that printing will work with your printer in Fedora 13, and to help find bugs to be fixed before release date. One of the new features in Fedora 13 is the automatic installation of [...]]]></description>
			<content:encoded><![CDATA[<p>This Thursday (March 25th) is when a <a href="https://fedoraproject.org/wiki/Test_Day:2010-03-25_Printing">Printing Test Day</a> is being held for Fedora.  This is an opportunity to check that printing will work with your printer in Fedora 13, and to help find bugs to be fixed before release date.</p>
<p>One of the new features in Fedora 13 is the <a href="https://fedoraproject.org/wiki/Features/AutomaticPrintDriverInstallation">automatic installation of printer drivers</a> when USB printers are connected.  For this feature to work, specific information about each printer model needs to be stored in the relevant driver packages.  Some of this is done but we need your help to test it and to collect more Device ID strings.</p>
<p>Please come along and join in!</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2010/03/23/printing-test-day-this-thursday/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PolicyKit and printing</title>
		<link>http://cyberelk.net/tim/2009/08/11/policykit-and-printing/</link>
		<comments>http://cyberelk.net/tim/2009/08/11/policykit-and-printing/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 10:59:34 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[PolicyKit]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[system-config-printer]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=785</guid>
		<description><![CDATA[The latest release of Fedora allows more flexibility with configuring print queues and managing print jobs. This is because it is now able to use PolicyKit to do these things, which means you get to choose when and whether users should be prompted for authentication when performing administration tasks on printers or jobs. The implementation [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cyberelk.net/tim/wp-content/uploads/2009/08/gtk-dialog-authentication-100.png"><img class="alignleft size-full wp-image-794" title="gtk-dialog-authentication-100" src="http://cyberelk.net/tim/wp-content/uploads/2009/08/gtk-dialog-authentication-100.png" alt="gtk-dialog-authentication-100" width="100" height="100" /></a>The <a href="http://docs.fedoraproject.org/release-notes/f11/">latest release of Fedora</a> allows more flexibility with configuring print queues and managing print jobs.  This is because it is now able to use <a href="http://www.freedesktop.org/wiki/Software/PolicyKit">PolicyKit</a> to do these things, which means you get to choose when and whether users should be prompted for authentication when performing administration tasks on printers or jobs.  The implementation is slightly tricky, so I&#8217;ll explain the details.</p>
<p><span id="more-785"></span></p>
<p>Before PolicyKit awareness was added there was already adjustable policy controlling IPP operations.  This &#8216;CUPS policy&#8217; mechanism is provided by the CUPS scheduler, <code>cupsd</code>, and its configuration is in the file <code>/etc/cups/cupsd.conf</code>.  This controls which IP addresses are allowed to access various HTTP locations corresponding to the CUPS configuration actions (such as <code>http://cups-server:631/admin</code>), and which IP address, users, groups, and classes of users can carry out the various IPP operations such as cancelling jobs.  It also specifies whether and how users must authenticate themselves.</p>
<p>This CUPS policy is great for managing CUPS servers remotely but is not consistent with the method used by the rest of the desktop environment, PolicyKit.  Although the CUPS policy can be adjusted using a fairly easy to use list of check-boxes (available in both the CUPS web interface and via <a href="http://cyberelk.net/tim/software/system-config-printer/">System→Administration→Printing</a>), it is not fine-grained enough to be as useful as PolicyKit can be.  The CUPS policy itself is very fine-grained, but this power is only unleashed by editing configuration files.</p>
<p>With PolicyKit the policy can be adjusted easily using a graphical tool, to make it easier to perform certain tasks for those needing to do so.  The intention is for <a href="http://spins.fedoraproject.org/">Fedora &#8220;spins&#8221;</a> to have appropriate default policies depending on their target audience, so that a desktop spin might allow the active console user to perform all administration tasks without asking for authentication for example.</p>
<p>We have two types of policy then, CUPS policy and PolicyKit policy, for controlling print administration tasks.  The CUPS policy in Fedora is unmodified from the upstream CUPS releases, and is fairly restrictive.  The default PolicyKit policy for printing administration in Fedora is also fairly restrictive, and the overall policy is only as restrictive as the most relaxed of the two.</p>
<p>The implementation consists of a package called <code>cups-pk-helper</code> (created by <a href="http://www.vuntz.net/journal/">Vincent Untz</a>) which provides the D-Bus system service which is the mechanism for the policy &#8212; it performs the administration tasks on behalf of its clients by talking to the CUPS scheduler using IPP.  It runs as root so the default CUPS policy allows it to perform all administration tasks.  It can authenticate itself as root by connecting over a UNIX domain socket (CUPS will use <a href="http://cyberelk.net/tim/2007/03/08/cups-unix-domain-sockets-authentication/">peer credentials</a> to discover the requesting user) or, if that is not possible, by proving that it can read a certificate file only readable by root.</p>
<p>At present the only client for this system service is the printer configuration tool accessible from System→Administration→Printing.  The CUPS web interface and command line tools only use IPP directly.</p>
<p>How fine-grained is the policy?  Here are the defined operations:</p>
<ul>
<li>Set a printer as system default printer</li>
<li>Enable/disable a printer</li>
<li>Add/remove/edit a local printer</li>
<li>Add/remove/edit a remote printer</li>
<li>Add/remove/edit a class</li>
<li>Get/set server settings</li>
<li>Restart/cancel/edit a job you own</li>
<li>Restart/cancel/edit a job owned by another user</li>
<li>Get the list of available devices (available in Fedora 11 <a href="https://bugzilla.redhat.com/show_bug.cgi?id=516713">soon</a>)</li>
</ul>
<p>For each of these operations, the policy depends on who is attempting to carry out the operation:</p>
<ul>
<li>Someone on the active console</li>
<li>Someone on the console but inactive</li>
<li>Anyone else</li>
</ul>
<p>For each of these groups of users, the policy can be that they are disallowed altogether, that they are allowed without authentication, or that they require authentication either as themselves or with the root password.  If authentication is required it can be:</p>
<ul>
<li>Required every time</li>
<li>Required once but not needed for the rest of the time the configuration program is running</li>
<li>Required once per session</li>
<li>Required once and not again</li>
</ul>
<p>Here is a screenshot of the program used for editing this policy, accessible from System→Preferences→Authorizations:</p>
<p><a href="http://cyberelk.net/tim/wp-content/uploads/2009/08/polkit.png"><img class="alignnone size-full wp-image-791" title="Editing policy" src="http://cyberelk.net/tim/wp-content/uploads/2009/08/polkit.png" alt="Editing policy" width="450" height="406" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2009/08/11/policykit-and-printing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 11 test updates for printing</title>
		<link>http://cyberelk.net/tim/2009/06/20/fedora-11-test-updates-for-printing/</link>
		<comments>http://cyberelk.net/tim/2009/06/20/fedora-11-test-updates-for-printing/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 15:05:04 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[system-config-printer]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=722</guid>
		<description><![CDATA[Fedora 11 is finally out. The bad news is that there are several known issues (well, known now) with printing. Unfortunately I was tied up with PDF-related security fixes for several months and did not have the time I wanted to spend on polishing Fedora 11. For me the most annoying problem is that the [...]]]></description>
			<content:encoded><![CDATA[<p>Fedora 11 is finally out.  The bad news is that there are several known issues (well, known now) with printing.  Unfortunately I was tied up with PDF-related security fixes for several months and did not have the time I wanted to spend on polishing Fedora 11.</p>
<p><span id="more-722"></span></p>
<p>For me the most annoying problem is that the printing troubleshooter does not work in Fedora 11 as shipped.  This is fixed in the <a href="https://admin.fedoraproject.org/updates/F11/FEDORA-2009-6777">test update for system-config-printer</a>.  Using the troubleshooter can be very valuable when tracking down problems, but most especially when reporting printing bugs.  Please install the update and try the troubleshooter (Help->Administration from the system-config-printer window) before reporting bugs.  This updates system-config-printer to <a href="http://freshmeat.net/projects/system-config-printer/releases/301164">1.1.8, released on Thursday</a>, which has lots of fixes.</p>
<p>The other test update I&#8217;ve pushed in the last week is for cups.  Fedora 11 was released with beta 3 of CUPS 1.4.  The current upstream version is 1.4rc1, and there is a <a href="https://admin.fedoraproject.org/updates/F11/FEDORA-2009-6680">test update for that</a> out now.  Please try it out if you are having problems with printing.  I will update it to 1.4.0 when it is released.</p>
<p>I am slowly working my way through the backlog of bugs that have been reported, both in Bugzilla and on mailing lists.  Please be patient!</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2009/06/20/fedora-11-test-updates-for-printing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screenshots: system-config-printer 1.1</title>
		<link>http://cyberelk.net/tim/2009/02/03/screenshots-system-config-printer-11/</link>
		<comments>http://cyberelk.net/tim/2009/02/03/screenshots-system-config-printer-11/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 12:30:05 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[gutenprint]]></category>
		<category><![CDATA[hplip]]></category>
		<category><![CDATA[printers]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[system-config-printer]]></category>

		<guid isPermaLink="false">http://cyberelk.net/tim/?p=600</guid>
		<description><![CDATA[As part of my work for Red Hat I&#8217;ve been working on the printing configuration program, system-config-printer.  Fedora 10 came with version 1.0 of this application, which provides a notification area print icon as well as the ability to configure printers, and I made the 1.1 version available earlier this year.  The most recent release [...]]]></description>
			<content:encoded><![CDATA[<p>As part of my work for <a href="http://www.redhat.com/">Red Hat</a> I&#8217;ve been working on the printing configuration program, <a href="http://cyberelk.net/tim/software/system-config-printer/">system-config-printer</a>.  <a href="http://www.fedoraproject.org/">Fedora</a> 10 came with version 1.0 of this application, which provides a notification area print icon as well as the ability to configure printers, and I made the 1.1 version available earlier this year.  The most recent release is 1.1.3.</p>
<p>I&#8217;ve taken some screenshots of system-config-printer 1.1, and this version will be in Fedora 11 when it is released this year.</p>
<p>Screenshots below.  As an aside, I have to say that taking screenshots is one of the most rapid methods of finding bugs I know!<br />
<span id="more-600"></span><br />
<h3>Adding New Printers</h3>
<p>Connecting a new USB printer causes it a queue to be created for it automatically.  There is now an option to print a test page at that point.</p>
<p><img class="alignnone size-full wp-image-653" title="Printer Added" src="http://cyberelk.net/tim/wp-content/uploads/2009/02/printer-added1.png" alt="Printer Added" width="450" height="164" /></p>
<h3>Printing Jobs</h3>
<p>When a print job is submitted, the printer icon appears in the notification area.  For queues that require a user name and password to print jobs, this is collected now.</p>
<p><img class="alignnone size-full wp-image-655" title="Authentication Required" src="http://cyberelk.net/tim/wp-content/uploads/2009/02/authentication-required.png" alt="Authentication Required" width="450" height="150" /></p>
<p><img class="alignnone size-full wp-image-656" title="Authentication Dialog" src="http://cyberelk.net/tim/wp-content/uploads/2009/02/authentication-dialog.png" alt="Authentication Dialog" width="431" height="274" /></p>
<p>The &#8220;Remember password&#8221; check-box enables gnome-keyring support so that printing documents to that printer in future will not need to ask you for a password.</p>
<p>There might be a problem with the printer, such as lack of paper or ink &#8212; the user needs to know about this too.</p>
<p><img class="alignnone size-full wp-image-658" title="Out of paper" src="http://cyberelk.net/tim/wp-content/uploads/2009/02/out-of-paper.png" alt="Out of paper" width="450" height="150" /></p>
<p>Hopefully there won&#8217;t be any problems with the filters or the backend, but in that unlikely event the user is given the opportunity to <a href="http://cyberelk.net/tim/2008/02/20/trouble-shooting-screenshots/">troubleshoot</a> it.</p>
<p><img class="alignnone size-full wp-image-659" title="Print Error" src="http://cyberelk.net/tim/wp-content/uploads/2009/02/print-error.png" alt="Print Error" width="450" height="183" /></p>
<p>When the job finishes the user is told about it.  This notification is new in 1.1.</p>
<p><img class="alignnone size-full wp-image-654" title="Job Completed" src="http://cyberelk.net/tim/wp-content/uploads/2009/02/job-completed1.png" alt="Job Completed" width="450" height="150" /></p>
<p>Clicking on the icon shows the jobs you currently have in the queue for printing.  This jobs list is also available from the printer configuration window by right-clicking on a printer and selecting View Print Queue &#8212; in that case, jobs from all users are shown.  Completed jobs can also be included, as shown below.</p>
<p><img class="alignnone size-full wp-image-662" title="Jobs List" src="http://cyberelk.net/tim/wp-content/uploads/2009/02/jobs-list.png" alt="Jobs List" width="450" height="181" /></p>
<h3>Printer Configuration Window</h3>
<p>Now let&#8217;s take a look at the main window containing the available printers.  Network printers are shown with a different icon than locally-connected printers, and the default printer for this user is shown with an emblem.  The list of printers can be filtered (a new feature in 1.1).</p>
<p><img class="alignnone size-full wp-image-626" title="Printers list" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/printers-list.png" alt="Printers list" width="450" height="269" /></p>
<h3>Printer Properties</h3>
<p>Double-clicking on a printer shows its properties, things such as its description and location which appear in print dialogs, as well as the device and driver to be used.  For native CUPS drivers it is possible to perform maintenance commands such as cleaning print heads.</p>
<p><img class="alignnone size-full wp-image-618" title="Settings" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/settings.png" alt="Settings" width="450" height="274" /></p>
<p>From this dialog you can set whether the printer is enabled (i.e. processing jobs in its queue), whether new jobs are accepted into the queue, and whether jobs can be accepted from other machines.</p>
<p><img class="alignnone size-full wp-image-619" title="Policies" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/policies.png" alt="Policies" width="450" height="274" /></p>
<p>Access can be limited to certain users.</p>
<p><img class="alignnone size-full wp-image-620" title="Access Control" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/access-control.png" alt="Access Control" width="450" height="274" /></p>
<p>Lots of printers have optional accessories, and the PPD options relating to those are gathered together.  In CUPS 1.4 it will be possible to add a button to gather this information from the printer itself if it speaks PostScript (but what to name the button?  &#8220;Scan&#8221;?).</p>
<p><img class="alignnone size-full wp-image-621" title="Options Installed" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/options-installed.png" alt="Options Installed" width="450" height="274" /></p>
<p>The other printer-specific options can also be examined and changed.  For PPDs that support it, translations for the option names are shown.</p>
<p><img class="alignnone size-full wp-image-622" title="Printer Options" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/printer-options.png" alt="Printer Options" width="450" height="274" /></p>
<p>There are other CUPS options that are not specific to any particular printer.</p>
<p><img class="alignnone size-full wp-image-623" title="Job Options" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/job-options.png" alt="Job Options" width="450" height="274" /></p>
<p>Information from the printer is shown on this last screen, which is entirely new in 1.1.  <a href="http://cyberelk.net/tim/2009/01/14/reporting-ink-levels/">Ink level reporting</a> is currently only available for printers that do so using SNMP, but hopefully drivers such as <a href="http://hplipopensource.com/">HPLIP</a> and <a href="http://gimp-print.sourceforge.net/">Gutenprint</a> will add this capability soon.</p>
<p><img class="alignnone size-full wp-image-624" title="Ink/Toner Levels" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/ink-toner-levels.png" alt="Ink/Toner Levels" width="450" height="274" /></p>
<h3>Server Settings</h3>
<p>That&#8217;s the printer properties dialog as it currently stands.  So, back to the main window.  Selecting Server→Settings allows alteration of system-wide print server settings.  It&#8217;s a bit awkward at the moment because it&#8217;s split into two dialogs, Basic and Advanced.  This will get better in future.</p>
<p><img class="alignnone size-full wp-image-631" title="Basic Server Settings" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/basic-server-settings.png" alt="Basic Server Settings" width="428" height="298" /></p>
<p>Clicking Advanced allows you to adjust some other settings:</p>
<p><img class="alignnone size-full wp-image-632" title="Advanced Server Settings" src="http://cyberelk.net/tim/wp-content/uploads/2009/01/advanced-server-settings.png" alt="Advanced Server Settings" width="433" height="334" /></p>
<p>The CUPS web interface has improved a lot in CUPS 1.4 and I would like to improve the system-config-printer server settings dialog to match.  I think that will have to wait until system-config-printer 1.2 though.</p>
<p>See the <a href="https://fedorahosted.org/system-config-printer/report/3">roadmap in the trac instance on fedorahosted.org</a> for information on other things that are planned for this version and future versions.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberelk.net/tim/2009/02/03/screenshots-system-config-printer-11/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>

