-
Notifications
You must be signed in to change notification settings - Fork 178
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Deprecate Debian 10 Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com> * Change debootstrap Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com> * Remove buster from checks Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com> * Update bullseye Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com> --------- Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com>
- Loading branch information
Showing
9 changed files
with
233 additions
and
239 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
buster | ||
bullseye |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,226 @@ | ||
mirror_style release | ||
download_style apt | ||
finddebs_style from-indices | ||
variants - container fakechroot | ||
keyring /usr/share/keyrings/debian-archive-keyring.gpg | ||
|
||
if doing_variant fakechroot; then | ||
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started" | ||
fi | ||
|
||
case $ARCH in | ||
alpha|ia64) LIBC="libc6.1" ;; | ||
kfreebsd-*) LIBC="libc0.1" ;; | ||
hurd-*) LIBC="libc0.3" ;; | ||
*) LIBC="libc6" ;; | ||
esac | ||
|
||
work_out_debs () { | ||
# adduser in case users want to add a user to run as non-root | ||
# base-files as it has many important files | ||
# base-passwd to get user account info | ||
# bash because users will often shell in | ||
# bsdutils because it has some commands used in postinst | ||
# - particularly `logger` for `mysql-server` see | ||
# https://github.com/bitnami/minideb/issues/16 | ||
# coreutils for many very common utilities | ||
# dash for a shell for scripts | ||
# debian-archive-keyring to verify apt packages | ||
# diffutils for diff as required for installing the system | ||
# (could maybe be removed after, but diffing is pretty common in debugging) | ||
# dpkg for dpkg | ||
# findutils for find as required for installing the system | ||
# grep as it is a very common debugging tool | ||
# gzip as decompressing zip is super common | ||
# hostname ? | ||
# libc-bin for ldconfig | ||
# login as su maybe used if run as non root (?) | ||
# lsb-base ? | ||
# mawk as it is used by dpkg | ||
# ncurses-base for terminfo files as docker sets TERM=xterm | ||
# see https://github.com/bitnami/minideb/issues/17 | ||
# passwd for managing user accounts if run as non-root. | ||
# sed as a very commonly used tool | ||
# sysv-rc for update-rc.d, required when installing initscripts in postinsts | ||
# tar as uncompressing tarballs is super common when installing things. | ||
# tzdata for handling timezones | ||
# util-linux for getopt | ||
# mount is required for mounting /proc during debootstrap | ||
required="adduser base-files base-passwd bash bsdutils coreutils dash debian-archive-keyring diffutils dpkg findutils grep gzip hostname init-system-helpers libc-bin login lsb-base mawk ncurses-base passwd sed sysv-rc tar tzdata util-linux mount" | ||
|
||
base="apt" | ||
|
||
if doing_variant fakechroot; then | ||
# ldd.fake needs binutils | ||
required="$required binutils" | ||
fi | ||
|
||
case $MIRRORS in | ||
https://*) | ||
base="$base apt-transport-https ca-certificates" | ||
;; | ||
esac | ||
} | ||
|
||
first_stage_install () { | ||
extract $required | ||
|
||
mkdir -p "$TARGET/var/lib/dpkg" | ||
: >"$TARGET/var/lib/dpkg/status" | ||
: >"$TARGET/var/lib/dpkg/available" | ||
|
||
setup_etc | ||
if [ ! -e "$TARGET/etc/fstab" ]; then | ||
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab" | ||
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab" | ||
fi | ||
|
||
setup_devices | ||
|
||
x_feign_install () { | ||
local pkg="$1" | ||
local deb="$(debfor $pkg)" | ||
local ver="$(extract_deb_field "$TARGET/$deb" Version)" | ||
|
||
mkdir -p "$TARGET/var/lib/dpkg/info" | ||
|
||
echo \ | ||
"Package: $pkg | ||
Version: $ver | ||
Maintainer: unknown | ||
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status" | ||
|
||
touch "$TARGET/var/lib/dpkg/info/${pkg}.list" | ||
} | ||
|
||
x_feign_install dpkg | ||
} | ||
|
||
second_stage_install () { | ||
setup_dynamic_devices | ||
|
||
x_core_install () { | ||
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@") | ||
} | ||
|
||
p () { | ||
baseprog="$(($baseprog + ${1:-1}))" | ||
} | ||
|
||
if doing_variant fakechroot; then | ||
setup_proc_fakechroot | ||
else | ||
setup_proc | ||
in_target /sbin/ldconfig | ||
fi | ||
|
||
DEBIAN_FRONTEND=noninteractive | ||
DEBCONF_NONINTERACTIVE_SEEN=true | ||
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN | ||
|
||
baseprog=0 | ||
bases=7 | ||
|
||
p; progress $baseprog $bases INSTCORE "Installing core packages" #1 | ||
info INSTCORE "Installing core packages..." | ||
|
||
p; progress $baseprog $bases INSTCORE "Installing core packages" #2 | ||
ln -sf mawk "$TARGET/usr/bin/awk" | ||
x_core_install base-passwd | ||
x_core_install base-files | ||
p; progress $baseprog $bases INSTCORE "Installing core packages" #3 | ||
x_core_install dpkg | ||
|
||
if [ ! -e "$TARGET/etc/localtime" ]; then | ||
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime" | ||
fi | ||
|
||
if doing_variant fakechroot; then | ||
install_fakechroot_tools | ||
fi | ||
|
||
p; progress $baseprog $bases INSTCORE "Installing core packages" #4 | ||
x_core_install $LIBC | ||
|
||
p; progress $baseprog $bases INSTCORE "Installing core packages" #5 | ||
x_core_install perl-base | ||
|
||
p; progress $baseprog $bases INSTCORE "Installing core packages" #6 | ||
rm "$TARGET/usr/bin/awk" | ||
x_core_install mawk | ||
|
||
p; progress $baseprog $bases INSTCORE "Installing core packages" #7 | ||
if doing_variant -; then | ||
x_core_install debconf | ||
fi | ||
|
||
baseprog=0 | ||
bases=$(set -- $required; echo $#) | ||
|
||
info UNPACKREQ "Unpacking required packages..." | ||
|
||
exec 7>&1 | ||
|
||
smallyes '' | | ||
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \ | ||
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 || echo EXITCODE $?) | | ||
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING | ||
|
||
info CONFREQ "Configuring required packages..." | ||
|
||
echo \ | ||
"#!/bin/sh | ||
exit 101" > "$TARGET/usr/sbin/policy-rc.d" | ||
chmod 755 "$TARGET/usr/sbin/policy-rc.d" | ||
|
||
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL" | ||
echo \ | ||
"#!/bin/sh | ||
echo | ||
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon" | ||
chmod 755 "$TARGET/sbin/start-stop-daemon" | ||
|
||
setup_dselect_method apt | ||
|
||
smallyes '' | | ||
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \ | ||
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 || echo EXITCODE $?) | | ||
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING | ||
|
||
baseprog=0 | ||
bases="$(set -- $base; echo $#)" | ||
|
||
info UNPACKBASE "Unpacking the base system..." | ||
|
||
setup_available $required $base | ||
done_predeps= | ||
while predep=$(get_next_predep); do | ||
# We have to resolve dependencies of pre-dependencies manually because | ||
# dpkg --predep-package doesn't handle this. | ||
predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps") | ||
# XXX: progress is tricky due to how dpkg_progress works | ||
# -- cjwatson 2009-07-29 | ||
p; smallyes '' | | ||
in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep) | ||
base=$(without "$base" "$predep") | ||
done_predeps="$done_predeps $predep" | ||
done | ||
|
||
smallyes '' | | ||
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \ | ||
dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 || echo EXITCODE $?) | | ||
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING | ||
|
||
info CONFBASE "Configuring the base system..." | ||
|
||
smallyes '' | | ||
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be re-attempted up to five times." "" \ | ||
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 || echo EXITCODE $?) | | ||
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING | ||
|
||
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon" | ||
rm -f "$TARGET/usr/sbin/policy-rc.d" | ||
|
||
progress $bases $bases CONFBASE "Configuring base system" | ||
info BASESUCCESS "Base system installed successfully." | ||
} |
Oops, something went wrong.