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

New debian-installer build system



Hello All,

The improved version of the installer's build system is ready now
(but not yet committed to CVS). It allows better control over the
image generation process, including subarchitecture support and
image names.

The naming scheme follows
dest/SUBARCH/MEDIUM/FLAVOUR/<files>
or for single files
dest/SUBARCH/MEDIUM/FLAVOUR-<file>

For e.g. i386, the resulting dest/ tree looks like this:

dest/
|-- cdrom-boot.img
|-- floppy
|   |-- access
|   |   |-- boot.img
|   |   |-- drivers.img
|   |   `-- root.img
|   |-- boot.img
|   |-- cd-drivers.img
|   |-- net-drivers.img
|   `-- root.img
|-- hd-media
|   |-- boot.img.gz
|   |-- initrd.gz
|   `-- vmlinuz
`-- netboot
    |-- initrd.gz
    `-- vmlinuz

And for mips:

dest/
|-- r4k-ip22
|   |-- cdrom-boot.img
|   `-- netboot-boot.img
`-- r5k-ip22
    |-- cdrom-boot.img
    `-- netboot-boot.img

The other architectures are supposed to be similiar, but I couldn't
test them. Before I commit the changes, I'd like to see if it works
for some of the other architectures.

If you want to test it for your architecture, apply the patch from
http://www.csv.ica.uni-stuttgart.de/homes/ths/debian-installer/build-diff
against the build directory. Then you can either run dpkg-buildpackage
for the full build or use raw make.

Just typing "make" lists all useful targets for your architecture.
E.g for i386:

Useful targets:

all_build
all_stats
all_clean
reallyclean

demo
shell

build_cdrom
clean_cdrom
build_netboot
clean_netboot
build_demo
clean_demo
build_floppy_boot
write_floppy_boot
clean_floppy_boot
build_floppy_speakup
write_floppy_speakup
clean_floppy_speakup
build_floppy_root
write_floppy_root
clean_floppy_root
build_floppy_access
write_floppy_access
clean_floppy_access
build_floppy_access-drivers
write_floppy_access-drivers
clean_floppy_access-drivers
build_floppy_net-drivers
write_floppy_net-drivers
clean_floppy_net-drivers
build_floppy_cd-drivers
write_floppy_cd-drivers
clean_floppy_cd-drivers
build_hd-media
clean_hd-media

All the architecture specific magic is done in the config/ tree,
the make/ directory isn't used anymore. The config/ tree has now also
a layout following the SUBARCH/MEDIUM/FLAVOUR scheme. Just use
i386 or mips as examples.

Caveats:

- Putting multiple kernels in one image does not work, at least for
  the -di kernel flavour. This affects mipsel (commented out there),
  it may also affect hppa, sparc, s390, at least when they switch
  to -di. A fix for this will need linux-kernel-di to create unique
  kernel image names, with the potential of breaking all builds and
  all bootloader scripts, so it is postponed for now.

- For some files in dest/ i may have forgotten to define EXTRANAME, so
  they get overwritten. Please watch out for this.

- The cd_contents, cd_image targets are broken now. I doubt their
  value, since it's hard to extend them to create useful CDs
  (bussinesscard or more), and they only need to pick up some files
  from dest/, which can be done by debian-cd in a better way.
  The only exception is powerpc, which creates a boot.msg file with
  values defined from the build system. I believe this file should be
  generated always together with the cdrom-boot.img.


Thiemo



Reply to: