Skip to content

Commit

Permalink
clang: add helper script to keep package updated
Browse files Browse the repository at this point in the history
We'll need to update our clang when Msys2 updates theirs and reapply our
customisations every time, so a script makes this job less tedious and
leaves no room to miss a step of the process.
This script performs the same steps as the previous two commits. (it
was used to generate the files for those)

Signed-off-by: Matthias Aßhauer <mha1993@live.de>
  • Loading branch information
rimrul committed Aug 13, 2023
1 parent 11ac321 commit a8c7fce
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions mingw-w64-clang/update-clang-from-msys2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/usr/bin/bash
die () {
printf "$@" >&2
cleanup
exit 1
}
cleanup(){
rm -rf upstream
}

pkgname=mingw-w64-clang

old_pkgver="$(sed -ne 's/pkgver=\([.0-9]*\).*/\1/p' -e 's/_version=\([.0-9]*\).*/\1/p' < PKGBUILD)"
old_pkgrel="$(sed -ne 's/pkgrel=\([0-9]*\).*/\1/p' < PKGBUILD)"

test -n "$old_pkgver" ||
die "$0: could not determine current pkgver\n"

test -n "$old_pkgrel" ||
die "$0: could not determine current pkgrel\n"

git clone --sparse --depth 1 --filter=blob:none https://github.com/msys2/MINGW-packages upstream
git -C upstream sparse-checkout add $pkgname

new_pkgver="$(sed -ne 's/pkgver=\([.0-9]*\).*/\1/p' -e 's/_version=\([.0-9]*\).*/\1/p' < upstream/$pkgname/PKGBUILD)"
new_pkgrel="$(sed -ne 's/pkgrel=\([0-9]*\).*/\1/p' < upstream/$pkgname/PKGBUILD)"
rc="$(sed -ne 's/_rc="\(*\)".*/\1/p' < upstream/$pkgname/PKGBUILD)"

test -n "$new_pkgver" ||
die "$0: could not determine new pkgver\n"

test -n "$new_pkgrel" ||
die "$0: could not determine new pkgrel\n"

test -z "$rc" ||
die "$0: MSYS2 is currently on an RC version. This script is not able to handle RC versions."

test "$new_pkgver" = "$old_pkgver" &&
new_pkgrel="$old_pkgrel"

new_pkgrel=$(("$new_pkgrel"+1))

rm -f *.patch &&
mv upstream/$pkgname/*.patch ./ &&
rm -f PKGBUILD &&
mv upstream/$pkgname/PKGBUILD ./ &&
rm -f README-patches.md &&
mv upstream/$pkgname/README-patches.md ./ || die "$0: failed to replace existing files with upstream files"

sed -e "s/pkgrel=[.0-9]\+\(.*\)/pkgrel=$new_pkgrel\1/" \
-e 's/-DCMAKE_BUILD_TYPE=Release/-DCMAKE_BUILD_TYPE=MinSizeRel/' \
-e 's/-DLLVM_TARGETS_TO_BUILD=".*"/-DLLVM_TARGETS_TO_BUILD="host"/' \
-e 's/-DLLVM_ENABLE_SPHINX=ON/-DLLVM_ENABLE_SPHINX=OFF/'\
-e '/^check()/,/^}/d' \
-i PKGBUILD

cleanup

0 comments on commit a8c7fce

Please sign in to comment.