OpenPrinting News - October 2024

36 minute read

This month we have the 5th anniversary of the OpenPrinting News!

For 5 years now, starting October 2019, I have posted here every month, to tell what we are doing at OpenPrinting and what we are planning to do: Our design and development work, new releases, vulnerabilities and security issues, our GSoC participation, conferences we attend and talks we give, what people say and write about us, and also important things which happen in the free software world in general.

This is not only useful for those just interested in OpenPrinting, but it also helps us to attract and onboard volunteer contributors and it is an easy way to find out what we have done at which point in time.

This facility is unusual for free software projects, probably due to the fact that it requires some work. So far I got only positive feedback, so I will continue. It also probably has potential for improvement, so please tell us your suggestions through the communication channels mentioned below.

Last month, I have been on two conferences: The Festa do Software Livre/UbuCon 2024 in Aveiro, Portugal and on the third Ubuntu Summit, in den Haag, in the Netherlands. The Festa was done principally in Portuguese language and my 3 sessions I have given in Portuguese, whereas the Summit is the big community event organized by Canonical, this time with less talks but with booths instead.

On the Festa do Software Livre we recorded 2 episodes of the Podcast Ubuntu Portugal and on the Ubuntu Summit another episode, so there are 4 episodes with my participation now.

The GSoC has ended and our 11 contributors have all done amazing work to put together our most successful GSoC year. We had never that many contributors and all have actually done code which we can merge upstream.

And there were also several new releases at OpenPrinting, starting with the 2.1.0 releases of libcupsfilters, libppd, and cups-browsed to include the fixes for the recent vulnerabilities and updates of libcups3 and PAPPL.

Videos of the talks on the UbuCon Asia 2024 and on the Open Source Summit Europe 2024 are available now. See links to the recordings of my talks in the appropriate sections in the August News.

So let us see what happened at OpenPrinting in October …

And as usual: Stay updated on Mastodon: #OpenPrinting and @till@ubuntu.social.

Or discuss on our mailing lists:

  • Development: printing-architecture AT lists DOT linux DOT dev (Archive)
  • Users: printing-users AT lists DOT linux DOT dev (Archive)

Subscribing/Unsubscribing instructions

Or on the Telegram OpenPrinting chat

Festa do Software Livre/UbuCon Portugal 2024

After 20 years I was again on a a conference held in Portuguese laguage, this time on the Festa do Software Livre in Aveiro, Portugal, a 2-day conference with a main track and several sub-conferences co-located by different open-source organizations: Drupal, Flutter, WikiMedia Portugal, Inêrcia, and the UbuCon Portugal. I followed the invitation of Diogo Constantino.

I was departing early in the morning, on the day before the conference started, and when telling to my colleagues in Canonical’s Desktop Team, that I am heading to Aveiro, Ana Sereijo, UX designer, spoke up telling me that she came from there. So, as I was arriving in Aveiro at lunch time, I asked her for restaurant recommendations and this way got to an excellent, delicious place for classic Portuguese food. I ate grilled sardines and it reminded me to when I lived in Portugal for a year back in 2007.

Diogo and the others of the organizing team was still at their day jobs, so I have finished translating my slides to Portuguese in the afternoon (that is really a lot of work, feels like more than creating the talk in the first place) and met them for dinner.

The conference has taken place in the Departamento de Eletrónica, Telecomunicações e Informática (DETI) of the University of Aveiro, in up to 6 rooms, 2 lecture halls and 4 classrooms in parallel. There have been up to 2 plenary tracks and sub-conferences by Drupal, WikiMedia Portugal, Flutter, Inêrcia, and the UbuCon Portugal.

Here are the schedules: Festa do Software Livre, UbuCon Portugal

I have given 3 sessions, all in Portuguese, as announced last month.

On the first day, Friday, I gave my talk about the history and the current work of OpenPrinting, but in Portuguese:

OpenPrinting - A boa impressão do software livre

Video

I have given it in the main track. I ended up talking about how I got into free software, the history of OpenPrinting, our current work on CUPS 3.x including its integration in the desktop, Windows Protected Print, … for 70 minutes and afterwards did a 14 min Q&A session. I also got some printing-related questions during the coffee breaks on both days.

And I did not talk about the recent vulnerabilities and nobody asked me about them during the Q&A (if you want to hear me talking in Portuguese about that, see my Podcast Ubuntu Portugal participation, episodes E321 and E322).

On the second day, we had the UbuCon Portugal, where the morning part was all about Snap. First, I gave a Portuguese version of my talk in which I explain what Snap is, how it works and how it is motivated, and about the Snap-only operating systems Ubuntu Core and Ubuntu Core Desktop:

Linux para desktop, fácil como um smartphone! Graças ao Snap!

Video

I also mentioned how the work of OpenPrinting comes into play for Ubuntu Core Desktop and after the talk we had a 20-min discussion about the quality control of Snaps, initiated by an attendee who installed the nextcloud-client Snap and it did not work for him.

After a coffee break people could make their hands dirty with snapping by themselves, in an interactive workshop to learn how to package applications as Snaps:

O seu aplicativo para todo mundo! Graças ao Snap! - Oficina interativa

Video

This is the workshop which I have given several times on other conferences, but this time I have given it in Portuguese.

After lunch there was a workshop about developing games with Godot (Video parts 1, 2) and after that there was the talk “Uma história de vida usando Linux e Debian” (video), José M Calhariz talking about how he got into computers and free software, and in the end, the two graybeards who having told about their free software history throughout the conference have met to make the happy end of the UbuCon.

On the two conference days in the evenings, dinners were organized in a nearby restaurant. The first one was to celebrate the Oracular Oriole (24.10) release of Ubuntu and the second was the “closing party” of the Festa do Software Livre. We were 10-15 people on each of them, the organizers of the event and some others.

Each night we have produced an episode of the Podcast Ubuntu Portugal, E320 and E321, resp. There not only the usual hosts, Diogo Constantino and Tiago Carrondo were speaking, but we all got involved. And Diogo brought for everyone a little rubber duck, and one really hears them often in the two podcasts … Therefore they got the duck (with a beer bottle cap as hat) as avatar.

At the second day’s dinner we had also a post-conference meeting talking about what went well and what not so well at the conference and what one can improve in the next edition.

And before the dinner Diogo and me exchanged our experience in recording and live-streaming the Festa do Software Livre and the Opportunity Open Source resp. Diogo fell in love with the wireless clip-on mic kits (from Tonor) which I brought (and used several times on the conference) and bought such a kit right when he got home. And we concluded that we need to develop a better method for live-streaming/recording/remote speaking and document it somewhere.

Ubuntu Summit 2024 in the Hague

Update: Complete session video playlists for Plenary and Workshop rooms and all links to session recordings here point to the individual videos now.

Recordings of the conference days in the plenary room: 25th, 26th, 27th

Playlists of all session recordings: Plenary room, Workshop room

Pictures: Photographers, Photographers Hi-Res unedited, Attendees

Aftermovie

When I refer to talks or workshops in this section, I always link to the slides, exercises, and recordings, if possible, so if you have missed a session, you can watch it, read the slides, and also do the workshop’s exercises, whenever you like.

The third Ubuntu Summit in the Hague, Netherlands, was again a success!

During the years we made a move from having lots of talks and workshops to making the hallway track the central part of the event. 2022 there were still 7 rooms in parallel (1 plenary, 4 breakout, 2 workshop), 2023 5 rooms (1 plenary, 2 breakout, and 2 workshop), and now there was only the plenary room, 1 workshop room and … an exhibition consisting of 26 booths!

It got much harder to get a talk or workshop proposal accepted, only talks of general interest, breaking news, and with the “Wow” effect made it into the conference, special interest topics got discussed at the booths now.

Here are the schedules.

Before it started

As I am part of the organization team of the Summit, as I was in the previous 2 years, too, I had arrived early, already in the afternoon of the 22nd of October, to help on the preparations, together with Mauro Gaspari, principal organizer of the event, and also Aaron Prisk, Jason Nucciarone, and Jesús Soto.

These extra days gave me also the opportunity to meet people, also due to the fact that in the week before the Summit the Canonical-internal Roadmap/Product Sprint, to be attended by all the managers, has taken place. So I have especially also met Ken VanDine and some people of Canonical’s desktop team.

And I also met the non-Canonical Summit attendees of the free software community as they were rolling in. Soumyadeep Ghosh from the Snapcrafters already joined us at dinner of the 23rd, and on the 24th in the morning I went to the hotel where most of the community people were accommodated, principally to prepare for the Snapcrafters booth and the Snap workshops with Soumyadeep, Merlijn Sebrechts, and Lucy Llewellyn from the Snapcrafters. There I met also many others, especially Heather Ellsworth from Thunderbird, Akarshan Kapoor the master of the Scanner Applications, Mathieu Comandon from Lutris, Martin Wimpress (“Wimpy”) from NixOS, …

And on the 25th, the Summit finally took off …

Last preparations at the venue in the morning, and as soon as the Roadmap Sprint ended at noon, the booth staff from the community arrived and the preparation of the booths started. Many busy people in the main foyer of the venue, the place looking somewhat chaotic, and one started to meet more people.

It was originally planned to open the exhibition only after the opening plenary, but the booths got already busy right in the beginning, as the exhibition ground was between the main entrance and the plenary room.

Snapcrafters Booth and Workshops

I was participating in the Snapcrafters booth, together with Soumyadeep Ghosh, Merlijn Sebrechts, Lucy Llewellyn and so we were also setting up our booth. As I have already run a Snapcrafters booth with Soumyadeep on the UbuCon Asia Soumyadeep had already a slide show for the booth screen where he only needed to update the workshop announcements. Our booth tables were full of Snapcrafters stickers and Origami Snapcraft birds.

With the same people I was also participating in the organization of the two Snap workshops:

Crafting snaps quickstart guide 101” (Slides, Exercises, Video)

and

How to build and test your snaps automatically using GitHub actions” (Slides, Exercises, Video)

I did not do the presentations themselves, this was done my Soumyadeep Ghosh and Merlijn Sebrechts, but I have given a short introduction telling how the Snap workshops had their roots in my Snap workshop series on the Ubuntu Summit 2022 and the first one being based on Heathers’s original workshop “Snapping like Hell(sworth)” which was afterwards given on many other conferences, mainly by me but also by Lucy and by Soumyadeep. In the second workshop, in the end of the presentation part, I have also told about our plans to merge the Snapcrafter’s GitHub action with the Canonical Desktop Team’s GitHub Action. I (and several other Snap experts) have also been in the room to help on the exercises, as these workshops were, in contrary to several others, really interactive.

Talks and Workshops

During the event I was most of the in the exhibition area, but I also made it into some of the talks and workshops.

I attended following sessions, including all those sessions where our GSoC contributors and mentors were the speakers:

Inkscape for Everything” by Christopher Rogers (Video)

The session was announced as a workshop and had taken place in the workshop room. In the beginning I installed Inkscape expecting that there are exercises, but actually it was only a demo of most of the functionality of Inkscape, which is a lot, allowing for really professional artwork, doing nearly everything which has to do with graphics: Non-destructive photo editing, slides for presentations, … Christopher tells that if he had given exercises he could only treat a very small part of the whole session’s content.

Live build your submarine step-by-step” by Juanmi Taboada (Video)

Here I was in the good hope to put my hands on some hardware, but, as the Inkscape “workshop” this was also only a demo. Juanmi, who brought his remote-operated and free-software-controlled submersible already to last year’s Summit explained the free-software-driven hardware-components, showed them and put them together, but there were no extra copies for the audience to try it by themselves.

Fuzzing in the open: Integrate your project in OSS-Fuzz for continuous fuzzing” by Dongge Liu, George-Andrei Iosif, Jiongchi Yu (Slides, Exercises, Video)

Finally, an actually interactive workshop, but this one was also with my mentoring, as the speakers are no less than our GSoC team for deploying OSS Fuzz on the OpenPrinting repositories, contributor Jiongchi Yu and mentors George-Andrei Iosif and Dongge Liu. Unfortunately Jiongchi could not come to the Summit in-person as he was on another conference in the US. So after a short introduction by me, George Andrei and Donggi were explaining the steps for the attendees to do on their laptops, with the Heartbleed on OpenSSL being the example. Jiongchi was connected via video meeting and in the end he told in a ~12-min talk about the OSS Fuzz deployment on OpenPrinting.

The Journey of KDE Plasma on Ubuntu Core” by Kevin Ottens (Slides, Video)

This is all about the development of an Ubuntu Core Desktop distro with KDE instead of GNOME as desktop session. The architecture is shown and the challenges encountered and how they got solved.

Soumyadeep Ghosh, GSoC-2024 contributor of the Snap backend for KDEs software manager Discover, mentored by Scarlett Moore, asked several interesting questions.

Unstoppable Force Behind Linux on RISC-V” by Gordan Markus and Yuning Liang (Slides, Video)

Gordan Markus, Director Silicon Alliances at Canonical, and Yuning Liang, founder of Deep Computing, tell about Deep Computing’s efforts to create consumer-ready laptops with RISC-V architecture and Ubuntu as operating system.

Re-inventing distroless with Chiselled Ubuntu containers” by Cristovão Cordeiro (Slides, Video)

