Commit Graph

923 Commits

Author SHA1 Message Date
jnqnfe 849873daca bootstrap: drop obsolete check for `--no-check-gpg` support in debootstrap
This has been present in debootstrap since version 1.0.30.

Gbp-Dch: Short
Closes: #952847
2020-03-05 11:09:41 +00:00
jnqnfe 0d4b464370 binary: fix missing use of chroot_dpkg in binary stage
update feb-2020: the bug report is marked as fixed in version 5.0-a7-1,
however there is no such patch merged for that tagged release, nor at all
in master, so this properly closes it.

Gbp-Dch: Short
Closes: #776532
2020-03-05 11:07:28 +00:00
jnqnfe 2791a0d1e4 grub2: fix using wrong directory in certain cases
Update feb-2020:
Both grub2 and syslinux were affected by this issue. Someone else's
patch fixing syslinux only just recently got merged in
2735f3bd38 but grub2 was still
affected. I had made patches for both in 2015 which never got
merged. This is the grub2 one.

Gbp-Dch: Short
Closes: #952843
2020-03-05 11:06:30 +00:00
Lyndon Brown 9c062e1f8b archives: fix deb-src entry exclusion
the sed commands were missing '-i' to actually modify the file (rather
than output to stdout)

Gbp-Dch: Short
Closes: #952842
2020-03-05 09:46:56 +00:00
Lyndon Brown 666dc9f6f2 bootstrap_archives: remove unnecessary param default
all uses of this script pass in a suitable 'pass' param, and a previous
commit added a validation check. Having a fallback to 'binary' should a
param not be supplied is completely unnecessary.

fyi, this script is only ever called from the bootstrap stage and with
'binary' as the param, thus supporting being called with 'source' and
indeed having a 'pass' param at all is surely utterly pointless in itself.

Gbp-Dch: Ignore
2020-03-05 02:41:48 +00:00
Lyndon Brown d74f2102a0 archives: add 'pass' param validation check
if this had already been in place then it would have caught
bug #952837.

Gbp-Dch: Short
Closes: #952841
2020-03-05 02:41:26 +00:00
Lyndon Brown ae2012953b archives: fix incorrect usage string
Gbp-Dch: Ignore
Closes #952839
2020-03-05 02:40:59 +00:00
jnqnfe f3ebc44e13 archives: fix removal of chroot/root/packages.chroot package list
Gbp-Dch: Short
Closes: #952838
2020-03-05 02:40:42 +00:00
jnqnfe 25b44ac8df source: fix wrong action value for script execution
valid values are binary|source, and source should have been
used here.

Gbp-Dch: Short
Closes: #952837
2020-03-05 02:39:52 +00:00
jnqnfe 6adb5976b6 remove another redundant file
Originally removed in 42fb1e1976
Accidentally restored in bc50443cf0

(Closes #952835)
2020-03-01 08:38:05 +00:00
jnqnfe 1efc6d5adf remove redundant file
18e0a2f325 "rebranded live sources" which
included renaming `source_debian-live` to `source_live` but accidentally
left the old file in place.

(Closes #952834)
2020-03-01 08:37:22 +00:00
David Hewitt 2735f3bd38 binary_syslinux: Acommodate LB_INITRAMFS not live-boot 2020-02-17 10:37:27 +00:00
Raphaël Hertzog 2127283494 Standardize on having the GUI installation first in boot menus
debian-cd changed it that way, we already have it that way in EFI
boot, let's be consistent.
2020-01-23 16:47:04 +01:00
Raphaël Hertzog f64b73a718 Revert some Kali-specific change
That change was erroneously committed as part of
44b9b0a650
2019-12-19 21:05:54 +01:00
Raphaël Hertzog 30b9a391ac Fix "--debian-installer cdrom" and its interaction with binary_package-lists
apt-ftparchive is not able to differentiate between .deb and .udeb so
we have to install them in different pool directories so that we can
regenerate the Packages files without having the .udeb show up
unexpectedly.

Since binary_package-lists can overwrite the Packages files generated
in installer_debian-installer we have to ensure that it also updates
the Release file created formerly.

Ideally we should find a way to avoid the duplication of this logic.

Gbp-Dch: Full
2019-12-19 19:07:59 +01:00
John Estabrook b6ad08c270 Add local archive keys before configuring local package repository
In the binary stage, chroot is restored from cache/bootstrap, which contains
neither custom repo lists, nor keys. If local packages are present,
chroot_archives will call 'Apt chroot update' after adding custom repo lists
without adding keys. apt-get will then fail instead of warn as of apt version
1.5.

Closes: #941691
2019-12-19 18:52:05 +01:00
Ronny Standtke 97e8070b72 Run binary_hooks after binary_grub-efi
That way it becomes possible to customize grub-efi files.

Closes: #940846
2019-12-19 18:24:55 +01:00
Raphaël Hertzog 44b9b0a650 Support --distribution-binary and --distribution-chroot
This makes it possible to build an image against a first distribution
(--distribution-chroot) and have the resulting image point to another
distribution (--distribution-binary). We can use this to build against a
snapshot and have the result use the original distribution that was
snapshotted.

Closes: #888507
2019-12-19 18:18:44 +01:00
Raphaël Hertzog bca7af4ecb installer_debian-installer: don't mess with /var/lib/dpkg/status
Use a similar trick as for chroot_live-packages.

Relates to #944983.
2019-12-19 16:53:30 +01:00
Raphaël Hertzog 0647e985fa chroot_live-packages: use dpkg-query to see if a package is installed
Closes: #944983
2019-12-19 16:21:58 +01:00
Raphaël Hertzog 04ea46d07b binary_package-lists: avoid messing with dpkg's status file
Instead of emptying the file temporarily, just tell APT to use /dev/null
instead of /var/lib/dpkg/status. Relates to #944983
2019-12-19 15:54:54 +01:00
Roland Clobus 5aaf2181b8
--mirror-binary* was not properly sorted 2019-06-19 13:07:10 +02:00
Roland Clobus 1837f6a40b
Reordered the command line options to make them in alphabetical order 2019-06-16 13:12:06 +02:00
Roland Clobus a844199e30
Manpage: Added documentation for --bootstrap-qemu-[arch|exclude|static] 2019-06-16 12:47:29 +02:00
Roland Clobus 58a82854a4
Manpage: Added documentation for --loadlin 2019-06-16 12:47:29 +02:00
Roland Clobus c8fddcd702
Manpage: Added documentation for --firmware-binary and --firmware-chroot 2019-06-16 12:47:29 +02:00
Roland Clobus 7c02640b62
Manpage: --mode explicitly supports debian and progress-linux. Special handling for ubuntu was dropped 2015-05-03 2019-06-16 12:47:29 +02:00
Roland Clobus 05ed83a2b6
Manpage: Added documentation for --hdd-label, --hdd-size and --hdd-partition-start 2019-06-16 12:47:28 +02:00
Roland Clobus 6c6151d0c9
Manpage: Added documentation for --image-name 2019-06-16 12:47:28 +02:00
Roland Clobus ab8c09eca1
--initramfs support none and live-boot 2019-06-16 12:47:28 +02:00
Roland Clobus 45e45a8a22
Matched the documentation of --checksums to the implementation in live-boot 2019-06-16 12:44:13 +02:00
Roland Clobus a5f69d0d73 Fixed a typo for --clean in 'lb config --help' 2019-06-03 10:48:58 +00:00
Roland Clobus 8466086428 Mention --breakpoints in 'lb config --help' 2019-06-03 10:48:58 +00:00
Roland Clobus 3c88667c2d Removed option --bootstrap, which is not implemented. 2019-06-03 10:48:58 +00:00
Roland Clobus 3607219f69 Do not store _QUIET in the configuration file, otherwise the overrides
in the command line get ignored. Adds a documentation line for the other
command line options as well.
2019-06-03 10:48:58 +00:00
Roland Clobus 0e03c34edb Removed obsolete short command line options.
-f was --filesystem
-l was --language
-p was --package-list
-e was --encryption
2019-06-03 10:48:58 +00:00
Roland Clobus c4abbbcc7e Reenabled the command line option for colored messages for lb_config. The functionality was added 2008-11-01, but was not really active. 2019-06-03 10:48:58 +00:00
adrian15 39038173a8 Readd findiso parametre to loopback.cfg generation. 2019-04-21 18:59:29 +02:00
Adrian Gibanel Lopez 80aa5ab611 Fixed foreign architecture package support to linux kernel flavours
Before Stretch there was an special amd64 kernel in the i386 arch repo.
So if you wanted to install an amd64 kernel alongside an i386 system
you did not need an additional arch repo.

Debian added multiarch support. That way you can install library packages
from multiple architectures on the same machine.

So there is no longer a need for having an amd64 kernel in i386 arch repo.
You can add an amd64 arch repo to an i386 arch system and fetch the amd64
kernel from the am64 arch repo.

live-build can be setup to use several linux kernel flavours in a single
image.

So in the days previous to this patch you could issue:
lb config --linux-flavours "486 amd64"
to use both 486 and amd64 kernel flavours.

Adding additional arch support to linux flavours poses two problems:

* Packages need to have its arch suffix (e.g. amd64:amd64).
If the suffix is not there apt-get insists on search amd64 kernel
package on i386 arch repo and, of course, fails to find it.

* The rest of the code which handles labels (bootloader config files)
or installed filenames (kernel images themselves) do not use the arch suffix.

This patch adds foreign architecture package support to
linux kernel flavours having taken those problems into account.

Practical example usage: i386 system and extra amd64 kernel.

First add amd64 foreign architecture in your i386 system
thanks to:

dpkg --add-architecture amd64
apt-get update

.

Finally enable amd64 kernel from amd64 arch alongside the
i386 system's 686 kernel thanks to:

lb config --architectures i386 --linux-flavours "686 amd64:amd64"
2019-03-14 23:06:31 +01:00
Luca Boccassi f108fdfa71 UEFI: remove the EFI/debian/grub.cfg, not necessary anymore
Turns out gcd works fine after adding /boot/grub/grub.cfg in the img,
as that's the path that gets hardcoded, and adding the EFI/debian/
grub.cfg was not necessary, so remove it.
2018-09-19 11:35:17 +01:00
Steven Shiau c22f1f5b71 Use gcd{x64.aa64}.efi.signed for amd64/arm64 arch.
For secured boot in binary_grub-efi, the gcdx64.efi.signed is
the boot loader for removable device, like CD or USB flash drive,
while grubx64.efi.signed is for hard drive. Therefore for live system,
use gcdx64.efi.signed for amd64 and gcdaa64.efi.signed for arm64.
2018-09-19 11:34:22 +01:00
Marcel Partap 8403487d4e copy keys to /etc/apt/trusted.gpg.d with appropriate extension for them to not be ignored. 2018-09-13 16:25:09 +01:00
Raphaël Hertzog 5290842288 Handle includes.chroot files installed over symlinked directories
With the merged /usr feature now enabled in debootstrap, we have
/bin and /lib which are symlinks to /usr/bin and /usr/lib. If
the live-build configuration provides files in
config/includes.chroot/lib/ or config/includes.chroot/bin/ then
lb chroot_includes will replace the /lib or /bin symlink with real
directories having only the content provided in chroot.includes and
problems will follow... the build will usually fail later with a
cryptic error message (for example a hook failing to execute
/usr/bin/env).

Work around the issue by creating a tarball of the files to install
and by unpacking that tarball from within the chroot with appropriate
options.
2018-07-27 10:51:49 +02:00
Luca Boccassi 316b128158 UEFI: parse vendor from Grub package metadata
When using Secure Boot, grub2 as built by Debian will now load a config
file from EFI/$VENDOR instead of having EFI/debian hardcoded.
$VENDOR comes from dpkg-vendor or from the user building grub2.
The vendor string is stored in the control metadata as Efi-Vendor, so
retrieve it when building the EFI image.
2018-06-07 11:34:26 +01:00
Luca Boccassi e5492b1c70 Avoid apt-key add and just drop the key in /etc/apt/trusted.gpg.d
Only gnupgv is part of the deboostrap set these days, but apt-key needs
the full gpg (with gpg-agent) which is just a recommends.
Instead just drop the key with an .asc suffix in /etc/apt/trusted.gpg.d
which is supported since apt version 1.4
2018-06-03 22:06:36 +01:00
Luca Boccassi 186765e3fd lb clean: remove ONIE image 2018-04-17 11:39:26 +01:00
Luca Boccassi 277f0cec71 Reconfigure bootstrapped packages after preseeding.
live-build supports preseeding configuration, but the configuration has
to be installed after bootstrapping since it needs the debconf tools to
be applied. But packages that have already been installed and configured
in the bootstrap step will then ignore those preseeded configs.

After applying each preseed file, parse the package list and manually
reconfigure the relevant package(s) so that the configuration will be
applied.
2018-04-10 21:58:00 +01:00
Luca Boccassi 050e637b2c ONIE: do not use package cache, only runs on host
Gbp-Dch: Ignore
2018-04-05 16:24:36 +01:00
Luca Boccassi e47652d841 ONIE: missing dependency on file
A very minimal build worker might not have it, so check for its
presence as well.
2018-04-04 19:57:49 +01:00
Luca Boccassi 2aff516e1f ONIE: Check_package in the host, not the chroot
The binary_onie script works on the host, not in the chroot (if used),
so don't check that the required packages for the script are installed
in the chroot (if present) as they won't be useful.
Check instead on the host.
2018-04-04 19:56:41 +01:00