Dear audience, please give a warm welcome to Peter Kirtel Kampeter, who is the leader
of the Open Printing Project, being an employee of Canonical, doing all the great works to
make printing easy, not only on Linux, but also on quite an amount of other operating
system. Thank you. Have a nice talk.
Thanks.
So I will tell about how Open Printing has emerged and what we are doing, what are the
challenges, and in the end I will also even tell a little bit about printing under Windows,
but I am not developing the printing part of Windows and Windows does not use cups.
So let's start. What we are doing is the central part of our work is naturally that
we have cups and we integrate cups in the, we develop cups. This is done by Michael
Sweet, but it's a part of Open Printing. Michael Sweet has left Apple. We are also,
we are also integrating cups into the operating system. We are doing it by cups filters, for
example, and that I am also also contributing to GoScript and I am also coordinating with
desktops and we are working together with a printer working group. This is a consortium
of industry, of printer industry and software industry. They are developing standards, especially
the Internet Printing Protocol, IPP, and we work together with them. We have also annual
meetings and we are implementing these standards in software. For example, cups is all IPP-based
and what changes and comes new in IPP like driverless IPP printing, we are updating everything
and implementing this so that it can be used in our operating systems.
And,
yes, and we are also cooperating naturally with printer manufacturers. I had also, I was also
a lot in dialogue with printer manufacturers, especially longer ago when one still needed
printer drivers to help them to design drivers and to do it the right way. And so these are the
principal tasks also to the, also part of the integration of printing is that one, that we,
that the packaging, for example, I am doing not only the package, the Debian packaging for Ubuntu,
but I am also doing the cup snap, so a snap package of cups, which one can easily download from
the snap store and this we are having the always the newest upstream cups on any distribution,
but also for snap only distributions like Ubuntu Core Desktop. But about this I will talk at
130 in the distribution zoom with a snap and Ubuntu Core Desktop talk and,
so how did it all begin? One thing is I had a printing problem like Richard Stallman had also
a printing problem. He invented the principle of free software and therefore we are all here. And
I had also, I was system administrator in the late 90s and there we had also printers and
they only worked so more or less because we were in the dark times of LPD and in the beginning of
2000 cups appeared. Michael Sweet has released the 1.0 of cups in 2000 and there was an article,
a news, a Linux magazine article by called Pfeifler about cups and I have read it and I have seen
all of this, this will help us a lot and I have installed it and everything worked better with it
and so, but it was all command line and so I have written a little print dialogue and put it on
fresh meat in that time in 2000 fresh meat was the place where one told about new free software and
then the court Pfeifler the author of this article saw this invited me to the Linux
talk, a big Linux conference to show it on the booth of his company and so I showed it there
and most distros were not interested in cups and print dialogue and so, but Mendox soft.
The show was in the beginning of July 2000 and first of August I lived in Paris because Mendox
soft invited me to work with them to switch to switch mandrel Linux from LPD to cups so I lived
six years in Paris but please don't try to speak French to me and then I had and then I have in
a few months already switched mandrel Linux to two cups so the fall edition of mandrel Linux in 2000
was the first Linux distribution with cups and there were also some challenges so that
especially I
had not only two package cups and RPM packages this was the easiest part but I had also to take care
that all the printers which worked before they work afterwards after the switch over there were
drivers many were built into Go script and many were a small little filter program which some
student has written to get their printer working and but they all did not come with PPD files because
they were written with only LPD in mind and not with cups in mind and I needed a way to get PPD
files for them all because cups needs PPD files and there was linuxprinting.org
someone has created a website linuxprinting.org and there was a database with printers how
will they work and with which driver and especially with the PPD file generator and the database for
the PPD file generator needed also much more information options paper sizes and resolutions and
whatever but most of these entries did not have that some have that and so I knew that this works
and so I asked the author to to fill in the rest and he did not have the time and so he gave me
right access and in 2000 and in 2001 even the full control of the site so that I continued
maintaining it and so I filled in this database and this way I could make all the printers working
with cups and therefore the mandrake linux the first mandrake linux with cups was working perfectly
and printing was work much much easier than with in old LPD times and I also gave talks on
conferences organized every year on the linux tag and open printing booth and so on and so I
spread the news of cups as Michael sweet themselves was stage shy he did not go to conferences and so
and so the other distros saw it and switched all over in 2003 also all the distros used cups
and so I made cups the standard and I also found it open printing in 2001
in together with some people from the PWG and so this was the start
and
and in an LPD and any other approach to make printing better like PPR, PDQ or whatever they were called
they all stopped maintaining because everyone used cups and nobody wanted to use all these other things
yes I found it open printing in 2001 it was not what it is now it was at first that I worked
together with some people of the PWG to to uh on printing APIs I had every every week
a phone meeting a phone meeting not yet video phone classic phone uh to talk about
APIs and to develop APIs
and I continued naturally to maintain to to my work with cups and with linux printing.art
database and so on and one thing is back in in 2006 I organized my very first
open printing summit in Atlanta Georgia in the US at uh at RICO and it was a lanyere that time but
probably now they are all called RICO and there there were there I brought something like 40
people together from printing projects desktop projects uh printer manufacturers, printer driver
projects and so on to work together on the future of printing on improving print dialogues especially
on on improving drivers and so on and on this meeting there was also Jan Murdoch one of the
founders of Debian therefore the Jan in the end of Debian and I asked him I talked with him in a
hallway session and I asked him this I told told him that the the linux printing.art server the
database server is standing in the house of the of its original author and it's already carrying
official ppd files of manufacturers and it should be for security and reliability that
that should be in the data center whether they're at Debian they could perhaps host it or at the
free standards group we uh uh uh Jan Murdoch was also uh was also engaged in the free standards
group and open printing this api effort was also part done as part of the free standards group
and so Jan told me I can host it at the free standards group but he did not only want to host
the database server he also wanted to host me he invited me to work at the free standards group
full time to manage open printing to to join the linuxprinting.org and the open printing
work in one call it open printing and this is the open printing of now and the free standards group
has eaten up the OSTF the open source developer laboratory in one year later in 2007 and founded
the linux foundation and so open printing is part of the linux foundation and I was working at the
linux foundation that time but in parallel in 2006 in 2006 on the open printing summit where I also
was where I was organizing an open printing booth I bumped into Mark Shuddleworth he also asked me
whether I want to work at canonical and so I started part-time at canonical also and then I was at
canonical and at linux foundation full-time working for open printing and I could leave Paris because
I worked from home
and then in the time and then time was going on and the next step was that in 2008 I started
meant I started to to be the org admin for the linux foundation for the google summer of code
every year up to now and the open printing a part of it so open printing was in the google summer
of code and I was mentoring students mentoring open print open google summer of code contributors
for open printing and this was very important because printing is not really sexy for volunteers
to choose this and so by means of heavily engaging in open printing I get contributors who contribute
code and some even stay and continue mentoring or the website we have now is also done by former
google summer of code contributors
and also from 2006 on I organized every year an open printing summit later on together with a pwg
and another another milestone more more recently on the open printing summits every year I was
I've met avik bazu from lexmark in India and he has contacts to universities in India and from
2015 on every year he was reaching out to the universities and finding for us contributors we
have then done some some selection they have done fixed some issues for us and so on to learn
to work with open printing and so we had five or six every year working coding for us
they were mainly from therefore they were mainly from Indian universities and mainly from the iit
Indian Indian Institute of Technology Monday and therefore I have also organized a conference last
year in Monday and met them in person so and what we have all done is that at first we have
we have made cups the standard printing system as I told and it is used in more in all posic
style operating systems including mac os michael sweet has been for a long time at apple and
worked on cup and developed cups and integrated and mac os mac os he has left in the end of
2019 and he continues to develop cups and now it is hosted at all and since then it's hosted at
open printing and all I have made off three printer drivers working with cups as I told and I have
and another thing is in former times in LPD times the standard print job format was post script
because the only printers in that time which could print graphical content and were used with
unix machines and computing centers at universities were typically a post script printers and so
post script was the standard format for printing graphical content and this got and in 2006
as there were so many printers with so many different printing languages and post script is
also rather awkward it's not secure it's a two-in-complete programming language so one can
inject malware with it so we did we mic sweet and me have decided to switch the standard print job
format to pdf and so since 2006 the standard printing format is pdf not really in real life it took
some years until the distributions actually were using pdf as standard print job format I think 2010
or so pdf was always used I also I also did a grand unified ghost script as in the 2000s when Mike
wrote cups he made a false fork of ghost script for the cups last format and to integrate some third
party printer drivers because the ghost script the original ghost script the top of the line the newest
version was not free software they released it as free software only one year later and so
we so this was also a reason why Mike did the fork and in 2008 the ghost folks decided to
release the ghost from the top of the line also as free software and this was for me then the point
to do the grand unified ghost script to to do the reunification of ghost script to put Mike's ghost
script and the original ghost script and third party driver all together and then all was there at
artifacts but unified in one ghost script and and system config printers also maintained by
open printing it was originally the printer setup tool of wetted and wetted was and later on when I
have left mandu xsoft and I entered canonical and Ubuntu needed a printer setup tool I I ended up to
take system config printer for that and improved it a lot for especially for the association of
drivers and printers with each other that this works fully automatically and correctly and then
in then in 2011 also 2010 to I think 2011 Apple has decided to not maintain the cups
filters anymore which Apple does not need because Apple uses their own proprietary filters and I've
overtaken this code as the cups filters project and maintain and then I have maintained it on open printing
and another thing the common print dialogue backends this is something the print dialogue
contains the print dialogue communicates with cups for printing and there are many print dialogues
and many GUI projects Mozilla KDE GNOME LibreOffice and Chromium and all of them are big projects
lot of inertia difficult to find the right contact and so it was difficult on a cups change
to get all these projects go with this change and update their dialogues and so I came to the idea
one can put an in-between layer there that the that cups and any net and any cloud printing technology
in 2017 when I started that there was Google Cloud Print is implemented in a back end and the dialogue
communicates with this back end and the back end with the print technology and so we can maintain the
back end at open printing the one for cups and so the dialogues always work correctly with cups
so common print dialogue backends and I have snapped cups
as I told earlier and now all the free all the free software printer drivers had to do a transition
again because the cups three I will tell it later will not support ppd files and classic
printer drivers anymore and so I had to put all the printer drivers into printer applications which
emulations of driverless IPP pointers as the cups we will only support driverless IPP pointers and so
this way we had another transition and this I also have already done
what is this
So, and you see what we are actually doing.
We do Cups, we do Cups filters, common print dialogue, backends, and Papa Retrofit is a
library to put old printer drivers, classic Cups drivers into printer applications.
And then we have also printer compatibility databases.
We still have the Fumatic, linuxprinting.org database from the good old times.
But it is less important because the printers which one can buy currently are all driverless.
And therefore, Mike Sweet has created a list of all driverless printers,
which is very well maintaining, which we have on open printing.
And so, and we are collaborating, as I told with the printer working group,
and with printer manufacturers.
But the dialogue with printer manufacturers about printer drivers came more or less to an end
because we have driverless IPP printing.
And we are taking care about the whole printing stack, the whole printing architecture.
And integration in desktops, I talk with desktop people.
I'm running Google Summer of Code projects in updating printer setup tools and print dialogues.
And also the integration in distributions, I also have to take account of immutable distributions.
One is Ubuntu Core Desktop, I have the Cups snap for it.
But I also plan to make Docker packages of Cups and of the print applications.
Because there are so many other immutable distributions which do not use snap.
And in these immutable distributions, the only way to get system software in is to use Docker images or
OCI containers or Podman and so on.
Because the desktop applications are in those ones usually added by Flatpak and
Flatpak does not support system utilities.
And now one important thing, where we are very intensely working currently,
is the so-called new architecture.
And the new architecture means that we do not support PPD files and
classic drivers anymore going all IPP.
And all IPP means that we support only driverless IPP printers.
We support only driverless IPP printers.
And this means that the old legacy printers which need a driver, they would not work anymore.
And therefore, we have introduced the printer applications,
emulations, software emulations of driverless IPP printers.
So it's a damon which is a very important part of the process.
So it's a damon which on one end is like a driverless IPP printer.
And on the other end, it communicates with the printer.
And internally, it does the conversions to the printer's native language.
So the driver is more or less encapsulated.
And this way, the old printers can live on and
we do not lose the support for them and
require the users to throw them away.
So here's the scheme.
The old Cups 2.0 which you are currently using.
And you see the old cups, the user application sends a job.
And in the old cups, there are different possibilities.
IPP everywhere is a driverless IPP printer and cups can directly talk with it.
So the current cups 2.x already can behave like the new architecture.
It supports the driverless printers directly.
And the cups 2.x supports PPD files and
classic drivers as any older cups too.
And through this, it supports the older printer, PostScript or Asta printer.
Any printer which needs a driver.
But the printer applications, as they are just emulating
an IPP printer, driverless IPP printer, they also work with the old cups.
Because the old cups supports driverless IPP printers.
So you could already switch over to a printer application.
Yes, things.
Switch over to a printer application.
And so if you are writing a printer driver,
don't write a classic printer driver anymore.
Write a printer application right away.
It works with the old cups.
It works with the new cups.
And with the new cups, you see you can only talk with driverless IPP printers.
And the printer is actually one directly and
otherwise, only via the software emulation printer applications.
And we'd also even do driverless scanning.
Because the scanners in driverless multifunction devices,
they all understand ESCL, so also a standardized communication protocol.
And so we can make also scanner applications which are emulations of ESCL scanners.
And inside one has, for example, the same driver for the old scanner.
And cups, we will this year, in a few months,
we will release cups 2.5.x.
This is not yet the new architecture.
It's only to get all of and some other features into cups
without doing the big switch over to make it easier for
the enterprise distributions so that they can do this more lightweight switch.
To get the all of in and in the end of the year,
we will release cups 3.x.
And the 2.x will, and here the cups 3.x.
This is really doing away with the PPD files.
But it is also doing another big change.
The cups demon is replaced by two demons by a local cup server,
which is a user demon and by a sharing server, which is a system demon.
So the local cup server is only for getting the print jobs of local applications.
And passing them on to driverless IPP pointers,
either on the network connected to USB or a printer application for
a legacy printer, and not for sharing printers to other users.
It even does not use a network socket.
It only uses a Unix socket file for communication.
And the sharing server.
And the sharing server, you can really share printers and
you can configure the sharing printer on how to share the printers and so on.
It's a system demon.
And but so you install it only optionally when you really want to share printers and
therefore print server, it has also ACL, it has accounting and everything.
And by default for the desktop machine, you only use the local server.
So this is the scheme.
The very light blue is the sharing server.
The medium blue is the local server and the dark blue is all which is in common.
This is in the cups library.
And so we will have three packages, the sharing server, the local server and
the Libcups three.
And here you see the two servers and
the scheme how everything is together.
Thank you.
And now with all this,
we are already working for more or less five years on it.
And planning it and telling everyone how this works.
We go all IPP and we want to have print applications and so on.
It seems that Microsoft has heard it and that they want to go away from
the crap of printing system from Windows 3 from the late 90s.
And so they came with a new printing system.
Microsoft protected print, which is already available in Windows 11 for testing.
And in Windows 12, it will probably be the stand system.
And this one is all IPP.
As it is with cups three, but it is not cups.
It is not that we have system DSP to one of Windows and then we put cups onto it.
The code is for more pre-ar.
And one already told me that it's still a little bit wonky and flaky.
People who have tested it, there's no access to the source code.
And Microsoft tells IPP driverless printers are all supported,
but legacy printers, they are obsolete, you can throw them away.
But I can tell you if someone of you has to use Windows or
someone in your family uses Windows, they do not need to throw away the old printers.
As under Windows we have WSL and under WSL, you can run printer applications.
And so every printer which works under Linux will also in the future work under Windows.
And currently works under Windows too, because we have WSL and printer applications.
And Microsoft wants to do it for security because they want to get rid of the drivers.
Because the drivers have vulnerabilities, it's old, often un-maintained code.
And they want to do away with all these vulnerabilities.
Because these old cups drivers all run in deep system, perhaps even kernel level.
And so crash the whole system when someone hits these bugs.
And another thing is Microsoft is telling about print support apps.
These are not printer applications.
They are not trying to support old printers.
PSAs, they add ons to the driverless IPP printing to do something specific.
So it's some way that they are fleeing a little bit out of the driverless.
So, and if you want to get into, and we need naturally a lot of help.
And therefore, I want to ask,
therefore I am asking for volunteers that you could voluntarily.
As in any other open source project, you should also,
it would be great if you would step up to help us at open printing.
If you can also participate as a Google Summer of Code contributor.
We are also participating this year again.
And we have a list of nice project ideas.
If you download these slides and then click the links, then you can get to all of this.
And we need people for, especially for desktop integration, for
updating printer setup tools, for updating print dialogues.
We need also people for maintaining the website.
We need people for CI testing, for creating CI testing scripts.
For OCI containerization,
Wax, Docker and so on.
And we need, so we are in need of many people,
documentation, we need to make documentation for our libraries.
And this is very, very important.
Here we already need eagerly volunteers for that.
And so I hope on all of you, come up to me or
contact me through these channels and step up and
help us to make printing just work and to make it even work better.
As it seems, as Michael Tunelt told, there's no painless,
there's no painless way to print under windows.
And it seems to go on.
And so we should have a nice printing under Linux and
other operating systems with open printing.
And so are there any questions?
Yeah, hello, thank you for a nice talk.
I have a question a bit more about the printer sharing server and
accounting and things.
Well, we work with schools and all the individuals are actually happy that
the printing just works.
But the principles are not always happy that the pupils are printing pretty
pictures and using a lot of paper.
So this controlling who can and how many have they are printed.
Can you go a little bit to the steps also in a couple two point something about
the printing sharing server and the transition to three point X2 kind of
what's the right way to do it?
And so the sharing
the sharing server will have all the same possibilities which you have also
in cups which you will also which you had also in cups two dot X and
will it will also have the possibility to define profiles where you can where
you can filter printers which the users can see and cannot see.
And you can also tell which which printers to share to where and
I don't know whether you can force option settings which would be a possibility for
example to force the use to force users to print in black and white or
so and not in color and only selected users can print in color.
I don't know whether it's possible but you can in detail tell which users and
which which clients can use and see certain printers.
In cups yes in in cups three it will be in more detail.
I think in cups two you can at least say to share printers to certain
networks or to certain clients but in cups three you can also also tell
in cups two you can also include and exclude users who are allowed to print.
And in cups three you have also profiles which which you can filter which
printers are visible and which are not.
Hi thanks for the talk you mentioned scanning on a couple of slides.
How far away are we from having internet scanning protocol and all modern
scanners supporting it.
We have we have already standardized protocols for scanning.
The common protocol the most common one one is ESCL and if you have an
a driverless IPP multifunction device it can at least it can usually scan with
ESCL some few others with another protocol which is called WSD which is
from Microsoft.
We have a same backends for these two which is same AirScan which is not
in the same core package it's a separate package but it's in all the distros
currently and one of these protocol is supported by any driverless IPP
multifunction device so the scanner and such a multifunction device also works.
And for further more sophisticated support there's also IPP scan but this
is not yet picked up by the print and scanner industry the standard is there
and completed but we will perhaps use it later on at open printing for
network scanning and to have more detailed permission and client server
handling when using IPP scan instead of ESCL but for just scanning we currently
use ESCL.
Thanks.
Good morning to so do you happen to know why Microsoft decided to adopt their
own stuff instead of open printing.
Can you.
They decided to go with the Mopria and why did they do that instead of go to.
Yes, yes, Microsoft is a classic commercial close source company and so
they are starting with open source they have they have they have hired a
Leonard Perturing and and this way they the development of system D happens in
Microsoft but somehow they did never come up to me and say we want to use open
printing so that into there is also consortium Mopria probably also of
printer manufacturers and software companies but all close not that's the
printer working group which is all open and in Mopria they have also defined
the specification for driverless IPP printing which is very similar it's
practically the same specification as of Apple Airpoint or IPP everywhere and
therefore I call out I call it always only driverless IPP printing because
it's technically the same and so Mopria is also a group of consortium and this
group Mopria also writes code right puts puts the standard in code they wrote
for example also an Android app which is called Mopria for printing.
And so for printing on driverless IPP printers and Microsoft seems to have
also worked with Mopria to get their code for for driverless IPP printing and
to get into Windows protected print.
They did not by themselves tell that they work together with Mopria but people
from the printer working group has told this to me.
And unfortunately they do it this way it it had been a dream by me if Microsoft
had had overtaken cups and so we have a really all over standardization and one
organization providing the printing code to everyone.
But unfortunately this did not happen.
Okay.
Thank you to you to Michael and all the printing heroes that help printing not
suck as much in Linux.
What.
Thank you to you to Michael and all the printing open source heroes that help
printing not suck as much in Linux.
You're welcome.
Thank you very much.
Any more questions.
Till many thanks for your interesting talk.
We've got a little present for you.
Let me have a look where it is.
You're welcome.
Thanks for your talks.