In this talk Cristovão Cordeiro, manager of a containerization team at Canonical, tells about freeing containers from unnecessary files, not only to save storage space but also to reduce the attack surface of the containerized applications. He uses the chisel tool which allows the installation of parts of Debian packages (so-called “slices”). Cristovão was also GSoC mentor at OpenPrinting this year for the project of Rudra Pratap Singh, to create OCI container images of CUPS and Printer Applications.

Building secure and minimalistic Docker images for Data and ML with Rockcraft” by Anas El Husseini, Zhijie Yang (Slides, Exercises, Video)

Right after Cristovão’s talk one could get hands-on with his subject matter in this workshop. And it was really interactive. On one of the first slides there are instructions on which packages to install and a link to a GitHub repo with all the example files for the exercises in a subdirectory for each task. I have actually done the exercises during the workshop and they all worked as designed.

Flush with Innovation: Revolutionising Train System Toilets with Embedded Technologies” by Akarshan Kapoor (Slides, Video)

Our GSoC contributor Akarshan Kapoor was on the Ubuntu Summit again, but not with a talk about Scanner Applications. Doing his second exchange semester in Germany, he also did an internship where he worked on the free software stack used in the monitoring system of the toilets in the trains of the German railway. Christian Ehrhardt, MC of the day, announces this talk so nicely:

This is AK, who will revolutionize my personal live. Because train travel in Germany really is not, what you want it to be, and if it is really not what you want it to be, you at least want to have the toilets working …

And Akarshan, when he introduced himself in the beginning, he told that he was already speaking on the Summit last year, about his Scanner Application work for OpenPrinting, and he shouted me out!

Lightning Talks

I have also attended the lightning talks, especially

and the lightning demo:

  • Modifying a Framework Laptop from x86 to RISC-V live on stage” by Nirav Patel (Video): Framework’s CEO is showing how easy it is to make changes on the hardware of a Framework laptop, thanks to their modularity. And with Deep Computing having presented their RISC V mainboard for Framework, it is exactly this which makes it into the sample laptop within the 5 minutes of a lightning talk slot. Unfortunately no boot test is demonstrated … But the demo was already impressive this way.

Should we try to get a lightning workshop next year?

Exhibition

On the exhibition I have not only received visitors at the Snapcrafters booth but also visited several booths:

Deep Computing: I met the founder of Deep Computing, Yuning Liang, and he showed me the RISC-V-based Roma laptops and also the RISC-V mainboard for Framework laptops, and at the same time there was also the 14-year old Gabriel Ozkan who was very interested in participating in Open Source. I told that I am leading OpenPrinting and that I am fellow of the Linux Foundation, and to Gabriel I also told about Rudra Saraswat who is also 14 years old and he is leading Ubuntu Unity and has created blendOS.

Yuning gave a RISC-V SBC to both Gabriel and me, and I contacted him some days ago how to get it working and he put me in contact with the right people. The board can be useful for me to test the printing stack on RISC-V.

Yuning has also given the talk about RISC-V, together with Gordan Markus from Canonical (see above).

Framework: Right nect to the Deep Computing booth was the Framework booth where you could see and try out their laptops and their laptop’s modularity. Naturally, they also had Deep Computings RISC-V board on their booth. Nirav Patel, their CEO, has done the lightning demo of changing the motherboard in five minutes (see above).

UBPorts: This was the place where you could find Diogo Constantino (of the LoCo Portugal) most easily, as participant of this booth and Ubuntu Touch enthusiast who even uses this system as daily driver. Also Alfred Neumayer, master of Snap on Ubuntu Touch was participating (and giving a talk, Slides, Video).

Back to the Future of Open Source 3D Printing Hardware: Here I met Yatin Khurana, from Boltz R&D in India, developing truly Open-Source hardware for 3D printers, in contrary to most manufacturers going more and more closed-source. I am looking into getting him onto the next Opportunity Open Source conference. Yatin has also given a lightning talk (see above).

Thunderbird: For me visiting the Thunderbird booth was less because I use Thunderbird for more than 20 years already (I started as it was still the mail part of Netscape Communicator), but more to meet old friends, Heather Ellsworth and Monica Ayhens-Madon. As last year, Monica has bought a penguin for Jill again and let Mathieu Comandon again bring it to its Destination. The Thunderbird booth was right next to UBPorts and Heather made the mobile version of Thunderbird working on Ubuntu Touch.

Hallway Track

