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.
+ Add "FORCE_FIRMWARE=1" to CONF.sh to turn this on
+ Will pick up on packages in the "firmware" task and install them
+ Will also add sym-links to them in CD1/firmware so that new d-i code
can find them easily.
+ Will add a short sentence into README.html/README.txt
* Add top-level control of which checksums are desired for output images
see the CHECKSUMS setting in CONF.sh
* Fix some bashisms in tools/apt-selection.
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.
It seems that "apt-cache depends" recently (as of 0.7.22) started
including Enhances lines in its output. Leading to:
Generating dependency tree with apt-cache depends...
UNEXPECTED: Line ` Enhances: kvm
' while parsing end of deptree from 'kvm-source'
[etc....]
Ignore these lines.
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.
+ Add better support for extra components, improve non-i386 mirror
support (Closes: 514237)
+ tools/update_tasks no longer assumes i386 for all builds (Closes: #513497)
+ tools/which_deb no longer assumes i386 for all builds (Closes: #513498)
* For source-only builds, don't do any task updates as they're not
useful anyway.
* Last high-urgency upload, ready for Lenny!
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.
For now use A as identifier for INSTALLER_CD in contrib/testingcds;
we should probably switch to a double digit scheme post lenny or
even generally rationalize the use of INSTALLER_CD.
* Instead of duplicating what language tasks should be included in each
task.list.* file, let update_tasks add them dynamically at runtime from a
single list of languages supported by tasksel and D-I. This also makes
maintaining the lists a lot less painful.
* Indicate which tasks are "secondary" by adding a "-" suffix in task.list.*
files instead of hardcoding it in update_tasks.
This is mainly to have the desktop= option passed correctly.
Also switch to space separation in -hppa-cmdline for consistency with
other architectures.
By first assembling the command in a variable and then using eval to execute it
we avoid both duplication and errors passing quoted options in $MKISOFS_OPTS.
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.
All tasks files are moved to ./tasks/<codename> subdirectories so they
can be more easily kept up-to-date with specific distro releases.
Always generate the debian-installer and tasksel tasks dynamically:
- all task files for the desired suite are copied to the working
directory at the beginning of each build, and are used from there;
- the debian-installer and tasksel tasks are no longer included in
releases but are always created automatically at build time; this
means users no longer need to run the generate_di_* scripts or the
update_tasksel script;
- the popcon task file will remain included as a static file, but plan
is to add an option to update it automatically for each build; reason
is that updating it requires network access.
Bump version to 3.1.
These files have not been used since the introduction of make_disk_trees.pl.
Remove remaining references, which results in a nice clean up of the Makefile.
brltty has started pulling in libicu, which has a size of 5MB.
An overhead of 5MB is just too big for netinst CD images for a
package that is only needed by a very small group of users and
that will normally also be available from a mirror (brltty gets
installed during finish-install).
For full CDs and DVDs the package will still get included as it's
listed in forcd1.
Looks like the workaround is still needed after all, so just remove
unifont from the packages that are forced.
Also, add pptp-linux to images using the di+k list instead of through
this hack (changelog says adding it here needed "FIXME later...").
They are no longer installed from D-I as jbfterm was only needed for
base-config and unifont's dependencies have become insane.
Saves 15MB on i386 netinst images.
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.
simple DOJIGDO config option with MAXISOS and MAXJIGDOS, allowing
more flexibility. Allows us to only produce a small number of iso
images for less-popular architectures but still produce all the jigdo
files, saving a lot of disk space.
Make sure packages (loop-aes-utils and loop-aes kernel modules)
are included on the installation CD in case loop-aes encryption
is used during partitioning.
* list2cds: set "Component" for udebs to "debian-installer
* merge_package_lists: skip udebs when including source
When building images for Etch+1/2, which takes regular packages from
stable and udebs from testing, there is a problem when adding source
for udebs as existing code will take source for both debs and udebs
from stable. This can result in either incorrect source being included
(version mismatch) or errors (new udebs for which no match can be found
in the Source.gz file that is used).
A proper solution would require that the debian-installer section gets
its own Sources.gz file, but that is currently just not available.
After trying some things the conclusion was that the best solution for
now is to just not include source for udebs at all.
Patch written by Steve McIntyre.
When building a CD for e.g. etch using D-I from e.g. sid, the script should
not update debian-installer+kernel-sid but debian-installer+kernel-etch in
tasks. After all, debian-installer+kernel-* contains normal packages, and
not udebs. With this change we no longer have to modify the Debian_<codename>
tasks in such cases.
The generated file should of course have '#include <debian-installer-sid>'.
through it one package at a time. It's much faster. Closes: #470838
Needs a small re-arrangement: code from tools/add_packages and
tools/link.pl now moves into tools/make_disc_trees.pl
include the first one. This reduces the size of the netinst and improves
what's included on CD1. Only loss is console-{data,common,tools} so these
are now added in generate_di+k_list.
* tasks/tasks.list
- add missing l10n tasks: gujarati-desktop, malayalam-desktop, tamil
- comment out l10n tasks for languages not supported in D-I, for
Icelandic, Irish, Serbian, Welsh and Xhosa
- 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.
file header comments to there. Fix some bugs in passing.
* List packages for the various specific desktop tasks ahead of the non-key
packages for the general desktop task. Along with changes in tasksel 2.60
this should lead to a generally more useful set of packages on the desktop
CDs; instead of filling up with OOo, it will fill up with things specific
to the desktop environment.
* Updated task lists.
of in list2cds. Slight changes in semantics - the new code supports
regular expressions for matching package names (to make it easier to
exclude groups of related packages), and EXCLUDE<m> should be used in
preference to EXCLUDE for packages that are just being shifted to
later in the set by using UNEXCLUDE<n>.
arch along with source, there's a chance that the different arches may
have refs to a particular binary package (and hence its source) at
completely different points. Rather than just go with the one we find
first (from the first binary ref), make sure that the source will
match up with the earliest binary record, measured across all arches.
As noticed on the multi-arch DVD; make sure that source:kde-i18n makes
it into the package list before amd64:kde-i18n-ar.
* Added support for hook scripts in a few places around the CD
creation process, to help people customise their CDs. Quite a
lot of refactoring needed in make_disc_trees.pl needed to do that.
* Removed more cruft:
+ old defs in CONF.sh
+ old defs and rules in the Makefile
+ tools/add_secured
can call add_packages directly as a perl function rather than via
fork/exec all the time. Re-arranged tools/add_packages to make
this work.
* Improved logging in add_packages.
#402354. Fixes the long-standing warnings from list2cds about "Use
of uninitialized value in string comparison", and allows some poor
packages to make it onto CDs for the first time...
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
md5sums in the installer suite as well as the archive suite in
case they're different. Also removed old woody support, to clean
up the code a little. Updated Makefile and update-cd to match the
command-line interface change.
* Improve support for different disk types. Specify DISKTYPE in CONF.sh,
and it will affect both the output name later (so it's now possible to
distinguish between CDs and DVDs). Defaults to CD if not otherwise
set. DISKTYPE will be used more in the future for sizing too, but that
merge can wait a while longer yet. Closes: #361422
* Use DISKTYPE and COMPLETE values to create the file .disk/cd_type for
the installer to use.
* 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.
useful to others:
- allow to use different name for final iso image;
- allow to set the script to be used in debootstrap to check if all
base need package are present;
* Switch from yaird over to initramfs-tools (same arches)
* Much simplified generate_di+k_list - mips and mipsel don't need script
fragments any more
* Added elilo for i386
* Applied patch from smarenka to add 2.6 kernels for m68k, also 2.4 kernels
for appropriate m68k subarches, and also emile, amiboot, atari-bootstrap,
and initramfs-tools for m68k.
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!!