[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debian Live n Google SoC



Dear debian-live-devel,

As you may know, Debian is participating in the Google Summer of Code
2007. The following is the project proposal I have submitted which will
be mentored by Daniel, pending approval by Debian and Google.

If you have any questions or suggestions for improvement, please let me
know. I would like to take this opportunity for thanking Daniel for his
time and assistance so far.

Kind regards,

lamby.


= Proposal =

Title/Summary : GUI frontend for live-helper for building live Debian
systems

== Abstract (2500 character limit): ==
Live-helper is a utility to build CD, DVD, netboot and USB-stick live
images of Debian, a GNU/Linux operating system. It boasts support for
multiple architectures, auto-building images, amongst many other features.

Live-helper is extremely flexible, allowing interested parties to create
their own system completely specific to their needs, including support
for custom package lists, kernel parameters, encryption, additional
commands to configure the live system etc.

My proposal is to construct a graphical user interface that can be used
in conjunction with live-helper to build Debian Live systems, allowing
editing of existing configurations and including a 'wizard'-style
walkthrough for the first-time user.

Providing less experienced users with the opportunity to easily create
live distributions will generate more exposure for live-helper, providing
more valuable feedback for its developers and ultimately helping Debian's
image as an extremely flexible and free operating system.

The GUI will be written in Python using the pygtk GTK+ bindings.


== Detailed Description (7500 character limit): ==

Contents
  Contact details
  Background
  Synopsis
  Motivation
  Technical considerations
  Other considerations
  Other work
  Deliverables
  Schedule
  References

=== Contact details ===
My name is Chris Lamb, or "lamby". I can be contacted via email via chris
AT chris-lamb DOT co DOT uk. My GPG key ID is 0x634F9A20 [0]. I use the
nickname "lamby" on the OFTC, Freenode and GIMPnet IRC networks. I
currently do not use any VOIP services.

=== Background ===
I am currently a student at the University of Warwick, England, studying
for a BSc in Computer Science[1]. Outside of term-time I live in
Cambridge area.

I have been using Debian GNU/Linux on my own systems for approximately 8
years and I recently had my first package sponsored into Debian[2] and a
number of others are awaiting licensing clarifications from the upstream
developers.

My computer-based interests include cryptography, compilers and web
applications. In my spare time I enjoy playing the cello, especially
chamber music or in other groups.

=== Synopsis ===
My proposal is to create a graphical user interface that can be used in
conjunction with live-helper[3] to build live Debian systems.

Live-helper can be configured either on the command line or via a
configuration file. My project would eschew generating a long command
line string in favour of generating/modifying the configuration file via
a helper utility provided by live-herlp. This will allow the interface to
serve as an editor of existing configurations, permitting distributed
LiveCD efforts between a group of developers.

In addition, the project will provide a 'wizard'-style walkthrough for
the less-experienced or first-time user. This interface will be able to
provide additional hints to the operator regarding the impact of choosing
particular options.

Throughout the interface, consideration will be given to inform the user
of the relationship between the option being edited graphically and the
underlying option in the configuration file. This aims to eliminate "GUI
lock-in" by educating the user to such a point where he or she will be
able to edit or examine the configuration file by hand.

I believe live distributions are becoming an increasingly popular method
for users to trial new distributions, especially users that are currently
not using a GNU/Linux operating system.

=== Motivation ===
For the last few years my University's GNU/Linux user group[4] has been
awarded money from a software vendor to create a LiveCD to distribute to
members of the University. As an advocacy project, we customised a
distribution to better suit the requirements and environment of the
target audience, with the aim of encouraging the user to switch to a free
operating system.

For example, we included the Eclipse IDE preconfigured to work with a
number of coursework frameworks provided by the Department of Computer
Science, as well as edited the default servers for the IRC client (and a
number of games!) in order to a help newer users and to facilitate
community participation.

Previous year's LiveCDs were based on Knoppix and Slackware, but as the
current Projects Officer I have successfully campaigned for a live-helper
based distribution, mainly because we value teamwork and live-helper's
file-based configuration permits any developer involved in the project to
create their own local version of the CD for testing and experimentation.

I believe I am an excellent candidate to work on this project because I
will be simultaneously working in my spare time leading this LiveCD
project. I will thus be able to provide experimental versions of the
software to members of my team who are not experienced with creating live
distributions and receive valuable feedback from them to incorporate into
the project.

I would really like to work on this project--not only because of my own
passion towards free software--but also to contribute back to the
live-helper and Debian communities: providing less experienced users with
the opportunity to easily create live distributions will generate more
exposure for live-helper, providing more valuable feedback for its
developers, and ultimately helping Debian's image as an extremely
flexible and free operating system.

=== Technical considerations ===
The interface will be written in using Python using the GTK+ bindings. I
have considerable experience with the Python programming language -- I am
currently in the process of finishing a Python-based compiler framework
to be presented as an assessed project[5].

The live-helper configuration file is a simple shell script which defines
behaviour of the distribution build process. I will have to ensure the
interface can parse the configuration file in such a way that in can
modified and written back with minimum disruption. This is essential for
users wishing to store the file in a revision control system and do not
want small edits to incur large 'diffs' between revisions even when the
changes are minimal. The 'lh_config' utility included with live-helper
can achieve these goals, as well as provide backwards compatibility
between versions of live-helper.

Consideration will be given to easy localisation of the interface, in
keeping with the Debian philosophy of being the Universal Operating
System.

=== Other considerations ===
Live-helper is currently enjoying an active and healthy development.
Whilst this is extremely beneficial for the community, I will have to pay
great attention to  developments within the project to ensure
compatibility between the user interface and the underlying utility.

Future additions to the live-helper utility must be easily translatable
onto the GUI in order to maintain compatibility between the two programs.
In order to do this, I will ensure that the program is sufficiently
documented (both in the source code and in supplementary material) so
that another developer can extend the interface.

=== Other work ===
The most notable similar project to this proposal is the "Ubuntu
Customization Kit" (UCK)[6]. In contrast with live-helper, the UCK
modifies an existing Ubuntu, Kubuntu or Xubuntu ISO image whilst
live-helper generates one 'from scratch'.

My project will improve on the UCK's design by adding the ability to edit
existing configuration files in the graphical interface - subsequent
changes to a UCK-based live system can only achieved through editing
files or by throwing away the existing files. Generous attention to
localisation is apparent in the UCK, a trait I will replicate in my
project.

The Fedora distribution contains a package which can generate netboot
distributions. I currently do not have access to a Fedora system to
effectively evaluate this package.

=== Deliverables ===
0. User interface to live-helper as described above.
1. Manual pages for all executable files, as per Debian policy[7].
2. Developer documentation
3. 'debian/' directory for ease of packaging

All deliverables will be released under the GNU General Public License,
the same license used by live-helper.

=== Project schedule ===
I am available to work from Thursday 24th May 2007, the date of my final
exam. I am confident I will be able to complete the project in the
timeframe provided.

=== References ===
[0] http://keyserver.internal:11371/pks/lookup?search=0x634F9A20&op=index
[1] http://www.dcs.warwick.ac.uk/
[2] http://qa.debian.org/developer.php?login=chris@chris-lamb.co.uk
[3] svn://svn.debian.org/debian-live/dists/trunk/live-helper/
[4] http://www.wuglug.org.uk/
[5] http://www.chris-lamb.co.uk/blog/2007/03/14/more-presentation-stuff/
[6] http://uck.sourceforge.net/
[7] http://www.debian.org/doc/debian-policy/ch-docs.html#s12.1



-- 
 Chris Lamb, Leamington Spa, UK                        GPG: 0x634F9A20
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/debian-live-devel/attachments/20070319/dad4a696/signature.pgp

Reply to: