Project Proposal
Name Idan Kamara
Contact/Email: idankk86@gmail.com, idank on #mercurial
Background: I'm a Computer Science and Mathematics undergraduate in the Open University of Israel. I've been a Linux user for around 6 years, starting with Ubuntu and later on moving to Debian Lenny. I consider myself proficient in C++ (although lately I find myself enjoying Python), have coded some in C, C# and Java as well.
Project title Package-aware Plugin Finder Service for Iceweasel
Synopsis: Allow Iceweasel to find plugins through the packaging system
Benefits to Debian
- A wider selection of plug ins.
- Integrated with Debian's main packaging system, updated frequently.
Deliverables:
- An extension to Iceweasel that scans the package database for possible packages that match a specific MIME type.
- Make it as compatible as possible with the Firefox plugin finder service, so that we don't have to modify the Firefox code displaying the results, but only need to hook into it
- Time permitting, this could be extended further by writing a generic tool for finding missing components for things outside Iceweasel, such as codecs, latex packages, etc.
- An extension to Iceweasel that scans the package database for possible packages that match a specific MIME type.
Project details:
When going to a web page embedding an object of an unsupported mime type, Iceweasel displays a wizard that uses a remote server to query what plugins can be used depending on OS, architecture and mime type.
There are many packages that support these MIME types but the only way to install them is outside the browser. More so, finding which packages correspond to the needed MIME type usually involves searching in Google.
Some packages already contain in their metadata the MIME type and this can be used to list the relevant packages to the user in Iceweasel.
The straight forward approach would be to use apt's API to get a list of wanted packages. Another idea is to use some abstraction over the packaging layer that gives these kind of services (such as PackageKit [1]). This way we don't have to depend on apt being the data source, in case this gets merged upstream at some point.
My mentor has suggested to start off by writing this as an extension. Since building Iceweasel is not trivial, this way we can focus on getting the project done before trying to integrate fully to Iceweasel.
[1]: http://www.packagekit.org/
Project schedule:
Community Bonding Period
Getting to know the mentor, patch submitting process in Debian/Mozilla
Go over current code that is in charge of finding plugins.April 26 - May 22
Evaluate what can be used to gather data from the package database. Find out if all the data we need is there - there might be packages that don't specify what MIME types they support. Experiment with existing tools that have an interface to the packaging system.
May 23 - July 10
Write the service
July 11 - July 15
Submitting mid-term evaluations and continuing the development.
July 15 - August 15
Finishing the service, writing possible test cases
August 30
Discuss with my mentor possibility of merging this upstream, if possible. Submitting final code to Google
Other summer plans: I also plan on taking a 10 day vacation in early May. Since coding begins May 23rd I plan on putting more time before I go on vacation so I don't fall behind.
Exams and other commitments: Due to summer vacations not overlapping with the US, I will still be in the middle of a semester. I'm only taking one course so I don't think it'll hamper my ability to successfully finish the project.
If you are not a Debian Developer: I always thought it's hard to get involved in such a huge project like Debian. The past couple of weeks, after talking to several Debian maintainers, I've learned that you have to take small steps and pick a target that interests you. I think GSoC serves both for myself and I will gladly use this opportunity to contribute something back.