summaryrefslogtreecommitdiffstats
path: root/share/build-scripts/debconf
diff options
context:
space:
mode:
Diffstat (limited to 'share/build-scripts/debconf')
-rwxr-xr-xshare/build-scripts/debconf112
1 files changed, 82 insertions, 30 deletions
diff --git a/share/build-scripts/debconf b/share/build-scripts/debconf
index d6739ad..9e28216 100755
--- a/share/build-scripts/debconf
+++ b/share/build-scripts/debconf
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+# Copyright (C) 2014-2024 Daniel Baumann <daniel.baumann@open-infrastructure.net>
#
# SPDX-License-Identifier: GPL-3.0+
#
@@ -373,7 +373,7 @@ Bootstrap ()
INCLUDE="dbus"
# apt repositories
- INCLUDE="${INCLUDE},gnupg"
+ INCLUDE="${INCLUDE},gnupg,debian-archive-keyring"
if ( echo "${MIRROR}" | grep -qs '^https' ) || \
( echo "${PARENT_MIRROR}" | grep -qs '^https' )
@@ -490,20 +490,31 @@ Configure_apt ()
DIRECTORY="${1}"
# Configure apt
- rm -f "${DIRECTORY}/etc/apt/sources.list"
+ rm -f "${DIRECTORY}/etc/apt/sources.list" "${DIRECTORY}/etc/apt/sources.list.d/debian.sources"
PARENT_AREA="$(echo ${PARENT_ARCHIVE_AREAS} | sed -e 's|,| |g')"
PARENT_DIST="$(echo ${PARENT_DISTRIBUTION} | sed -e 's|-backports||')"
-cat > "${DIRECTORY}/etc/apt/sources.list.d/debian.list" << EOF
-# /etc/apt/sources.list.d/debian.list
+cat > "${DIRECTORY}/etc/apt/sources.list.d/debian.sources" << EOF
+# /etc/apt/sources.list.d/debian.sources
-deb ${PARENT_MIRROR} ${PARENT_DIST} ${PARENT_AREA}
+Types: deb
+URIs: ${PARENT_MIRROR}
+Suites: ${PARENT_DIST}
+Components: ${PARENT_AREA}
+PDiffs: no
+Signed-By: /usr/share/keyrings/debian-archive-${PARENT_DIST}-stable.gpg
EOF
case "${MODE}" in
progress-linux)
+ # temporary sideloading new keys until keyring package in debian-stable has been updated
+ if [ -e "${DIRECTORY}/usr/share/progress-linux/pgp-keys/apt.progress-linux.org.gpg" ]
+ then
+ cp -f /usr/share/compute-tools/other/deb.progress-linux.org.gpg "${DIRECTORY}/usr/share/progress-linux/pgp-keys/apt.progress-linux.org.gpg"
+ fi
+
cat > "${DIRECTORY}/progress-linux.cfg" << EOF
progress-linux progress-linux/archives multiselect $(echo ${ARCHIVES} | sed -e 's| |, |g')
progress-linux progress-linux/archive-areas multiselect $(echo ${ARCHIVE_AREAS} | sed -e 's|,| |g')
@@ -571,46 +582,92 @@ Configure_system ()
echo "${NAME}" > "${DIRECTORY}/etc/hostname"
# Configure apt
- rm -f "${DIRECTORY}/etc/apt/sources.list"
+ rm -f "${DIRECTORY}/etc/apt/sources.list" "${DIRECTORY}/etc/apt/sources.list.d/debian.sources"
PARENT_AREA="$(echo ${PARENT_ARCHIVE_AREAS} | sed -e 's|,| |g')"
PARENT_DIST="$(echo ${PARENT_DISTRIBUTION} | sed -e 's|-backports||')"
-cat > "${DIRECTORY}/etc/apt/sources.list.d/debian.list" << EOF
-# /etc/apt/sources.list.d/debian.list
+cat > "${DIRECTORY}/etc/apt/sources.list.d/debian.sources" << EOF
+# /etc/apt/sources.list.d/debian.sources
-deb ${PARENT_MIRROR} ${PARENT_DIST} ${PARENT_AREA}
+Types: deb
+URIs: ${PARENT_MIRROR}
+Suites: ${PARENT_DIST}
+Components: ${PARENT_AREA}
+PDiffs: no
+Signed-By: /usr/share/keyrings/debian-archive-${PARENT_DIST}-stable.gpg
EOF
+ AUTOMATIC_SUITES=""
+
for PARENT_REPO in ${PARENT_ARCHIVES}
do
case "${PARENT_REPO}" in
- buster-security)
- echo "deb ${PARENT_MIRROR_SECURITY} ${PARENT_DIST}/updates ${PARENT_AREA}" >> "${DIRECTORY}/etc/apt/sources.list.d/debian.list"
+ ${PARENT_DIST}-updates)
+ AUTOMATIC_SUITES="${AUTOMATIC_SUITES} ${PARENT_DIST}-updates"
;;
- ${PARENT_DIST}-security)
- echo "deb ${PARENT_MIRROR_SECURITY} ${PARENT_DIST}-security ${PARENT_AREA}" >> "${DIRECTORY}/etc/apt/sources.list.d/debian.list"
+ ${PARENT_DIST}-proposed-updates)
+ AUTOMATIC_SUITES="${AUTOMATIC_SUITES} ${PARENT_DIST}-proposed-updates"
;;
- ${PARENT_DIST}-updates)
- echo "deb ${PARENT_MIRROR} ${PARENT_DIST}-updates ${PARENT_AREA}" >> "${DIRECTORY}/etc/apt/sources.list.d/debian.list"
+ ${PARENT_DIST}-backports)
+ AUTOMATIC_SUITES="${AUTOMATIC_SUITES} ${PARENT_DIST}-backports"
;;
- ${PARENT_DIST}-backports)
- echo "deb ${PARENT_MIRROR} ${PARENT_DIST}-backports ${PARENT_AREA}" >> "${DIRECTORY}/etc/apt/sources.list.d/debian.list"
+ ${PARENT_DIST}-experimental)
+ AUTOMATIC_SUITES="${AUTOMATIC_SUITES} experimental"
;;
+ esac
+ done
- ${PARENT_DIST}-proposed-updates)
- echo "deb ${PARENT_MIRROR} ${PARENT_DIST}-proposed-updates ${PARENT_AREA}" >> "${DIRECTORY}/etc/apt/sources.list.d/debian.list"
+ if [ -n "${AUTOMATIC_SUITES}" ]
+ then
+ AUTOMATIC_SUITES="$(echo ${AUTOMATIC_SUITES} | sed -e 's|^ ||')"
+
+cat >> "${DIRECTORY}/etc/apt/sources.list.d/debian.sources" << EOF
+
+Types: deb
+URIs: ${PARENT_MIRROR}
+Suites: ${AUTOMATIC_SUITES}
+Components: ${PARENT_AREA}
+PDiffs: no
+Signed-By: /usr/share/keyrings/debian-archive-${PARENT_DIST}-automatic.gpg
+EOF
+
+ fi
+
+ SECURITY_SUITES=""
+
+ for PARENT_REPO in ${PARENT_ARCHIVES}
+ do
+ case "${PARENT_REPO}" in
+ buster-security)
+ SECURITY_SUITES="${SECURITY_SUITES} ${PARENT_DIST}/updates"
;;
- experimental)
- echo "deb ${PARENT_MIRROR} experimental ${PARENT_AREA}" >> "${DIRECTORY}/etc/apt/sources.list.d/debian.list"
+ ${PARENT_DIST}-security)
+ SECURITY_SUITES="${SECURITY_SUITES} ${PARENT_DIST}-security"
;;
esac
done
+ if [ -n "${SECURITY_SUITES}" ]
+ then
+ SECURITY_SUITES="$(echo ${SECURITY_SUITES} | sed -e 's|^ ||')"
+
+cat >> "${DIRECTORY}/etc/apt/sources.list.d/debian.sources" << EOF
+
+Types: deb
+URIs: ${PARENT_MIRROR_SECURITY}
+Suites: ${PARENT_DIST}-security
+Components: ${PARENT_AREA}
+PDiffs: no
+Signed-By: /usr/share/keyrings/debian-archive-${PARENT_DIST}-security-automatic.gpg
+EOF
+
+ fi
+
case "${MODE}" in
progress-linux)
@@ -636,18 +693,13 @@ EOF
fi
# Add local archives configured from preseed file
- if ls "${DEBCONF_TMPDIR}/apt"/*.list > /dev/null 2>&1
+ if ls "${DEBCONF_TMPDIR}/apt"/*.sources > /dev/null 2>&1
then
- cp "${DEBCONF_TMPDIR}/apt"/*.list "${DIRECTORY}/etc/apt/sources.list.d"
+ cp "${DEBCONF_TMPDIR}/apt"/*.sources "${DIRECTORY}/etc/apt/sources.list.d"
if ls "${DEBCONF_TMPDIR}/apt"/*.key > /dev/null 2>&1
then
- for KEY in "${DEBCONF_TMPDIR}/apt"/*.key
- do
- cp "${KEY}" "${DIRECTORY}"
- Chroot "${DIRECTORY}" "apt-key add $(basename ${KEY})"
- rm -f "${DIRECTORY}/$(basename ${KEY})"
- done
+ cp "${DEBCONF_TMPDIR}/apt"/*.key "${DIRECTORY}/etc/apt/keyrings"
fi
if ls "${DEBCONF_TMPDIR}/apt"/*.pref > /dev/null 2>&1