A Summer Spent on OpenPrinting with the Linux Foundation

87

This past summer marked Moscow-based developer Anton Kirilenko’s third Google Summer of Code internship with The Linux Foundation. That’s three summers, three different projects and mentors, and three totally different experiences with Linux and open source software.

As an Applied Physics and Mathematics graduate student at the Moscow Institute of Physics and Technology (sometimes referred to as the “Russian MIT”), he studied backward binary compatibility in C/C++ Linux libraries and worked as a laboratory assistant at the Institute for System Programming at the Russian Academy of Sciences. Then in his fifth and sixth years in school he worked as a software engineer at the open source OpenPrinting websitesoftware development company ROSA, developers of the ROSA desktop distribution. Through his work, he met a few developers at the Linux Foundation who told him about the GSoC internships.

“They told me about LF projects and I found something interesting for me,” Kirilenko said via email.

OpenPrinting Project

This summer he worked with Linux Foundation Fellow Till Kamppeter to improve the PHP/ MySQL application that manages submissions to the growing printer and printer driver database on the OpenPrinting website. The OpenPrinting work group at The Linux Foundation develops and promotes a set of standards for printing using free operating systems across embedded, mobile, desktop, enterprise, and production environments. The OpenPrinting website supports that work by maintaining a searchable database of printers and drivers that also allows the community to download and submit PPD (Postscript Printer Description) and drivers. But the site’s functionality is still pretty basic, with lots of manual work involved for administrators.

The main goal of Kirilenko’s internship was to “automate a process of generating printer driver packages from source PPD or even XML files,” Kirilenko said. “People commit printer descriptions in XML format with special data, after that someone from LinuxFoundation has to import this files into a database, export it into PPD and build a DEB package with it. All this manual work had to be (and was) automated.”

By simplifying and automating the backend processing, administrators and contributors can instead spend more time working on drivers and printer descriptions.

Previous Years’ Projects

During his 2012 GSoC internship he worked on updating the Linux Application Checker tool for the Linux Standard Base, adding a tab on the test results page that allows developers to test a Linux application for portability and compliance using the LSB DynChk tool (see ROSA’s summary of the project). And in his first GSoC project, he wrote a tool for the API Sanity Checker, a testing tool for C/C++ libraries, that converted tests from Template2Code to CUnit, though he discovered that the CUnit project was likely dead when no one responded to his patch submission.

“It’s sad, my first real community communication experience was not as fun as I expected to be. The project solved the problem, but the problem turned (out) to be unessential,” he said. “But I got a great experience and had a lot of fun investigating the problem, coding this tool and communicating (even without a response) with the Open Source community.”

Kirilenko has now graduated and has been working since March on back-end social authorization for Yandex (Yandex.Passport), which operates Russia’s largest search engine.

“After graduation I wanted to work in a large, well-known developer company, doing interesting things for millions of people…,” he says. “Here I am. :)”

Editor’s note: See our previous profile of GSoC intern Eduard Bachmakov who contributed to the LLVM Clang Static Analyzer for the Linux kernel. And if you’re interested in learning more about Google Summer of Code internships in 2014 please visit: http://www.google-melange.com/gsoc/homepage/google/gsoc2014

The next round of applications starts Feb. 3, 2014.