From 1cc095c5ab62f99a39a59f09d4b119ef8c734b83 Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Sat, 15 Apr 2023 23:14:11 +0200 Subject: [PATCH] Toolchain+Ports: Consolidate version information for QEMU This consolidates version information, archive's download location, filename and SHA256 checksum into version.sh. This file is then sourced from the port script and toolchain build script. The version.sh script contains the following variables: - QEMU_VERSION - Version number - QEMU_ARCHIVE - Filename - QEMU_ARCHIVE_URL - Full url to download location - QEMU_ARCHIVE_SHA256SUM - The SHA256 checksum --- Ports/qemu/package.sh | 7 +++++-- Ports/qemu/version.sh | 4 ++++ Toolchain/BuildQemu.sh | 26 ++++++++++++-------------- 3 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 Ports/qemu/version.sh diff --git a/Ports/qemu/package.sh b/Ports/qemu/package.sh index 5197d46b0b3..ad8011b65d0 100755 --- a/Ports/qemu/package.sh +++ b/Ports/qemu/package.sh @@ -1,6 +1,9 @@ #!/usr/bin/env -S bash ../.port_include.sh + +source version.sh + port='qemu' -version='7.2.0' +version="${QEMU_VERSION}" useconfigure='true' configopts=( '--target-list=aarch64-softmmu,i386-softmmu,x86_64-softmmu' @@ -20,8 +23,8 @@ depends=( 'pixman' 'SDL2' ) -files="https://download.qemu.org/qemu-${version}.tar.xz qemu-${version}.tar.xz 5b49ce2687744dad494ae90a898c52204a3406e84d072482a1e1be854eeb2157" auth_type='sha256' +files="${QEMU_ARCHIVE_URL} ${QEMU_ARCHIVE} ${QEMU_ARCHIVE_SHA256SUM}" pre_patch() { # Disable tests (those need way more stuff than QEMU itself) by clearing the respective meson file. diff --git a/Ports/qemu/version.sh b/Ports/qemu/version.sh new file mode 100644 index 00000000000..40799127843 --- /dev/null +++ b/Ports/qemu/version.sh @@ -0,0 +1,4 @@ +QEMU_VERSION="7.2.0" +QEMU_ARCHIVE="qemu-${QEMU_VERSION}.tar.xz" +QEMU_ARCHIVE_URL="https://download.qemu.org/${QEMU_ARCHIVE}" +QEMU_ARCHIVE_SHA256SUM="5b49ce2687744dad494ae90a898c52204a3406e84d072482a1e1be854eeb2157" diff --git a/Toolchain/BuildQemu.sh b/Toolchain/BuildQemu.sh index ae1520ac1d2..03ff3733ffd 100755 --- a/Toolchain/BuildQemu.sh +++ b/Toolchain/BuildQemu.sh @@ -11,8 +11,8 @@ PREFIX="$DIR/Local/qemu" BUILD=$(realpath "$DIR/../Build") SYSROOT="$BUILD/Root" -QEMU_VERSION=${QEMU_VERSION:="qemu-7.1.0"} -QEMU_MD5SUM=${QEMU_MD5SUM:="3be5458a9171b4ec5220c65d5d52bdcf"} +# shellcheck source=/dev/null +source "${DIR}/../Ports/qemu/version.sh" echo PREFIX is "$PREFIX" echo SYSROOT is "$SYSROOT" @@ -20,24 +20,21 @@ echo SYSROOT is "$SYSROOT" mkdir -p "$DIR/Tarballs" pushd "$DIR/Tarballs" - md5="$(md5sum $QEMU_VERSION.tar.xz | cut -f1 -d' ')" - if [ ! -e "$QEMU_VERSION.tar.xz" ] || [ "$md5" != "$QEMU_MD5SUM" ]; then - curl -C - -O "https://download.qemu.org/$QEMU_VERSION.tar.xz" + if [ ! -e "${QEMU_ARCHIVE}" ]; then + curl -C - -O "${QEMU_ARCHIVE_URL}" else - echo "Skipped downloading $QEMU_VERSION" + echo "Skipped downloading ${QEMU_ARCHIVE}" fi - md5="$(md5sum $QEMU_VERSION.tar.xz | cut -f1 -d' ')" - echo "qemu md5='$md5'" - if [ "$md5" != "$QEMU_MD5SUM" ] ; then - echo "qemu md5 sum mismatching, please run script again." - rm -f $QEMU_VERSION.tar.xz + if ! sha256sum --status -c <(echo "${QEMU_ARCHIVE_SHA256SUM}" "${QEMU_ARCHIVE}"); then + echo "qemu sha256 sum mismatching, please run script again." + rm -f "${QEMU_ARCHIVE}" exit 1 fi if [ ! -d "$QEMU_VERSION" ]; then echo "Extracting qemu..." - tar -xf "$QEMU_VERSION.tar.xz" + tar -xf "${QEMU_ARCHIVE}" else echo "Skipped extracting qemu" fi @@ -61,9 +58,10 @@ fi echo Using $UI_LIB based UI pushd "$DIR/Build/qemu" - "$DIR"/Tarballs/$QEMU_VERSION/configure --prefix="$PREFIX" \ + "$DIR"/Tarballs/qemu-"${QEMU_VERSION}"/configure --prefix="$PREFIX" \ --target-list=aarch64-softmmu,x86_64-softmmu \ - --enable-$UI_LIB || exit 1 + --enable-$UI_LIB \ + --enable-slirp || exit 1 make -j "$MAKEJOBS" || exit 1 make install || exit 1 popd