Commit Graph

4129 Commits

Author SHA1 Message Date
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 4a35ad2954 Rebuild: Always show the active settings 2024-04-29 16:27:41 +00:00
Roland Clobus 39b343fe0c
Remove 'nolapic' from the safe boot options.
This is a work around for #1068515
2024-04-28 22:28:26 +02: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
Roland Clobus 0845468303 Reproducible install-info
This fixes the last non-reproducible file for KDE (bookworm):
* install-info has an unstable sort when a new section is started
  Newer versions (not yet released) have been fixed
* The backup file (dir.old) does not need to be in the live image
2024-02-23 16:54:07 +00:00
Roland Clobus 0c3b3905b5 Fixed udeb handling 2024-02-23 16:53:17 +00:00
Roland Clobus 516e8ded70
Reproducible: Fix for vlc (used by the Bookworm KDE image) 2024-02-07 22:40:51 +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
Unit 193 e9dd83edf8 firmwarelists.sh: Account for usrmerged firmware packages. 2023-12-22 00:04:31 +00:00
Roland Clobus 35defd5bb2
rebuild: Don't use a symlink for the splash screen
This is a first step for supporting File System Transposition
2023-12-03 13:06:38 +01:00
Roland Clobus 95a05b045d
Apply policykit fix when needed.
For bookworm, live-config does not contain the fix for #1037295
With the patched policykit file, many password prompts will not show up
any more, e.g. with Calamares
2023-12-02 14:59:19 +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
Roland Clobus d70a84f2e9 Remove unneeded cached files from appstream
These files cause an untracable difference for the reproducible Bookworm
images, but because they are not needed, they can be removed.
2023-09-27 16:06:23 +00: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 6f0f8952f9
rebuild.sh: Consistent timestamp of theme.txt
As noted in https://lists.debian.org/debian-live/2023/08/msg00008.html,
the timestamp of theme.txt for bookworm images is not reproducible.
Additionally the splash image is now matching the resolution of the boot
menu, which makes it more crisp.
2023-08-20 13:16:40 +02: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 ff950cbeee
Fix and correctly suppress lintian warnings
Fix: debian-news-entry-has-unknown-version UNRELEASED
Suppress: mismatched-override absolute-symbolic-link-target-in-source
2023-08-06 21:31:15 +02: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 95fc0dfdaf Remove ancient hook 9030-remove-apt-sources-lists that was never run
because it doesn't end on ".hook.chroot", so it wouldn't be linked from
the `lb config` stage. Probably to the better, as it does not seem very
useful to indiscriminately raze all apt sources lists.
2023-07-18 13:12:29 +02:00
Marcel Partap 4146699d37 Create binary_chroot stagefiles when skipping, too 2023-07-18 12:23:57 +02:00
Roland Clobus 0d58c4287c
rebuild: update --disk-info 2023-07-15 19:28:22 +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 8eaf20daf1
Filter the firmware list (Closes: 1035382)
The firmware packages that do not match the requested architecture(s)
are filtered out.
2023-07-09 11:59:00 +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
Roland Clobus b064f27dcb
Revert previous commit to test/rebuild.sh
Bug #1023472 got fixed by tasksel 3.73
2023-06-04 12:25:50 +02:00
Roland Clobus e38192fa70
Workaround for #1023472
This avoids having more desktop managers, only xfwm4 will be installed
in the live image.
2023-05-13 10:15:37 +02: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 2944c4652a
UEFI-secure: Use the signed font
In secure boot mode, only the unifont.pf2 is inside the signed
.efi-file. To make secure and non-secure boot identical, use only the
unifont.
2023-04-30 12:53:32 +02:00
Roland Clobus 809346bc1e
Update splash image
The font size was reduced to fully capture the long live-build version.
Exported without Inkscape information.
Manually adjusted the coordinates to use integers instead of fractional
coordinates (for sharper conversion to png).
2023-04-30 10:02:19 +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 87dd4404e7
Rebuild: use the same splash screen as d-i in the boot menus 2023-03-25 14:42:55 +01:00