Features
o New and clean design focus in modularity.
o Main programming language: python
o A real configuration file. (debian-cd.conf)
- Everything you thing that it can be configurable will be here.
Note: If you plan to use python ConfigObj can be a good tool to parse the configuration file.
o Retrieve .deb and .udeb packages from a mirror, like debian-installer does.
- debian-cd.conf must have this line:
Mirror http://mirror/debian
deb http://mirror/debian Codename Sections deb http://mirror/debian Codename main/debian-installer
Note: You could depend on and use debpartial-mirror (it's written in Python).
o Conserve major features from debian-cd
o Smart warnings
- If there is a problem (not critical):
- point what's happening
- show how to solve
- point what's happening
- show how to solve the problem
o Mix binary and source in the same CD/DVD
- Just for one CD/DVD: Once you have the binary tree and the source tree:
- Calculate if there is enough space to combine both in one media.
- If so combine both trees into a single.
o ?MedyaType input variable that would tell me:
- 1 - businesscard CD 2 - netinst CD 3 - usual CD 4 - DVD
o Deep check of dependencies
- Mix dependencies of the package with run-time checks
o Cleaner output to the shell
Structure
o data/
- External data This directory should be the same that the current.
o debian-cd
- Main executable program This will be the access point for doing anything.
o debian-cd.conf
- Main configuration file Main config file, a simple conf file.
o doc/
- Documentation This dir will contain all the documentation of the system.
o tools/
- All the backend of debian-cd This dir will contain all the libraries (mainly, coded in python).
Components
- conf-parser. Load configuration.
- o Get all the variables needed parsing debian-cd.conf o Check for unset variables, if it's missing one essential variable show the
- error and stop.
- o Get all the variables needed parsing debian-cd.conf o Check for unset variables, if it's missing one essential variable show the
- sweeper. This will clean the workspace.
- pre-checks. Initial checks.
- o Check that the "Packages" file is well-formed. o Check the mirror using the information provided by the Packages file. o Check that the mirror contains all the packages needed that belongs to base section.
- gen-bootable
- o make the CDs/DVDs bootable, it's needed to add disk-arch stuff.
- gen-tree, for each CD/DVD
- o bin-tree o source-tree
- gen-md5list
- gen-images (Jigdo, iso, torrents, ...)
- o bin-images o src-images o hibryd-images (mix binary and sources)
- gen-imagesums
Design
http://www.carlospc.org/images/brainstorming.png (broken link)