When Diogo Constantino showed up at our Snapcrafters booth I started chatting with him, in Portuguese, and not taking it actually seriously, telling him that we should record an episode for Podcast Ubuntu Portugal on the Summit, and he found that a good idea, and then he asked the organizers for a room and we started gathering people who speak Portuguese end ended up to produce episode E322 with Diogo, Cristovão Cordeiro (Canonical Containerization/Rockcraft), Carlos Nihelton (Canonical Desktop Team/WSL), Diogo Sousa (Canonical Security Engineering), and me. This was the 4th time of me being in the Podcast Ubuntu Portugal.

On the UbuCon Asia in Jaipur, where I met Soumyadeep Ghosh for the first time and I was talking with him about a lot of my free software activity and experience, he came to the idea to create a monthly Ubuntu podcast, probably because I told him also about Heather’s famous Indabas.

On the Summit he was then looking for help on how to do the logistics of a podcast, and it was great that Diogo as experienced podcaster was there and he explained everything to Soumyadeep and we created a room on Matrix for further planning.

And I also met our famous vulture, Liam Proven, the Reg FOSS desk from The Register, again, exactly at the dinner of the 26th, which I had with him and Soumyadeep, in an Indian restaurant. As Soumyadeep, he likes the really spicy Indian food and so they asked the restaurant staff to do it really as in India and not adapted to Europe. Liam told a lot about his long life, his accidents and all the steel in his body holding together his broken bones, and so he got the “Iron Man” for me …

Hacker Spaces

On the evening of the 26th, right after the talks, meeting rooms were set up for the Hacker Spaces, informal meetings of some of the participating free software organizations and groups, for hacking, debugging, planning, …

The groups who got a room were Ubuntu Flavours, Governance & Autoinstall, Open Source Security, Linux Gaming, Juju & Friends, and the Open Documentation Academy.

As OpenPrinting is participating as organization in the Open Documentation Academy (ODA), I have participated in their room. Our activity was running an episode of the weekly Open Documentation Hour live session (Episode 35, Video). Graham Morrison, at Canonical responsible for the Snap documentation and also project lead of the ODA (at the very right in the frame, but not visible in the first few minutes), is hosting the session.

At 2:00 min we discussed the use of GIT to manage the documentation and I (second to the right in the frame, in the beginning at the very right) am telling that I use it for all content on OpenPrinting without problems. Right after (3:18 min) Graham is introducing me as responsible for OpenPrinting and then I tell what OpenPrinting is, about CUPS, Michael Sweet, and our need of documentation and that therefore I joined the ODA as the first non-Canonical organization. I also tell that Michael Sweet is an excellent example of a programmer who is also doing all the documentation for his work. Graham tells that Thunderbird is also joining, as the second non-Canonical organization. My part ends at 10:23 min.

Coverage

Here are some blogs, articles, videos, and podcasts about the event (taken from the internal list of the organization team):

4 times in Podcast Ubuntu Portugal

As reported in July, Diogo Constantino, leader of the Ubuntu local community (LoCo) Portugal, had interviewed me in the Podcast Ubuntu Portugal, a podcast in Portuguese language about Linux and especially Ubuntu.

In the end of the interview Diogo invited me to the Festa do Software Livre/UbuCon Portugal in Aveiro in Portugal, where on both conference days I had dinner with Diogo and the organizers of the event and some others, and after each of the two dinners we recorded an episode of the podcast.

Two weeks after that, I met Diogo again, on the Ubuntu Summit in the Hague in the Netherlands. Not really taking it seriously I told him that we could record an episode of the podcast on the Summit, and he told that is a good idea and so we looked for Portuguese-speaking people on the Summit, and put together a group of 5: Diogo, me, Diogo Sousa (Canonical Security Engineering), Cristovão Cordeiro (Canonical Containerization/rockcraft), Carlos Nihelton (Canonical Desktop/WSL) We got a meeting room from the organizers and produced another great episode.

So this way I made it into the Podcast Ubuntu Portugal 4 times:

  • E310: I got interviewed by Diogo
  • E320: Festa do Software Livre, day 1
  • E321: Festa do Software Livre, day 2
  • E322: Ubuntu Summit

If you feel more comfortable to listen to people speaking Portuguese and not English, together with the recordings of my talks on the Festa do Software Livre, there are a lot of opportunities to listen to me now.

Also if you feel more comfortable to get the recent vulnerabilities explained in Portuguese, I did so in E321 and E322.

Google Summer of Code 2024

Now the GSoC 2024 has finally completed, also those contributors who got the longest possible coding period of 22 weeks had to submit their final reports now.

