summaryrefslogtreecommitdiff
path: root/selfstrap
diff options
context:
space:
mode:
Diffstat (limited to 'selfstrap')
-rwxr-xr-xselfstrap60
1 files changed, 29 insertions, 31 deletions
diff --git a/selfstrap b/selfstrap
index 4aa6ef9..611042b 100755
--- a/selfstrap
+++ b/selfstrap
@@ -1,5 +1,6 @@
1#!/bin/bash 1#!/bin/bash
2set -e 2set -e
3set -o pipefail
3 4
4debian_mirror=http://httpredir.debian.org/debian 5debian_mirror=http://httpredir.debian.org/debian
5debian_security_mirror=http://security.debian.org 6debian_security_mirror=http://security.debian.org
@@ -98,7 +99,6 @@ apt_()
98 99
99 set -- "$@" -o Apt::Install-Recommends=false 100 set -- "$@" -o Apt::Install-Recommends=false
100 set -- "$@" -o Apt::Architecture="$target_arch" 101 set -- "$@" -o Apt::Architecture="$target_arch"
101 set -- "$@" -o Apt::Default-Release="$target_release"
102 102
103 # Set default paths to within the created system. 103 # Set default paths to within the created system.
104 set -- "$@" -o Dir="$TARGET" 104 set -- "$@" -o Dir="$TARGET"
@@ -125,7 +125,10 @@ apt_()
125 # Avoid deleting lists on the calling system. 125 # Avoid deleting lists on the calling system.
126 set -- "$@" -o APT::Get::List-Cleanup=false 126 set -- "$@" -o APT::Get::List-Cleanup=false
127 127
128 set -- apt-"${apt_cmd}" "$@" 128 case "${apt_cmd}" in
129 get | cache ) set -- apt-"${apt_cmd}" "$@" ;;
130 * ) set -- apt "${apt_cmd}" "$@" ;;
131 esac
129 if command -v eatmydata >/dev/null 132 if command -v eatmydata >/dev/null
130 then 133 then
131 set -- eatmydata -- "$@" 134 set -- eatmydata -- "$@"
@@ -222,39 +225,29 @@ populate_rootfs()
222 install_devices 225 install_devices
223} 226}
224 227
228bookworm_sources()
229{
230cat <<END
231deb http://httpredir.debian.org/debian bookworm main contrib non-free non-free-firmware
232deb http://httpredir.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
233deb http://httpredir.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
234deb http://httpredir.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
235END
236}
237
225write_sources_list() 238write_sources_list()
226{ 239{
227 local dest="$TARGET"/etc/apt/sources.list 240 local dest="$TARGET"/etc/apt/sources.list
241 local dest_aptconf="$TARGET"/etc/apt/apt.conf.d/default-release
228 [ ! "$REWRITE_SOURCES_LIST" -a -e "$dest" ] && return 242 [ ! "$REWRITE_SOURCES_LIST" -a -e "$dest" ] && return
229 printf 'APT::Default-Release "%s";\n' "$target_release" > "$TARGET"/etc/apt/apt.conf.d/default-release 243 case "$target_release"
230 ( 244 in
231 if [ "$target_release" = stretch -o "$target_release" = buster ] 245 bookworm)
232 then 246 bookworm_sources | column -t > "$dest"
233 _updates='/updates ' 247 : > "$dest_aptconf"
234 else 248 ;;
235 _updates='-security' 249 *) "die unrecognized target release: $target_release" ;;
236 fi 250 esac
237 if [ "$target_release" ]
238 then
239 printf '%s\n' \
240 "deb ${debian_mirror} ${target_release} main contrib non-free" \
241 "deb ${debian_mirror} ${target_release}-backports main contrib non-free" \
242 "deb ${debian_security_mirror} ${target_release}$_updates main contrib non-free"
243 fi
244 if apt-cache policy 2>/dev/null | grep -q ' sid/'
245 then
246 printf '%s\n' \
247 "deb ${debian_mirror} sid main contrib non-free"
248 fi
249 if [ "$target_release" = stretch ]
250 then
251 printf '%s\n' \
252 "deb ${debian_mirror} buster main contrib non-free" \
253 "deb ${debian_mirror} buster-backports main contrib non-free" \
254 "deb ${debian_security_mirror} buster/updates main contrib non-free"
255
256 fi
257 ) | column -t > "$dest"
258} 251}
259 252
260parse_apt_simul_line() 253parse_apt_simul_line()
@@ -493,6 +486,11 @@ required_packages=$(required_packages) && [ "$required_packages" ] || die 'faile
493export LC_ALL=C 486export LC_ALL=C
494export DEBIAN_FRONTEND=noninteractive 487export DEBIAN_FRONTEND=noninteractive
495 488
489if ! (apt_ policy | (! grep 990))
490then
491 die "apt policy looks wrong"
492fi
493
496if [ "$REAL_APT_INSTALL" ]; then 494if [ "$REAL_APT_INSTALL" ]; then
497 # Some files need to be present before 'apt-get install' can install anything. 495 # Some files need to be present before 'apt-get install' can install anything.
498 # In particular: 496 # In particular: