[Debian-NP-Commits] r91 - trunk/docs/report
Marco Presi
debian-np-devel@lists.alioth.debian.org
Sun, 20 Jun 2004 08:24:05 -0600
Author: zufus
Date: Sun Jun 20 08:24:04 2004
New Revision: 91
Modified:
trunk/docs/report/04techwork
Log:
wrote some words
Modified: trunk/docs/report/04techwork
==============================================================================
--- trunk/docs/report/04techwork (original)
+++ trunk/docs/report/04techwork Sun Jun 20 08:24:04 2004
@@ -1,28 +1,231 @@
- Technical overview
+---------------------
+ This chapter covers the technical aspects we have worked on at Porto
+ Alegre and following days.
+
+ - CDD Infrastructure
+ --------------------
+ . CDD document
+
+ CDD (Custom Debian Distribution) is a project born few months ago
+ that aims to build an infrastucture available to who wants to
+ customize Debian to his own needings. Actually there are many Custom
+ Debian Project (official and non). Among the official ones, we
+ recall Debian-Edu, Skolelinux, Debian-Multi-Media (DEMUDI),
+ Debian-Med, Debian-Br-CDD (a portoguese version of Deboan) and our
+ project Debian-NP.
+
+ Create a CDD means foundamentally solve some (or all) of the
+ following points:
+
+ o) Package selection
+ o) Configuration tasks
+ o) Localization tasks
+ o) ..............
+
+ As it could be intuitive, "Package Selection" is a task that it is
+ espected to be developed by every-one who attempts to realize a
+ Custom Debian.
+
+ Some CDD (as Debian-NP) require also a strong effort to create some
+ particular configurations, other (like Debian-BR) require only to
+ customize the localization choosen.
+
+ CDD Infrastucture main target is to create some tools to accomplish
+ these tasks, and a Policy (more general than the Debian one) that
+ defines the correct way to do a customization.
+
+ One major difficulty experienced by the CDD team is to define which
+ are the common needings that "Customizers" have. There are a lot of
+ debates about this in the various mailing-lists dedicated to CDD.
+
+ Before Porto Alegre, the CDD project, created 2 debian packages that
+ contains some tool help in the customization work. These packages
+ are cdd-common and cdd-dev.
+
+ We used mainly "cdd-dev" that provides some scripts (Makefiles, and
+ so on) to create meta-packages (i.e. a list of packages to be
+ included in the customized distribution).
+
+ "cdd-common" instead, provides a number of scripts that help in the
+ configuration of users and groups, insert those users and group in
+ LDAP environment and so on. Those are very powerful tools, but as we
+ indicate in the following, we still not need them in Debian-NP.
+
+ During the stage in POA, we have proposed a design for CDD, enhanced
+ a package that help in the creation of installation CD, and started
+ using debtags as tool to select packages.
+
+ Let's start to see our proposal for CDD. Our Infrastructure was
+ designed to achiev 4 GOAL:
+
+ 1) Install from scratch the CDD.
+ 2) Convert an already installed Debian System to the CDD
+ 3) Install the CDD by means of a live-cd (Morphix) for demo puropse
+ (pls note that once Morphix is started, can be also installed)
+ 4) Use from a lessdisc terminal.
+
+
+ We strongly believe that this could be a widely accepted framework
+ to create CDD, and all our technical work was developed wich this
+ design in mind.
+
+ - How this can be accomplished:
+
+ o) First all the CDD stuff (script, packages, and so on) should be
+ included in Debian archive. This also complain with some "social"
+ aspect of Debian Community.
+
+ o) Next, each CDD should be organized in meta-package.
+ Meta-packages, are packages that contains almost nothing, except for
+ a dependencies list. In such a way, installing a meta-package via
+ apt (or other interfaces to dpkg) will install all packages declared
+ as dependencies. Following the Debian Policy, the meta-packages
+ cannot override the configuration of other packages. Those
+ meta-packages could follow this naming convention: <cdd>-<task>. In
+ our case we choosed np-mail-server, np-workstation, and so on.
+
+ o) Create a package named <cdd>-common that contains an interface that
+ let the user to configure his own meta-packages. In this way,
+ configuration work is done "outside" post-installation stage and it
+ not breaks Debian Policy. Moreover, such interface could be called
+ from debian-installer (realizing goal 1), every time the sysadmin
+ requires it (realizing goal 2), or in more general situations
+ (realizing goal 3 and 4).
+ This interface, on which we are currently working on, should be able
+ to update his menu interface when new meta-packages are
+ installed/removed from the system.
+
+ o) The four environment dealed above, could require some additional
+ packages. It depends on each case, and on the willing of the
+ Customization team.
+
+ o) The configuration matter can be resolved in 4 different way:
+ - using debconf
+ - using cfengine
+ - using hand written scripts
+ - using conf files divertion.
+
+ It's actually impossible to choose which is the best way to
+ handle configuration files. It strictly depends on the packages,
+ on his complexity, and on the mainteiner.
+
+
- Installer work
. Overview
+
+ Installer is derived from debian-installer (last development
+ versions). As such, it has all the characteristics of Debian
+ Installer: it can be run from CD, from Network, from floppies, and so
+ on. It is translated in many languages (see how many).
+
+ In particular we have studied _how_ the debian-installer could be
+ customized, learning almost all we need from other exsistent
+ customized debian-installers (Skolelinux one and Debian-BR one).
+
. Accomplishments
+
+ Actually we have a working installer that let us to:
+
+ - Choose a profile (Server or Workstation).
+ - Install the system (with auto-partitioning) based on the profile
+ choosed.
+
+ We decided to base Debian-NP on those two profile
+ (Server/WorkStation) after the definition of our social
+ specifications.
+
+ . Udeb
+ To accomplish this, we have create few udeb packages to modify
+ installer behavior.
+
+ Debian-installer has 2 stage. In the 1st stage the installer takes
+ care to do some basic stuff (partitioning, copy the debian-base
+ system, install boot-loader and so on.). The program that handle the
+ first stage can be modified adding some udeb packages. udeb packages
+ are minimal debian packages that contains mainly scripts to be run in
+ the 1st stage installer. udebs specify also the order of
+ execution. In this way the debian-installer can be easily
+ modified. We created 2 udeb packages:
+
+ o) debian-np-profile: it asks for wich kind of installation must be
+ performed and save the answer in /etc/debian-np/profile
+
+ o) debian-np-install: it makes the main modifications. It install in
+ the system 2 partition tables (on for server and the other one for
+ workstation) for automatic partitioning stuff, override some
+ Debian defaults (this is needed to replace exim with postfix),
+ insert some scripts for network configuration, and accomplish
+ other minor things.
+
+ In the 2nd stage, debian-installer run base-config
+ program. base-config install all meta-packages and configure them. In
+ this point we should insert in the near future the configuration
+ interface we mentioned above. For the moment it simply install
+ np-mail-server package (or np-workstation) and configure them.
+
+ Installation of meta-packages is accomplished by a script that
+ install np-workstation or np-server meta-pakages (depending on which
+ choice was made in the 1st stage installation).
+
+ The accomplish these target on the installer we needed about one week
+ of work, because of a lack of documentation on debian-installer,
+ bugs, and so on. Also we have to consider that to test an
+ installation cycle we need about 20 minutes to build an ISO image,
+ and about 30 minutes to complete the installation.
+
+
+ . ISO image build
+
+ This work was based mainly on debian-cdd-cdtools package, developed
+ by Otavio Salvador and Debian-br crew. With this tool that we have
+ adapted and called debian-np-cdtool, we are able to generate a working
+ ISO image, providing these information:
+ o) a package selection list
+ o) a base-system package list
+ o) 1st stage udeb list
+
+ We have considered to test also PICAX a different tool to create ISO
+ installation image wrote by Progeny that should be much more easy to
+ use. We planned to test it in the next weeks.
+
- Debian-NP Internet Server
. Package selection
. LDAP Schema
- Debian-NP Workstation
. Package selection
- - CDD Infrastructure
- . CDD document
+
+
+
- Development plan
. subversion
- overview
- usage
+
+ svn checkout svn+ssh://<username>@debian-np.alioth.debian.org/svn/debian-np bagunca
+
- layout
+
+ /branches
+ /people
+ /trunk
+
- communication
- mailing list
- - debian-np-commits
+ o) debian-np@lists.debian.org
+ o) debian-np-commits@lists.alioth.debian.org
- project tracking
- - CIA
- - IRC bot
+ Another big news is the addition of one bot in IRC channel. His name
+ is CIA-3 and this is used to talk in channel each commit in our
+ repository. In next days we will adding a mailing list where the
+ commits will be available too and if you want to use this service, you
+ only need to subscribe to debian-np-commits@lists.alioth.debian.org
+
. Developer communication
- IRC
+ o) #debian-np, #debian-custom on freenode
- developer mailing list
+ o) debian-np-devel@lists.alioth.debian.org
--------