Skip to content

Commit c337b7e

Browse files
committed
feat: Use deb822 APT sources
- Replace `armbian.list` with `armbian.sources`. This holds the same information in a newer format, deb822. - Replace HTTP with HTTPS for Armbian repositories.
1 parent ca333b2 commit c337b7e

File tree

8 files changed

+94
-88
lines changed

8 files changed

+94
-88
lines changed

config/boards/ayn-odin2.csc

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function post_family_tweaks__enable_services() {
4343
fi
4444

4545
# We need unudhcpd from armbian repo, so enable it
46-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.list
46+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
4747

4848
# Add Gamepad udev rule
4949
echo 'SUBSYSTEM=="input", ATTRS{name}=="Ayn Odin2 Gamepad", MODE="0666", ENV{ID_INPUT_MOUSE}="0", ENV{ID_INPUT_JOYSTICK}="1"' > "${SDCARD}"/etc/udev/rules.d/99-ignore-gamepad.rules
@@ -59,7 +59,7 @@ function post_family_tweaks__enable_services() {
5959
do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf unudhcpd mkbootimg git
6060

6161
# Disable armbian repo back
62-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
62+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
6363
do_with_retries 3 chroot_sdcard_apt_get_update
6464

6565
do_with_retries 3 chroot_sdcard_apt_get_install mesa-vulkan-drivers qbootctl qrtr-tools protection-domain-mapper tqftpserv
@@ -133,7 +133,7 @@ function post_family_tweaks_bsp__firmware_in_initrd() {
133133
# Extra one for bt
134134
for f in /lib/firmware/qca/* ; do
135135
add_firmware "${f#/lib/firmware/}"
136-
done
136+
done
137137
FIRMWARE_HOOK
138138
run_host_command_logged chmod -v +x "${file_added_to_bsp_destination}"
139139
}

config/boards/oneplus-kebab.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ function post_family_tweaks__oneplus-kebab_enable_services() {
6565
fi
6666

6767
# we need unudhcpd from armbian repo, so enable it
68-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.list
68+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
6969

7070
do_with_retries 3 chroot_sdcard_apt_get_update
7171
display_alert "$BOARD" "Installing board tweaks" "info"
7272
do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg dropbear-bin
7373

7474
# disable armbian repo back
75-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
75+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
7676
do_with_retries 3 chroot_sdcard_apt_get_update
7777

7878
chroot_sdcard systemctl enable qbootctl.service

config/boards/xiaomi-elish.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function post_family_tweaks__xiaomi-elish_enable_services() {
6868
fi
6969

7070
# we need unudhcpd from armbian repo, so enable it
71-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.list
71+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
7272

7373
do_with_retries 3 chroot_sdcard_apt_get_update
7474
display_alert "$BOARD" "Installing board tweaks" "info"
@@ -80,7 +80,7 @@ function post_family_tweaks__xiaomi-elish_enable_services() {
8080
chroot_sdcard systemctl enable hexagonrpcd-sdsp.service
8181
fi
8282
# disable armbian repo back
83-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
83+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
8484
do_with_retries 3 chroot_sdcard_apt_get_update
8585

8686
chroot_sdcard systemctl enable qbootctl.service

config/boards/xiaomi-umi.eos

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ function post_family_tweaks__xiaomi-umi_enable_services() {
5858
fi
5959

6060
# We need unudhcpd from armbian repo, so enable it
61-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.list
61+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
6262

6363
do_with_retries 3 chroot_sdcard_apt_get_update
6464
display_alert "$BOARD" "Installing board tweaks" "info"
6565
do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg
6666

6767
# Disable armbian repo back
68-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
68+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
6969
do_with_retries 3 chroot_sdcard_apt_get_update
7070

7171
chroot_sdcard systemctl enable qbootctl.service

config/sources/families/bcm2711.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -222,11 +222,11 @@ function pre_install_distribution_specific__add_rpi_packages() {
222222
# we store Rpi firmware packages in our repository
223223
# https://github.com/armbian/os/wiki/Import-3rd-party-packages
224224
display_alert "Enable Armbian repository to fetch Rpi packages" "" "info"
225-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.list
225+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
226226
do_with_retries 3 chroot_sdcard_apt_get_update
227227
chroot_sdcard_apt_get_install rpi-eeprom linux-firmware-raspi pi-bluetooth libraspberrypi-bin busybox raspi-config
228228
## disable armbian repository
229-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
229+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
230230
fi
231231
}
232232

lib/functions/main/rootfs-image.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ function build_rootfs_and_image() {
4747
create_sources_list_and_deploy_repo_key "image-late" "${RELEASE}" "${SDCARD}/"
4848

4949
# We call this above method too many times. @TODO: find out why and fix the same
50-
# We may have a armbian.list.disabled file lying around. Remove the same
51-
if [[ -e "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled ]]; then
52-
rm "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
50+
# We may have a armbian.sources.disabled file lying around. Remove the same
51+
if [[ -e "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled ]]; then
52+
rm "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
5353
fi
5454

5555
LOG_SECTION="post_repo_apt_update" do_with_logging post_repo_apt_update

lib/functions/rootfs/distro-agnostic.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -400,8 +400,8 @@ function install_distribution_agnostic() {
400400
[[ -f "${SDCARD}"/lib/systemd/system/armbian-led-state.service ]] && chroot_sdcard systemctl --no-reload enable armbian-led-state.service
401401

402402
# switch to beta repository at this stage if building nightly images
403-
if [[ $IMAGE_TYPE == nightly && -f "${SDCARD}"/etc/apt/sources.list.d/armbian.list ]]; then
404-
sed -i 's/apt/beta/' "${SDCARD}"/etc/apt/sources.list.d/armbian.list
403+
if [[ $IMAGE_TYPE == nightly && -f "${SDCARD}"/etc/apt/sources.list.d/armbian.sources ]]; then
404+
sed -i 's/apt/beta/' "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
405405
fi
406406

407407
# fix for https://bugs.launchpad.net/ubuntu/+source/blueman/+bug/1542723 @TODO: from ubuntu 15. maybe gone?

lib/functions/rootfs/distro-specific.sh

+78-72
Original file line numberDiff line numberDiff line change
@@ -78,98 +78,96 @@ function create_sources_list_and_deploy_repo_key() {
7878
declare basedir="${3}" # @TODO: rpardini: this is SDCARD in all practical senses. Why not just use SDCARD?
7979
[[ -z $basedir ]] && exit_with_error "No basedir passed to create_sources_list_and_deploy_repo_key"
8080

81-
case $release in
82-
buster)
83-
cat <<- EOF > "${basedir}"/etc/apt/sources.list
84-
deb http://${DEBIAN_MIRROR} $release main contrib non-free
85-
#deb-src http://${DEBIAN_MIRROR} $release main contrib non-free
86-
87-
deb http://${DEBIAN_MIRROR} ${release}-updates main contrib non-free
88-
#deb-src http://${DEBIAN_MIRROR} ${release}-updates main contrib non-free
89-
90-
deb http://${DEBIAN_SECURTY} ${release}/updates main contrib non-free
91-
#deb-src http://${DEBIAN_SECURTY} ${release}/updates main contrib non-free
92-
EOF
93-
;;
81+
declare distro=""
9482

95-
bullseye)
96-
cat <<- EOF > "${basedir}"/etc/apt/sources.list
97-
deb http://${DEBIAN_MIRROR} $release main contrib non-free
98-
#deb-src http://${DEBIAN_MIRROR} $release main contrib non-free
99-
100-
deb http://${DEBIAN_MIRROR} ${release}-updates main contrib non-free
101-
#deb-src http://${DEBIAN_MIRROR} ${release}-updates main contrib non-free
102-
103-
deb http://${DEBIAN_MIRROR} ${release}-backports main contrib non-free
104-
#deb-src http://${DEBIAN_MIRROR} ${release}-backports main contrib non-free
105-
106-
deb http://${DEBIAN_SECURTY} ${release}-security main contrib non-free
107-
#deb-src http://${DEBIAN_SECURTY} ${release}-security main contrib non-free
108-
EOF
109-
;;
83+
# Add upstream (Debian/Ubuntu) APT repository
84+
case $release in
85+
buster | bullseye | bookworm | trixie)
86+
distro="debian"
11087

111-
bookworm | trixie)
112-
# non-free firmware in bookworm and later has moved from the non-free archive component to a new non-free-firmware component (alongside main/contrib/non-free). This was implemented on 2023-01-27, see also https://lists.debian.org/debian-boot/2023/01/msg00235.html
113-
cat <<- EOF > "${basedir}"/etc/apt/sources.list
114-
deb http://${DEBIAN_MIRROR} $release main contrib non-free non-free-firmware
115-
#deb-src http://${DEBIAN_MIRROR} $release main contrib non-free non-free-firmware
88+
declare -a suites=("${release}" "${release}-updates")
89+
declare -a security_suites=("${release}-security")
90+
declare -a components=(main contrib non-free)
11691

117-
deb http://${DEBIAN_MIRROR} ${release}-updates main contrib non-free non-free-firmware
118-
#deb-src http://${DEBIAN_MIRROR} ${release}-updates main contrib non-free non-free-firmware
92+
if [[ "$release" == "buster" ]]; then
93+
security_suites=("${release}/updates")
94+
else
95+
suites+=("${release}-backports")
96+
fi
11997

120-
deb http://${DEBIAN_MIRROR} ${release}-backports main contrib non-free non-free-firmware
121-
#deb-src http://${DEBIAN_MIRROR} ${release}-backports main contrib non-free non-free-firmware
98+
if [[ "$release" != "buster" && "$release" != "bullseye" ]]; then
99+
components+=("non-free-firmware")
100+
fi
122101

123-
deb http://${DEBIAN_SECURTY} ${release}-security main contrib non-free non-free-firmware
124-
#deb-src http://${DEBIAN_SECURTY} ${release}-security main contrib non-free non-free-firmware
102+
cat <<- EOF > "${basedir}/etc/apt/sources.list.d/${distro}.sources"
103+
Types: deb
104+
URIs: http://${DEBIAN_MIRROR}
105+
Suites: ${suites[@]}
106+
Components: ${components[@]}
107+
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
108+
109+
Types: deb
110+
URIs: http://${DEBIAN_SECURTY}
111+
Suites: ${security_suites[@]}
112+
Components: ${components[@]}
113+
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
125114
EOF
126115
;;
127116

128-
sid | unstable) # sid is permanent unstable development and has no such thing as updates or security
129-
cat <<- EOF > "${basedir}"/etc/apt/sources.list
130-
deb http://${DEBIAN_MIRROR} $release main contrib non-free non-free-firmware
131-
#deb-src http://${DEBIAN_MIRROR} $release main contrib non-free non-free-firmware
117+
sid | unstable)
118+
distro="debian"
132119

120+
# sid is permanent unstable development and has no such thing as updates or security
121+
cat <<- EOF > "${basedir}/etc/apt/sources.list.d/${distro}.sources"
122+
Types: deb
123+
URIs: http://${DEBIAN_MIRROR}
124+
Suites: ${release}
125+
Components: main contrib non-free non-free-firmware
126+
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
133127
EOF
134128

135-
# Exception: with riscv64 not everything was moved from ports
136-
# https://lists.debian.org/debian-riscv/2023/07/msg00053.html
129+
# Required for some packages on riscv64.
130+
# See: http://lists.debian.org/debian-riscv/2023/07/msg00053.html
137131
if [[ "${ARCH}" == riscv64 ]]; then
138-
echo "deb http://deb.debian.org/debian-ports/ sid main " >> "${basedir}"/etc/apt/sources.list
132+
cat <<- EOF >> "${basedir}/etc/apt/sources.list.d/${distro}.sources"
133+
134+
Types: deb
135+
URIs: http://deb.debian.org/debian-ports/
136+
Suites: ${release}
137+
Components: main
138+
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
139+
Architectures: riscv64
140+
EOF
139141
fi
140142
;;
141143

142144
focal | jammy | noble | oracular | plucky)
143-
cat <<- EOF > "${basedir}"/etc/apt/sources.list
144-
deb http://${UBUNTU_MIRROR} $release main restricted universe multiverse
145-
#deb-src http://${UBUNTU_MIRROR} $release main restricted universe multiverse
146-
147-
deb http://${UBUNTU_MIRROR} ${release}-security main restricted universe multiverse
148-
#deb-src http://${UBUNTU_MIRROR} ${release}-security main restricted universe multiverse
149-
150-
deb http://${UBUNTU_MIRROR} ${release}-updates main restricted universe multiverse
151-
#deb-src http://${UBUNTU_MIRROR} ${release}-updates main restricted universe multiverse
152-
153-
deb http://${UBUNTU_MIRROR} ${release}-backports main restricted universe multiverse
154-
#deb-src http://${UBUNTU_MIRROR} ${release}-backports main restricted universe multiverse
145+
distro="ubuntu"
146+
147+
cat <<- EOF > "${basedir}/etc/apt/sources.list.d/${distro}.sources"
148+
Types: deb
149+
URIs: http://${UBUNTU_MIRROR}
150+
Suites: ${release} ${release}-security ${release}-updates ${release}-backports
151+
Components: main restricted universe multiverse
152+
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
155153
EOF
156154
;;
157155
esac
158156

159157
# add armbian key
160-
display_alert "Adding Armbian repository and authentication key" "${when} :: /etc/apt/sources.list.d/armbian.list" "info"
158+
display_alert "Adding Armbian repository and authentication key" "${when} :: /etc/apt/sources.list.d/armbian.sources" "info"
161159
mkdir -p "${basedir}"/usr/share/keyrings
162160
# change to binary form
163161
APT_SIGNING_KEY_FILE="/usr/share/keyrings/armbian.gpg"
164162
gpg --dearmor < "${SRC}"/config/armbian.key > "${basedir}${APT_SIGNING_KEY_FILE}"
165-
SIGNED_BY="[signed-by=${APT_SIGNING_KEY_FILE}] "
166163

167164
# lets keep old way for old distributions
168165
if [[ "${RELEASE}" =~ (focal|bullseye) ]]; then
169166
cp "${SRC}"/config/armbian.key "${basedir}"
170167
chroot "${basedir}" /bin/bash -c "cat armbian.key | apt-key add - > /dev/null 2>&1"
171168
fi
172169

170+
# Add Armbian APT repository
173171
declare -a components=()
174172
if [[ "${when}" == "image"* ]]; then # only include the 'main' component when deploying to image (early or late)
175173
components+=("main")
@@ -178,33 +176,41 @@ function create_sources_list_and_deploy_repo_key() {
178176
components+=("${RELEASE}-desktop") # desktop contains packages Igor picks from other repos
179177

180178
# stage: add armbian repository and install key
181-
if [[ $DOWNLOAD_MIRROR == "china" ]]; then
182-
echo "deb ${SIGNED_BY}https://mirrors.tuna.tsinghua.edu.cn/armbian $RELEASE ${components[*]}" > "${basedir}"/etc/apt/sources.list.d/armbian.list
179+
# armbian_mirror="http://$([[ $BETA == yes ]] && echo "beta" || echo "apt").armbian.com"
180+
declare armbian_mirror="apt.armbian.com"
181+
if [[ -n $LOCAL_MIRROR ]]; then
182+
armbian_mirror="$LOCAL_MIRROR"
183+
elif [[ $DOWNLOAD_MIRROR == "china" ]]; then
184+
armbian_mirror="mirrors.tuna.tsinghua.edu.cn/armbian"
183185
elif [[ $DOWNLOAD_MIRROR == "bfsu" ]]; then
184-
echo "deb ${SIGNED_BY}http://mirrors.bfsu.edu.cn/armbian $RELEASE ${components[*]}" > "${basedir}"/etc/apt/sources.list.d/armbian.list
185-
else
186-
echo "deb ${SIGNED_BY}http://$([[ $BETA == yes ]] && echo "beta" || echo "apt").armbian.com $RELEASE ${components[*]}" > "${basedir}"/etc/apt/sources.list.d/armbian.list
186+
armbian_mirror="mirrors.bfsu.edu.cn/armbian"
187+
elif [[ $BETA == "yes" ]]; then
188+
armbian_mirror="beta.armbian.com"
187189
fi
188-
189-
# replace local package server if defined. Suitable for development
190-
[[ -n $LOCAL_MIRROR ]] && echo "deb ${SIGNED_BY}http://$LOCAL_MIRROR $RELEASE ${components[*]}" > "${basedir}"/etc/apt/sources.list.d/armbian.list
190+
cat <<- EOF > "${basedir}"/etc/apt/sources.list.d/armbian.sources
191+
Types: deb
192+
URIs: https://${armbian_mirror}
193+
Suites: $RELEASE
194+
Components: ${components[*]}
195+
Signed-By: ${APT_SIGNING_KEY_FILE}
196+
EOF
191197

192198
# disable repo if DISTRIBUTION_STATUS==eos, or if SKIP_ARMBIAN_REPO==yes, or if when==image-early.
193199
if [[ "${when}" == "image-early" ||
194200
"$(cat "${SRC}/config/distributions/${RELEASE}/support")" == "eos" ||
195201
"${SKIP_ARMBIAN_REPO}" == "yes" ]]; then
196202
display_alert "Disabling Armbian repo" "${ARCH}-${RELEASE} :: skip:${SKIP_ARMBIAN_REPO:-"no"} when:${when}" "info"
197-
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
203+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
198204
fi
199205

200206
declare CUSTOM_REPO_WHEN="${when}"
201207

202208
# Let user customize
203209
call_extension_method "custom_apt_repo" <<- 'CUSTOM_APT_REPO'
204210
*customize apt sources.list.d and/or deploy repo keys*
205-
Called after core Armbian has finished setting up SDCARD's sources.list and sources.list.d/armbian.list.
206-
If SKIP_ARMBIAN_REPO=yes, armbian.list.disabled is present instead.
207-
The global Armbian GPG key has been deployed to SDCARD's /usr/share/keyrings/armbian.gpg, de-armored.
211+
Called after core Armbian has finished setting up SDCARD's debian.sources/ubuntu.sources and armbian.sources in /etc/apt/sources.list.d/.
212+
If SKIP_ARMBIAN_REPO=yes, armbian.sources.disabled is present instead.
213+
The global Armbian GPG key has been deployed to SDCARD's ${APT_SIGNING_KEY_FILE}, de-armored.
208214
You can implement this hook to add, remove, or modify sources.list.d entries, and/or deploy additional GPG keys.
209215
Important: honor $CUSTOM_REPO_WHEN; if it's ==rootfs, don't add repos/components that carry the .debs produced by armbian/build.
210216
Ideally, also don't add any possibly-conflicting repo if `$CUSTOM_REPO_WHEN==image-early`.

0 commit comments

Comments
 (0)