We don't need to do much here, just pass on what the d-i build already
set up for us. Previously, we assumed too much knowledge about the
contents of the efi.img we were given. Now simply copy all of it.
(This is only really necessary due to us wanting to merge the efi.img
for multiple architectures. This is likely to get harder with
clashing files... :-/)
Implemented in 2f34797490 for bug #767253
released a few months later in v3.1.17, but then broken again a few days
later in 9dd0616b78 by removing the
uncompressed files too early.
Move sourced/shared scripts to boot-*-common
Rearrange common definitions in each boot script to make them more
similar
Add common support for %ARCH% substitutions in DI_WWW_HOME
Fix boot-alpha to use which_deb when looking for aboot
Merge mips* together, using boot-mips-common
we've already got code to copy the d-i images into a handy place for
users. Move it into a common function and reference that for all the
arches affected.
When which_deb finds "*i386" or "*amd64" entries in the ARCHES list,
it will wrongly change them to "i386" to "amd64" respectively (which
is wrong in the case of kfreebsd-* or hurd-*).
Make the same changes here that were already made to identical code in
generate_di_list, to fix#758512 (commits
771f754516 and
2ef5d3288c).
This was a bug introduced with the backports support. Lots of the
internal helper functions take 4 arguments now: ($dir, $arch,
$in_backports, $package_info). That's fine, but I forgot to update the
code in remove_Packages_entry() to deal with the $in_backports
argument.
This led to the md5sums.txt files in multi-disc sets being broken -
the last file(s) removed on a given disc would still be listed in the
md5sums.txt file, even though the file itself had been removed.
As pointed out by pkern, we need them on netinst media too.
Also removed the old mention of businesscard media in the top of
forcd1 - they've been gone for ages
Those symlinks make it easier to build Kali images with debian-cd.
They are pointing to "sid" so that they are automatically updated
when the underlying symlink is updated. It makes senses since Kali
is a rolling distribution based on Debian Testing.
Fixes syntax errors on Perl 5.24 where '$_' may
no longer be declared as 'my'. Being a global symbol,
'$_' has to be declared as 'local' inside functions.
CD creation fails with "disk full", because of rounding errors.
The minimum size of data-allocation is a 'cluster', which is a
power-of-two multiple of sectors.
mkfs.msdos chooses minimum FAT and cluster size for image: FAT12<16G
mkfs.msdos uses block-count where a block is 1024 B, but must be rounded
up to track_size with 32 sectors.
Round up each file to clusters before summing.
A sub-directory entry needs 1 cluster minimum.
Previous changes enabled gzip compressed Linux kernels, but not 100%
sure that it works on all systems. Disable this compression for now.
Switch hppa to use xorriso by default instead of mkisofs. Xorriso
supports kernel command lines to be up to 1023 bytes, better than
mkisofs. mkisofs only supports the older palo version 4 header format
which can hold only 127 characters which might be too small.
Previously, this code was being confused by the re-use/overloading of
existing keywords in the ifcpu64.c module and not producing any menu
entries. Now, explicitly parse the new options and pick out just the
64-bit menus as they're a strict superset of the menus in isolinux.
This may enable some more issues, e.g. people trying to load a 64-bit
kernel on a 32-bit system, but until we get some auto-detection of CPU
in grub there's not much we can do about that. Let's get *something*
working at least.
Currently the ins loader (mostly HMC loading into an LPAR) only
supports kernels up to 8 MiB. The jessie kernel has 11 MiB, which
does not fit and hence gets its tail overwritten by the initrd
(root.bin) loaded at this address. This change bumps the load
address to 16 MiB, which should allow for some more growth of
the kernel.
Signed-off-by: Philipp Kern <pkern@debian.org>
Object code only modules date back to 2.2 and 2.4 kernel times, when
IBM did not release the source to certain kernel modules. Since many
years everything needed to boot and run the machine is actually
open source. It also got broken due to the kernel growing larger and
adding the oco.bin would overwrite parts of the kernel.
It's safe to say that nobody is actually using this.
Even if they won't boot directly from CD/DVD, make it easy for people
using our images by giving them all the bits they'll need to get them
booting somehow.
Replace "alpha" with "a" and "beta" with "b". We've only got 32
characters to use here, so we need to shorten this. This way we can
specify DEBVERSION as a useful long string like "stretch-DI-alpha1" as
a version to appear in file/directory names, but without overflowing
at the VOLID level. May need more tweaks later here, but for now this
seems to do what we need.
FTAOD: this won't change "alpha" in the architecture name, as that is
added later.
Make sure that the package we're told about exists before we look for
its size - a number of the dependencies and recommends may not exist
and this will cause errors for us.
Also list the configured max_pkg_size at the top of the script, to
help with debugging later.
Previously, the code would only check sizes for packages explicitly
listed but packages brought in due to dependency resolution would not
be checked. Now fixed.
When we've got multiple copies of the same initramfs hard-linked
together, gzip gets unhappy when we start modifying things
later. Explicitly break the links to fix that.
This code was using "-efi-boot-part", which works fine for booting but
creates images that d-i can't use: only the full disk or the ESP
partition would contain working filesystems, and d-i doesn't like that.
Instead, switch to appending the ESP as an extra partition on the end
of the image. This will take a small amount of extra space, but will
at least work reliably!
Split the code up and use BOOT_EFI and BOOT_BIOS to control which
goes where. We now support:
* BOOT_BIOS=1 BOOT_EFI=0 for BIOS boot only via an ElTorito boot
record (like debian-cd used to be before EFI support was added)
* BOOT_BIOS=1 BOOT_EFI=2 for standard BIOS boot as
primary ElTorito boot record and EFI as an alternate ElTorito boot
record (common case, just like we've been doing for amd64 in
debian-cd for a while)
* BOOT_BIOS=0 and BOOT_EFI=1 for *only* EFI boot as the primary
ElTorito boot record (new case, might be useful for some
Macs *maybe*)
Set BOOT_METHODS in the debian-cd environment to determine which of
these cases is desired in a given build.
Also removed the support for the "old" syslinux packaging layout, it's
not been around for a while now.
Remove un-needed boot$N in the xorriso command line, we don't have
crappy BIOS lomitations.
Remove support for older xorriso versions.
Use new -efi-boot-part --efi-boot-image options to make an
isohybrid-style images with an explicit EFI partition. Will hopefully
make d-i happier with our images from USB.
Provide hashes for uncompressed Translation-* files, and remove the
uncompressed versions from the output disc. Closes: #767253. Initial
patch from Michael Vogt - thanks!
d-i has removed these files now, so don't look for them for kernel
params. Closes: #767223, #766411. Thanks to Prema and Vagrant for
(identical!) patches. :-)
tasksel now allows selecting the desktop, and d-i has dropped the boot
menu desktop selection, so we no longer need to have desktop boot
menus on CDs.
CD images for specific desktops (xfce/kde/mate/etc) should still
override the default tasksel desktop.
The code was assuming that the first line of output was something like
this (and this is the case of the cd builder machine that uses a custom
built xorriso):
> GNU xorriso 1.2.6 : RockRidge filesystem manipulator, libburnia project.
But the output of the version packaged in Debian does not have the GNU
string:
> xorriso 1.3.2 : RockRidge filesystem manipulator, libburnia project.
We fix this issue by extracting the version from the line starting with
"xorriso version" which does not have this discrepancy.
debian-installer now has extra steps to create a grub_embed file which
can be passed to xorriso's --embedded-boot option. Add corresponding
code in debian-cd to use it to make images USB bootable.
Patch from Samuel Thibault.
When making a custom server netinstall ISO, it may be desired to not
have MS Windows files. Unfortunately there's currently no check for
loadlin.exe, so install.bat gets created regardless. Fix this.
debian-cd currently expects there to always be isolinux/desktop/*
files and a dtmenu.cfg file, failing if they are missing. Make it so
debian-cd can cope whether those files are present or not.
better safety when extracting boot loader files.
* Update all the relevant boot-* scripts to do the right thing when
extracting packages and sources, depending on
$ARCHIVE_EXTRACTED_SOURCES as above
Steve pointed out that this lookup is only here so that helper scripts
can grab those sources and make them available in a public location
such as http://cdimage.debian.org/cdimage/cd-sources/. The sources are
not embedded in the generated ISO and are thus not strictly needed
for building the ISO image.
This should happen even when we're not building source ISOs but it's
not needed if we don't have any similar policy in place. Thus CONF.sh
is now leaving $ARCHIVE_EXTRACTED_SOURCES unset by default and the
source will only be looked up if that value is set.