?TableOfContents
Custom Debian Distributions
Terminology
The following terminology has settled in, thanks to various threads on debian-devel@lists.debian.org :
Custom Debian Distribution (CDD): a subset of Debian that is configured to support a particular target group out-of-the-box.
CDD in development: a distribution that is not yet a CDD but aims to become one. These are started with the explicit goal of improving Debian as a whole, consequently all extras they offer will either become part of Debian, or are temporary workarounds to solve a need of the target group which can't be solved within Debian yet.
Flavor: upon installation of a CDD there often is a choice, depending on the particular use, about what set of defaults to use. A flavor is the name of such a set. (e.g. Skolelinux has flavors for main-server, workstation, and thin-client-server)
Subproject: group of people within Debian working together on a common purpose. In most cases this common purpose is either some specific functionality (e.g. debian-multimedia) or a CDD (e.g debian-enterprise).
Naming vs. terminology
As it seems that the name CDD and the interpretation of it' slong form "Custom Debian Distribution" results in confusion and/or in misinterpretations of what the project is actually about, look at ["CDDNamingProposals"] to find a better name for it....
Communication
Mailinglist: discussions about ["CDDs"] currently take place on debian-custom@lists.debian.org mailing list, while old discussion passed on debian-devel, before the creation of d-custom list, has been put in http://people.debian.org/~kalfa/cdd/debian-devel
Irc: #debian-custom channel at irc.debian.org is present
wiki: used to document the outcome of discussions on the mailinglist.
Discussion page This wiki page can also be discussed at ["CustomDebian/Discussion"]
News
CustomDebian/TasksPages for those CDDs who are using cdd-dev framwork
[http://packages.qa.debian.org/c/cdd.html cdd-dev] framework now used by five CDDs
See here CustomDebian/PreviousNews for older News items.
CDDs released with Etch:
If you will get Etch the following CDDs are contained:
[http://www.debian.org/devel/debian-jr Debian Junior]: For children
[http://www.debian.org/devel/debian-med Debian Med]: Medical
[http://www.skolelinux.org Skolelinux] (built by the DebianEdu project): a CDD aimed at schools.
CDDs in Development (alphabetical):
[http://www.exposito.net/forum/ Caimán]: a CDD for cuban educational system.
[http://cdd.debian-br.org/ Debian-BR-CDD]: a CDD by the brazilian project [http://www.debian-br.org/ Debian-BR]
[http://www.sacix.org/ Sacix]: a CDD that provides the GNOME desktop for thin-clients through LTSP after installed (multiple profiles available).
- ["Debian-eGov"] (Debian for Municipalities and Administrations)
DebianGIS : http://pkg-grass.alioth.debian.org/cgi-bin/wiki.pl , a CDD for Geographical Information and Earth Observation Systems (includes ?"OpenGIS" and ?"GPSTk").
[http://www.debian.org/devel/debian-lex Debian Lex]:
[http://www.debian.org/devel/debian-nonprofit Debian Nonprofit]:
[http://www.demudi.org ?DeMuDi]: Audio (part of AGNULA)
[http://www.lliurex.net/ LliureX]: Distribution for the Valencian (Spain) Public Educational System ( http://www.cult.gva.es/ ).
?EducationElectronics .
[http://www.guadalinex.org ?GuadaLinEx]:
Teófilo Ruiz Suárez < teo@debian.org >
[http://www.ichthux.com Ichthux]: a CDD aimed at christians
[https://sourceforge.net/projects/deb-ice Deb-Ice]: a lightweight custom Debian distribution using IceWM for the window manager.
Tools or projects that might be interesting to adopt in the CDD scope
[http://www.knoppix.org Knoppix]:
Klaus Knopper < klaus@knopper.net > (?)
[http://dirk.eddelbuettel.com/quantian.html Quantian]:
Dirk Eddelbuettel < edd@debian.org >
[http://www.morphix.org Morphix]:
Alex de Landgraaf < alextreme@xs4all.nl >
[http://www.ofset.org/freeduc-cd/ FREEDUC]:
FREEDUC developers < ofset-freeduc@lists.sourceforge.net >
[http://www.simp-st.pl Linux-EduCD] with preconfigurated LTSP and Moodle.
Linux-EduCD developer < rajmund@simp-st.pl >
[http://www.credativ.de/ German-Government-Desktop]:
Andreas Mueller < erposs@credativ.de >
[http://www.kalyxo.org/twiki/bin/view/Main/["LiveCD" Kalyxo]]:
Andreas Mueller < amu@kde.org >
[http://osf.berlios.de/ Open Security Filter]
Peter Eisentraut < peter.eisentraut@credativ.de >
- ["Debian-CGL"] : Debian GNU/Linux for communications and data services platforms
[http://www.trusteddebian.org Trusted Debian] now [http://www.adamantix.org Adamantix]
[http://uck.sourceforge.net/ UCK] - Ubuntu Customization Kit
[http://reconstructor.aperantis.com/ Reconstructor] - Ubuntu Reconstructor
[http://linux.dell.com/wiki/index.php/DRU_Disc_Remastering_Utility DRU] - Dell's Disc Remastering Utility for Ubuntu
[http://www.gnewsense.org/Builder/Builder Builder] - gNewSense builder script
[http://www.remastersys.klikit.org/ Remastersys] - a tool for making a livecd from an Ubuntu installation
[http://launchpad.net/unidistro Unidistro] - A framework to create and maintain a Debian/Ubuntu derivative distro
[https://wiki.ubuntu.com/CustomisedIsoImageTools Ubuntu Customised Iso Image Tools] - a spec for Ubuntu 8.04
(may be more here http://linuxmafia.com/faq/Debian/installers.html )
Common Issues for CDDs
Automatic installation
Using the new DebianInstaller and a few hooks to get the partitioning we want and the packages we want installed into the hard drive. I'm fairly satisfied with this solution.
Installing the list of package we want
Using meta-packages (ie packages consisting only of dependencies) to install the packages we want. Used hooks in base-config to get them installed during first time installation. Not too happy about the meta-package approach, as it is fragile and break easily if some dependency is unavailable.
Preconfigure the packages we install
Using three different approaches: (1) use modularized/multilevel configuration were available (desktop-profiles, /etc/apache/conf.d, ...), (2) Load answers into the debconf database before the packages are installed using some home-make script, and (3) rewrite/replace configuration files using cfengine at the end of the installation if the package is unable to configure what we want using debconf.
I'm fairly satisfied with this solution, but am not sure if the method used to feed the debconf database is the best available. I believe the best option would be to extend all the packages we use to make it possible to configure everything we need using debconf answers, when they can't be made to do modularized/multilevel configuration.
Automatic X configuration
Using home-brewed script filling the debconf database, and then call dexconf from the ?"XFree86" package to generate the configuration file.
The Hardware detection info is fetched from various packages (discover, ["Kudzu"], detect, etc).
CD building
Using a heavily patched version of debian-cd to create the ["CDs"]. Most of the patches is to include the d-i boot floppies. This should now be possible with the standard version of debian-cd, but no one in Skolelinux have taken the time to update our copy of the scripts.
Note Also take a look at ["DebianCustomCD"] and DebianInstaller/Build. These provide instructions for the building of the actual cd's (rather than meta packages, and most of the other issues mentioned in this page)
Configure default language for all users
Using a custom script to rewrite config files to modify the default language/locale.
Making simpler KDE / GNOME (XFree86) reaching and menus
Make a simplier way to elect the window desktop manager for ["XFree86"] (KDE/GNOME) by default or by selection on screen by the user (in a similar way to the ["LILO"] / ["Grub"] boot screens to select to partion to boot).
Working on a system to make simple menus and change the menu depending on the users group membership.
Working on the direct use of KDE programs in GNOME and viceversa (in a similar way to ["alien"]).
See also
- ["accessibility"]:
[http://delysid.org/gnome.html Gnome for the Blind].
[http://www.baum.ro/gnopernicus.html GNOME's screen reader and screen magnification software]: ["Gnopernicus"].
- ["LiveCD"]