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>

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to