summaryrefslogtreecommitdiff
path: root/scripts/build/chroot_archives
AgeCommit message (Collapse)Author
2020-03-20archives: clarify varLyndon Brown
Gbp-Dch: Ignore
2020-03-20archives: explicitly pass along _PASS to Create_apt_sources_listLyndon Brown
Gbp-Dch: Ignore
2020-03-17stagefiles: s/Require_stagefile/Require_stagefiles/Lyndon Brown
this function takes one or more required stage fileS _plural_, and exits if any are missing (or at least it does now after the refactor). let's rename it to make things more clear Gbp-Dch: Short
2020-03-17stagefiles: further robustify with auto filenamesLyndon Brown
as suggested by Raphaël rather than have fixed stagefile filename strings at all in the scripts, use `$(basename $0)` to use the name of the script (which is the same for almost all cases anyway, and the stage files are supposed to be almost exclusively unique per-script). we can thus simplify things by determining the filename for most use cases within the functions themselves. this does change the file used by a couple of scripts, affecting backwards compatibility of executing live-build upon an existing partially or fully completed build: - binary_grub-pc used "binary_grub" - chroot_includes used "includes.chroot" care had to be taken for the following cases: - there are some cases like bootstrap_cache, source_debian and bootstrap_debootstrap which are dealing with more than one file, and/or otherwise a filename that is not specific to the script itself exactly, or should not be based upon its name. - some cases like chroot_cache, bootstrap_cache and chroot_install-packages need to append something to the end of the name depending upon which pass/action mode the script is being executed with. - furthermore in the bootstrap_cache case one of the filenames is used within the bootstrap_debootstrap and thus needs very careful handling to be certain that a change in filename of bootstrap_cache does not break bootstrap_debootstrap. Gbp-Dch: Short
2020-03-17stagefiles: simplify & robustifyLyndon Brown
- avoid all need to pass ".build/" path in stage file names into the functions - add a helper to remove a stage file (required to complete the above properly) - avoid duplicating filenames within scripts which makes them prone to mistakes (some instances of which I've actually encountered and had to fix) Gbp-Dch: Short
2020-03-13fix comment typoLyndon Brown
Gbp-Dch: Ignore
2020-03-13locks: tidy lock acquisitionjnqnfe
Combine the check+create done in each script. (The original functions are still callable as before, but a new combined `Aquire_lockfile` function can be called instead, as now used). Note, a further simplification could be done in removing the passing of the lock filename in as a parameter since every use of the functions is with ".lock". The lock functions already have a fallback to ".build/lock" though. Checking the history, the fallback used to be for a system wide lock, which was then replaced with this config-tree specific one. As long as that is not used implicitly by 3rd-party hooks then surely we are free to change the fallback to ".lock" and further remove passing in a name as a param...? history: db5d2b0dcdae96e712661605e17bc9875e224f9f 0aa8289a3773fd8a3885090b72622c2f95ab099c Gbp-Dch: Short Closes: #952918
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-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-10archives: fix typoLyndon Brown
introduced in ee2bbe45782f52d115115b8cf6198afaeb03be9e Gbp-Dch: Ignore
2020-03-10archives: always include enabled/disabled deb-src apt entriesLyndon Brown
LB_APT_SOURCE_ARCHIVES determines whether or not deb-src entries are desired to be included in apt's sources.list. here, instead of excuding them we always include them but commented out where they would previously have been excluded. this means that if a user later changes their mind and wants to make use of them all they have to do is uncomment them rather than add the necessary lines. Gbp-Dch: Short Closes: #952929
2020-03-10archives: simplificationLyndon Brown
as suggested by Raphaël Gbp-Dch: Short
2020-03-10help/usage: remove pointless varsLyndon Brown
build scripts never call Help() and so the empty HELP strings are pointless. (when called with --help they call Man()). Closes: #952859 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-09fix inadequate chroot_archives validationLyndon Brown
commit d74f2102a0849838eb4e15950b01d49f9f79392f added a validation check to chroot_archives for its 'pass' parameter. this was based upon finding an instance where the wrong value was being submitted to the script and wanting to ensure such mistakes would be caught. unfortunately it seems that I made a mistake in misremembering the facts surrounding the latter issue when constructing the validation check and failed to double check with testing until it was already merged. a correction is needed. the set of valid values is not limited to only 'source|binary' but actually 'source|binary|chroot'. I'd misremembered 'chroot' as being a completely invalid value.
2020-03-05cache: clarify and simplify package cache save/restorejnqnfe
These functions are specific to handling packages stored in the cache, not other files. They are also always used with the same `cache/packages.` prefix to the path. Gbp-Dch: Short Closes: #952916
2020-03-05archives: deduplicate apt sourcelist file constructionjnqnfe
Geez :O Gbp-Dch: Short Closes: #952889
2020-03-05help/usage: fix overly complex script description handlingjnqnfe
Closes: #952887
2020-03-05archives: fix mount local repo commentsjnqnfe
Closes: #952873
2020-03-05fix indentationLyndon Brown
including: - spaces replaced with tabs for consistency - alignment of `;;` in some case statements changed for consistency Gbp-Dch: Short Closes: #952857
2020-03-05archives: fix deb-src entry exclusionLyndon Brown
the sed commands were missing '-i' to actually modify the file (rather than output to stdout) Gbp-Dch: Short Closes: #952842
2020-03-05archives: add 'pass' param validation checkLyndon Brown
if this had already been in place then it would have caught bug #952837. Gbp-Dch: Short Closes: #952841
2020-03-05archives: fix incorrect usage stringLyndon Brown
Gbp-Dch: Ignore Closes #952839
2020-03-05archives: fix removal of chroot/root/packages.chroot package listjnqnfe
Gbp-Dch: Short Closes: #952838
2019-12-19Add local archive keys before configuring local package repositoryJohn Estabrook
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-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
2018-09-13copy keys to /etc/apt/trusted.gpg.d with appropriate extension for them to ↵Marcel Partap
not be ignored.
2018-06-03Avoid apt-key add and just drop the key in /etc/apt/trusted.gpg.dLuca Boccassi
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-02-23Fix build with local offline mirrorsLuca Boccassi
Commit a15b579652e64 (#775989) dropped an early exit from the chroot_archives remove step in case the parent mirror chroot and binary parameters are the same and introduced a regression, as with the following live-build now fails when the parent mirror is using a file:/ local apt repository (for example when the build worker is offline and uses a pre-built cache of packages). Example config: lb config --mirror-bootstrap "file:/pkgs" \ --mirror-chroot "file:/pkgs/" \ --mirror-binary "file:/pkgs" \ --parent-mirror-bootstrap "file:/pkgs" \ --parent-mirror-chroot "file:/pkgs/" \ --parent-mirror-binary "file:/pkgs" \ ... with /pkgs being a directory with the packages for the installation and the apt metadata (Packages/Sources/Release). The problem is that, with such a setup, the /pkgs directory is bind mounted inside the chroot as an optimisation in the install step, and umounted as one of the first actions in the remove step for chroot_archives. Before that fix, the script terminated immediately. But now it progresses and at the end it tries to run apt update inside the chroot which will fail since the repository directory has been umounted, and thus the packages and the apt metadata are no longer available, while still being listed in /etc/apt/sources.list. The proposed solution is to umount the local directory at the end of the remove step, rather than at the beginning. Closes: #891206
2016-11-28Drop an optimization in chroot_archives that has undesired side-effectsRaphaël Hertzog
Thanks to jnqnfe for the patch. Closes: #775989
2016-10-28Handle packages.chroot with an explicitly trusted file:// repositorySophie Brun
Up to now we created a temporary GPG key that we registered with apt-key but with the switch to GnuPG 2 by default, this code broke. Now we stop doing that but we add the “trusted=yes“ attribute in sources.list so that APT knows that the repository can be trusted even if it's unsigned. Signed-off-by: Raphaël Hertzog <hertzog@debian.org>
2015-08-10Updating stat calls to also give the right result in container setups, ↵Daniel Baumann
thanks to Kristian Klausen <klausenbusk@hotmail.com> (Closes: #789300).
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-01-04Updating year in copyright notices to 2015.Daniel Baumann
2015-01-04Changing package dependency checks within chroot to work outside as well.Daniel Baumann
2014-12-10Cleaning up from python removal (LIVE_IMAGE_PARENT_ARCHIVE_AREAS).Daniel Baumann
2014-12-10Bind local repository into chroot directory.Jan Blunck
If a local repository path is given as a mirror URL lets bind it into the chroot. The local repository will be unmounted while processing "remove" or latest by the exit function.
2014-12-10Correcting typo in apt.conf.d directory name, thanks to jnqnfe ↵Daniel Baumann
<jnqnfe@gmail.com> (Closes: #771392).
2014-12-10Cleaning up from python removal (LIVE_IMAGE_ARCHIVE_AREAS).Daniel Baumann
2014-12-10Cleaning up from python removal (LIVE_IMAGE_ARCHITECTURE).Daniel Baumann
2014-11-10Applying patch from Gabriele Gristina <gabriele.gristina@gmail.com> to fix ↵Daniel Baumann
automated checks for using aptitude.
2014-02-08Updating copyright notices for 2014.Daniel Baumann
2013-09-18Selectively remove chroot-only APT configuration and preferences instead of ↵Jan Blunck
wiping everything.
2013-09-18Remove chroot-only configured apt sources in chroot_archives remove.Jan Blunck
If an archive is configured with *.chroot extension remove it when deconfiguring chroot/etc/apt/sources.list.d directory.
2013-07-01Removing some leftovers in chroot_archives from --archives removal.Daniel Baumann
2013-06-25Dropping global archive definitions shipped in ↵Daniel Baumann
/usr/share/live/build/archives (same as with packagelists, hidden archive 'magic' is gone now in favour of explicit config tree configuration).
2013-05-06Dropping dedicated updates (formerly volatile) mirror handling, not needed ↵Daniel Baumann
anymore.
2013-05-06Dropping dedicated backports mirror handling, not needed anymore with the ↵Daniel Baumann
move of backports.d.o into ftp.d.o.