Detect duplicates in the extra images used for installation
Several files included under install.{386,amd} are actually identical to
others. Rather than duplicating them attempt to detect this and hardlink
them.
Since images can be downloaded from the web at build time it is not
always possible to detect identical files by looking for the symlinks
created by the debian-installer build. Instead we pass a list of
potential "doppelgangers" to extra_image each of which is checked for
similarity to the new image.
I added gtk/vmlinuz (which is always the same as plain vmlinuz) which
although not necessary makes it more explicit which kernel goes with the
initrd at very little cost.
Hardlinks are used in preference to symlinks since these are expected to
work better with isolinux and the Xen tools.
The old setup worked fine with an ext2 initrd but fails with an initramfs,
either because autodetection is different for initramfs or because of kernel
changes (I suspect the first).
This means that booting s390 from CD has not worked since sometime during the
Etch release cycle, even though support for booting from CD was only added
early in that cycle - ouch.
For booting with an initramfs initrd we apparently need to specify its
offset and size at specific memory locations.
Change is based on SuSE's CD boot. Many thanks to Adam Thornton, Mark Post
(of Novell) and Bastian Blank for providing the pointers to the missing bits.
This fixes booting from CD using the d390.ins file; tested in Hercules for
both Lenny (31-bit kernel) and Squeeze (64-bit kernel).
Booting from CD using the d390.tdf file may still be broken (if possible at
all) as I have no idea how to test that.
didn't gave any result. This is useful when using partial mirrors built by
simple-cdd while trying to build a Debian CD using a newer d-i (in my case
etch CD with lenny d-i).
* Use dpkg --fsys-tarfile instead of ar for extracting files from deb
packages. The previous invocation could have failed for packages using
something other than gzip compression.
Patch from Ian Campbell.
i386 Xen guests require a PAE (686-bigmem) kernel in order to
run. Therefore this variant includes the relevant installer kernel and
ramdisk in install.386/xen as well as suitable kernel udebs and proper
debs for the installed system.
amd64 Xen has no similar requirement but we include the kernels under
install.amd/xen in order to have a consistent path under both
architectures.
This patch from Ian Cambell adds the generic support code:
* CONF.sh: Add $(VARIANTS) configuration variable.
* eash-build.sh: Add command line parameter to enable variants.
* Makefile: Define VARIANT_xxx when preprocessing package list.
* boot/?/common.sh: Add a function for checking if a variant is enabled.
* generate_di_list: Allow variant overrides in udeb exclusion list.
Variant support is documented in docs/README.variants
The intention is to use this support to add support for installing a
Xen guest from an ISO image.
The approach to use varriants was originally suggested by Frans Pop.
Only do boot disk stuff for x86 and alpha if the image is supposed to be
bootable. For i386 and amd64 this avoids downloading D-I images for all
30+ CDs in a full set.
Adjust x86 boot scripts for new version (2.0) of framework in D-I for
creation of syslinux configuration files. Essentially the new version
is a backport of what was already implemented in debian-cd before the
release of Lenny and allows a significant simplification.
There are no significant changes in generated CD/DVD images.
This environment variable was used by simple-cdd to force the default
installation option to the graphical installer. Now that we have the
syslinux VESA menu, the option has become rather pointless.
See #512303 for discussion.
Include all four desktop environments supported by tasksel (GNOME, KDE,
LXDE and Xfce).
On x86 also add an option in the isolinux menu (under Advanced options)
to select which DE to install; GNOME remains default.
Supports installation of either an xfce or an lxde desktop environment.
For now use B as identifier for INSTALLER_CD in contrib/testingcds.
Includes a framework to manipulate the isolinux configuration for x86 so
that a user can select which desktop he wishes to install.
This is mainly to have the desktop= option passed correctly.
Also switch to space separation in -hppa-cmdline for consistency with
other architectures.
so that we can archive them (both binaries and sources). If we need
anything, we will list it in CD$N.pkgs_extracted so that external
scripts can pick it up and do whatever's needed.
* Minor changes to the interface of tools/which_deb to accommodate that:
now just lists the files *within* the mirror; it's up to callers to
prepend ${MIRROR} as needed.
Modify the syslinux configuration for amd64/i386 multi-arch images
and use ifcpu64.c32 to autodetect 32/64-bit systems when a user hits
enter from the isolinux help screens.
Based on research done and info provided by Franklin Piat.
Currently the isolinux configuration only gets created correctly if the
two arches are specified in the order "amd64 i386". Change the lenny x86
boot script so it works the other way around too.
This is made possible by allowing to include a "%ARCH%" placeholder in the
environment variables DI_WWW_HOME and DI_DIR which is expanded to the correct
value at runtime.
Supported for Etch and later.
+ Remove binary blobs from the package; pull those files from the
.debs in the archive as needed (isolinux.bin, vesamenu.c32)
+ sbm.bin *not* yet worked out, so drop it for now
+ Pull out the code to find the right deb and put it in a new helper
shell script (tools/which_deb), called from Makefile and boot-* as
needed.
- Structure of D-I images was simplified, so adapt to that
- Fix some broken references to etch in lenny boot-sparc script
- Hope after all this things will still work...
sure we don't end up overwriting extra images from one arch with those
from the other. Now the multi-arch netinst should work for the installgui
target for both arches
over the disc size
* Use a multiplier of 1.2 for HFS space - overkill, but it fixes
the multi-arch DVD overflowing. Also log if we're doing HFS.
* Tweak where we look for s390 boot files to make the weeklies work again.
debian-cd version 3.0.0. Highlights:
* Support now added for multi-arch CDs/DVDs, including mixed
binary/source discs. Multi-arch discs should be bootable on those
multiple arches, modulo boot-sector clashes. Extra support added
in boot-i386 and boot-amd64 to make the 2 main arches happily
co-exist.
* Disc sizing is now much more intelligent - sizes are defined
depending on the disk type chosen at the start, and discs are now
filled exactly to those sizes while files are added rather than
the old up-front guessing method. Equally, the metadata on the
disc (Packages, Packages.gz, Sources, Sources.gz, md5sums.txt) is
generated as much as possible while this is happening to make the
sizing code incredibly accurate. Using this method of disc sizing
means that customising discs should be much easier/safer - either
add custom contents at the start and debian-cd will fill the
remainder of the disc, or afterwards roll back the packages on the
disc and add extras later.
* Source is now treated as (almost) just another arch, with most of
the special casing for source hidden internally. If asking for
source-only discs, they will simply be built using all the
available sources. If combined with other arches, the sources will
automatically be chosen to match the binary packages. Meeting GPL
requirements was never so easy!
* Removed lots of old cruft to clean up the codebase:
+ non-US support
+ woody support
+ lots of old support scripts that have been made redundant
+ significantly simpler Makefile, much easier to follow
+ old boot-$ARCH.calc files for estimating boot-file sizes are now
(obviously) obsolete and therefore gone
* Update tools/boot/*/boot-amd64 to use the correct isolinux
splash image settings, and to insert $KERNEL_PARAMS correctly into
isolinux.cfg. Based on patches already implemented in boot-i386.
isolinux files include .with26+gtk, include gtk initrd along with the
2.4 kernel. If .withgtk, include gtk initrd along with the default
(presumably 2.6) kernel.
untested!!
- sparc64: switch to 2.6.12 kernel; make CD multiboot 2.6 and 2.4,
using 2.6.12 by default
- sparc32: drop 2.6 kernel support as it has no 2.6.12 kernel
- restructure silo.conf with proper support for install, expert and
rescue boot options