diff options
author | u <u@billy> | 2023-11-17 11:24:32 -0500 |
---|---|---|
committer | u <u@billy> | 2023-11-17 11:25:58 -0500 |
commit | 7eda6b846463c19411efd2747d3c6c3b3b9d3566 (patch) | |
tree | 8d75cd8c58cdf599470a7c31bec4821cfbb994df | |
parent | de5ba932e8ed8b7c2842d360ce14da609836609e (diff) |
bookworm+ only from here on
-rw-r--r-- | fsmgr.hs | 55 | ||||
-rwxr-xr-x | selfstrap | 60 |
2 files changed, 71 insertions, 44 deletions
@@ -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" | 127 | observedCorrectListForBookworm = |
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 | ||
137 | buildRoot :: DiskImageConfig -> FilePath -> Action () | 166 | buildRoot :: DiskImageConfig -> FilePath -> Action () |
138 | buildRoot config@DiskImageConfig{..} finalOut = do | 167 | buildRoot config@DiskImageConfig{..} finalOut = do |
@@ -1,5 +1,6 @@ | |||
1 | #!/bin/bash | 1 | #!/bin/bash |
2 | set -e | 2 | set -e |
3 | set -o pipefail | ||
3 | 4 | ||
4 | debian_mirror=http://httpredir.debian.org/debian | 5 | debian_mirror=http://httpredir.debian.org/debian |
5 | debian_security_mirror=http://security.debian.org | 6 | debian_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 | ||
228 | bookworm_sources() | ||
229 | { | ||
230 | cat <<END | ||
231 | deb http://httpredir.debian.org/debian bookworm main contrib non-free non-free-firmware | ||
232 | deb http://httpredir.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware | ||
233 | deb http://httpredir.debian.org/debian bookworm-updates main contrib non-free non-free-firmware | ||
234 | deb http://httpredir.debian.org/debian bookworm-backports main contrib non-free non-free-firmware | ||
235 | END | ||
236 | } | ||
237 | |||
225 | write_sources_list() | 238 | write_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 | ||
260 | parse_apt_simul_line() | 253 | parse_apt_simul_line() |
@@ -493,6 +486,11 @@ required_packages=$(required_packages) && [ "$required_packages" ] || die 'faile | |||
493 | export LC_ALL=C | 486 | export LC_ALL=C |
494 | export DEBIAN_FRONTEND=noninteractive | 487 | export DEBIAN_FRONTEND=noninteractive |
495 | 488 | ||
489 | if ! (apt_ policy | (! grep 990)) | ||
490 | then | ||
491 | die "apt policy looks wrong" | ||
492 | fi | ||
493 | |||
496 | if [ "$REAL_APT_INSTALL" ]; then | 494 | if [ "$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: |