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:


Generating ChangeLog files from commit logs

Thursday, June 25th, 2009

I love git, but I also loved ChangeLog files and git is not so good at merging them. For a while I played around with gnulib‘s git-merge-changelog which made merges really easy. It worked fairly well, but now I’m bored of documenting my changes twice, both in the ChangeLog file and in the git commit log.

The coreutils project has been creating its ChangeLog file from the git commit logs for a little while now, and I decided to take a look at how that’s done. Now, at last, system-config-printer can do that too. Here is how it works.


How I use git

Wednesday, February 4th, 2009

gitBack in May last year I switched over several projects from Subversion to Git. It’s a shame that git doesn’t have a better project name, something that says “version control system” rather than being a mild insult. That aside, though, what a relief it was to finally use something that is Not CVS.

At the time I couldn’t find a good “best practice” document, just lots of instructions on individual commands. Here is how I manage the system-config-printer source code using git. I hope someone finds it useful.  I don’t pretend that this is “best practice” — it’s just some of the things I’ve learned since starting to use git.