diff --git a/lib/general.sh b/lib/general.sh index d40e893ee..7ba4ba666 100644 --- a/lib/general.sh +++ b/lib/general.sh @@ -225,17 +225,33 @@ create_sources_list() ;; esac + display_alert "Adding Armbian repository and authentication key" "/etc/apt/sources.list.d/armbian.list" "info" + + # apt-key add is getting deprecated + APT_VERSION=$(chroot "${basedir}" /bin/bash -c "apt --version | cut -d\" \" -f2") + if linux-version compare "${APT_VERSION}" ge 2.4.1; then + # add armbian key + mkdir -p "${basedir}"/usr/share/keyrings + # change to binary form + gpg --dearmor < "${SRC}"/config/armbian.key > "${basedir}"/usr/share/keyrings/armbian.gpg + SIGNED_BY="[signed-by=/usr/share/keyrings/armbian.gpg] " + else + # use old method for compatibility reasons + cp "${SRC}"/config/armbian.key "${basedir}" + chroot "${basedir}" /bin/bash -c "cat armbian.key | apt-key add - > /dev/null 2>&1" + fi + # stage: add armbian repository and install key if [[ $DOWNLOAD_MIRROR == "china" ]]; then - echo "deb https://mirrors.tuna.tsinghua.edu.cn/armbian $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list + echo "deb ${SIGNED_BY}https://mirrors.tuna.tsinghua.edu.cn/armbian $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list elif [[ $DOWNLOAD_MIRROR == "bfsu" ]]; then - echo "deb http://mirrors.bfsu.edu.cn/armbian $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list + echo "deb ${SIGNED_BY}http://mirrors.bfsu.edu.cn/armbian $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list else - echo "deb http://"$([[ $BETA == yes ]] && echo "beta" || echo "apt" )".armbian.com $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list + echo "deb ${SIGNED_BY}http://"$([[ $BETA == yes ]] && echo "beta" || echo "apt" )".armbian.com $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list fi # replace local package server if defined. Suitable for development - [[ -n $LOCAL_MIRROR ]] && echo "deb http://$LOCAL_MIRROR $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list + [[ -n $LOCAL_MIRROR ]] && echo "deb ${SIGNED_BY}http://$LOCAL_MIRROR $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > "${basedir}"/etc/apt/sources.list.d/armbian.list # disable repo if SKIP_ARMBIAN_REPO=yes if [[ "${SKIP_ARMBIAN_REPO}" == "yes" ]]; then @@ -243,10 +259,6 @@ create_sources_list() mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled fi - display_alert "Adding Armbian repository and authentication key" "/etc/apt/sources.list.d/armbian.list" "info" - cp "${SRC}"/config/armbian.key "${basedir}" - chroot "${basedir}" /bin/bash -c "cat armbian.key | apt-key add - > /dev/null 2>&1" - rm "${basedir}"/armbian.key }