ubiquity: setup custom support for deb822 format
This commit is contained in:
parent
46ebef52f1
commit
7f5176c32f
3 changed files with 112 additions and 54 deletions
77
helpers/DATA/ubiquity/99trisquel
Executable file
77
helpers/DATA/ubiquity/99trisquel
Executable file
|
|
@ -0,0 +1,77 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
file="$1"
|
||||
|
||||
# Trisquel: Deb822-first, keep legacy clean
|
||||
: "${ROOT:=/target}"
|
||||
SD="$ROOT/etc/apt/sources.list.d"
|
||||
SF="$SD/trisquel.sources"
|
||||
LEGACY="$ROOT/etc/apt/sources.list"
|
||||
MSG="# Trisquel sources have moved to /etc/apt/sources.list.d/trisquel.sources"
|
||||
mkdir -p "$SD"
|
||||
|
||||
FASTEST=https://archive.trisquel.org/trisquel/
|
||||
SPEED=1000000000000
|
||||
|
||||
if nm-online -xq
|
||||
then
|
||||
for i in $(grep '//' /usr/share/python-apt/templates/Trisquel.mirrors | sed 's|/$||')
|
||||
do
|
||||
echo Testing $i
|
||||
TIME=$(date +%s%N)
|
||||
wget --no-check-certificate -t 1 -T 5 --max-redirect=0 -o /dev/null -O /dev/null $i/speedtest || continue
|
||||
TIME2=$(date +%s%N)
|
||||
ELAPSED=$(expr $TIME2 - $TIME)
|
||||
echo Time: $ELAPSED
|
||||
if [ $ELAPSED -lt $SPEED ]
|
||||
then
|
||||
FASTEST=$i
|
||||
SPEED=$ELAPSED
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Selected mirror: $FASTEST"
|
||||
|
||||
MIRROR=$FASTEST
|
||||
RELEASE=$(lsb_release -c | cut -f 2)
|
||||
|
||||
# Ensure MIRROR ends with a single trailing slash for Deb822 URIs
|
||||
case "$MIRROR" in
|
||||
*/) : ;;
|
||||
*) MIRROR="$MIRROR/";;
|
||||
esac
|
||||
|
||||
# Use keyring in /usr/share/keyrings
|
||||
SIGNED_BY="/usr/share/keyrings/trisquel-archive-keyring.gpg"
|
||||
|
||||
# Write Deb822 sources file in the requested structure
|
||||
cat << EOF > "$SF"
|
||||
# Trisquel repositories for supported software and updates
|
||||
Types: deb
|
||||
URIs: ${MIRROR}
|
||||
Suites: ${RELEASE} ${RELEASE}-updates ${RELEASE}-security
|
||||
Components: main
|
||||
Signed-By: ${SIGNED_BY}
|
||||
|
||||
# Source package repositories
|
||||
Types: deb-src
|
||||
URIs: ${MIRROR}
|
||||
Suites: ${RELEASE} ${RELEASE}-updates ${RELEASE}-security
|
||||
Components: main
|
||||
Signed-By: ${SIGNED_BY}
|
||||
|
||||
# Optional backports repository
|
||||
Enabled: no
|
||||
Types: deb deb-src
|
||||
URIs: ${MIRROR}
|
||||
Suites: ${RELEASE}-backports
|
||||
Components: main
|
||||
Signed-By: ${SIGNED_BY}
|
||||
EOF
|
||||
|
||||
# Keep the legacy file and the pipeline temp file as a single breadcrumb line
|
||||
printf '%s\n' "$MSG" > "$LEGACY"
|
||||
printf '%s\n' "$MSG" > "$file"
|
||||
exit 0
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
diff --git a/d-i/source/apt-setup/generators/01setup b/d-i/source/apt-setup/generators/01setup
|
||||
index b4b0ea40..c4933286 100755
|
||||
--- a/d-i/source/apt-setup/generators/01setup
|
||||
+++ b/d-i/source/apt-setup/generators/01setup
|
||||
@@ -5,6 +5,25 @@ set -e
|
||||
|
||||
file="$1"
|
||||
|
||||
+# Ensure ROOT default; allow override
|
||||
+: "${ROOT:=/target}"
|
||||
+
|
||||
+# If Deb822 sources already exist in the target, keep legacy minimal and clean.
|
||||
+if [ -d "$ROOT/etc/apt/sources.list.d" ] && ls "$ROOT/etc/apt/sources.list.d/"*.sources >/dev/null 2>&1; then
|
||||
+ msg="# Trisquel sources have moved to /etc/apt/sources.list.d/trisquel.sources"
|
||||
+ # Temp file consumed by the generators pipeline (must exist, but keep it clean)
|
||||
+ printf '%s\n' "$msg" > "$file"
|
||||
+ # Ensure the target legacy file exists and contains only the breadcrumb
|
||||
+ printf '%s\n' "$msg" > "$ROOT/etc/apt/sources.list"
|
||||
+else
|
||||
+ # Fallback: add old file as comments (tolerant if missing)
|
||||
+ if [ -r "$ROOT/etc/apt/sources.list" ]; then
|
||||
+ sed 's/^/# /' < "$ROOT/etc/apt/sources.list" | sed 's/^# # */# /' > "$file"
|
||||
+ else
|
||||
+ : > "$file"
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
# add old file as comments
|
||||
sed 's/^/# /' < $ROOT/etc/apt/sources.list | sed 's/^# # */# /' > $file
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue