Hi devs, Here is a draft of my proposal for Freenet. A PDF version is available at : <http://www.milliways.fr/tmp/freenet.pdf>
Greetings Obey Arthur Liu ==== Application for Summer of Code 2008 : Linux packaging for Freenet Obey Arthur Liu March 2008 *Abstract* I will extend the current automated release infrastructure to produce Freenet packages for major Linux distributions, including Debian-based and RPM-based flavors. This would simplify the installation process and open Freenet to a wider audience. *Project* My efforts will separated in four parts. Those steps are closely linked together. In order to be able to build deb or rpm packages, Freenet needs to be fully buildable from only source files or source files available in other packages. The current build model ships some dependencies (in freenet-ext.jar) in bytecode or binary form. In order to make packages that can be accepted into official archives, these will need to be converted to native dependencies according to packages present in each Linux distributions. This will also simplify the access to multiple architectures. Once the building process is worked out, I will work on the packages themselves to improve the integration of Freenet in Linux distributions. These include among others the ability for Freenet to work in a multiuser environment, better control of interaction with other applications (Firefox, Gnome, KDE ...), better integration with the system as a daemon... Once the packages are worked out, I will implement a reasonable way to have Freenet update itself in a timely manner. As some updates break compatibility and need to be applied in a matter of hours, it is a very specific challenge to have it work in the frameworks and policies of each distributions. Various solutions ranging from a auto-updating packages to bypassing official distribution repositories are available. These will be studied and viable adaptations to Freenet may be proposed to attain this target. The last part of the project will be to create an infrastructure to distribute the created packages. This will involve the creation of packages repositories, scripts to update them and a process to track the movement of dependencies on each distribution (etch, lenny, gutsy, hardy, fc8, fc9...). A critical work that will have to start as soon as possible will be to contact distribution packages maintainers to ensure that Freenet will enter official repositories to the maximum possible extent. *Profit for Freenet* - A more native installation and system integration will ensure a better experience to the users. Many users refuse to install applications not part of the package repositories of their distribution due to fear of lack of integration, stability or simplicity. - Being part of official distribution repositories will increase the visibility of Freenet as an established application - Being part of official distribution repositories will give access to distribution bug trackers to increase the number of bug reports *Success criteria* 1. Create an Ant building that is suitable for packaging. 2. Create package scripts that integrate tightly and naturally with other applications and distributions design. 3. Create an auto-updating system, either indigenously or through other means that integrate the particularities of Freenet. 4. Make packages integrate third party and official repositories. Create scripts to automatize the process. *Roadmap* - Investigate potential issues and get in contact with all involved parties, internal and external (distribution maintainers). I will get further familiar with the internals of Freenet as needed for the success of this project. - I will execute the aformentionned tasks. I will ensure that regular and early test builds are made to get feedback from the community. \end{itemize 1. The source build task should take 3 weeks. Although I should be familiar with the code structure of Freenet by the time the project will start, some issues will probably need to be resolved to ensure proper modularization of the code for packaging. 2. The packaging task should take 3 weeks. I will have ready a set of virtual machines to test and tailor integration with various environments. 3. The auto-update task should take 3 weeks. Although the choice of the solution will arise by this time, some time will be needed to ensure that the chosen solution works reliably with updates published through the period. 4. The publishing task should take 3 weeks. The work on this task will probably be underway before the other tasks are done. *Biography* I am a 21 year old student in Grenoble, the french Silicon Valley. I am a freshman at ENSIMAG[1] studying computer science and applied mathematics. I am familiar with Linux distributions and in particular Debian as a longtime user and volunteer sysadmin for various organizations. I am currently working on a large multiple distributions Linux packaging project for a smartcard manufacturer through my Junior Enterprise[2]. [1] <http://ensimag.grenoble-inp.fr/servlet/com.univ.utils.LectureFichierJoint?CODE=1194595034529&LANGUE=0> [2] <http://en.wikipedia.org/wiki/Junior_enterprise>
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Devl mailing list Devl@freenetproject.org http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl