Commit Graph

4058 Commits

Author SHA1 Message Date
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
Roland Clobus
3044245e65
Fix detection of fonts in initrd
When (intel|amd64)-microcode is present, the structure of the ramdisk is
more complex. `lsinitramfs` can see all files.
2023-03-19 08:40:46 +01:00
Roland Clobus
8473e8a792
Renumber reproducible hooks 2023-03-19 08:27:19 +01:00
Roland Clobus
69252aef8f
Bulleye needs contrib too for the non-free packages 2023-03-14 20:28:32 +01: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
efa9ed8b59
Update for Lintian warnings 2023-03-05 09:59:49 +01:00
Roland Clobus
045de9bf64
Renumber hooks and update where needed
See https://lists.debian.org/debian-live/2022/04/msg00014.html
2023-03-04 17:08:44 +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
Luca Boccassi
c8fe85038f Update changelog for 1:20230131 release 2023-01-31 16:28:45 +00: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
Roland Clobus
8dd3579278
Rebuild: Pass only a few environment variables to sub shells 2023-01-28 21:52:52 +01:00
Roland Clobus
417bb5a81f
Rebuild: allow execution by sudo-users and root 2023-01-28 18:08:13 +01:00
snip
58f7a9e379 Use same naming scheme for archive keys in chroot and binary stages
Commit 8403487d introduced in the chroot stage a naming scheme for local
archive keys which distinguishes between ASCII-armored keys and binary
ones, and then adds the appropriate extension (either `.asc` or `.gpg`,
respectively) when copying them to `/etc/apt/trusted.gpg.d`.

However, this change was not applied to the binary stage: ASCII-armored
and binary keys are still both copied with the `.asc` extension, which
introduces a discrepancy between the two stages. This, in turn,
may prevent using the same `.list` file for both stages, as entries
such as

    deb [signed-by=/etc/apt/trusted.gpg.d/my-repository.key.asc] ...

will fail in the chroot stage if `config/archives/my-repository.key`
is in binary format (as it will be copied with the `.gpg` extension),
while entries such as

    deb [signed-by=/etc/apt/trusted.gpg.d/my-repository.key.gpg] ...

will fail in the binary stage (as the key will this time be copied
with the `.asc` extension).
2023-01-05 09:52:48 +01:00
Ryan Finnie
5e01a0c09f
Memtest GRUB fixes
Previous commits to support Memtest86+ 6.00+ split the files into
"memtest" (backwards compatible / new BIOS name) and "memtest.efi"
(new EFI name).  However, the 6.00 non-EFI binaries are now
32/64-bit, and will not work with GRUB's linux16 boot when using GRUB
for BIOS boot.

- Legacy Memtest86+ pre-6.00 will continue to be "memtest", linux16
  (continue to support builds on current Debian stable bullseye)
- Change 6.00+ filename to "memtest.bin"
- GRUB memtest.cfg contains logic for legacy / new bios / new EFI
- Change EFI boot from "chainloader" to "linux", which allows for
  passing command line options to Memtest86+
- syslinux @MEMTEST@ will conditionally be memtest.bin or memtest
- @MEMTEST_BIN@ will conditionally be memtest.bin or memtest, but is
  completely legacy at this point (all internal code paths now check
  for @MEMTEST_DIR@/memtest or @MEMTEST_DIR@/memtest.bin)

Getting complicated, but this logic can be simplified again once we
no longer need to support current Debian stable.
2023-01-02 09:40:17 -08:00