Commit Graph

4024 Commits

Author SHA1 Message Date
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
Roland Clobus dcbbfed463 installer: fail early
If e.g. the required packages for the git build cannot be installed,
abort early instead of attempting to build the installer.
2022-11-14 10:38:18 +00:00
Roland Clobus 7cdb395dd9 rebuild: New option to specify the origin of the d-i binaries 2022-11-14 10:38:18 +00:00
Ryan Finnie 1d6f6dd178
memtest: Support arch-specific and EFI memtest86+ 6.00
- BIOS: Final filename doesn't change (memtest), but now uses a
  64-bit version on amd64.
- EFI: Now included as memtest.efi; 32-bit on i386, 64-bit on amd64.
  As it's GRUB-only, we can test for the existence of memtest.efi
  (6.00+ only) in GRUB itself.
- Add @MEMTEST_DIR@ to facilitate directory-based testing in GRUB.

This expands upon the previous MVP commit
15e78a3eec .
2022-10-31 21:55:14 -07:00
Ryan Finnie 15e78a3eec Fix build with memtest86+ 6.00
memtest86+ 6.00-1 (in testing as of this date) adds and changes its
available binaries:

  - /boot/memtest86+x32.bin
  - /boot/memtest86+x32.efi
  - /boot/memtest86+x64.bin
  - /boot/memtest86+x64.efi

Future live-build functionality would ideally incorporate these new
binaries (x64 for amd64 builds, efi for grub-efi), but in the meantime,
this is an MVP update which supports either old memtest86.bin or new
memtest86+x32.bin.
2022-10-31 15:19:27 +00:00
Luca Boccassi a8884af9b9 salsa-ci: drop aptly pages publishing, errors out
"jobs:pages config key may not be used with 'rules': except"
2022-10-31 15:11:49 +00:00
Ryan Finnie ec73f2bab1
chroot_hostname: Fix reference to chroot inside chroot
Fixes: d2722e8f (Fix permissions and ownership of chroot_hosts and chroot_hostname copied files)
2022-08-23 10:41:25 -07:00
Roland Clobus 10b968e891 Add more variables for the splash.svg image (Closes: 1015782)
The request asked for 5 additional variables to be resolved for the SVG
images:
Added: LB_ISO_APPLICATION, LB_ISO_PUBLISHER and LB_LINUX_PACKAGES
Not added: LB_ISO_PREPARER: xorriso recommends not changing this
variable
Not added: LB_ISO_VOLUME: is can contain '@ISOVOLUME_TS@' which resolves
to a timestamp and would need additional handling
2022-08-10 08:10:07 +00:00
Roland Clobus 6908dfd6df
Drop win32-loader for the images with an installer.
See https://lists.debian.org/debian-boot/2022/08/msg00035.html
2022-08-10 08:00:08 +02:00
Roland Clobus fe9b32e7cd
Build from deb.debian.org
For reproducibly building live-images, it turns out that the initial
build does not necessarily have to use a snapshot server.
Within a time slot of 6 hours (the interval between synchronisations of
the Debian archive) the reproducibility of a live image can be checked
by running the rebuild.sh script twice. The resulting ISO files should
be identical.
2022-07-24 21:26:08 +02:00
Nick Brown 4a0350bdaf Allow APT_AUTH.CONF(5) config files to be used with archives during bootstrap.
Currently it's only supported in the chroot/binary phases. Omitting
bootstrap was an oversight.

