 Great, so welcome to the only talk of this time span. I'm glad I'm on the only one talking. I hope I will be somewhat interesting That's a great honor to be the only one talking So I wanted to just do a status report of the Debian printing team because it's been now quite a long time I've been working in this part of Debian and I've Tried to attract people into helping me for printing in the last years and it hasn't really worked. So I'll just do another attempt and see what that gives and Probably and hopefully give you some insight on how the whole thing work So a little introduction about me I'm a Swiss guy and working. I was basically grown up with computers if you follow my talk from last year I showed you some of the Swiss computers back then in some Motorola 68000 Swiss specific stuff that was basically born with and I'm currently working at LeapCH It's a Swiss company that has websites and I'm working there is as a learning specialists Web apps by Kenner and sysadmin whatever that means Towards Debian I've been translating things that you've been to sites since 2005 Maintaining packages since 2009 Been a developer since 2011 and maintaining some packages since then That's not the most interesting part of that talk. So let's go forward This session's intent is to present the state of the Debian printing stack It's the evaluation evolution until today the leftover work and also how I got trapped into maintaining that part of Debian I mean, I don't have particular interests in printers, but Yeah, and how you can help So the let's dive into the past if you have questions just raise your hand and interrupt me. Don't feel shy So it started in June 2010. I adopted fumatic filters because it was severely outdated then There was no upload for a year missing five years upstream releases We were lagging lagging severely behind Ubuntu and the maintainer was quasi-MIA Typical case for adopting a package some months before the freeze I was kind of looking for things to help the freeze out and this was broken on my machine and That's where the trap was working on me first It's just made it into sweet squeeze because I did the upload like three hours after the freeze was surprised announced That's the depth confidence. So I managed to get it through Somehow, but that was the only package I was maintaining there for squeeze and then in July. I sent this Requests for commands for forming a printing task force to the virus mailing lists The cups the cubs maintainers list, etc to see if it was possible to gather some people around Maintaining the whole printing stack under team umbrella because before that it was just sets of packages Maintained by individuals on their own side of Debian The thing was kind of working But as soon as people went MIA or just had other interests than the pit the packages were rotting and And then I started integrating the Ubuntu Delta into Debian because Ubuntu had apparently more the needs than Debian to have a working printing infrastructure then and They had been fixing this stuff on there on their side So it's interesting to take a look at the Ubuntu Delta in the first place where there was one One one argument for that is that the updates were not proposed back to Debian at all So no patches sent to the bug to the bug tracker No other way than just looking at the packages in Ubuntu and see well there was there were updates there So I should maybe take the patches back, but there was no upward communication And on the other hand the packages were not getting any or much attention in Debian either So no one that was actually taking a look at this diff and making sure that things were working I mean it was working for some parts, but many bugs still But it's still free software. So patches were sitting there You had a nice link from the pts to actually gets one big patch You could apply to you to Debian package and you could just integrate that so the patches were available Was not not that bad so the work started at the beginning of the wheezy cycle around to 2010 to tell 2011 by making basically adopting new packages and Polishing the Ubuntu changes like taking one change at the time making one clean commit out of that and Uploading releases one after the other integrating your upstream releases and All good. No well Not exactly because the the dependency stack at that time was a little complicated so to say Because every package was linking against its dependencies and some of the drivers had been promoted to the principle Server task so the print server task was pulling like HP lip and good and print but not other drivers for some reason and it was pulling cups and her cups was pulling popular and then Yeah, that basically you can go on the wiki if you want to revise history But basically that's why that's what was there when I started cleaning up the stuff so I started discussing the thing on the list and It was like we were like two or three and maybe many people agreeing to the thing, but I was I Was not many for doing the thing So I started cleaning up the dust Renaming the drivers now all printer driver are namespaced somehow. They all start with the same binary name Reworking the dependencies tree making sure you have a printer driver all that just Recommends all driver available drivers that the print print task can depend on so you get you get by default You get all available free software drivers just in case you might want to install a printer There was this PY PPD that is Compressor that would take the PPD files and turn them into an XZ compressed Python script that will uncompress itself into PPD's that basically allows A disk space reduction of 80 percent that was written by during a google summer of code and I just wrote the DH wrapper around that to automate that for the printing packages so that if you Put the PPD files in the right place and run that tool It will just do the compression and replacement and removing in the correct place We have moved all the packages to git because some of them were in no VCS some of them were in SVN I don't think we had any in CVS But anyway moving to git was a good thing in collab maintenance by then because I didn't have the interest in making a proper Team namespace and I wanted probably easier to just put everything there And the worst that might happen is that someone would be interested in putting patches that didn't happen And we hijacked the Dragon printing list Because no one was using that and it was totally logical to use that as a maintainer list to put to have everything in the same place and Cleaning up the dependencies apparently that's twice in the slide So During that time we managed to package all known free software drivers There were some laying around that were not packaged some that were a little complicated to package But anyway, we I tried to search through open printing and whatever and find some others that were not Packaged that were maybe supporting one or two printers, but I wonder it's probably good to have them in devian anyway Could be useful for one or two users who know Consolidated the fumatic packaging and caught caught back on up some versions and I think in we see we had most of that but There's still cups Cups is like the thing you don't really want to touch when you do printing because that's actually the complicated part The rest is just drivers filters small programs. It's easy when you start packaging because it's small things in different languages It's funny, but cups is a little frightening so I Wondered yeah, I mean cups is it's one big thing and it has an apple upstream. I mean Yeah, it's not really the thing you want to touch and cups is is not really known for being super whatever free software friendly so yeah But the the whiz your freeze was upcoming and cups hadn't seen uploads for a year So I started fixing one thing after the other and I starting uploading enemies and I ended up doing 16 enemies in a row and Not every enemy you got freeze exception request, but almost all of them So for each of the enemies was then discussing with the release team all the changes to make sure they would enter into whizzy Yeah that and then 2013 cups was Especially made complicated by the fact that where there was no public VCS there used to be an SVN, but it was down for some reason There also used to be a public buck tracker, but it was down for some reason and the few contacts I had with Apple was just over private males because they had no mailing lists or it was closed or it was down or yeah So it's not exactly the upstream you're very fine working with I mean, it's just a black hole You just get a new turbo no changes. I mean you get a change lock, but I mean you don't get the individual changes So and of course the package back then had no test suit working had no auto package test. So Yeah that But finally after doing sex 16 enemies, I think I thought myself. Yeah What what does that mean any the real maintainer would not get back to uploading that for the stable release So I might as well just adopt it and we'll see what happens So apparently the trap worked. I ended up with one more big package. That's cups so Where do we stand now? If you're on Sid you probably have most packages that are in their most recent upstream version And the last year we moved from color mains to printing because it's now easier because I'm a DD So I could easily create a new Alice group and we thought it's also easier just to see who was actually actually in the team So we send a send out a mail to the various persons that had somehow contributed and asked them to request The membership on alias so that the ones that are just MIA just don't request and they're not members So that the list on alias is somewhat relevant We kind of managed to maintain the bug flow as the other reasonable level I started there was like 400 bucks and now we're around 300 But that means also that the new bugs are addressed in Within a reasonable delay Somehow so now that I told already twice the floss drivers are indebted there was a new one I think three months ago some some guy did some Driver for two or three brother printers that just works currently so the package that is it's in Debian Also, the Ubuntu diff is kept minimal We've integrated some of the Ubuntu specific changes in the Debian packaging Just to avoid having them create a new diff just or maintaining a diff over time You can do that easily with a DPKG vendor for example So you have every the package the package is the same and just that build time will do different things So you can for example the default PDF page is different and the two default pages are in the Debian package But when you build it on Ubuntu you get the Ubuntu default page It has the advantage that the Ubuntu employee don't have to kind of equal employee don't have to maintain that patch over time We managed to get the diff to zero sometimes it's sometimes you just see a peak in Ubuntu because they want to be faster than in the music and They do their stuff. So that's the Bugs, it's for all printing packages. It's not that bad Apparently I had to do actual work for my work in July and August so it was a little but yeah So cups As you might have noticed if you're googling it now We've gone from one five three that was in squeeze to one seven five now in Jesse So it's two minor upstream releases with quite a lot of changes and I think we packaged all intermediate versions and It's not bold to say that will see we will release with a minor version of one seven. I mean Jesse. Yes Thank you. I'm getting old We've enabled the full test suite so lots of patches within the test suite but not for disabling things mostly for ignoring Things in the air logs because cops test test suite will count the number of errors in Its air log. So you have to take things out so that the count always matches Auto package test it's basically printing to DevNol, but We had we test that this continues to work when other parts of the of the archive change So printing to DevNol works. That's good news And we've patched in the system D socket activation and activity timeout so the socket activation was originally from Leonard and then changed by Gen2 to have that Not mandatory because Gen2 also has CSV in it where Red Hat just has system D So they don't have an option at runtime to either activate or deside deactivated socket activation So it's a mix of the Red Hat patch plus the Gen2 patch plus cleaning of course The activity timeout was from Ubuntu. So basically now in SID if you run system D Or upstart After 30 seconds of not doing anything the CUP server will shut shut down itself and doesn't do anything and when you Print something or access the web interface over the 6631 port just launches itself in quite of a second and Printers prints and then after 30 seconds shuts down again as for upstream We have regular good and constructive contact with upstream. I mean they have again public VCS Sorry a public VCS Boxer repository so we can actually communicate on the public place and have the various changes also as individual units So it's quite easier than now as for the constructive contacts. I also had good private emails with Mike Michael sweet from Apple about this new TLS versus open SSL discussion. We had in Debian devils some months ago Because new TLS introduced some incompatibilities. So I thought yeah, I could just build against open SSL No problem Cups has the GPL to exception and it was rightly pointed out that Every package that uses leapcups to also needs the GPL to exception for open SSL So it wasn't really possible So we had the discussion and actually upstream was interested in finding finding a solution eventually patching in another SSL library if that would help the Linux distributors. So it was kind of surprising for me that Apple would be interested in doing that But they were I must say so that's good And now we dropped the open SSL and it just builds against the latest new TLS version But yeah, the Linux foundation still needs to maintain several things that got dropped from cups That's one drawback of having cups owned by Apple is that they basically dropped everything that was not interesting for them So they just want to make sure you can print on Apple certified printers and the rest is left up to the community so the Linux foundation took over the cups filters and the cups Broadcasting management you can have the announcement between cup servers to get the queues in your Local queue etc etc. So that's taken over by the NUX foundation I'm thankful they do that job. I'm happy. I don't have to do it myself because I it probably wouldn't work and Till competitor is working for them making that happen. So I'm glad he thought thank you And We also have some people helping I would like to thank Brian potkin in particular for being precise tar less and helpful I don't know if he's at that conflict, but he's being participating on the list quite a lot for Tackling down some bugs reporting some useful bugs preparing patches also that's been useful and You might have seen from the list of packages We also have other packages that I don't maintain myself, but that are also in the Devin printing team So we have a Jonas for a ghost script and IGS C20 50 by Marco cups BGNP by Joe mean 12 xxw by Stefan and T4 cups by Mike that It's not packages doesn't that move very often, but when they do there we have updates. So it's good. Thank you In other parts of the stack, we still have HP lip that is maintained independently by Mark Purcell and Also gets updates regularly. So it's fine and cups PDF by Martin Rick and apparently is working too. So thanks Now for the future scoping the problem non-free plug and some incoming challenges The problem of printing is that it's it's still a must-be of our world when you discuss with people some people say Yeah, cups is really shit and we should find we could just drop that from the default installation Yeah, you know people still print. I mean The non-paper world is probably in Advertisement, but it's not there at all Printing when it works. It's boring. It just has to work and But when it doesn't it's really annoying. So it's it's that type of technical challenges that You will only get complaints when it doesn't and when it does everyone is happy, but no bugs. No nothing. It just works and it's fine But on the other hand printing is damn complex printer manufacturers come up with new protocols every three months basically like they can even change Printing protocols within the same product suit for some reason you get different IPP versions PCI supports different memory requirements Now you can directly feed PDFs to printers But the printers will sometime fail because the internal PDF rendering will fail for some reason So you have to circumvent that in the printer drivers You also have different sending protocols air prints the Google Cloud print is coming We have now IPP over USB for some printers. So it's like an ever-changing landscape for printing I mean it's a thing we've been doing for years and it's still changing for some reason It's complex also because it takes any format as input basically you can print images word documents PDFs Postscript and you have to make sure transform to whatever the printer is ready to get sometimes it's post script Sometimes PDF sometimes it's some raw whatever sometimes. It's a bit stream so we have complex chains and One of the biggest problem is that when a user has a problem the probability is one that you don't have the printer I mean I have one printer at home I test it when I do new uploads and I just printed the test page and that works But when it when a guy has a problem on a printer, I don't have it. So it's quite hard to reproduce And there is still IP in the drivers and I mean We have full manufacturer suits that have no acceptable floss support and I will do something a pointing now I hope this is not videotaped. Oh shit Um We've had this project from Devin France for the They were basically offering books for people that would be happy to contribute to something and I mentored two guys to take a look at What brother is that is doing with the drivers? So I invite you to go there there the documentation is quite extensive and They tried to see how we could package that even in non-free just to consolidate the thing and have a somewhat clean Dump of files even in non-free that you we could install that instead of downloading 2002 deb that has no depth sums But the web pages layout changed in the middle of the project they just we went the website So we had a crawler that would get the virus drivers and it just changed completely in the middle of the project You have is for some printers you have two different versions either for si or imperial units Because I don't know printers have physique different physical size or I don't know You have seashell all over the place. I don't think we have any valid in seashell interpreter yet in the end of it For many drivers is there is no co-installation possible because they use the same name files with different contents In the same place So you need the different file, but it was the same name the same place for two different printers So basically you can either print to one or the other but not the two at the same time It still uses print cap that's been deprecated at least since edge. I didn't check with something very old and Yeah, there's a lot of bugs all over the place It's a loads and loads of shell codes that would unpack parts of PPD files to generate things to put in other places Download things from the internet. Yeah a whole lot of crap Frankly But yeah, I mean we should not only figure point at the brother in Samsung apps on they're doing exactly the same or worse Or I just didn't take a look precisely at that, but the brother project Was quite frightening and I don't think we will ever do something useful there. I don't know if that's I don't know Yes I'm not surprised So, yeah, that's that's the dark the dark corner We don't want to to see I mean we have the three drivers that work quite well and there's a whole lot of things in the dark corner that You don't want to buy these printers because there's no way to make them work reasonably unless you download some very very very old Debian package Fixed the depth sums inside and stuff like that for Jesse New things ghost crypts move to a GPL That makes some people very happy So what we'll do is we'll probably upload the non the latest non a GPL version and have that in Jesse And we'll probably see what happens then Because yeah, the freezes soon and it's quite a complex problem, and we won't have time to fix that before so We'll probably move some versions up, but not to the latest option option version Apparently we're the only ones to care all other distributions have just uploaded the a GPL version and It's there so, yeah Cuffs to zero is around the corner We hope it will get there by the end of the year it introduces up stream side assistant is reports TLS certificate validation Maybe it's time for for us to do that They removed open SSL support, and we have many OS X and has enhancements Whatever that is useful for us. Anyway, that's So expect two zero better one in experimental in the next months. We'll see So what you can do Frankly, I'm getting bored by all that. It's been years not of I've been maintaining the printing stack Not exactly alone, but for some parts quite alone It's true to say that I've got quite a lot of collaboration with you put into to make that work And there are many things that is that I just have to patch back into Debian and it just works but it's it's sometimes a little Boring to do that all alone and Yeah, I'm glad others are helping in the team, but for the most parts and partly glee cups It's not that easy, but it's not too complicated. Believe me. Trust me and One point is I'm very bad at motivating people or documenting processes. For example the teams page I probably edited it twice once in 2010 and once last year for the printing both and It's still sitting there with no many not many updates. So Someone motivated by processes documentation should Jump jump on the ship and do some stuff there But this talk was an attempt at motivating people at least so we'll see that works and On a long term What we need is more drivers writers basically because there are tons of printers that come out that that don't get full support And that people use basically and the problem is not Making sure everyone can buy the printer. They want people will have printers They have there and they want that to work and it doesn't so we need people to actually write driver printers We need more bug treasures that then become one of the maintainers Hopefully and less bugs pretty please We can achieve less bugs two ways by fixing more bugs or by introducing less bugs. So maybe we should do the two So that's all for my little Devin printing stack Status if you have questions, I'm happy to try to answer them and otherwise. I think we can all move to dinner Yeah Where's the mics? So I'm a bit interested in printing because we have lots of corporate printing which doesn't work because it's all run For Windows people and so the poor Linux people are thoroughly ignored And in fact if we print the printers they tend to crash, which is a bit sad And you know people complain that the printers are very unreliable. You actually it's us So also 50% chance of things exploding but what I what I haven't been able to find is Where do people who have to worry about corporate installations hang out? I couldn't find anywhere to ask questions because our IT people go We don't know how it's supposed to work in the next world. We have no fucking idea Please tell us what to do and we'll do that and I don't know anything about printing or who to ask or where to go Is there a place I think there must be lots of people who have big installations probably and there must be some people who understand how this works So the Devin printing list is not that much used it gets the automated mails from the maintainers Mails so we could drop that if people start to use that but that would be one option I think you should look into open printing lists and if No list exists there. They should probably create one. I think they have one They have summits and they have meetings for whatever printing related somewhere on the open printing site Yeah, be a good place to yeah, I think ask advice. Yeah, okay. I was just wondering if you would comment on What's your what's your perspective on back ports and things like that? So once we go stable How do you see supporting the printing stack for two years five years? However long stable is going to be out there Well, there are two answers for that one is There's quite a lot of security work to do for stable already and we had I think privilege Yeah, you could access basically you could yeah privilege escalation in stable So we had to reramp the whole configuration system in stable for cups during the wheezy cycle. So That kind of takes the time that would be allocated to backports. The other answer is patch is welcome So I didn't do backports for wheezy yet just because they had enough of mine plates for Sid But I would happily help anyone wanting to Prepare backports. I think it shouldn't be too hard Cups is probably buildable right away So, yeah, okay, that's so that's cups. How about the how about drivers so same I mean if anyone interested I could just help making sure it happens, but Unlikely I would do it myself Let's do it. So, thank you. So if you Do not do new drivers typically depend on a new version of cups usually not because they Build against lip cups to but lip cups to is kind of ABI stable since years so it shouldn't be too much so that so then you So the missing hardware support is a is as I understand it always considered an important bug and worthy of a stable update So that means that if you wanted to you could you could update drivers Add new drivers in a state ball for hardware enablement That's interesting. Yeah The other I also had a question about Drivers which is typically when I plug into a new printer. I Get a list of possible drivers Possibly limited to the exact model or or not But there always seem to be more than one option per model is that I assume that's because there are multiple collections of drivers Package, how was a user am I supposed to decide which is which of those to use? Trial and an attempt I Mean they for some driver for some printers you get a recommended version from Fumatic that has this parentheses recommended thing So you should just pick that one I think we mostly also have multiple drivers per printer because Sometimes for a single printer depending on where in the world it was it would work better or worse with different printer drivers so but the the one database that we use used for that is Fumatic DB that is maintained on the open printing website and I The where exactly you should report bugs isn't exactly clear also for me So I should clarify that well, I should I've never I've never selected a driver and found that it didn't work So as far as I'm concerned you're doing fine there. It simply is this having been presented with a choice Well, I haven't I don't know what would the door difference would be was that on the cups web interface? Yes, yeah, I think that's there the selection isn't very smart But I think when you use Python cups or one of the GNOME or Katie front ends you get a little less Options I think but that's more front-end work than whatever cups related But yeah, I don't have a better answer now Any other questions? Kind of following on from what Ben said Yeah, I've been under the impression that those were different ways of talking to the printer You know because there's always you say there's always 17 ways of talking to any given printer So I kind of thought that they were all different flavors But again, it's extremely unclear you go I don't know whether I want fumatic thingy or or HP lip thingy or something else thing I should say you try one and usually it works So and you go I could sit here in trial 17 But I don't know whether that's and then sometimes there's the interface to the printer you can specify So our fancy print in the office is 81 different ways of talking to it and you go I don't want to try all those you know Before I've tried or make it crash, but you know sometimes One that works. Yeah, exactly Yeah But there seem to be a very small number of people actually understand this stuff. Yes. That's there's till. Yeah, exactly And I may be three other people somewhere. Yeah, right. So But he's yeah, we should talk more to till I suspect and Yeah, he's making most of that work and you wouldn't decide I think as a canonical employee What's this I vaguely gathered that the cups browsing thing as you say is disappeared upstream So we're keeping it in a debbie and a bun to while we can yes, that right? Yes, basically using zero conf ever he Thing well, that's how that's how Apple wanted to work But that doesn't know that in especially in a big office that doesn't work at all because you're on different network segments One thing that was dropped and that hasn't been reintroduced on open printing was the LDAP support Was or that used to be in cups and that's now removed I was used in big corporations that had like an LDAP list of printers Instead of like listening to the noise of all printers announcing themselves on a network and we regularly get users saying how could I pick The latest one was something like the browsing demon has 10% CPU. Is that because I have 100 printers of my office. Well, yes So Yeah, I mean I can't really I don't have a capacity of recording that anyway So if the corporation wants to get a lot support they should Make a lot fix it. Yeah But I'm open to integrating that as a Devin patch if that helps but Can't really fix that myself So, yeah, if I had any time I'd like to help you with printing, but I have too many hats already So I'm not missing anything Yeah, thank you Mostly so I can actually print stuff without having to run a Windows VM, which in practice is how I printed my stuff to get here Yeah That's bad. Well, actually one one thing that Geeks like us should know is how to pick the correct printer when you when you buy one and I think yeah, so my home print is all work Fine, it's beautiful the cups browsing works stuff prints. It's all lovely It's when you go to work that the whole thing's a disaster. Yeah So which manufacturer should we prefer I'm not paid by any of these but I think HP printers mostly work fine either through HP LP HP LYP or other things Yeah, that's baseline I would say but Yeah, others work too Well, if anyone has contacts at bother tell me to contact me and will manage something and recommend some good practices for modern printing If you know because that's not an acceptable way of providing Linux support. I think anyway other questions Everyone's hungry. Good. Thank you very much