From 7eda6b846463c19411efd2747d3c6c3b3b9d3566 Mon Sep 17 00:00:00 2001 From: u Date: Fri, 17 Nov 2023 11:24:32 -0500 Subject: bookworm+ only from here on --- fsmgr.hs | 55 ++++++++++++++++++++++++++++++++++++++++++------------- selfstrap | 60 +++++++++++++++++++++++++++++------------------------------- 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{..} = ("/var/lib/apt/lists" ) . (replace "Translation-en" $ "Translation-" ++ translationLang) . (replace "amd64" architecture) . - (if (releaseCodename == "stretch" || releaseCodename == "buster") - then replace "-security" "_updates" <$> (replace "bullseye" releaseCodename) - else id) <$> observedCorrectListForBullseye + (if (releaseCodename == "bookworm") then id + else replace "bookworm" releaseCodename) <$> + observedCorrectListForBookworm where - observedCorrectListForBullseye = - [ "httpredir.debian.org_debian_dists_bullseye_InRelease" - , "httpredir.debian.org_debian_dists_bullseye_main_binary-amd64_Packages" - , "httpredir.debian.org_debian_dists_bullseye_main_i18n_Translation-en" - , "security.debian.org_debian-security_dists_bullseye-security_InRelease" - , "security.debian.org_debian-security_dists_bullseye-security_main_binary-amd64_Packages" - , "security.debian.org_debian-security_dists_bullseye-security_main_i18n_Translation-en" - , "security.debian.org_debian-security_dists_bullseye-security_non-free_binary-amd64_Packages" - , "security.debian.org_debian-security_dists_bullseye-security_non-free_i18n_Translation-en" - ] + +observedCorrectListForBookworm = + [ "httpredir.debian.org_debian_dists_bookworm-backports_contrib_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm-backports_contrib_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm-backports_contrib_i18n_Translation-en" + , "httpredir.debian.org_debian_dists_bookworm-backports_InRelease" + , "httpredir.debian.org_debian_dists_bookworm-backports_main_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm-backports_main_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm-backports_main_i18n_Translation-en" + , "httpredir.debian.org_debian_dists_bookworm-backports_non-free_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm-backports_non-free_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm-backports_non-free_i18n_Translation-en" + , "httpredir.debian.org_debian_dists_bookworm_contrib_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm_contrib_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm_contrib_i18n_Translation-en" + , "httpredir.debian.org_debian_dists_bookworm_InRelease" + , "httpredir.debian.org_debian_dists_bookworm_main_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm_main_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm_main_i18n_Translation-en" + , "httpredir.debian.org_debian_dists_bookworm_non-free_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm_non-free_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm_non-free-firmware_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm_non-free-firmware_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm_non-free-firmware_i18n_Translation-en" + , "httpredir.debian.org_debian_dists_bookworm_non-free_i18n_Translation-en" + , "httpredir.debian.org_debian_dists_bookworm-updates_InRelease" + , "httpredir.debian.org_debian_dists_bookworm-updates_main_binary-amd64_Packages" + , "httpredir.debian.org_debian_dists_bookworm-updates_main_binary-i386_Packages" + , "httpredir.debian.org_debian_dists_bookworm-updates_main_i18n_Translation-en" + , "httpredir.debian.org_debian-security_dists_bookworm-security_contrib_binary-amd64_Packages" + , "httpredir.debian.org_debian-security_dists_bookworm-security_contrib_i18n_Translation-en" + , "httpredir.debian.org_debian-security_dists_bookworm-security_InRelease" + , "httpredir.debian.org_debian-security_dists_bookworm-security_main_binary-amd64_Packages" + , "httpredir.debian.org_debian-security_dists_bookworm-security_main_binary-i386_Packages" + , "httpredir.debian.org_debian-security_dists_bookworm-security_main_i18n_Translation-en" + , "httpredir.debian.org_debian-security_dists_bookworm-security_non-free-firmware_binary-amd64_Packages" + , "httpredir.debian.org_debian-security_dists_bookworm-security_non-free-firmware_binary-i386_Packages" + , "httpredir.debian.org_debian-security_dists_bookworm-security_non-free-firmware_i18n_Translation-en" + ] buildRoot :: DiskImageConfig -> FilePath -> Action () buildRoot config@DiskImageConfig{..} finalOut = do diff --git a/selfstrap b/selfstrap index 4aa6ef9..611042b 100755 --- a/selfstrap +++ b/selfstrap @@ -1,5 +1,6 @@ #!/bin/bash set -e +set -o pipefail debian_mirror=http://httpredir.debian.org/debian debian_security_mirror=http://security.debian.org @@ -98,7 +99,6 @@ apt_() set -- "$@" -o Apt::Install-Recommends=false set -- "$@" -o Apt::Architecture="$target_arch" - set -- "$@" -o Apt::Default-Release="$target_release" # Set default paths to within the created system. set -- "$@" -o Dir="$TARGET" @@ -125,7 +125,10 @@ apt_() # Avoid deleting lists on the calling system. set -- "$@" -o APT::Get::List-Cleanup=false - set -- apt-"${apt_cmd}" "$@" + case "${apt_cmd}" in + get | cache ) set -- apt-"${apt_cmd}" "$@" ;; + * ) set -- apt "${apt_cmd}" "$@" ;; + esac if command -v eatmydata >/dev/null then set -- eatmydata -- "$@" @@ -222,39 +225,29 @@ populate_rootfs() install_devices } +bookworm_sources() +{ +cat < "$TARGET"/etc/apt/apt.conf.d/default-release - ( - if [ "$target_release" = stretch -o "$target_release" = buster ] - then - _updates='/updates ' - else - _updates='-security' - fi - if [ "$target_release" ] - then - printf '%s\n' \ - "deb ${debian_mirror} ${target_release} main contrib non-free" \ - "deb ${debian_mirror} ${target_release}-backports main contrib non-free" \ - "deb ${debian_security_mirror} ${target_release}$_updates main contrib non-free" - fi - if apt-cache policy 2>/dev/null | grep -q ' sid/' - then - printf '%s\n' \ - "deb ${debian_mirror} sid main contrib non-free" - fi - if [ "$target_release" = stretch ] - then - printf '%s\n' \ - "deb ${debian_mirror} buster main contrib non-free" \ - "deb ${debian_mirror} buster-backports main contrib non-free" \ - "deb ${debian_security_mirror} buster/updates main contrib non-free" - - fi - ) | column -t > "$dest" + case "$target_release" + in + bookworm) + bookworm_sources | column -t > "$dest" + : > "$dest_aptconf" + ;; + *) "die unrecognized target release: $target_release" ;; + esac } parse_apt_simul_line() @@ -493,6 +486,11 @@ required_packages=$(required_packages) && [ "$required_packages" ] || die 'faile export LC_ALL=C export DEBIAN_FRONTEND=noninteractive +if ! (apt_ policy | (! grep 990)) +then + die "apt policy looks wrong" +fi + if [ "$REAL_APT_INSTALL" ]; then # Some files need to be present before 'apt-get install' can install anything. # In particular: -- cgit v1.2.3