This was the most successful Google Summer of Code for OpenPrinting. 11 contributors is the highest count we reached so far and they all did amazing work! We plan to get each one’s project into the respective upstream code. With all our great mentors we have worked in an excellent OpenPrinting team of more than 20 persons.!

10 of the 11 contributors have passed the final evaluation, but the one who has failed, Shivam Sharma (OAuth2 support in print GUI), and his mentor, Deepak Patankar want to finish the project after GSoC. Also all the others want to finish their missing pieces and get their code upstream.

And we got excellent feedback from all the 11 contributors. Each of them has praised our work as mentors and at OpenPrinting a lot in their final evaluation, and many also already in their midterm evaluations.

Now we have a lot of pull/merge requests, both on OpenPrinting itself and also on external projects. We are now working on getting them all merged.

Thanks a lot to all the contributors and mentors for their work, confidence, and patience with us!

Here are the results, work products, and links to their code:

Packaging CUPS and Printer Apps into OCI images
Contributor: Rudra Pratap Singh
Work Product

PASSED

To complete this task, the repositories need to get transferred to OpenPrinting or merged into the appropriate repositories of OpenPrinting and also an OpenPrinting account on the DockerHub needs to get created and the container images uploaded to there.

Code:

CPDB support for the LibreOffice print dialog
Contributor: Biswadeep Purkayastha
Work Product

PASSED

To complete this task, Biswadeep’s changes linked above need to be merged into LibreOffice upstream. All pull requests on CPDB are already merged.

Code:

Integrating C-based OpenPrinting Projects in OSS-Fuzz Testing
Contributor: Jiongchi Yu
Work Product

PASSED

OSS-Fuzz testing is now active on the CUPS (2.x) and libcups (3.x) repositories. Development will go on:

  • Based on existing fuzzing projects, integrating more harnesses is more convenient, especially with the help of LLMs.
  • More C/C++-based projects are needed to be integrated, such as cups-browsed and cups-snap
  • Integrating OSS-Fuzz into OpenPrinting projects written in other languages such as Python (pyppd) and Go (ipp-usb), is feasible.
  • More effective fuzzing seeds and dictionaries for specific OpenPrinting functionalities are required.
  • End-to-end testing methods can help identify more exploitable bugs in OpenPrinting projects. Manual security audits can also help.

Code:

PAPPL API Bridging for Scanner Applications
Contributor: Akarshan Kapoor
Work Product

PASSED