Note that config/archives/*.conf are assumed to be apt.conf files,
so the apt_auth files are required to end with .auth and will be renamed
to .conf when copied into the chroot.
2022-06-28 21:05:12 +01:00
Olivier BLIN d2722e8f19 Fix permissions and ownership of chroot_hosts and chroot_hostname copied files
Ensure that /etc/hosts and /etc/hostname have safe permissions and the right
ownership when copied from include directory.

Gbp-Dch: Ignore
2022-06-10 12:08:58 +02:00
Roland Clobus 5b7d86686c
Reproducible hooks: fix version check for libxmlb2 2022-06-06 11:26:02 +02:00
Roland Clobus 17cb77ab82
Removes 'nomodeset' from fail-safe boot.
After more tests on openQA, it was shown that 'nomodeset' not only for
UEFI makes the image non-bootable (see
8c65231ad1), but for BIOS as well.
2022-06-01 09:12:01 +02:00
Roland Clobus 8c65231ad1
Rebuild: Use the new settings '--debian-installer-distribution git'. 2022-05-17 08:48:44 +02:00
Roland Clobus fa8ebd2469
Introduce '--debian-installer-distribution git'.
With this 'distribution', the installer is built from its git
repository, matching the date in SOURCE_DATE_EPOCH.
Additionally the kernel version is matched to the kernel version in the
chroot (to ensure that the installer can be run).
Rationale: The 'daily' installers are not archived, and therefore cannot
be used for a reproducible build.
2022-05-17 08:48:44 +02:00
Roland Clobus 26845abebc
Create a clean chroot for the installer.
The installer stage has a clean chroot for its own usage. The chroot
from the chroot stage is available in chroot/chroot (implemented similar
to the binary stage).
2022-05-17 08:48:35 +02:00
Roland Clobus ac0cde14e6
Synchronise all --parent-distribution options.
This makes the default value of --parent-debian-installer-distribution
the same as --debian-installer-distribution, like the other
--parent-distribution-* options.
2022-05-16 11:32:36 +02:00
Luca Boccassi e04368914b Update changelog for 1:20220505 release 2022-05-05 11:14:12 +01:00
Olivier BLIN 36e019c38d Add support for the new includes.chroot system to /etc/hosts file
The new includes.chroot system implemented in !214 adds the option
to include files in the chroot before and after package installation.

chroot_hostname and chroot_resolv have been updated but not chroot_hosts.

Gbp-Dch: Short
2022-04-22 08:58:06 +00:00
Roland Clobus f1a98e4da6
Reproducible hooks: texlive-base and texlive-binaries 2022-04-21 11:16:15 +02:00
Roland Clobus 5b44eb3bf5
Remove a left-over file when using a package in config/packages.chroot. 2022-04-20 10:26:24 +02:00
Roland Clobus ba5c0c37d1
Use a shorter suffix for modified development versions.
The default --iso-preparer value will fit into 128 bytes for a git
checkout with local modifications (the longest version variant).
2022-04-20 10:25:05 +02:00
Roland Clobus 2a7bb73bf7
Check the actual length of the ISO fields. 2022-04-20 10:24:51 +02:00
Roland Clobus a9d367d406
Rebuild a reproducible ISO image.
The steps were initially published at https://wiki.debian.org/ReproducibleInstalls/LiveImages
2022-04-20 10:19:30 +02:00
Roland Clobus c2263f1748
UEFI doesn't like nomodeset in safe mode 2022-03-25 15:15:29 +01:00
Roland Clobus 66d47f32f9
Reproducible hooks: appstream and libxmlb2
appstream >= 0.15.2 uses a new cache directory
libxmlb2 >= 0.3.7 contains a fix for the reproducible issue
2022-02-24 14:56:15 +01:00
Rob Shearman 3b0d8263d2 config: respect --bootloaders option again on amd64/i386
Persist LB_BOOTLOADERS in lb_binary_* configuration, since
Init_config_data called from lb_binary_* calls Prepare_config which
then overrides LB_BOOTLOADER_BIOS and LB_BOOTLOADER_EFI if
LB_ARCHITECTURE is amd64 or i386, and these can only be restored to
their proper values by the presence of LB_BOOTLOADERS.

This therefore ensures that the value of the "--bootloaders" parameter
to lb_config is respected by the lb_binary_* steps.
2022-02-18 13:00:01 +00:00
Nick Brown f04dc6dc49 Add auth.conf.d support to archives
Allow APT_AUTH.CONF(5) config files to be used with archives.

Note that config/archives/*.conf are assumed to be apt.conf files,
so the apt_auth files are required to end with .auth and will be renamed
to .conf when copied into the chroot.

Closes: #991065
2022-02-18 10:47:45 +00:00
Nick Brown 70994cd304 Echo executing source/binary hooks
The chroot hooks already do this.
2022-02-11 10:51:39 +00:00
Roland Clobus 9ee1a1671f
Show git hash as version number, when a local git repo is used. 2022-02-10 21:46:27 +01:00
Philip Hands d9fcae7dd8
get the aptly/pages stage to work 2022-02-07 15:02:26 +01:00
Roland Clobus 0fe681c10c
Reproducible hooks: fontconfig got fixed in 2.13.1-4.4.
Do not activate the hook if fontconfig is sufficiently new.
2022-01-31 11:40:57 +01:00
Michał Prochera e420c83e4c Unconditional Remove_packages calls in binary_rootfs (Closes: #994982)
That prevents potential errors during future Remove_packages calls without APT indices available. In such cases, APT tries to remove packages with unrecognized names, which results in an error and fails the script execution. An example of this would be installing apt-utils in chroot_archives with --apt-indices option set to false.
2022-01-26 17:55:42 +00:00
Sophie Brun b9b32ad41f
Harmonize menu entries (uefi / bios) and add a variable for the templates 2022-01-26 11:13:30 +01:00