summaryrefslogtreecommitdiff
path: root/scripts/build/config
AgeCommit message (Collapse)Author
2021-02-17Use --apt-http-proxy/--apt-ftp-proxy for debootstrapRyan Finnie
2020-10-27Added the option to include files before and after package installationThore Sommer
Moved includes.chroot to includes.chroot_after_packages and added includes.chroot_before_packages. includes.chroot does still work as before. We also now use rsync for copying files if it is installed. This improves runtime and space consumption for large includes. Gbp-Dch: Short Closes: #927128
2020-10-12Add option to change compression algorithm and level for squashfs.Thore Sommer
2020-05-05Revert "config: catch and report unexpected arguments"Lyndon Brown
This reverts commit 665372c19d7f54b5cfb92aaf313b7df9570f6191. the kali test failed due to their script using a hack of passing along a custom option after an early terminator through to their auto/config file. the change implemented here was valuable, but i'll have to look into revising things to work with what Kali is doing. Gbp-Dch: Ignore
2020-05-05config: catch and report unexpected argumentsLyndon Brown
after handling arguments, catch and report any remaining "non-option" arguments. for instance users could make the basic mistake of using `lb config --bootloaders syslinux grub-efi`, i.e. failing to quote the multiple bootloaders (i actually encountered a user doing this who swore that "it just worked"). catching and reporting such mistakes could be valuable to users. previous behaviour: ``` $ lb config --bootloaders syslinux grub-efi P: Updating config tree for a debian/buster/amd64 system P: Symlinking hooks... ``` new behaviour: ``` $ lb config --bootloaders syslinux grub-efi [2020-05-05 18:56:07] lb config --bootloaders syslinux grub-efi E: Unexpected argument found: grub-efi ``` Gbp-Dch: Short
2020-05-04config: improve BIOS/EFI bootloader selection handlingLyndon Brown
the design choice from when EFI support was introduced was to change `--bootloader` to `--bootloaders`, with users specifying their selection of BIOS and EFI bootloaders together. at this time there were not even any decent validation checks being performed, and invalid combinations could cause some chaos. since then proper validation was put in place, including checking that only a single instance of each of BIOS and EFI bootloaders exists in the selection. here we tweak things such that we stick with the same option, but we split the selection up such that we store the BIOS and EFI selections separately within the saved config file, and offer it up to scripts to help simplify those scripts. we must however retain support for splitting from the combined option, both because we still use it in the combined option, and for backwards compatibility with older saved configs. Gbp-Dch: Short
2020-05-03config: provide UTC timestamp controlLyndon Brown
`DATE_UTC_OPTION` is set in `Prepare_config()` for use by scripts, even though only a few scripts will actually use it, since it allows those scripts to be cleaner. we may want to possibly extend this as a `DATE_OPTIONS` variable perhaps as part of enabling proper reproduciblity. Gbp-Dch: Short
2020-05-03config: fix storage of --jffs2-eraseblock valueLyndon Brown
broken since it's introduction in 9ffb223d703a4bbb76e5278e59b3cc183f2f1aca Gbp-Dch: Short
2020-05-03config: small output alignment fixLyndon Brown
Gbp-Dch: Ignore
2020-05-03fix usage/help/man bugsLyndon Brown
- the definition of $PROGRAM as used in $USAGE strings defined in each script has been broken for a long time, being simply "lb" when it needs to be "lb COMMAND". - `config` changed $PROGRAM to "lb config" thus its output was correct in this regard unlike everything else, but with the switch to a more "intelligent" `Man()` function recently, it means that instead of `man lb config`, what was actually run was `man lb config config`, which displayed the manpage, then on exiting with `q`, it showed some sort of index line todo with a "config" search (no exact manpage match?), for which you had to enter `ctrl+c` to get rid of. this revises things to fix the issues, minimising change by changing $PROGRAM to "lb COMMAND", with the frontend overriding this. Gbp-Dch: Ignore
2020-05-02options: de-duplicate common option handlingLyndon Brown
2020-05-02config: refactor basic package list constructionLyndon Brown
Gbp-Dch: Ignore
2020-05-02improve stagefiles encapsulationLyndon Brown
- added and used Stagefiles_dir() - added and used Stagefile_exists() pretty self explanatory. Gbp-Dch: Short
2020-05-02move and rename Common_config_files()Lyndon Brown
for better encapsulation, and for consistency with other config file handling functions in the new location. Gbp-Dch: Ignore
2020-05-01Replace 'which' with 'command -v' to test for the existance of an executablejohnraff
This is considered to be more robust. Two instances remain: scripts/build/chroot_archives, line 257: if [ "${LB_APT}" = "aptitude" ] && [ ! $(Chroot chroot "which aptitude") ] The command is run inside a chroot where the environment might be special, and would need further testing. manpages/Makefile, line 42: @if [ ! -x "$$(which po4a 2>/dev/null)" ]; \ I am insufficiently familiar with makefile syntax to edit this.
2020-04-30config: optimise --ignore-system-defaultsLyndon Brown
Gbp-Dch: Ignore
2020-04-29a couple tiny doc fixesLyndon Brown
Gbp-Dch: Ignore
2020-04-28fix auto file handling regressionLyndon Brown
b4598b234c90b6d1c93bd64166d4aa46ce9388bb mistakenly stopped passing along options to auto files. Gbp-Dch: Ignore
2020-04-24Replace "Help" calls with "Man" and get rid of HelpRaphaël Hertzog
2020-04-24Revert "frontend: properly handle option processing"Raphaël Hertzog
This reverts commit 6b7c8ed4bf15175299729355f04d60dcbac1aded as it's breaking multi-value space-separated parameters.
2020-04-24config: tidy directory construction and empty directory cleaningLyndon Brown
2020-04-24config: tidy config filesLyndon Brown
2020-04-23config: s/LIVE_IMAGE_TYPE/LB_IMAGE_TYPE/Lyndon Brown
no backwards compatibility hack for reading the old var from existing saved config used because this was previously stored in the alternate format config/build file. Gbp-Dch: Short
2020-04-23config: s/LIVE_IMAGE_NAME/LB_IMAGE_NAME/Lyndon Brown
no backwards compatibility hack for reading the old var from existing saved config used because this was previously stored in the alternate format config/build file. Gbp-Dch: Short
2020-04-23config: s/LIVE_CONFIGURATION_VERSION/LB_CONFIGURATION_VERSION/Lyndon Brown
2020-04-23config: address fixmeLyndon Brown
these options are not internal, they are user controllable Gbp-Dch: Short
2020-04-23config: remove obsolete variableLyndon Brown
2020-04-23config: revert partial format conversionLyndon Brown
back in v4.0~a6-1 a transition process was started to move the live-build config to a new format. the new format was INI style, and required parsing functions to read/write values, compared to the existing format which was just shell script code setting variables. this partial transition is the explanation for the existence of the `New_configuration()` function, and understanding this is important to understanding the purpose of it - it is not in fact intended for creating a new configuration, it is just related to the new config format transition. the positives of the new format were that it was somewhat cleaner looking, while the negative was the terrible relative efficiency. the file `config/build` was created to hold options in this new format. the transition was only ever completed for a handful of config options: - architecture - archive areas and parent archive areas - live image name - live image type a 'configuration version' attribute was also saved, which is not used by anything. the bootstrap-mirror and parent-bootstrap-mirror attributes are pointlessly stored in it seemingly resulting from work done in v4.0~a17-1. (they are also stored in another config file from which the value is actually used). it in fact seems to have been a source of confusion for Raphaël in authoring 44b9b0a6501476de594ce3783cea5df0c141478c, since the new `[parent]-distribution-{chroot|binary}` options it introduced were stored both in `config/bootstrap` and in `config/build`, while only used from the former. i expect, understandably, that he thought that `config/build` was just an information file. Gbp-Dch: Short
2020-04-23config: create config/bootloaders directoryLyndon Brown
to help users know that this is where they can put custom bootloader configs, just as other directories are created for them. Gbp-Dch: Short
2020-04-23tidy version reported in `lb config --dump`Lyndon Brown
live-build might be run from a local folder rather than the system installation, so the dpkg version number should not override the version picked up from VERSION if we care about the possibility of the installed package version potentially differing from the version of the git checkout, or whatever, then this should be printed alongside it, as now done. Gbp-Dch: Ignore [Raphaël Hertzog: tweak to apply on top of my changes]
2020-04-23Use descriptive parameter names for Usage()Raphaël Hertzog
2020-04-23usage: take exit code as paramLyndon Brown
thus it can correctly indicate success/fail status instead of always indicating failure. when a user asks for usage with -u|--usage then we should exit in success mode rather than failure as when usage in printed in response to incorrect usage. Gbp-Dch: Short
2020-04-23frontend: properly handle option processingLyndon Brown
this means that the usage goes from: lb {-h|--help|-u|--usage|-v|--version} lb COMMAND [OPTIONS] to: lb {-h|--help|-u|--usage|-v|--version} lb [FRONTEND_OPTIONS] COMMAND [COMMAND_OPTIONS] though it is probably not worth is to update the description in the manpages...? hmm... so for instance this matters for color control with --color|--no-color (you already had full control via environment vars). previously you could do `lb COMMAND --no-color` to turn off colour, only to find that output at the frontend level was still coloured (the option is processed at the command context level, not the frontend), so you might try to instead use `lb --no-color COMMAND`, only to find that this was not supported. Well now it is, and used at the frontend level will fully control colour output (after the command is processed anyway). the full set of common options are thus available (except --force) at the frontend level, and thus for instance all Echo_*() helpers used in the frontend will work correctly after args are processed. furthermore usage like `lb --color --help` will actually work. (not that color is used there, but this previously would have failed with the frontend treating the `--color` argument as the command; that's the point!) Gbp-Dch: Short
2020-04-23rename LB_BOOTSTRAP_QEMU_ARCHITECTURES to LB_BOOTSTRAP_QEMU_ARCHITECTURELyndon Brown
2020-04-23rename LB_ARCHITECTURES to LB_ARCHITECTURELyndon Brown
this was previously not done in 8b109ffb96282a6dd1aa5d61aa935bcba69c56f1 to keep the renaming simple, but leaving the variable plural is a cause for confusion. since this property is stored in the INI style config/build config file rather than a shell script based one, at the property there is already singular, there was no need for a backwards compatibility hack. Gbp-Dch: Short
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-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