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


Hi all, as i told a long time ago, i've done some scripts to remaster from
scratch a knoppix-based live cd, keeping in mind simplicity to add/remove
programs from it, and as i don't know where else to announce this (don't know
how to signup on the debian-knoppix list), here it goes.

This bunch of scripts are used under the name of dscdbuilder (Debian from
Scratch CD BUILDER), and available on lafarga.upc.es/projects/gnupcix, as part
of a project to make a live CD for the UPC university, containing all the
essential tools to do all the many courses it holds.

It's still in a very early stage of its development process (the first
official version of the CD - 1.1 - was a "normal" knoppix remaster, so that's
why the script points now to 1.2-pre2), and will be a little stopped for a
while, but the idea is to make the students and teachers of every course
contribute with what they think it should be.

And in the idea of preventing the reinventation of the wheel, all the "live"
options are borrowed from knoppix, but just that, to ensure a live-cd with
knoppix hw detection and all the others, but with (presumably) different

And another point to say is that all the programs are installed through
aptitude, so it always maintains a relation of what is needed and what not
(something i always miss when aptitude hasn't been used from the very start,
and would let the HD installed versions to be cleaned of what is not really
needed/wanted), and lets you choose the needed packages from an upper level
(without worrying for recommends).

The script goes through a set of stages (and its sub-stages) dedicated to
simple and concrete jobs, so as a developer, one only has to make a little
script on a directory to "add" a functionality.

>From the users's point of view (the one who builds the CD), only a few files
have to be edited:
 - dscdbuilder.conf: where to place the things, kernel versions to use on the
   CD, default language, base debian suite, publisher information, etc.
 - base-packages.{preseed,list}: preseeding information and a list of base
   packages to install
 - knoppix-packages.{preseed,list}: the same but with knoppix's live
   detection/bootup environtment
 - einam-packages.{preseed,list}: this is where the upper level packages go
   (gnome, openoffice, etc; whatever the final user wants); the name comes from
   the distribution's name, Einam, that means Toolkit in catalan (the gnupcix
   part comes from its former name)

The script has a sort of information feature with the -h flag to get some
descriptions for the 'stages' and the variables they use (a bit long):

Debian from Scratch CD Builder

Usage: dscdbuilder.sh [-v <var>=<val>,...] { [-h [<stage>|_<variable>]] | [[+]<stage>] }
	-v 		Lets you specify a comma separated list of variables to
			overwrite config file values
	-h              Gets help on all stages
	-h <stage>	Gets help on a concrete stage
	-h _<variable>	Gets help on a concrete variable and all the ones it is composed of
	<stage>		Concrete stage to run
	+<stage>	Run from FULL_STAGES' <stage> to the end

  Available stages:
   chroot 		Chroot to the dist
   kern_config 		Configure the kernel
   kern_make 		Create a kernel binary package
   logo 		Create the dist's logo (must give a parameter with the source image)
   mproc 		Mount the dist's /proc
   packages_build 	Build and put onto the repository Einam's packages
   packages_check 	Check for availability of new tracked packages/versions
   packages_clean 	Clean Einam's package sources
   uproc 		Umount the dist's /proc
   full 		Full run of CD creation
     base_bootstrap 	Debootstrap a basic Debian (leave the Ginnungagap)
     base_templates 	Load base templates
     base_clean 	Initialize package system (update and clean)
     base_update 	Update and upgrade packages (run from here to update and remaster an existing version)
     base_install 	Install base packages
     base_kernel 	Install selected kernel
     knx_clean 		Clean the newly debootsrapped Debian
     knx_templates 	Copy Knoppix's templates
     knx_install 	Install Knoppix's packages
     knx_post 		Post-install Knoppix-specific operations
     einam_install 	Install Einam's packages
     einam_post 	Post-install Einam-specific operations
     knx_bootclean 	Clean boot scripts
     knx_extratemplates Extra templates applied after all installations
     minirt_bootstrap 	Create a miniroot from its skeleton
     CD_bootstrap 	Create a base CDROM skeleton
     CD_compress 	Compress the HD contents to the CDROM contents

As you see, each line in the stages part is a so called stage, each one on a
single file (bash script).

There's still a lot to do, but for now it buils a fairly usable live-CD
(except for the last changes i made, that were apparently inocuous, but not
tested :)), so i think thats a quite robust skeleton.

There's only one problem, the cvs where the project lies is not (yet)
accessible through anonymous access, but a web interface is available at 
(i heard of a java program to download projects fom a cvs we interface, but
can't remember its name... if you want i can send you a tarball with it)

So without nothing more to say (that was enough :)), here it is.

Best regards,

PD: another (not so) little problem: the script is, specially while getting
help information and on my poor 300, far too slow
 "And it's much the same thing with knowledge, for whenever you learn
 something new, the whole world becomes that much richer."
 -- The Princess of Pure Reason, as told by Norton Juster in The Phantom

Reply to: