Commit Graph

46 Commits

Author SHA1 Message Date
Roland Clobus 06d178aac0
Restore support for bullseye and bookworm
Bullseye and bookworm don't have the t64 packages, so the script checks
the availability of the suitable packages
2024-06-20 22:36:30 +02:00
Jan Kot 96fe9e7ca9 packages.sh: check for /etc/debian_version existance rather than dpkg-query aviability 2021-01-13 12:39:07 +00:00
Lyndon Brown 18eefdd6f3 s/Remove_package/Remove_packages/
it removes one or more, so should be plural for clarity

Gbp-Dch: Short
2020-05-05 19:55:28 +01:00
Lyndon Brown 919a464b64 s/Install_package/Install_packages/
it installs one or more, so should be plural for clarity

Gbp-Dch: Short
2020-05-05 19:55:28 +01:00
Lyndon Brown 9c8d26c97f packages: avoid unnecessary nesting
Gbp-Dch: Ignore
2020-05-05 19:55:28 +01:00
Lyndon Brown f27d13de08 make temporary state of installed tools recoverable
some scripts temporarily install packages to accomplish some work before
then removing them. the list of packages installed is kept in memory in a
variable.

a weakness of this design is that if a failure occurs or the user cancels,
and then following this the user re-runs `lb build`, letting it try to
pick up and recover from where it left off, that list of packages that had
been installed is lost, resulting in those packages that were installed
then being a permanent part of the chroot.

here we fix this weakness by backing up the list to a file, which is always
read from on removal. thus in a recovery situation, any packages still
installed from a situation like that just described, will be removed upon
the next use of `Remove_package()`.

this is not perfect, since we are having to wait for opportunistic
execution of the remove function. we need to find a suitable place for the
`Cleanup_temp_packages()` function to be used.

 - doing so in `Init_config_data()` would not be suitable because we don't
   hold the lock when that's run, even if we ignored the hijacking of that
   function for taking such action...
 - doing it in `Exit()` doesn't seem a good fit either.
 - putting it explicitly in every build script just seems a little messy...

perhaps a local exit trap like for removing the lock...?

note that `binary_rootfs` skips running the remove function after installing
tooling, since it just throws the wrapper chroot away, which then leaves the
file around with stale data for the next remove instance to pick up, which
then does not actually remove it because it's not installed. this is not
ideal either... perhaps the optimisation should be removed from that script?

Gbp-Dch: Short
2020-05-05 19:43:15 +01:00
johnraff 0e5d0483e5 Replace 'which' with 'command -v' to test for the existance of an executable
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-05-01 09:59:11 +00:00
Lyndon Brown f6a50b6db2 packages: remove auto-installed on removal
i've been noticing that in the binary_syslinux stage a wholebunch of
packages get installed whilst installing isolinux, and then upon removing
the installed packages at the end of the script, apt is listing a large
number of those that were auto installed as no longer in use and can be
removed via `apt autoremove`. this then persists through package
installation and removal steps throughout remaining scripts.

adding `--auto-remove` to `apt-get remove --purge` and similarly
`--purge-unused` to `aptitude purge` instructs apt to get rid of the unused
auto-installed packages at the same time as removing specific package that
brought them in in the first place, and thus resolves the problem.

Gbp-Dch: Short
2020-04-23 09:25:17 +00:00
Lyndon Brown c55eb8a0c3 use local scope for private function vars
all vars affected have been carefully checked to be quite certain
that they are definitely local

where variable is assigned the return value of a function/command, the
local "declaration" is deliberately done on a separate line, since
`local FOO` is actually treated itself as a command rather than a
declaration; will thus always cause $? to be zero, and thus if done on
the same line as such an assignment can not only clobber $? but in doing
so unintentionally blocks failure of a command from triggering the
expected exit from having `set -e`.

also, from testing, i have found that when assigning "${@}" this must be
done on a separate line confusingly as otherwise an error occurs.

Gbp-Dch: Short
2020-03-16 22:10:03 +00:00
Luca Boccassi 015e6b65f3 Revert "Test for executables: replace 'which' with more robust 'command -v'"
This reverts commit 2d9ab1f7f8.

Causes test failure due to bashism.
2020-03-12 12:32:26 +00:00
johnraff 2d9ab1f7f8 Test for executables: replace 'which' with more robust 'command -v'
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-12 10:35:57 +00:00
Lyndon Brown 7a4a9f94b8 amend copyright & licensing blocks
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 674794a8f4 and
   36a3ba7634 so I similarly added a
   debian live copyright line.
 - 'grub-cpmodules' is similar. it was only changed by the indentation fix
   of 36a3ba7634 but modification is
   modification, and this does help cover any possible future changes that
   might be made.
2020-03-11 13:51:19 +00:00
Lyndon Brown f1647f0dac functions: consistency fix
missed in 7ee59d408e

Gbp-Dch: Ignore
2020-03-11 09:56:53 +00:00
Luca Boccassi 08dd0b90db Print an error and exit if a host package (dependency) is missing.
Check_package will just add a missing dependency to the LB_PACKAGES
todo list if it doesn't find it, when build-with-chroot is true, even if
the check was not for the chroot.
Instead error out if the check is not done for the chroot, e.g.
Check_package host /bin/foo foo
2018-04-05 16:24:36 +01:00
Matthijs Kooijman 5ca1ded228 Error out when needed packages are missing on the host
Previously, Check_package would only show an error when host packages
are missing on a non-apt system. On apt system, the packages would be
added to _LB_PACKAGES, which causes them to be installed in the chroot,
not in the host (or not at all if Install_package is not called). This
behaviour could break the build.

This applies to either packages that must be present in the host (as
checked with `Check_package host ...`), as well as packages that can be
either in the chroot or host (as checked with `Check_package chroot`)
when LB_BUILD_WITH_CHROOT=false.
2017-09-01 10:22:02 +02:00
Raphaël Hertzog 02d933fc17 Fix Check_installed function when checking against host
Thanks to jnqnfe for the report.

Closes: #774807
2016-11-28 22:50:46 +01:00
Daniel Baumann 242aef5d83 Updating year in copyright notices to 2015. 2015-01-04 20:05:44 +01:00
Daniel Baumann fdc9250bca Changing package dependency checks within chroot to work outside as well. 2015-01-04 18:19:47 +01:00
Daniel Baumann eb336bb782 Updating copyright notices for 2014. 2014-02-08 17:47:24 +01:00
Daniel Baumann 59ce459f40 Removing all references to my old email address. 2013-05-06 14:50:06 +02:00
Daniel Baumann 62d94a4454 Updating year in all copyright notices. 2013-05-06 14:50:03 +02:00
Daniel Baumann d1047e809a Adding debian version 4.0~a1-1. 2013-05-06 14:48:46 +02:00
Daniel Baumann a203b86fdd Updating year in all copyright notices. 2013-01-01 00:13:01 +01:00
Daniel Baumann 508510e097 Updating GPL standard header in all files. 2012-07-30 18:19:27 +02:00
Daniel Baumann 822dc2c028 Updating year in copyright notices for 2012. 2012-02-06 23:15:12 +01:00
Daniel Baumann 18eeaae602 Updating year in hooks and script files. 2011-03-09 19:20:42 +01:00
Daniel Baumann c5c3f6133a Adding debian version 3.0~a1-1. 2011-03-09 19:19:23 +01:00
Daniel Baumann 2ddc0cef5d Updating year in manpage, hooks, script and template files. 2011-03-09 19:17:33 +01:00
Daniel Baumann 83bc63f725 Updating internal variables from lh to lb scheme, should be the last piece to finish the live-helper to live-build rename. 2011-03-09 19:17:21 +01:00
Daniel Baumann 4d22ca948a Updating copyright headers for live-build. 2011-03-09 19:17:18 +01:00
Daniel Baumann 36bddd25da Renaming --chroot-build to --build-with-chroot. 2011-03-09 19:17:09 +01:00
Daniel Baumann 54518852c8 Updating year to 2010 in copyright notices. 2011-03-09 19:17:04 +01:00
Daniel Baumann 701b5affd4 For consistency, using true|false instead of enabled|disabled in configuration options. 2011-03-09 19:17:03 +01:00
Cody A.W. Somerville 5239579ad0 Also respecting general apt/aptitude options for the install functions used during binary stage. 2011-03-09 19:09:44 +01:00
Daniel Baumann 989f26d87b Updating year in copyright notices for 2009. 2011-03-09 19:09:40 +01:00
Daniel Baumann 37d2fb4b0f Don't use set -e in sourced functions, this is the job of the actual executed script. 2011-03-09 19:03:43 +01:00
Daniel Baumann 1c1e7db6c4 Generalizing internal Chroot(); by requiring its first argument to be the chroot directory. 2011-03-09 19:03:43 +01:00
Daniel Baumann d0bd7bc265 Using internal prefix for PACKAGES variable in function/packages.sh (Closes: #468900). 2011-03-09 19:03:40 +01:00
Tiago Bortoletto Vaz 6205a24620 Adding last modifications in order to have localization fully working in live-helper. This commit goes with some pt_BR translations just for testing. Thanks to Antonio Terceiro for helping and coding in some shell stuff. 2011-03-09 19:03:38 +01:00
Chris Lamb c742448209 Use APT::Install-Recommends to disable installation of recommends for Etch 2011-03-09 19:03:33 +01:00
Chris Lamb 08a0bc7155 Don't install "Recommends:" when installing local tools
This patch disables the installation of "Recommends:" packages whilst
obtaining build utilities such as 'syslinux'.

It has three benefits:

 * Doesn't waste time installing useless packages whilst building.

 * Keeps the "binary chroot" clean - packages leak into the the live system
   on a rebuild.

 * Makes the behaviour of Install_Package more predictable and independent
   of the chroot's APT configuration.
2011-03-09 19:03:32 +01:00
Daniel Baumann c5a91189a0 Updating copyright years to 2008. 2011-03-09 19:01:41 +01:00
Daniel Baumann 342d2870eb Consistently using the pipe as seperator in sed commands now. 2011-03-09 18:35:39 +01:00
Daniel Baumann f2734daf0a Replacing backticks with POSIX expression. 2011-03-09 18:22:27 +01:00
Daniel Baumann 0d0de885e3 Adding live-helper 1.0~a22-1. 2011-03-09 18:22:26 +01:00
Daniel Baumann c68c0a2708 Adding live-helper 1.0~a21-1. 2011-03-09 18:22:26 +01:00