Archive for the 'Software' Category

CUPS: adding support for system journal

Friday, October 25th, 2013

I’ve added a patch to CUPS in Fedora rawhide which uses the system journal for logging. I did this after watching Lennart’s devconf talk, which reminded me how awesome the systemd Journal is.

The changes are very simple at the moment: any log message relating to a particular job has a field “CUPS_JOB_ID” to say which one. Additionally, page log messages include the page number as “CUPS_PAGE_NUMBER”. This support is in rawhide, starting with cups-1.7.0-1.fc21.

To enable it, adjust /etc/cups/cups-files.conf and set “ErrorLog journal”. You can also set AccessLog and PageLog to “journal”.


Did someone say… “Alpha”?

Friday, October 11th, 2013

installdvdFedora 20 Alpha has been released, and I’d been putting off installing it because I know how troublesome an alpha release can be. This one, though, is the best alpha release of Fedora I can remember!

It actually seems incrementally better than Fedora 19, rather than the traditional break-everything-and-fix-it-again-later alpha releases we’ve seen in the past.

Great job!

Some benefits of printerd

Wednesday, May 23rd, 2012

Recently I talked about a new print spooler under development, printerd. In that post I mentioned briefly how printerd is structured, but did not go very deeply into why or what the project is for.

Firstly, printerd is experimental and is very far from being a functional print spooler. It doesn’t yet run any filters, for instance, and has no backends of its own to transport jobs to devices. So far it is just a test of what a Linux print spooler would look like if it were written today.

There are several problems printerd aims to solve. Some of the solutions come automatically from implementing it as a polkit-enabled D-Bus system service.  I mentioned one of them in the original post about printer: the fact of having an asynchronous client API. All D-Bus services can be used asynchronously thanks to the D-Bus client library. This approach means the print dialog will be able to use printerd without blocking (and without having to start another thread to use it).


Announcing printerd

Thursday, May 10th, 2012

For the last few weeks I’ve been working on an experimental new print spooler called printerd. It was designed in collaboration with Richard Hughes and it aims to be a modern print spooler for Linux.

It is a polkit-enabled D-Bus system service, written using the GLib object system. Although modelled on concepts from IPP (Internet Printing Protocol), printerd is not in itself an IPP server. Its only interface is D-Bus, although the aim is to be able to implement an IPP server on top of the D-Bus API as a separate process. Having a D-Bus interface means that applications wanting to print automatically get to use printerd asynchronously.

As a design decision, the range of input formats accepted by printerd will be very limited: essentially only PDF. The existing CUPS drivers and backends will be compatible with printerd.

There isn’t much written yet aside from the basic framework and a very simple command line tool.

Feel free to take a look around:


Session printing

Thursday, March 8th, 2012

There has been a discussion on the Fedora devel mailing list recently about user session printing: why that might be useful, and in what circumstances it makes sense.

Where I can see it can make some sense to have printing entirely in the user session is for PDF printing to smart services hosted elsewhere: e.g. the office CUPS server, or Google Cloud Print.  Applications produce PDF, so for printing to these types of service there is nothing to do but send the PDF (along with any print options).