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/[EMAIL PROTECTED] [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
signature.asc
Description: PGP signature
_______________________________________________ Debian-live-devel mailing list Debian-live-devel@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/debian-live-devel