Commit Graph

1317 Commits

Author SHA1 Message Date
Roland Clobus
89556fb77e
arm64: Only add .disk/udeb_include when the source file exists 2024-08-02 10:31:55 +02:00
Roland Clobus
a05946d32c
Fix git installer build for arm64 2024-08-02 10:31:42 +02:00
Roland Clobus
f2e750e6f7
installer: offline installation with calamares
After MR https://salsa.debian.org/live-team/calamares-settings-debian/-/merge_requests/5
was fixed for Calamares, the live installer now needs grub-efi as well
when running the installer in offline mode.
2024-06-24 08:23:40 +02:00
Roland Clobus
06d178aac0
Restore support for bullseye and bookworm
Bullseye and bookworm don't have the t64 packages, so the script checks
the availability of the suitable packages
2024-06-20 22:36:30 +02:00
Roland Clobus
cf963c36b1
binary_includes: Activate when the directory exists (Closes: #1069349) 2024-05-03 08:16:27 +02:00
Roland Clobus
4f7f59f9e5 installer: Also add the t64 versions of the libraries
Fixes the installer for the standard image on BIOS boot
2024-05-01 05:47:31 +00:00
Roland Clobus
a5bd0ed8ce Architecture checking is not required any more
The qemu-static binary on the host runs the foreign binaries
2024-04-29 16:27:41 +00:00
Roland Clobus
724f449e0d binary_bootloader_splash: New script
Allows for scenarios without syslinux (e.g. arm64)
Breaking change: custom splash.svg images must be placed in
config/bootloaders
2024-04-29 16:27:41 +00:00
Roland Clobus
2f1acabc41 Cross-build: arm64 support
Work together with Emanuele Rocca during MiniDebCamp Hamburg 2024
* rebuild: New command line option: --architecture
* installer: Enable the GTK installer
* bootloader: Set a default bootloader
* no qemu-binary in chroot
2024-04-29 16:27:41 +00:00
Roland Clobus
605868e21d
Allow for shim-only secure UEFI boot
When grub-efi-amd64-signed and grub-common have mismatched
dependencies (e.g. due to binNMUs), allow a shim-only secure boot.
The user has to enroll the hash of the EFI/boot/grub*.efi file and then
secure booting can continue.
Shim-only is supported only for '--uefi-secure-boot=auto'
2024-03-24 11:04:02 +01:00
Marcel Partap
518534d352 container hooks: make nspawn work inside nspawn
https://bugs.archlinux.org/task/55082 :
> This is probably caused by the fact that `systemd-nspawn` now registers
> a scope when `--register=no` is specified, unless `--keep-unit` is also
> specified [1].
[1] https://github.com/systemd/systemd/pull/6166
2024-02-23 22:36:50 +01:00
Patrick Schleizer
59f8a67094 reproducible builds: use cp -a when copying binary/boot/grub/i386-pc 2024-01-21 18:02:18 +00:00
Patrick Schleizer
759adc68eb also check if grub-pc-bin dependency is available 2024-01-21 18:02:18 +00:00
Patrick Schleizer
a54872f2c2 fix: check correct dependency package grub-common instead of grub-pc 2024-01-21 18:02:18 +00:00
Roland Clobus
77db32f0fb
Installer: fix for previous commit
A tab symbol in the vmlinuz-detection patch was missing
2024-01-01 11:43:53 +01:00
Roland Clobus
3d38418ebc
Installer: Support trixie
Trixie uses a kernel < 6.6.8 which still generates an unversioned
vmlinuz file
Additionally the installer for trixie requires libfuse2 instead of 3-3
2023-12-31 12:42:41 +01:00
Roland Clobus
ba8ec44a3b
The installer now requires grub-common and dependencies 2023-12-28 17:22:33 +01:00
Roland Clobus
2d0e537bdb
installer: The kernel version does not need to have a Debian-version 2023-12-27 15:47:55 +01:00
Roland Clobus
3dbcbab578
Workaround for #1058994
fakeroot is not required for building the debian-installer
2023-12-27 15:46:14 +01:00
Emanuele Rocca
75d43b3394 chroot_sysfs: umount efivarfs if mounted
Trying to umount /sys currently fails if efivarfs is mounted under it. Umount
it first.

Bug: #1053457
2023-11-28 14:47:59 +01:00
Roland Clobus
4832b6215d
Reproducible: fixes the last two issues for Debian 12.3
* source_tar: The order of the files in the tarball are now predictable.
This has been verified with 'disorderfs'
* rebuild.sh: The timestamp of the directory of theme.txt must also be
adjusted.
2023-10-29 08:30:11 +01:00
Arnaud Rebillout
6dbb8d2598 efi-image: Fix <platform>/grub.cfg, variables must NOT be expanded
The test 'if [ x$grub_platform == xefi -a x$lockdown != xy ]' is meant
to be done by GRUB at runtime, so this line should appear verbatim in
the grub.cfg file.

However the variables are expanded at build-time by the script, because
the dollar symbol is not escaped.

Here's the result on a 12.1.0 live image:

    $ cat <<debian-live-12.1.0>>/boot/grub/x86_64-efi/grub.cfg
    if [ x == xefi -a x != xy ] ; then
    insmod part_acorn
    insmod part_amiga
    insmod part_apple
    insmod part_bsd
    insmod part_dfly
    insmod part_dvh
    insmod part_gpt
    insmod part_msdos
    insmod part_plan
    insmod part_sun
    insmod part_sunpc
    fi
    source /boot/grub/grub.cfg

Note that this mistake would have been caught if only the nounset option
had been used (ie. 'set -u').

Fixes commit: 7b36f5b0ad
2023-09-18 08:39:38 +07:00
Arnaud Rebillout
a3f7a33f95 efi-image: Fix missing part_* modules in boot<platform>.efi
Setting the value of PARTITIONLIST in a sub-shell is scoped to the
sub-shell, it will not change the value of the variable in the parent
shell.

In other words:

    #!/bin/sh
    FOOBAR=
    (FOOBAR=foo)
    echo FOOBAR=$FOOBAR

gives the output:

    FOOBAR=

As a consequence, PARTITIONLIST being empty, there are no part_*
modules embedded in the boot<platform>.efi binary. This is clearly a
regression, introduced in 7b36f5b0ad.

Somehow, Debian doesn't seem to be impacted. Kali Linux is impacted, but
only under very special conditions, leading to this bug report:
<https://bugs.kali.org/view.php?id=8441>

This commit fixes it, by setting the PARTITIONLIST variable first, and
then using it where needs be. As a consequence it greatly simplifies the
next part of the code, as we can just use a heredoc to create the grub
config.
2023-09-18 08:38:52 +07:00
Roland Clobus
15e620207f
binary_disk: Don't create .disk/archive_trace any more
As proposed in
https://lists.debian.org/debian-live/2023/08/msg00008.html
The information that is required for rebuilding the image is already
found in .disk/generator, .disk/info and .disk/mkisofs
2023-08-20 11:36:37 +02:00
Roland Clobus
d54ba390dd
binary_rootfs: Fixed test for /etc/mtab (Closes: #1032408) 2023-08-20 10:57:43 +02:00
Roland Clobus
d25826212a
binary_syslinux: Ensure the availability of the font of splash.svg
If the font is not installed in the binary chroot, a substitute font
will silently be used instead
2023-08-20 10:53:45 +02:00
Roland Clobus
d6e7b80ea0 Apply predictable timestamps in the source image 2023-08-06 20:46:30 +00:00
Roland Clobus
f38a906715
Use LC_ALL=C for sort
This ensures that irrespective of the environment of the host, the
sorting order will be consistent and reproducible
2023-08-04 17:20:43 +02:00
jfliu
e663ec5b0e binary_iso: fix iso-hybrid images with EFI bootloader 2023-07-19 14:46:06 +00:00
Marcel Partap
4146699d37 Create binary_chroot stagefiles when skipping, too 2023-07-18 12:23:57 +02:00
David Hewitt
5bff71fea2 Follow symlinks while copying shim files
The shim EFI file on Ubuntu can be a symlink, as it may be in the alternatives system, so
previously, when calculating the size of the FAT32 partition, we would measure the size of the
symlink instead of the actual file and get "Disk full" errors when trying to copy the files into
the new FAT32 partition.

If we dereference the file on copy, we get the actual file and can calculate the size accurately.

```
lrwxrwxrwx. 1 root root   36 Jul 12 20:04 bootx64.efi -> /etc/alternatives/shimx64.efi.signed
```
2023-07-15 12:59:39 +00:00
Roland Clobus
d14306a799
Set additional meta information
* The ISO volume is constructed similar to Debian 11
* The file .disk/info can be overridden
* The file .disk/info does not contain 'Official' per default
* Overrides that are required for live-setup are now explicit in
  rebuild.sh
* New .disk/generator contains tracable information to the rebuild.sh
  script
* The ISO volume is unique for each desktop environment
2023-07-15 14:01:23 +02:00
Roland Clobus
4086f078d9
Installer: ignore the configured kernel version
When building the Debian installer from git, ignore any configured
kernel version, and use the kernel version that is present in the chroot
environment.

This fixes a build error on Trixie/testing, which occurred after a new
kernel became available when the freeze was lifted.
2023-07-08 08:01:19 +02:00
Roland Clobus
29e26d11f8 If there is more than one kernel for the installer, use the newest 2023-06-21 10:13:51 +00:00
Roland Clobus
ba34bfbfd0
non-free firmware detection: in chroot, not on host
Follow-up for 18ad612b72.
The availability of 'firmware-linux' must be checked inside the chroot
instead of on the host.
This fixes building Bullseye without 'non-free' available (as discovered
by autopkgtest)
2023-06-21 09:04:08 +02:00
Thore Sommer
dd916ac5be ISO generation: add support for hybrid ISOs with grub-pc 2023-06-06 18:31:51 +03:00
Jonathan Carter
d5b3a21031 Add cryptsetup-initramfs to package pool 2023-05-02 14:33:08 +02:00
Roland Clobus
7b36f5b0ad
UEFI-secure: Don't attempt to load unsigned modules
The part_*.mod modules are not inside the signed .efi-file, so they must
not be 'insmod'ed in secure boot mode.
2023-04-30 12:59:36 +02:00
Roland Clobus
7690fb206f
Share the splash screen from isolinux in grub
This adds the version information on the grub splash screen and offers
the image at 800x600 instead of 640x480, which looks less unsharp.
2023-04-30 09:15:44 +02:00
Roland Clobus
18ad612b72
Detect firmware-linux, without references for Debian versions 2023-03-14 20:28:00 +01:00
Roland Clobus
50c7e1a8b7
Add support for non-free-firmware 2023-03-12 00:16:04 +01:00
Roland Clobus
27f50aef9a
Use either ${LIVE_BUILD}/share/hooks or /usr/share/live/build/hooks, not both 2023-03-04 17:08:33 +01:00
Patrice Duroux
2bd841f835 replace 2&>1 by 2>&1 2023-03-01 17:19:44 +00:00
Raphaël Hertzog
7b5fce3fa6
Fix binary_memtest for x32 -> ia32 renaming made in memtest86+ >= 6.10-3
memtest86+ switched to /boot/memtest86+ia32.{bin,efi} for 32bits to be
coherent with the usual EFI naming.
2023-02-22 08:43:20 +01:00
Roland Clobus
8c50c9c0ed installer: Mark the local repository as trusted
apt-secure will now accept the local repository and Calamares can be run
without network connections.
2023-01-31 15:27:59 +00:00
Roland Clobus
61ae406dd7 installer: add grub packages for d-i and Calamares
d-i and Calamares select the needed grub packages based on how the
computer is started (BIOS vs UEFI). Because the packages for each
variant conflict, they must be provided as .deb files.
2023-01-31 15:27:59 +00:00
Roland Clobus
947f6aafe8 installer: No error if the udeb-exclusion list is empty 2023-01-31 15:27:59 +00:00
Roland Clobus
2acfbee5fd installer: Remove the udeb files
Without the quotes, the * inside the exclusion lists will be treated as
a will card, instead of the literal star.
2023-01-31 15:27:59 +00:00
Roland Clobus
196ee7b096 installer: Skip rebuilding the debian installer if it is found in the cache 2023-01-31 15:27:59 +00:00
Roland Clobus
7e7544c446 If the same file exists in multiple locations, take the version from the
first.

The LIVE_BUILD location will only be added if LIVE_BUILD is set.
2023-01-31 15:27:59 +00:00