I took a few notes yesterday everning about how I would see the build of
an image with a rewrite of debian-cd … it's in the text file attached.
DESIGN OF A NEW DEBIAN-CD
Process of building a set of ISO
Setup a build directory
This temp tree will be self-hosting. It will contain everything
related to that CD set and its build for one arch :
-
the configuration selected (having it only in environment variables
is not good, it causes confusion and is a risk of having an old
config conflict with the new one currently used if all variables are
not reset)
-
the list of packages to include (still generated from profile like it
is now)
-
temporary tree(s) where we drop everything that needs to be put on
the image
-
resulting ISO images or jigdo files
-
temporary tree for apt
-
cache file for things downloaded from the net ?
-
scripts used to generate
Configure the parameters of the build
-
Select a "media type"
This will induce a default media size and will have consequences on
other scripts concerning how much data can be included on the image.
-
Select a "package profile" (i.e. an actual task)
-
Select a "debian-installer profile"
-
Select a "build profile"
This could copy all the required scripts in the build directory.
(maybe the "media type" info could be integrated into the
"build profile", in any case build profiles would vary with
releases …)
-
Customize any other standard configuration item (cf CONF.sh)
-
Add additionnal sources of package (used to be "local packages")
-
Setup an APT sub-directory to be able to download packages and to
make calculations with the information contained in
"apt-cache dumpavailable"
Loop until packages are available (
-
Add "fixed" content to the CD #1 (documentation, tools, boot files, …).
-
Create the list of packages that goes for CD #1 (with an accurate
calculation since we already have all the content of the image
except md5sum.txt and the Packages files, and size of both of them
can be easily estimated).
-
Generate Packages.gz file for CD #1 (ideally without having to add the
packages into the temp tree).
)
And then :
7a. Either add packages and generate .iso
7b. Or directly generate jigdo files.