summaryrefslogtreecommitdiff
path: root/scripts/build
AgeCommit message (Collapse)Author
2020-04-23move script param capture to before arg processingLyndon Brown
makes them consistent with other similar script-specific param handling; saves the arg processing from dealing with it. Gbp-Dch: Short
2020-04-23firmware: robustify and simplify archive area checkingLyndon Brown
2020-04-23config: obsolete old --tasksel optionLyndon Brown
note that the bit of code removed from source_debian relies upon a variable LB_TASKS which itself is an old leftover artefact from before v4.0. Gbp-Dch: Short
2020-04-23config: obsolete --net-root-pathRaphaël Hertzog
2020-04-23config: obsolete --net-root-* options (except one)Lyndon Brown
--net-root-path probably needs to go too, but it is being used for something i don't fully understand currently. Gbp-Dch: Short
2020-04-23config: obsolete unused --net-cow-* optionsLyndon Brown
2020-04-23config: obsolete unused --isohybrid-options optionLyndon Brown
2020-04-23config: apt-get should probably be an allowed and documented --apt valueLyndon Brown
since everywhere where 'apt' is a permitted value, 'apt-get' is also, it just wasn't listed in the option's documentation and thus was also not listed in the new validation check. Gbp-Dch: Short
2020-04-23config: fix broken backwards compatibility hackLyndon Brown
80aa5ab61100b6b11ae47984bab9a2eb988074f5 implemented a hack to handle replacement of LB_LINUX_FLAVOURS with LB_LINUX_FLAVOURS_WITH_ARCH in config files, but implemented it in the wrong place. adding a conditional conversion within the config file meant that the old value would only be read from **new** config files that are created obviously without it, including re-saved configs if `lb config` were re-run with additional options (not recommended). any existing value in an existing config file would actually be ignored. the right place to read the old value was in the Set_defaults() function (since renamed). a second issue also existed with the hack, it failed to excape the `$` and thus printed the existing value of $LB_LINUX_FLAVOURS into the conditional check being constructed in the config file, instead of printing the name of the variable. the check embedded into the config file thus became this on an amd64 machine: ``` if [ -n "amd64" ] then LB_LINUX_FLAVOURS_WITH_ARCH="amd64" fi ``` which is clearly not what was intended. Gbp-Dch: Short
2020-04-23config: stop writing 'default: <foo>' lines to config filesLyndon Brown
while helpful for users to know the defaults, the values printed as the supposed defaults for most are actually the same values as being configured, or in some cases a piece of text "autodetected or empty", and thus the information is completely wrong and actually unhelpful since it misinforms the user. fixing this to give the real defaults is very much non-trivial. as a workaround users wanting to know the default for an option can always: a. use `lb config` wit no options (or auto) in a clean directory and thus get a config with all defaults. b. look at the live-build code. if they just want to reset an option, they can also just comment it out. Gbp-Dch: Short Closes: #904614
2020-04-23installer: rework validation check for installer typeLyndon Brown
(and move the wget options setting down where it should be while at it) the value of LB_DEBIAN_INSTALLER is now properly checked in the main validation routine, so we can just directly exit here as a simple safety check should validation be bypassed. Gbp-Dch: Short
2020-04-23tidy up grub bootloader compatibility checkingLyndon Brown
- add a validation check where an error will be printed - replace the check done in the grub scripts with one that simple exits if executed bypassing the validation check Gbp-Dch: Short
2020-04-23config: better handle error conditionLyndon Brown
Gbp-Dch: Ignore
2020-04-23config: reorganise the option case blockLyndon Brown
move away from the somewhat config file grouping based organisation to an alphabetised list, after grouping into script-specific; general; build-specific and other. the config file based organisation was a bad choice, making it hard to find the right place to insert options for instance. Gbp-Dch: Short
2020-04-23config: organise getopt longoption setLyndon Brown
alphabetised per line lists, broken up into multiple lines where exceeding 80 chars. Gbp-Dch: Short
2020-04-23config: remove spurious secondary validation checkLyndon Brown
it is already done just before writing the config to disk; this check is happening just after doing so and is thus pointless. Gbp-Dch: Short
2020-04-23config: add --validate optionLyndon Brown
running `lb config --validate` causes the script to stop after running the validation check on the config compiled at that point, prior to writing the config to disk. this gives users the ability to check the validity of a config without modifying or rewriting the saved config. note that if users provide new config options alongside --validate, these are taken into account in the check performed. the 'check complete' message will not be seen if an error is reported by the check function, while it will be seen if only warnings are given, but it would require a redesign of the validation check function to make any improvement in that area, and it's perhaps not worth it. Gbp-Dch: Short
2020-04-23config: rename Set_config_defaults() to Prepare_config()Lyndon Brown
it mostly applies defaults where a value does not exist, but does more in some cases. the new name better reflects its usage and functionality. Gbp-Dch: Short
2020-04-23config: rename Check_config_defaults() to Validate_config()Lyndon Brown
this is used after applying user settings on top of the defaults, so is not specific to checking defaults; it's a validation checker. Gbp-Dch: Short
2020-04-23--binary-images can support only a single typeLyndon Brown
whilst some parts of the codebase were set up to work with multiple types specified, others did not work with it and would not necessarily be easy to adjust. this thus makes some tweaks to adjust things accordingly. - option renamed to singular form (maintaining backwards compatibility) - a validation check has been added - unnecessary glob style type references fixed - checks with In_list changed to a direct singular comparison - typo of type "netboot" written as just "net" fixed (though unreachable so of no consequence; really the code could be removed but it's trivial) Gbp-Dch: Short
2020-04-23manpages: document all values for --interactiveLyndon Brown
2020-04-23manpage: fix consistency issuesLyndon Brown
- in underlining option parameters - in some cases of single or multiple (quoted + space separated) values Gbp-Dch: Ignore
2020-04-23manpages: indicate in usage that multiple bootloaders can be givenLyndon Brown
Gbp-Dch: Ignore
2020-04-23bootloaders: improve bootloader list handlingLyndon Brown
two parts of the code worked with both comma and space separated lists, while two others only worked with comma separated. swapping out commas with spaces when we setup the var in Set_config_defaults() means that individual scripts no longer need to worry about it and everything supports both; and that we can avoid the IFS/OLDIFS mess. Gbp-Dch: Short
2020-04-23fix outdated grub-legacy bootloader name referencesLyndon Brown
2020-04-23Fix permissions & ownership of copied /etc/resolv.confLyndon Brown
Closes: #857740 [tweaked by Raphaël Hertzog to fix the chown root:root call]
2020-04-23binary_hdd: fix variable name typoLyndon Brown
2020-04-23config: fix wrong saved value for parent archive areasLyndon Brown
2020-04-23chroot_apt: fix broken removalLyndon Brown
2020-04-23chroot_apt: improve readabilityLyndon Brown
2020-04-23chroot_dpkg: remove redundant chmodLyndon Brown
left over from before using `ln` to setup the diversion Gbp-Dch: Ignore
2020-04-23chroot_prep: warn if running archives helper for bootstrap stageLyndon Brown
to protect against simple mistake of using 'all' instead of 'all-except-archives' when manually executing scripts (e.g. during development) at the bootstrap stage level. (the bootstrap stage does not and should not use the archives helper). Gbp-Dch: Ignore
2020-04-23binary_rootfs: use new chroot_prep helperLyndon Brown
2020-04-23binary_rootfs: fix missing handling of chroot_tmpfsLyndon Brown
2020-04-23bootstrap_archives: remove useless paramLyndon Brown
2020-04-23chroot_prep: expand coverageLyndon Brown
it now covers: - `lb chroot_apt install-binary` - `lb chroot_archives {chroot|binary|source} {install|remove}` by expanding usage from: `lb chroot_prep {install|remove} HELPERS [ARGS]` to: `lb chroot_prep {install|remove} HELPERS [MODE[ MODE..]] [ARGS]` where `[MODE[ MODE..]]` is an optional set of one or more of: - archives-chroot, which specifies to use 'chroot' as the first param to the chroot_archives script - archives-binary, which specifies to use 'binary' - archives-source, which specifies to use 'source' - apt-install-binary, which specified to pass 'install-binary' instead of 'install' to chroot_apt thus _all_ chroot prep scripts can be run through this helper now! note, in the case of the binary stage, 'archives' is deliberately not added to CHROOT_PREP_OTHER, this is not a mistake! Gbp-Dch: Short
2020-04-23binary: add missing use of chroot_tmpfsLyndon Brown
2020-04-23add bulk chroot preparation script execution helperLyndon Brown
rather than explicitly running one helper after another in the major build stages, or by hand (e.g. while testing things during development), they can be run in bulk via this new helper. it essentially just takes a list of helpers to run and runs them one by one. it supports running all helpers except chroot_archives because that one has different parameter requirements to the rest and supporting it would make things messier. helper scripts can either be named by their full script name or without the 'chroot_' prefix for brevity. you can also just specify 'all' to refer to all helpers (except chroot_archives, per above). it automatically reverses the order of the list when run in remove mode. Gbp-Dch: Short
2020-04-23binary: remove useless execution of `lb chroot_debianchroot remove`Lyndon Brown
it was not run in install mode so should not be run in remove mode. (whether it should in fact be run in install mode is another question; as is whether chroot_tmpfs should be being used) Gbp-Dch: Short
2020-04-23remove some unwanted quoting of list parametersLyndon Brown
there are additional instances in binary_* scripts that are left here because they are covered by changes in MR #157 Gbp-Dch: Short
2020-04-23fix $@ parameter expansion issuesLyndon Brown
$@ when unquoted is subject to further word splitting. this fixes a bunch of instances where it was incorrectly being used unquoted. Gbp-Dch: Short
2020-04-23binary_iso: remove duplicate copying of grub binariesjnqnfe
these files are already copied into place in the binary_grub-pc script. Gbp-Dch: Short
2020-04-23grub-pc: fix broken boot capabilityLyndon Brown
Closes: #956131
2020-04-23grub-efi: fix partial broken boot capabilityadrian15
when used alongside syslinux and when a single kernel flavour is used, things work correctly. otherwise booting from EFI is broken. the problem comes from the fact that syslinux, for a single kernel flavour creates the file /live/vmlinuz, which is used by the minimal EFI grub.cfg to locate the device and partition containing the live image. when multiple kernel flavours are used, it instead creates /live/vmlinuz1, /live/vmlinuz2, etc. which thus is a problem. similarly when syslinux is not used, you are left only with long filenames for the kernel files, for example /live/vmlinuz-4.19.0-8-amd64. in these situations grub cannot find the device containing the image and thus fails to display the boot menu. the solution here, instead of dynamically changing the filename searched for depending upon bootloader configuration, switches to doing a search for the file /.disk/info instead. this file is generated by binary_disk, and is present for iso, iso-hybrid and hdd images types, though grub-efi cannot be used for the hdd type. it is not created for the netboot type, but again, grub-efi is not compatible with that anyway. it is not created for the tar type, which the grub-efi script does not block as incompatible, but is this not a mistake? furthermore, switching to searching for /.disk/info helps avoid issues for systems that happen to actually include a real /live/vmlinuz path other than on a removable live disk or CD/DVD, as is the case with a HP system discussed in #924053. this patch was written by adrian15sgd@gmail.com, as per the authorship, who attached it to the #924053 bug discussion. this commit message however has been re-written by jnqnfe@gmail.com, prior to submission via an MR, as part of the fix towards the issues reported in #956131. Gbp-Dch: Short Closes: #924053
2020-04-23grub2|loopback: define common targetLyndon Brown
Gbp-Dch: Ignore
2020-04-23grub2|loopback: extract memtest menu entry creation to config fileLyndon Brown
backwards compatibility: 1. the new file will be included alongside any user custom config 2. rather than replace MEMTEST with an actual config entry, we replace it with a line to import the content of the new file, and thus will work just as before. thus no backwards compatible breakage Gbp-Dch: Short
2020-04-23grub2|loopback: extract install menu entries to config filesLyndon Brown
backwards compatibility: 1. the new install.cfg and install_start.cfg files (chosen automatically from the install_*gui.cfg and install_*test.cfg files) will be included alongside any user custom config. 2. the placeholders are now replaced with lines importing these files thus everything will work just as before, i.e. no backwards compatibility breakage. Gbp-Dch: Short
2020-04-23grub2|loopback: move copying of files earlierLyndon Brown
necessary for changes in followup commits. Gbp-Dch: Short
2020-04-23syslinux: overwrite default files with user onesLyndon Brown
as just done for grub2|loopback the primary benefit here is that it means that user configs do not have to carry copies of all files; they just carry the ones they want to replace (or add). Gbp-Dch: Short
2020-04-23syslinux: simplificationLyndon Brown
`$_SOURCE` is always composed of `<foo>/${_BOOTLOADER}`, so we can just use `${_BOOTLOADER}` as the basename, without calling `basename ${_SOURCE}` Gbp-Dch: Ignore