summaryrefslogtreecommitdiff
path: root/scripts/build/config
AgeCommit message (Collapse)Author
2020-03-16allow turning off colourLyndon Brown
necessary to give control when colour is default enabled Gbp-Dch: Short
2020-03-12Revert "Test for executables: replace 'which' with more robust 'command -v'"Luca Boccassi
This reverts commit 2d9ab1f7f82f9a98b97d1503c1e3f31c86061c15. Causes test failure due to bashism.
2020-03-12Test for executables: replace 'which' with more robust 'command -v'johnraff
Instances of: if [ $(which <command> ] have been replaced with: if command -v <command> >/dev/null which is considered to be more robust in a range of environments. scripts/build/chroot_archives: line 259: if [ "${LB_APT}" = "aptitude" ] && [ ! $(Chroot chroot "which aptitude") ] has been left untouched because the chroot might require a more complex command which would need more testing. manpages/Makefile: line 42: @if [ ! -x "$$(which po4a 2>/dev/null)" ]; \ has been left untouched because I am not sufficiently familiar with makefiles.
2020-03-12remove obsolete loop-aes-utils related losetup hackLyndon Brown
677415f6d7efc1e5b888570d70af311d2900c69c (2007) in v1.0~a2-1 added a hack relating to the loop-aes-utils package and losetup. this commit bundled a bunch of changes, it was not specific to the hack, and so info about the hack is limited to a brief comment included within the related change in defaults: ``` # Workaround for loop-aes-utils divertion # (loop-aes-utils' losetup lacks features). ``` though it is very similar to the removed fdisk hack in that it seems that one package may replace a binary from another, moving the original to a new location, and this hack gives the user the opportunity to select the original instead of the one put in its place, for use in LB. the comment mentions a package called loop-aes-utils as being the package that performs such a diversion, and that the need for the hack was that losetup itself lacked features, presumably encryption support, and it is clear that it is the losetup binary that is the focus of the diversion. looking into the history of loop-aes-utils a little, this package was dropped from debian back in 2012 (#680748), favouring encrytion support of dm-crypt/cryptsetup. double checking file contents of packages, only the mount package carries an /sbin/losetup file, so presumably this means that dm-setup/cryptsetup do not perform such a diversion of losetup (i.e. their use is exclusively done directly). since the possible diversion is simply gone, that completely removes any point in having the hack of giving users choice between losetup and the diverted one. so let's remove this obsolete hack...
2020-03-11remove obsolete fdisk hackLyndon Brown
8321653cb36511324d576e65cb13b5c9b0c5f438 (from 2007) introduced a hack to work around bug #445304 in gnu-fdisk for users who may have replaced fdisk with the classic gnu version. the hack allowed users to select an alternate fdisk binary to use to work around the buggy binary. bug #445304 is marked as found in v1.0-1 and fixed in v1.2-1, though may have been fixe din v1.1. it was marked fixed in 2009. checking the package archive, gnu-fdisk does not actually exist anymore in debian, with one exception - it is available for arm64 on sid via debports, and that version is 1.3 so thus includes the necessary fix anyway. it is thus pointless now that we still carry this hack. Gbp-Dch: Short
2020-03-11amend copyright & licensing blocksLyndon Brown
Current versions of the project files are built upon versions published and licensed by Daniel Baumann, but are modified copies of those files and thus need to be marked as such per licensing requirements (afaik he did not pass along ownership / licensing rights to anyone when he left the project). We should also be careful to not be misrepresenting such modified copies as being attributed to Daniel. Adding a new copyright line referring to "The Debian Live team" should suffice for this. The authorship block in man pages has also similarly been updated. Notes: - tweaked a copy of daniel copyright lines stating 2014 instead of 2015. both of these cases were in files that i had personally introduced in some of my past merged commits that moved some code around. i don't know why they stated 2014. - binary_onie was introduced in 2018, so that has a 2018 date instead of 2016 unlike the rest. - 'efi-image' is a 3rd-party (Canonical Ltd) work that we bundle, but it has been modified by 674794a8f4d61a729d2dbd6d99385d2826138694 and 36a3ba76347ef72df1c316312ed3a26aa4b0c816 so I similarly added a debian live copyright line. - 'grub-cpmodules' is similar. it was only changed by the indentation fix of 36a3ba76347ef72df1c316312ed3a26aa4b0c816 but modification is modification, and this does help cover any possible future changes that might be made.
2020-03-10config: improve documentationLyndon Brown
2020-03-10arguments: fix unreachable and poor argument error handlingLyndon Brown
all scripts use `set -e` which means that if getop fails, the subsequent error check that would print an error in addition to any printed by getopt itself would never actually be reached. the first though here would be to remove the pointless error check, but getopt does not include the word "error" with an unrecognised option failure, nor does it use colour to highlight problems, both of which mean that it is a little lacking in terms of highlighting problems to users. thus we properly capture and use the exit code here and output an appropriate message per invalid argument vs getopt internal error. also, removed the redundant stderr redirection which is already done by Echo_error(). Gbp-Dch: Short
2020-03-10config: rename the config set/check functions for clarityjnqnfe
Gbp-Dch: Short Closes: #952920
2020-03-10tidy script init (4/4) - top level cmd "auto redirect" handlingLyndon Brown
Partial fix for #952919 Gbp-Dch: Short Closes: #952919
2020-03-10tidy script init (3/4) - top level commandsjnqnfe
Partialfix for #952919 Gbp-Dch: Short
2020-03-10tidy script init (1/4) - arg and config processingjnqnfe
Partial fix for #952919 Gbp-Dch: Short
2020-03-09fix consistency in binary execution and existance checkingLyndon Brown
- prefer using `which` over hard coded paths - it is redundant to check that the bin pointed to the return of `which` exists and is executable, `which` already gives us assurance of that if it returns true! - the redirection of output (`2>/dev/null`) seems to be unnecessary from my testing. the instances relatnig to fdisk and losetup in functions/defaults.sh have been left as they are since they get executed by `lb config` which can run without sudo elevation unlike `lb build` and in that case `which` would fail to find these binaries resulting in error. this also fixes a bug showing an error for missing debootstrap - this tool requires sudo privileges to run and thus is not found via a none elevated which search. Gbp-Dch: Short Closes: #952927
2020-03-05help/usage: fix overly complex script description handlingjnqnfe
Closes: #952887
2020-03-05config: rename --architectures to --architectureLyndon Brown
this has only ever supported specifying a single arch, thus was confusing being plural Gbp-Dch: Short Closes: #952892
2020-03-05fix capitalisation of some output messagesjnqnfe
Closes: #952875
2020-03-05simplify --debian-installer choicesjnqnfe
`false` and `none` make no sense as choices for this option. Here we replace `false` with `none`, and remove `true`. Note that `true` was treated as an alias for netinst (see the changes to source_disk and and binary_disk). For backwards compatibility we still allow `true` and `false` by converting them to `netinst` and `none` respectively, whilst printing a warning to encourage users to move to `netinst`/`none`. Gbp-Dch: Short Closes: #952864
2020-03-05don't unnecessarily convert exit codes to stringsLyndon Brown
Closes: #952861
2020-03-05manpage: fix wrong description for --firmware-binaryLyndon Brown
--firmware-binary adds firmware to d-i, --firmware-chroot adds to live Gbp-Dch: Short
2019-12-19Support --distribution-binary and --distribution-chrootRaphaël Hertzog
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-06-19--mirror-binary* was not properly sortedRoland Clobus
2019-06-16Reordered the command line options to make them in alphabetical orderRoland Clobus
2019-06-16Manpage: Added documentation for --bootstrap-qemu-[arch|exclude|static]Roland Clobus
2019-06-16Manpage: Added documentation for --loadlinRoland Clobus
2019-06-16Manpage: Added documentation for --firmware-binary and --firmware-chrootRoland Clobus
2019-06-16Manpage: --mode explicitly supports debian and progress-linux. Special ↵Roland Clobus
handling for ubuntu was dropped 2015-05-03
2019-06-16Manpage: Added documentation for --hdd-label, --hdd-size and ↵Roland Clobus
--hdd-partition-start
2019-06-16Manpage: Added documentation for --image-nameRoland Clobus
2019-06-16--initramfs support none and live-bootRoland Clobus
2019-06-16Matched the documentation of --checksums to the implementation in live-bootRoland Clobus
2019-06-03Fixed a typo for --clean in 'lb config --help'Roland Clobus
2019-06-03Mention --breakpoints in 'lb config --help'Roland Clobus
2019-06-03Removed option --bootstrap, which is not implemented.Roland Clobus
2019-06-03Do not store _QUIET in the configuration file, otherwise the overridesRoland Clobus
in the command line get ignored. Adds a documentation line for the other command line options as well.
2019-06-03Removed obsolete short command line options.Roland Clobus
-f was --filesystem -l was --language -p was --package-list -e was --encryption
2019-06-03Reenabled the command line option for colored messages for lb_config. The ↵Roland Clobus
functionality was added 2008-11-01, but was not really active.
2019-03-14Fixed foreign architecture package support to linux kernel flavoursAdrian Gibanel Lopez
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"
2018-03-22Add options to build ONIE imagesLuca Boccassi
Open Network Install Environment is an open image format used by networking vendor to ship a standardised image for networking white box switches. ONIE hardware takes this image at boot and a script to chain load into the final environment via kexec. We can support Debian and derivatives on such systems by packing an ISO which then gets unpacked, kexec'ed and live-booted. A base ONIE system can be tested in QEMU by building a VM following these instrunctions: https://github.com/opencomputeproject/onie/blob/master/machine/kvm_x86_64/INSTALL Once built, boot onie-recovery-x86_64-kvm_x86_64-r0.iso in QEMU/libvirt and on the console there will be the terminal prompt. Check the IP assigned by libvirt and then scp the live image (ssh access is enabled as root without password...). Then the .bin can be booted with: ONIE-RECOVERY:/ # onie-nos-install /tmp/live.hybrid.iso-ONIE.bin The implementation is inspired by ONIE's own scripts that can be found at: https://github.com/opencomputeproject/onie/blob/master/contrib/debian-iso/cook-bits.sh A new option, --onie (false by default) can be set to true to enable building this new format in addition to an ISO. An additional option, --onie-kernel-cmdline can be used to specify additional options that the ONIE system should use when kexec'ing the final image. Note that only iso or hybrid-iso formats are supported. For more information about the ONIE ecosystem see: http://onie.org Signed-off-by: Erik Ziegenbalg <eziegenb@Brocade.com> Signed-off-by: Luca Boccassi <bluca@debian.org>
2018-03-09UEFI: add support for Secure Boot on amd64 and arm64Luca Boccassi
Support for UEFI Secure Boot is modelled after how it currently works in Ubuntu and on how it is going to work on Debian. A minimal bootloader, shim, is used as the first-stage and it then loads grub. Both have to be signed. shim-signed is already available in Debian so the filenames are already established, and the grub2 repository and packaging is common between the 2 distros so we can already be reasonably sure of what it is going to be. So if both are available, copy /usr/lib/shim/shim[x64|aa64].efi.signed as boot[x64|aa64].efi so that UEFI loads it first, and copy /usr/lib/grub/[x86_64|arm64]-efi-signed/grub[x64|aa64].efi.signed as grub[x64|aa64].efi. This grub2 EFI monolithic image is currently hard-coded in grub2's repository to look for a config file in efi/debian, so make a copy of the previously added minimal grub.cfg that loads the real one in that directory in both the fat32 and ISO 9660 partitions. The new option --uefi-secure-boot can be set to auto (default, enable or disable. In auto, the lack of the signed EFI binaries is intentionally left as a soft failure - live-build will simply fallback to using the locally generated non-signed grub2 monolithic EFI binary as the only bootloader. Given the difficulties surrounding the Secure Boot signing infrastructure this approach gives the most flexibility and makes sure things will "just work" once the packages are available, without the need to change anything in the configuration. This will also greatly help downstream distributions and users who want to do self-signing. The enable or disable options work as expected. Closes: #821084
2016-12-16Minor updates to lb_config and its manual pageRaphaël Hertzog
* Update the manual page with the missiong --bootappend-live-failsafe option. * Keep supporting the former --bootloader (without s).
2016-11-28Support “lb config --debootstrap-script <script>”Raphaël Hertzog
This option lets you use an alternate bootstrap script when running debootstrap. Thanks to Sjoerd Simons <sjoerd@debian.org> for the initial patch. Closes: #790033
2015-09-23Old BIOS: start partition at specific placeMaximilian Mehnert
Some BIOSes dont't boot from partitions starting at sector 1024. Some are even more peculiar and only start from sector 63. This patch adds an option for the binary_hdd target to manually configure the partition start.
2015-08-29Multi bootloader supportAdrian Gibanel Lopez
Note: OLDIFS use makes IFS to be reset to "" instead to it being unset. Either we need to detect if old IFS was unset to unset it or we need a proper way of setting it as a local variable. Even more IFS it's not currently used in Check_package (which it's called from: binary_hdd). we should have a clean way of resetting/unsetting IFS when calling Check_package. The other approach it's to explicitly define IFS with its default value in the places inside live-build code where we implicitly suppose that it's going to have its default value.
2015-06-05Correcting symlinking of hooks in lb config.Daniel Baumann
2015-05-20Splitting non-live specific hooks into their own subdirectory within hooks.Daniel Baumann
2015-05-04Renaming grub helper to grub-legacy for consistency.Daniel Baumann
2015-05-04Renaming grub2 helper to grub-pc for later grub-efi addition.Daniel Baumann
2015-05-03Dropping support for upstart.Daniel Baumann
Ubuntu switched to systemd too, no point in keeping upstart support arround anymore.
2015-05-03Dropping automagics for ubuntu.Daniel Baumann
Future live-build versions will still allow to use casper, but its configuration will be done differently by a custom config tree, rather than embedded and maintenance intensive code in live-build itself.
2015-05-03Dropping automagics for casper.Daniel Baumann
Future live-build versions will still allow to use casper, but its configuration will be done differently by hooks in the config tree, rather than embedded and maintenance intensive code in live-build itself.