Commit Graph

4050 Commits

Author SHA1 Message Date
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
Roland Clobus 43ef78bb34
Reproducible hooks: Regenerate initrd.img in chroot_hacks only when chroot_hooks did not regenerate it already.
Hook 1003 is replaced by 8000, which is more generic and does not need
to modify original files.
2022-01-26 08:14:26 +01:00
Roland Clobus 5a08cc71a0
Add hook for libxmlb2 (used by appstream)
Caused by appstreamcli refresh-cache in package appstream (the
apt-conf/50appstream file)
Fixed upstream in libxmlb in 0652ec042c
2022-01-24 12:28:12 +01:00
Roland Clobus a599f50e48
Add hooks for building reproducible images 2022-01-24 12:28:08 +01:00
Roland Clobus 0183c73aba
Set the timestamp inside hdd images.
Similar to iso images, the timestamp of a file/folder inside the binary
image cannot be newer than SOURCE_DATE_EPOCH.
Also set the timestamp of the hdd image.
2022-01-22 18:16:58 +01:00
Roland Clobus 62f3d7bf55
Set the timestamp of the generated iso image. 2022-01-22 18:16:54 +01:00
Roland Clobus 2e5e565367
When update-initramfs is called, clean up the backup files.
This removes the unnecessary vmlinuz.old and initrd.img.old files in the
root folder of the generated image.
2022-01-22 17:58:09 +01:00
Roland Clobus fd1505414b
Clean up the cache directory, if no files are present.
The folder 'cache/contents.chroot' in the build directory can be removed
if no firmware is installed.
2022-01-22 17:56:39 +01:00
Roland Clobus cb912308c7
Bugfix: The values for '--cache-stages' were not matching the implementation. 2022-01-22 17:56:29 +01:00
Roland Clobus 06ee64b16a
Reactivate '--chroot-filesystem plain'.
This previously undocumented value for '--chroot-filesystem' creates the
uncompressed folder 'live/filesystem.dir'.
This will speed up the generation of live images a lot, because the
squashfs compression is skipped.

Example command line:
  lb config -b hdd --chroot-filesystem plain --binary-filesystem ext4
2022-01-22 17:53:38 +01:00
Roland Clobus 2bfdb3cb44
Bugfix: The arguments to the 'tr' command must be quoted. 2022-01-08 13:39:48 +01:00
Roland Clobus eed8d293b1
Bugfix: Do not copy the content of e.g. /dev/shm when creating hdd
images

Discovered when building with '--binary-image hdd' on /dev/shm
2022-01-08 10:33:55 +01:00
Roland Clobus 8f763ee8b1
Bugfix: Add missing package when systemd is active
The package might be missing when building with a minimal configuration,
as recommended in the Live Manual, the example 'Base image' scenario:
'lb config --apt-recommends false --debootstrap-options "--variant=minbase"'
2022-01-08 10:27:50 +01:00
Roland Clobus 63399dab6e
Use the release date from the changelog as the date for the last modification of each manpage 2022-01-07 10:13:52 +01:00
Roland Clobus d7316bcec9
Remove generated translation files
These files are regenerated by 'make rebuild'
2022-01-07 10:13:52 +01:00
Roland Clobus dbb5e6143d
Add file with translatable text (lb_installer.1.pot) 2022-01-07 10:13:24 +01:00
Roland Clobus a7ce0710d4
Mark the phony targets in the Makefile 2022-01-07 10:12:28 +01:00
Roland Clobus bf0349c38e
Fix Lintian warning about malformed NEWS file 2022-01-07 10:12:26 +01:00
Roland Clobus 7185058425
Adding symlink for udeb data for bookworm 2021-12-03 19:57:33 +01:00
Ryan Finnie 7944adc6a5
Fix missing variable quoting in proxy handling
Fixes:
[2021-11-14 11:08:03] lb config noauto --apt-http-proxy http://proxy.example.com:8000
scripts/build/config: 868: local: Acquire::http::Proxy-Auto-Detect: bad variable name
2021-11-14 11:12:25 -08:00
Ryan Finnie 5da4ff53be
Add initial riscv64 support
Notes:
- No bootloader is configured; images must be booted via direct kernel
  - Tested via qemu + opensbi fw_jump.elf + kernel/initrd
- As riscv64 is currently in ports, the following options are required:
    --distribution unstable
    --mirror-bootstrap http://ftp.ports.debian.org/debian-ports/
    --security false
    --debootstrap-options --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg
- Normally ports require stacking two dists, unstable and unreleased.
  debootstrap does not support doing this, but as of this writing, there
  is nothing in riscv64 unreleased which is required to bootstrap.
  However, this would not have been possible a year ago.
2021-11-14 09:22:41 -08:00
Roland Clobus bcc4ab97c6
Code coverage test (for the proxy) 2021-09-23 13:53:53 +02:00
Roland Clobus d6a5a1f3cf
Simpler handling of http proxies
There are two main scenarios:
1) The host with live-build is configured to use a proxy
   This proxy will automatically be used by live-build
2) The user of live-build explicitly specifies a proxy
2A) With the environment variable 'http_proxy' (preferred)
2B) With the command line option --apt-http-proxy

Any inconsistency in the setting of a proxy results in an error message of 'lb config'
All internal tools (apt/apt-get/aptitude, wget and debootstrap) use the environment variables 'http_proxy' and 'no_proxy', which are passed along to the chroot where needed.

Test scenario:
- A virtual machine with all out-going traffic blocked, except for the proxy.
2021-09-23 13:53:49 +02:00
Luca Boccassi da16d81ed3 Merge commit 'e93e2b4b9dde3059935daa61cabeab663fc0838b'
Latest PR was automerged before latest changelog commits were
pushed, moving tree back in sync
2021-09-15 12:25:01 +01:00
Roland Clobus 7264a752bb
The support for FTP proxies has ended 2021-09-08 13:40:53 +02:00