To complete this task, the following steps have to be done:

  • Create a test suite/test driver (PAPPL Issue #134)
  • Retrofit API Completion: It must be assured that all SANE drivers work smoothly in Scanner Applications
  • Rebase to PAPPL v2.0: Developing and testing have been done with PAPPL 1.4.x. In the mean time feature development concentrated on the 2.x branch

Kshitij Sharma has stepped up as a volunteer contributor to help on the Scanner-Application-related work. He will help Akarshan to complete his work and also on the further development of Scanner Applications.

Code:

  • Scan API PR in PAPPL: Laying down the framework to make scanning work as seamlessly as printing (PAPPL Pull request #371)
  • PAPPL Retrofit Interface PR: Aiming to replace SANE with a more universal PAPPL interface, moving scanning closer to true driverless operation (pappl-retrofit Pull request #23)
  • Last year’s eSCL Work in GSoC 2023: A deep dive into building groundwork for driverless scanning, covering our approach to sandboxing scanners (GSoC 2023 final report)
  • Akarshan’s GIT repo

CPDB support for the print dialog of Mozilla
Contributor: Kushagra Sharma
Work Product

PASSED

To complete this task, the following steps have to be done:

  • Implementing additional features from the CPDB API, ensuring that the print dialog can dynamically fetch printer properties and settings
  • Conducting thorough tests to verify that the dummy printers are recognized correctly and that their properties are displayed accurately in the print dialog
  • Upstream merge in Mozilla

Uddhav Phatak (GSoC contributor for PDFio support in libcupsfilters) is volunteering to help finishing these tasks.

Code:

Desktop Integration: Update system-config-printer for the New Architecture of printing
Contributor: Shivam Jaiswal
Work Product

PASSED

To complete this task, the following steps have to be done:

  • Finalising the “Add Printer” part
  • Merge Pull request #378: Adding Feature of IPP Service Discoveries

Code:

Make a native printer Application from Gutenprint
Contributor: Ankit Pal Singh
Work Product

PASSED

The project is completed so far, it only needs to be merged upstream, ideally in the Gutenprint project. Further development plans are to add option preset functionality, so the complex options can be set in preset profiles in the web interface of the Printer Application and the presets can then be selected for each print job via IPP.

Code:

GNOME Control Center: Finalizing the New Printing Architecture for GNOME
Contributor: Kaushik Vishwakarma
Work Product

PASSED

To complete this task, the following steps have to be done:

  • The code needs to get migrated to the current development branch (47.3) and a merge request posted
  • A feature request for PAPPL needs to be posted to allow triggering auto-addition of printers via IPP request

Code:

User interfaces for using OAuth2 with printers and scanners
Contributor: Shivam Sharma
Work Product

FAILED

To complete this task, the following steps have to be done (these are very important for the usefulness of the work, therefore the fail):

  • Complete the functionality, for example the access token is not sent to the printer with every request.
  • Document how the code is tested, or ideally add test scripts.

Shivam promised to fnish his project after GSoC.

Code:

Converting Braille embosser support into a Printer Application
Contributor: Arun Patwa
Work Product

PASSED

The project is completed so far, but there are some plans to improve it, especially adding support for more Brialle embossers, adding more filter chain options, and more customization for users.

Code:

Replace QPDF by PDFio as PDF manipulation library in libcupsfilters
Contributor: Uddhav Phatak
Work Product

PASSED

To complete this task, the following steps have to be done:

  • Port cupsfilters/pwgtopdf.cxx
  • Intense testing of the ported functions

Code:

And here are the write-ups for October:

Packaging CUPS and Printer Apps into OCI images
Contributor: Rudra Pratap Singh

This month, I tested the ps-printer-app rock using an example daemon printer emulator, which forwards print jobs to an output file through a simple C script. With minor modifications to ps-printer-app.c, I was able to add a generic printer, but I am still working on forwarding the print job to our printer emulator.

Integrating C-based OpenPrinting Projects in OSS-Fuzz Testing
Contributor: Jiongchi Yu

In October, the primary focus of the OpenPrinting fuzzing project is to triage and submit bug reports to development teams for addressing issues identified by existing OSS-Fuzz harnesses. Notable fixes include changes in the CUPS repository, such as the commits 80fe6815d5941ef8a812087af7869f4c02779f1d and 7a2d383ee59a90f41d482476edb909165ea9565d, resulting in over 5,000 lines of code changes.

https://github.com/OpenPrinting/cups/commit/80fe6815d5941ef8a812087af7869f4c02779f1d https://github.com/OpenPrinting/cups/commit/7a2d383ee59a90f41d482476edb909165ea9565d

Additionally, the OpenPrinting fuzzing team shared our integration experience on developing fuzzing for open-source software at the Ubuntu Summit 2024. Till, Andrei, and Dongge participated onsite, deliverred a successful workshop and shared insight for open source developers in securing their projects. After wrapping up the work in GSoC, we are focusing on incorporating more practical fuzzing harnesses into the OpenPrinting projects.

CPDB support for the print dialog of Mozilla
Contributor: Kushagra Sharma

The work on adding Common Print Dialog Backends (CPDB) support to Mozilla Firefox focused on setting up foundational elements and preparing the backend for seamless integration. Key accomplishments include configuring CPDB dependencies within Mozilla’s build system and implementing a dummy print backend to simulate basic CPDB operations, allowing for initial testing. This backend interacts with nsPrinterBase and nsPrinterListBase to ensure compatibility with Firefox’s printing framework. Currently, the dummy backend is under code review, while the next phase will replace placeholder values with real CPDB data. I have added a work in progress code review for progress made so far (Code review : https://phabricator.services.mozilla.com/D227780 ) Also published GSoC’24 report (Report :https://github.com/kushagra20251/GSoC24 ).

Desktop Integration: Update system-config-printer for the New Architecture of printing
Contributor: Shivam Jaiswal

I have added the IPP Service Discovery part and created a pull request. Here is the link to the PR: https://github.com/OpenPrinting/system-config-printer/pull/378. In this PR, I included code for the asynchronous discovery of IPP services and for the UI part as well. I’m currently working on the “Add Printer” functionality, using methods suggested by @tillkamppeter and discussed with @Mohit. I have also created the final report for my GSoC project. Here is the link to the final report: https://github.com/TheJayas/GSoC-2024-Final-Report

GNOME Control Center: Finalizing the New Printing Architecture for GNOME
Contributor: Kaushik Vishwakarma

I had an online meeting with Mohit, and we decided to remove the second option—installing printer apps from the internet—since implementing this concept isn’t entirely feasible. I’ll provide all the code next week.

Once you successfully test my code, I’ll migrate it to the current GCC, which I believe is 47.3. I’ll also raise an issue in Pappl regarding the auto-add method to expedite this feature. I plan to continue contributing to this project until it’s officially released with the upcoming GCC

User interfaces for using OAuth2 with printers and scanners
Contributor: Shivam Sharma

This month I performed several tests to check the status of the code and apart from this I also fixed some bugs. I also made changes to the existing function on_handle_print_socket(). The change was to merge the OAuth file with the CPDB_print_backend file. I also called a function for smooth transition. The question was where the access token will be stored and for how long the client can use that code? So to fix this I made changes to Auth.c code to save the access token in the access_token.txt file and the file can only be accessed by the client requested for it. By this way the security is also improved. I also created a pull request and the code is ready to review.

Converting Braille embosser support into a Printer Application
Contributor: Arun Patwa

I introduced a spooling_conversions array, enabling the addition of MIME filters to handle conversions between source and destination types. This setup streamlined the process of iterating through filters to change file types as needed, facilitating the integration of multiple filters, including “texttobrf” and “imagetobrf.” I also removed PPD support in favor of IPP options, focusing solely on default IPP configurations.

Additionally, I implemented the mime_cb() function using libmagic to dynamically identify the MIME type of input files. This approach allowed me to successfully print various file types, such as .txt, .pdf, .html, and .jpg, enhancing the flexibility and functionality of the printer application.

Replace QPDF by PDFio as PDF manipulation library in libcupsfilters
Contributor: Uddhav Phatak

I have successfully ported all the files in the cupsfilters/pdftopdf/*, cupsfilters/pdf.cxx, cupsfilters/pclmtoraster.cxx from C++ to C, all the tests are passing using the “make check” command. Even though I have wrapped up my GSoC journey officially by passing the final submission, the conversion of 1 file (cupsfilters/pwgtopdf.cxx) is remaining, which I will complete soon.

New Releases

Since the last OpenPrinting News we had again several releases:

libcupsfilters, libppd, cups-browsed 2.1.0

First of all, we have done upstream releases of the packages which got fixed because of the recently reported remote code execution and DDoS vulnerabilities.

We have especially removed support for legacy CUPS browsing and for LDAP from cups-browsed to eliminate the entrance point for the attacks, the acceptance of UDP packages from arbitrary sources on port 631. In addition we validate and sanitize incoming IPP responses and PPD file entries in both libcupsfilters and libppd.

After the 2.0.0 release we had also added some new features during all the months up to now. In libcupsfilters and libppd we have added support for building with libcups3, and INSTALL.md files instead of INSTALL.

libcupsfilters received a facility for CI/build/unit testing of filter functions using an easily-editable table describing the test cases. This was Pratyush Ranjan’s GSoC 2023 project at OpenPrinting.

libcups 3.0rc1, 3.0rc2, and 3.0rc3

The development of libcups3 has reached release candidate (RC) state. Then usually all planned features should be included band final testing and bug fixing will happen. So it now will not take long any more until the first stable release of a CUPS-3.x component.

The last feature additions are here:

  • Added cupsFormatString and cupsFormatStringv APIs to safely format UTF-8 strings.
  • Added support for per-user instances of cups-locald (Issue #69)
  • Added httpConnectURI API.
  • Added “end” argument to cupsParseOptions API.
  • Renamed httpReconnect to httpConnectAgain.
  • Updated cupsDestInfo to accept a cups_dest_flags_t argument.
  • Updated cupsCopyString and cupsConcatString APIs to safely terminate UTF-8 strings.
  • Updated list of attributes included in the destination options.
  • Updated cupsAddIntegerOption and cupsGetIntegerOption to use the long type.
  • Updated httpAddrConnect() to handle POLLHUP together with POLLIN or POLLOUT.
  • Updated the various tool man pages, usage output, and examples.
  • Updated ippCreateRequestedArray for the Get-Documents and Get-Output-Device-Attributes operations.
  • Updated ipptool to validate IPP, PDF, and .strings files using the “WITH-[ALL-]CONTENT” predicate (Issue #87)
  • Now use installed PDFio library, if available.
  • Now use NotoSansMono font for ipptransform text conversions.
  • Brought back IPP/2.x and related conformance test files (Issue #85)
  • The ipptransform program now supports uncollated copies.

In addition. many bugs got fixed.

PAPPL 1.4.7 and 1.4.8

These releases fix several bugs, including a security issue: If a password is set for the web admin interface, it got ingnored when logging in and so anybody could log in.

Updated:

Comments