소스 검색

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
Kenneth Myhra 2 년 전
부모
커밋
1cc095c5ab
3개의 변경된 파일21개의 추가작업 그리고 16개의 파일을 삭제
  1. 5 2
      Ports/qemu/package.sh
  2. 4 0
      Ports/qemu/version.sh
  3. 12 14
      Toolchain/BuildQemu.sh

+ 5 - 2
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.

+ 4 - 0
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"

+ 12 - 14
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