Fix GUI package management & implement AppStream
Short description: This project aims to include AppStream in Debian and rework the whole graphical package-management stack we have at the moment. This project will make it possible to run an application-centric package-management on Debian, it will make the current GUI package-management solutions more robust and other distributions and upstream projects will benefit from the cross-distro tasks too.
IRC: ximion on Freenode, OFTC and GNOME
Background: I am a Debian Maintainer (and Debian Developer soon, I hope), and package Debian software for 4 years now, so I know Debian & Debian policy very well. I maintain PackageKit and related tools and drive the inclusion of AppStream features.
I am an active PackageKit upstream author, so I know PackageKit and it's API. I also contribute to many other related FLOSS projects, e.g. Apperas well as I have reasonable good knowledge of the Apt-API and Apt internals.
I am the author of Listaller, a cross-distro app-installer. When Listaller was started years ago, the project aimed to achieve many goals related to package-management on Linux distributions, the most important one was creating the tool which the combination of Software-Center + PackageKit + AppStream is now, so I already thought about the issues we address here a long time ago. Listaller was now rewritten to be a 3rd-party app-installer only, which plays nice with PackageKit & AppStream.
Also, I am a KDE developer and I contribute to GNOME too, so I am familiar with all important desktop frameworks. I can develop software in GObject/C as well as in Qt/C++, while my favourite programming language is Vala at time. These abilities will help a lot in integrating AppStream closer with native desktop tools.
Project details: This project aims to include AppStream in Debian and rework the whole graphical package-management stack we have at the moment. This task will make it possible to run an application-centric package-management on Debian, it will make the current solutions more robust and other distributions and upstream projects will benefit from the cross-distro tasks too.
Benefits to Debian: Debian will get a fully-working GUI package-management stack, so users won't find an unmaintained Update-Manager, no KDE package-manager or broken package-management functiality in new releases. Also, AppStream will be ported to Debian, so Debian-Desktop users can install software there as easy as on Ubuntu. Last but not least other distros would benefit from this work too, which will make collaborating on new software packages easier. (AppStream is a cross-distro project)
Implement DEP-11 metadata in DAK, so we can build an AppStream index from it
Write a generator to build the AppStream Xapian-DB from DEP-11, also include code to parse the original AppStream XML for other distros.
Fix the PackageKit backend of Software Center (a PK-based fork of the Ubuntu Software Center) to complete the work of a previous GSoC, probably rewrite parts of it.
Do work on the Aptcc PK backend, to make it more robust and failsafe
Simplify the update-notifier module on Debian, remove old code, delete their GUI frontends from Debian and replace them with new, working solutions. (The old tools don't work properly, maybe take inspiration from Ubuntu, or switch to GNOME-PackageKit/Apper if they meet all requirements. Have to discuss this with KDE and GNOME packaging teams)
Integrate Software-Center and PackageKit-features well with other parts of the system, e.g. allow KDE's Dr.Konqui to install debug-infos using PackageKit. Include all of these changes upstream.
Optional task, if there is some time left and tasks mentioned above produce less problems than expected: Start porting the KDE Muon Software Center to AppStream and PackageKit, so KDE users have a distro-independent Software Center too. Probably port parts of QApt to PackageKit, so it doesn't have to ship extra PolKit policy and an additional daemon. Package Muon for Debian. (Discuss all of this with QApt maintainer first, as these changes might not necessarily be wanted)
Project schedule: The project will take the whole summer. In the first weeks I would start implementing DEP-11 in DAK, which is already accepted by ftpmasters. After this is done (will take maybe 4 weeks...), I will write the DEP-11-to-Xapian-DB-converter and publish it in the AppStream repo. (will maybe take one or two weeks) After that, I will focus on making the Software-Center ready and usable. At time, the PackageKit support is an ugly thing, which will need lots of improvements. In parallel, I will fix remaining issues in Aptcc, our current default PackageKit backend. (both tasks will take most of the time) After that, I will rework the update-notifier parts and the restart-required messages on Debian. After all of that is running well, I will focus on including PackageKit support upstream – in GNOME, this is already done for most modules, so I'll focus on KDE. I will try to get my patches upstream, otherwise we have the option to ship them downstream, like Ubuntu does. I will also fix some quirks which will might bother new non-technical users. (focus on usability and integrate everything well) If I should still have some time left, I would start packaging Muon and QApt and port them to use PackageKit for root-transactions, if possible. This will avoid shipping different package-manegement policies and installing another daemon, while still keeping the advanced Qapt functionality. This results in KDE users having a Synaptic and Software-Center equivalent included. (as well as they can use the easier-to-use PK tools, like Apper)
Exams and other commitments: I will have to do seminars and internships at my university, the longest ones are in organic and anorganic chemistry. I also participate in the iGEM competition (international genetically engineered machine), which will require some time, as well as I have exams in May-June. I also might be in Dublin for one week in July for a conference, but that's not clear yet. The whole timeline is a bit fuzzy right now, but university is not giving me much information. These things might slow me down a little, but I can manage all tasks in a way they don't affect the GSoC project.
Other summer plans: I only have things to do for university, and when I have a GSoC project and do the projects mentioned above, there's no time for anything else. I won't be on vacation this summer, so I will take that time to work on the GSoC.
Why Debian?: I like the (meritocratic, non-commercial) way Debian is organized and how decisions are made. I also like the Debian policy and the way packaging is done, although at the beginning it was difficult to get everything done right. (Which is great, as it shows the very high quality standards Debian has) The GSoC project gives me the opportunity to continue my work for Debian and get some of the stuff done I couldn't do otherwise. It will also enable me to do more work on the cross-distro AppStream project, which will help distributions in collaborating. (e.g. using DEP-11, a cross-distro patch-tracker could be written)
Are you applying for other projects in SoC?: Yes, one being a Telepathy-based collaborative text-editor for KDE, the other one a very similar project to improve AppStream, but centered around openSUSE.