From 42202d95bc5a0dad64bbae80db984b40eafce5ac Mon Sep 17 00:00:00 2001 From: BtbN Date: Tue, 12 Jul 2022 19:55:52 +0200 Subject: [PATCH] Add auto update script and needed script metadata --- scripts.d/25-openssl.sh | 1 + scripts.d/45-x11/99-finalize.sh | 2 + scripts.d/50-librist/40-mbedtls.sh | 1 + scripts.d/50-schannel.sh | 2 + scripts.d/50-vaapi/99-finalize.sh | 2 + scripts.d/50-vidstab.sh | 4 +- scripts.d/50-vulkan/45-vulkan.sh | 1 + scripts.d/99-rpath.sh | 2 + util/update_scripts.sh | 75 ++++++++++++++++++++++++++++++ 9 files changed, 88 insertions(+), 2 deletions(-) create mode 100755 util/update_scripts.sh diff --git a/scripts.d/25-openssl.sh b/scripts.d/25-openssl.sh index 5303b93..28216a7 100755 --- a/scripts.d/25-openssl.sh +++ b/scripts.d/25-openssl.sh @@ -2,6 +2,7 @@ SCRIPT_REPO="https://github.com/openssl/openssl.git" SCRIPT_COMMIT="OpenSSL_1_1_1q" +SCRIPT_TAGFILTER="OpenSSL_1_1_1*" ffbuild_enabled() { return 0 diff --git a/scripts.d/45-x11/99-finalize.sh b/scripts.d/45-x11/99-finalize.sh index 4cf3f77..1714e39 100755 --- a/scripts.d/45-x11/99-finalize.sh +++ b/scripts.d/45-x11/99-finalize.sh @@ -1,5 +1,7 @@ #!/bin/bash +SCRIPT_SKIP="1" + ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 return 0 diff --git a/scripts.d/50-librist/40-mbedtls.sh b/scripts.d/50-librist/40-mbedtls.sh index 7be215b..3ffcfa8 100755 --- a/scripts.d/50-librist/40-mbedtls.sh +++ b/scripts.d/50-librist/40-mbedtls.sh @@ -2,6 +2,7 @@ SCRIPT_REPO="https://github.com/ARMmbed/mbedtls.git" SCRIPT_COMMIT="v3.2.1" +SCRIPT_TAGFILTER="v3.*" ffbuild_enabled() { return 0 diff --git a/scripts.d/50-schannel.sh b/scripts.d/50-schannel.sh index 873b2f9..4546e2b 100755 --- a/scripts.d/50-schannel.sh +++ b/scripts.d/50-schannel.sh @@ -1,5 +1,7 @@ #!/bin/bash +SCRIPT_SKIP="1" + ffbuild_enabled() { [[ $TARGET == win* ]] } diff --git a/scripts.d/50-vaapi/99-finalize.sh b/scripts.d/50-vaapi/99-finalize.sh index f11547e..5435582 100755 --- a/scripts.d/50-vaapi/99-finalize.sh +++ b/scripts.d/50-vaapi/99-finalize.sh @@ -1,5 +1,7 @@ #!/bin/bash +SCRIPT_SKIP="1" + ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 return 0 diff --git a/scripts.d/50-vidstab.sh b/scripts.d/50-vidstab.sh index 0763fc8..f3730dc 100755 --- a/scripts.d/50-vidstab.sh +++ b/scripts.d/50-vidstab.sh @@ -2,7 +2,7 @@ SCRIPT_REPO="https://github.com/georgmartius/vid.stab.git" # TODO: clamp to e7715fc until georgmartius/vid.stab#104 get fixed -SCRIPT_COMMIT="e7715fcf329573cdcff5c57d0e4a25f4c3a0cb7f" +SCRIPT_COMMIT_PINNED="e7715fcf329573cdcff5c57d0e4a25f4c3a0cb7f" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 @@ -10,7 +10,7 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vidstab + git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT_PINNED" vidstab cd vidstab mkdir build && cd build diff --git a/scripts.d/50-vulkan/45-vulkan.sh b/scripts.d/50-vulkan/45-vulkan.sh index 757753f..5edd9e4 100755 --- a/scripts.d/50-vulkan/45-vulkan.sh +++ b/scripts.d/50-vulkan/45-vulkan.sh @@ -2,6 +2,7 @@ SCRIPT_REPO="https://github.com/KhronosGroup/Vulkan-Headers.git" SCRIPT_COMMIT="v1.3.217" +SCRIPT_TAGFILTER="v?.*.*" ffbuild_enabled() { [[ $ADDINS_STR == *4.4* ]] && return -1 diff --git a/scripts.d/99-rpath.sh b/scripts.d/99-rpath.sh index 09b543c..c5d3256 100755 --- a/scripts.d/99-rpath.sh +++ b/scripts.d/99-rpath.sh @@ -1,5 +1,7 @@ #!/bin/bash +SCRIPT_SKIP="1" + ffbuild_enabled() { [[ $TARGET == linux* ]] } diff --git a/util/update_scripts.sh b/util/update_scripts.sh new file mode 100755 index 0000000..be5afee --- /dev/null +++ b/util/update_scripts.sh @@ -0,0 +1,75 @@ +#!/bin/bash +set -eo pipefail +shopt -s globstar +export LC_ALL=C + +cd "$(dirname "$0")"/.. + +for scr in scripts.d/**/*.sh; do +echo "Processing ${scr}" +( + source "$scr" + + if [[ -n "$SCRIPT_SKIP" ]]; then + exit 0 + fi + + for i in "" $(seq 2 9); do + REPO_VAR="SCRIPT_REPO$i" + COMMIT_VAR="SCRIPT_COMMIT$i" + REV_VAR="SCRIPT_REV$i" + BRANCH_VAR="SCRIPT_BRANCH$i" + TAGFILTER_VAR="SCRIPT_TAGFILTER$i" + + CUR_REPO="${!REPO_VAR}" + CUR_COMMIT="${!COMMIT_VAR}" + CUR_REV="${!REV_VAR}" + CUR_BRANCH="${!BRANCH_VAR}" + CUR_TAGFILTER="${!TAGFILTER_VAR}" + + if [[ -z "${CUR_REPO}" ]]; then + if [[ -z "$i" ]]; then + # Mark scripts without repo source for manual check + echo "xxx_CHECKME_xxx" >> "$scr" + echo "Needs manual check." + fi + break + fi + + if [[ -n "${CUR_REV}" ]]; then # SVN + echo "Checking svn rev for ${CUR_REPO}..." + NEW_REV="$(svn info --password="" "${CUR_REPO}" | grep ^Revision: | cut -d" " -f2 | xargs)" + echo "Got ${NEW_REV} (current: ${CUR_REV})" + + if [[ "${NEW_REV}" != "${CUR_REV}" ]]; then + echo "Updating ${scr}" + sed -i "s/^${REV_VAR}=.*/${REV_VAR}=\"${NEW_REV}\"/" "${scr}" + fi + elif [[ -n "${CUR_COMMIT}" ]]; then # GIT + if [[ -n "${CUR_TAGFILTER}" ]]; then + NEW_COMMIT="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --tags --refs --sort "v:refname" "${CUR_REPO}" "refs/tags/${CUR_TAGFILTER}" | tail -n1 | cut -d/ -f3- | xargs)" + else + if [[ -z "${CUR_BRANCH}" ]]; then + # Fetch default branch name + CUR_BRANCH="$(git remote show "${CUR_REPO}" | grep "HEAD branch:" | cut -d":" -f2 | xargs)" + echo "Found default branch ${CUR_BRANCH}" + fi + NEW_COMMIT="$(git ls-remote --exit-code --heads --refs "${CUR_REPO}" refs/heads/"${CUR_BRANCH}" | cut -f1)" + fi + + echo "Got ${NEW_COMMIT} (current: ${CUR_COMMIT})" + + if [[ "${NEW_COMMIT}" != "${CUR_COMMIT}" ]]; then + echo "Updating ${scr}" + sed -i "s/^${COMMIT_VAR}=.*/${COMMIT_VAR}=\"${NEW_COMMIT}\"/" "${scr}" + fi + else + # Mark scripts with unknown layout for manual check + echo "xxx_CHECKME_UNKNOWN_xxx" >> "$scr" + echo "Unknown layout. Needs manual check." + break + fi + done +) +echo +done