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 Jul 3, 2023
1 parent dc6ac7a commit 112a4a2
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions mingw-w64-clang/update-clang-from-msys2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/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/1d33da596dcef12272389cb81277db205dd2153e2e52612d2d01ab3f0e7b3fb7/SKIP/' \
-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 112a4a2

Please sign in to comment.