Builder for live images based on Debian
Go to file
Lyndon Brown 6cec4a7a74 exit: fix no /usr/bin/env error
if you execute the bootstrap stage with no internet connection, you get
the following output:

```
[2020-03-10 19:18:46] lb bootstrap
P: Setting up clean exit handler
[2020-03-10 19:18:46] lb bootstrap_cache restore
[2020-03-10 19:18:46] lb bootstrap_debootstrap
P: Begin bootstrapping system...
P: If the following stage fails, the most likely cause of the problem is with your mirror configuration or a caching proxy.
P: Running debootstrap (download-only)...
I: Retrieving InRelease
I: Retrieving Release
E: Failed getting release file http://deb.debian.org/debian/dists/buster/Release
P: Begin unmounting filesystems...
P: Saving caches...
chroot: failed to run command ‘/usr/bin/env’: No such file or directory
```

the last line looked suspicious. investigating it turns out that there was
a deficiency in the exit handler.

when debootstrap fails to download what it needs due to lack of a
connection, that failure due to `set -e` causes the Exit() handler to kick
in. Part of this includes outputting the "Saving caches..." line, before
then making a call to Save_package_cache(). That in turn runs the following
command:
```
Chroot chroot "apt-get autoclean" || true
```
The Chroot() function includes a line starting with:
```
${_LINUX32} chroot "${CHROOT}" /usr/bin/env
```
which is the source of the last output line.

the reason we see this unexpected output is that with bootstrapping having
failed, there is no /usr/bin/env within the chroot so it is bound to fail.

the fact is, the exit handler has no business trying to pretty much
anything that it does if the bootstrap_debootstrap stage has not
completed.

this implements such a restriction and thus resolves the problem of this
unexpected and confusing output in the described situation.

we will now see:
```
[2020-03-10 19:18:46] lb bootstrap
P: Setting up clean exit handler
[2020-03-10 19:18:46] lb bootstrap_cache restore
[2020-03-10 19:18:46] lb bootstrap_debootstrap
P: Begin bootstrapping system...
P: If the following stage fails, the most likely cause of the problem is with your mirror configuration or a caching proxy.
P: Running debootstrap (download-only)...
I: Retrieving InRelease
I: Retrieving Release
E: Failed getting release file http://deb.debian.org/debian/dists/buster/Release
```
2020-03-11 09:55:37 +00:00
data/debian-cd We should add buster for release 2019-02-17 14:51:24 +00:00
debian Fix Lintian Warnings about changelog: day-of-week, trailing whitespace 2020-03-05 21:23:54 +00:00
examples Updating example gitignore file. 2015-04-29 08:11:39 +02:00
frontend fix consistency in binary execution and existance checking 2020-03-09 10:51:11 +00:00
functions exit: fix no /usr/bin/env error 2020-03-11 09:55:37 +00:00
manpages config: rename --architectures to --architecture 2020-03-05 20:39:53 +00:00
scripts source: fix apt warnings 2020-03-10 18:11:21 +00:00
share hooks: run bin without explicit path 2020-03-10 13:59:01 +00:00
COPYING Switching to GPL3+. 2011-03-09 18:22:29 +01:00
Makefile fix capitalisation of some output messages 2020-03-05 20:36:54 +00:00