diff options
author | Kenneth Myhra <kennethmyhra@gmail.com> | 2023-04-15 23:14:11 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-04-23 14:20:42 +0200 |
commit | 1cc095c5ab62f99a39a59f09d4b119ef8c734b83 (patch) | |
tree | 151bd2c7f4f728c4a114180aee0681863ea49f38 | |
parent | 54e01824c7ad38b8cf289cbf4f153aca88073fb0 (diff) | |
download | serenity-1cc095c5ab62f99a39a59f09d4b119ef8c734b83.zip |
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
-rwxr-xr-x | Ports/qemu/package.sh | 7 | ||||
-rw-r--r-- | Ports/qemu/version.sh | 4 | ||||
-rwxr-xr-x | Toolchain/BuildQemu.sh | 26 |
3 files changed, 21 insertions, 16 deletions
diff --git a/Ports/qemu/package.sh b/Ports/qemu/package.sh index 5197d46b0b..ad8011b65d 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 0000000000..4079912784 --- /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 ae1520ac1d..03ff3733ff 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 |