summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoru <u@billy>2023-11-17 11:24:32 -0500
committeru <u@billy>2023-11-17 11:25:58 -0500
commit7eda6b846463c19411efd2747d3c6c3b3b9d3566 (patch)
tree8d75cd8c58cdf599470a7c31bec4821cfbb994df
parentde5ba932e8ed8b7c2842d360ce14da609836609e (diff)
bookworm+ only from here on
-rw-r--r--fsmgr.hs55
-rwxr-xr-xselfstrap60
2 files changed, 71 insertions, 44 deletions
diff --git a/fsmgr.hs b/fsmgr.hs
index f3d7af0..d2c7100 100644
--- a/fsmgr.hs
+++ b/fsmgr.hs
@@ -119,20 +119,49 @@ aptListFiles AptListCfg{..} =
119 ("/var/lib/apt/lists" </>) . 119 ("/var/lib/apt/lists" </>) .
120 (replace "Translation-en" $ "Translation-" ++ translationLang) . 120 (replace "Translation-en" $ "Translation-" ++ translationLang) .
121 (replace "amd64" architecture) . 121 (replace "amd64" architecture) .
122 (if (releaseCodename == "stretch" || releaseCodename == "buster") 122 (if (releaseCodename == "bookworm") then id
123 then replace "-security" "_updates" <$> (replace "bullseye" releaseCodename) 123 else replace "bookworm" releaseCodename) <$>
124 else id) <$> observedCorrectListForBullseye 124 observedCorrectListForBookworm
125 where 125 where
126 observedCorrectListForBullseye = 126
127 [ "httpredir.debian.org_debian_dists_bullseye_InRelease" 127observedCorrectListForBookworm =
128 , "httpredir.debian.org_debian_dists_bullseye_main_binary-amd64_Packages" 128 [ "httpredir.debian.org_debian_dists_bookworm-backports_contrib_binary-amd64_Packages"
129 , "httpredir.debian.org_debian_dists_bullseye_main_i18n_Translation-en" 129 , "httpredir.debian.org_debian_dists_bookworm-backports_contrib_binary-i386_Packages"
130 , "security.debian.org_debian-security_dists_bullseye-security_InRelease" 130 , "httpredir.debian.org_debian_dists_bookworm-backports_contrib_i18n_Translation-en"
131 , "security.debian.org_debian-security_dists_bullseye-security_main_binary-amd64_Packages" 131 , "httpredir.debian.org_debian_dists_bookworm-backports_InRelease"
132 , "security.debian.org_debian-security_dists_bullseye-security_main_i18n_Translation-en" 132 , "httpredir.debian.org_debian_dists_bookworm-backports_main_binary-amd64_Packages"
133 , "security.debian.org_debian-security_dists_bullseye-security_non-free_binary-amd64_Packages" 133 , "httpredir.debian.org_debian_dists_bookworm-backports_main_binary-i386_Packages"
134 , "security.debian.org_debian-security_dists_bullseye-security_non-free_i18n_Translation-en" 134 , "httpredir.debian.org_debian_dists_bookworm-backports_main_i18n_Translation-en"
135 ] 135 , "httpredir.debian.org_debian_dists_bookworm-backports_non-free_binary-amd64_Packages"
136 , "httpredir.debian.org_debian_dists_bookworm-backports_non-free_binary-i386_Packages"
137 , "httpredir.debian.org_debian_dists_bookworm-backports_non-free_i18n_Translation-en"
138 , "httpredir.debian.org_debian_dists_bookworm_contrib_binary-amd64_Packages"
139 , "httpredir.debian.org_debian_dists_bookworm_contrib_binary-i386_Packages"
140 , "httpredir.debian.org_debian_dists_bookworm_contrib_i18n_Translation-en"
141 , "httpredir.debian.org_debian_dists_bookworm_InRelease"
142 , "httpredir.debian.org_debian_dists_bookworm_main_binary-amd64_Packages"
143 , "httpredir.debian.org_debian_dists_bookworm_main_binary-i386_Packages"
144 , "httpredir.debian.org_debian_dists_bookworm_main_i18n_Translation-en"
145 , "httpredir.debian.org_debian_dists_bookworm_non-free_binary-amd64_Packages"
146 , "httpredir.debian.org_debian_dists_bookworm_non-free_binary-i386_Packages"
147 , "httpredir.debian.org_debian_dists_bookworm_non-free-firmware_binary-amd64_Packages"
148 , "httpredir.debian.org_debian_dists_bookworm_non-free-firmware_binary-i386_Packages"
149 , "httpredir.debian.org_debian_dists_bookworm_non-free-firmware_i18n_Translation-en"
150 , "httpredir.debian.org_debian_dists_bookworm_non-free_i18n_Translation-en"
151 , "httpredir.debian.org_debian_dists_bookworm-updates_InRelease"
152 , "httpredir.debian.org_debian_dists_bookworm-updates_main_binary-amd64_Packages"
153 , "httpredir.debian.org_debian_dists_bookworm-updates_main_binary-i386_Packages"
154 , "httpredir.debian.org_debian_dists_bookworm-updates_main_i18n_Translation-en"
155 , "httpredir.debian.org_debian-security_dists_bookworm-security_contrib_binary-amd64_Packages"
156 , "httpredir.debian.org_debian-security_dists_bookworm-security_contrib_i18n_Translation-en"
157 , "httpredir.debian.org_debian-security_dists_bookworm-security_InRelease"
158 , "httpredir.debian.org_debian-security_dists_bookworm-security_main_binary-amd64_Packages"
159 , "httpredir.debian.org_debian-security_dists_bookworm-security_main_binary-i386_Packages"
160 , "httpredir.debian.org_debian-security_dists_bookworm-security_main_i18n_Translation-en"
161 , "httpredir.debian.org_debian-security_dists_bookworm-security_non-free-firmware_binary-amd64_Packages"
162 , "httpredir.debian.org_debian-security_dists_bookworm-security_non-free-firmware_binary-i386_Packages"
163 , "httpredir.debian.org_debian-security_dists_bookworm-security_non-free-firmware_i18n_Translation-en"
164 ]
136 165
137buildRoot :: DiskImageConfig -> FilePath -> Action () 166buildRoot :: DiskImageConfig -> FilePath -> Action ()
138buildRoot config@DiskImageConfig{..} finalOut = do 167buildRoot config@DiskImageConfig{..} finalOut = do
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: