@@ -2366,6 +2366,99 @@ upgrade () { # <package>
23662366 url=https://github.com/$repo /releases/tag/v$version &&
23672367 relnotes_feature=' Comes with [Git LFS v' $version ' ](' " $url " ' ).'
23682368 ;;
2369+ msys2-runtime)
2370+ (cd " $sdk64 /usr/src/MSYS2-packages/msys2-runtime" &&
2371+ if test ! -d src/msys2-runtime
2372+ then
2373+ MSYSTEM=msys PATH=" $sdk64 /usr/bin:$PATH " \
2374+ " $sdk64 " /git-cmd.exe --command=usr\\ bin\\ sh.exe -l -c \
2375+ ' makepkg-mingw --nobuild'
2376+ fi ||
2377+ die " Could not initialize worktree for '%s\n" " $package "
2378+
2379+ cd src/msys2-runtime ||
2380+ die " Invalid worktree for '%s'\n" " $package "
2381+
2382+ require_remote cygwin \
2383+ git://sourceware.org/git/newlib-cygwin.git &&
2384+ git fetch --tags cygwin &&
2385+ require_remote git-for-windows \
2386+ https://github.com/git-for-windows/msys2-runtime ||
2387+ die " Could not connect remotes for '%s'\n" " $package "
2388+
2389+ tag=$( git for-each-ref --sort=-taggerdate --count=1 \
2390+ --format=' %(refname)' refs/tags/cygwin-\* -release) &&
2391+ test -n " $tag " ||
2392+ die " Could not determine latest tag of '%s'\n" " $package "
2393+
2394+ version=" $( echo " $tag " | sed -ne ' y/_/./' -e \
2395+ ' s|^refs/tags/cygwin-\([1-9][.0-9]*\)-release$|\1|p' ) " &&
2396+ test -n " $version " ||
2397+ die " Invalid version '%s' for '%s'\n" " $version " " $package "
2398+
2399+ # rebase if necessary
2400+ if test 0 -lt $( git rev-list --count \
2401+ git-for-windows/master..$tag )
2402+ then
2403+ require_push_url git-for-windows &&
2404+ git reset --hard &&
2405+ git checkout git-for-windows/master &&
2406+ GIT_EDITOR=true \
2407+ " $sdk64 " /usr/src/build-extra/shears.sh \
2408+ --merging --onto " $tag " merging-rebase &&
2409+ git push git-for-windows HEAD:master ||
2410+ die " Could not rebase '%s' to '%s'\n" " $package " " $tag "
2411+ fi
2412+
2413+ msys2_runtime_mtime=$( git log -1 --format=%at \
2414+ git-for-windows/master --) &&
2415+ msys2_package_mtime=$( git -C ../.. log -1 --format=%at -- .) &&
2416+ test $msys2_runtime_mtime -gt $msys2_package_mtime ||
2417+ die " Package '%s' already up-to-date\n\t%s: %s\n\t%s: %s\n" \
2418+ " $package " \
2419+ " Most recent source code update" \
2420+ " $( date --date=" @$msys2_runtime_mtime " ) " \
2421+ " Most recent package update" \
2422+ " $( date --date=" @$msys2_package_mtime " ) "
2423+
2424+ cygwin_url=" $( curl -s https://cygwin.com/ |
2425+ sed -n ' /The most recent version of the Cygwin DLL is/{
2426+ N;s/.*<a href="\([^"]*\)">' " $version " ' <\/a>.*/\1/p
2427+ }' ) " &&
2428+ test -n " $cygwin_url " ||
2429+ die " Could not retrieve Cygwin mail about v%s\n" " $version "
2430+
2431+ git reset --hard &&
2432+ git checkout git-for-windows/master &&
2433+ commit_url=https://github.com/git-for-windows/msys2-runtime &&
2434+ commit_url=$commit_url /commit/$( git rev-parse HEAD) &&
2435+ cd ../.. &&
2436+ if test " $version " = " $( sed -n ' s/^pkgver=//p' < PKGBUILD) "
2437+ then
2438+ pkgrel=$(( $(sed - n 's/ ^pkgrel=// p' < PKGBUILD)+ 1 )) &&
2439+ printf ' Comes with %s%s [%s](%s).' \
2440+ " [patch level $pkgrel ]($commit_url ) " \
2441+ ' MSYS2 runtime (Git for Windows flavor) based on' \
2442+ " Cygwin $version " " $cygwin_url " > ../.git/relnotes &&
2443+ sed -i " s/^\\ (pkgrel=\\ ).*/\\ 1$pkgrel /" PKGBUILD
2444+ else
2445+ printf ' Comes with %s [%s](%s).' \
2446+ ' MSYS2 runtime (Git for Windows flavor) based on' \
2447+ " Cygwin $version " " $cygwin_url " > ../.git/relnotes &&
2448+ sed -i -e " s/^\\ (pkgver=\\ ).*/\\ 1$version /" \
2449+ -e " s/^\\ (pkgrel=\\ ).*/\\ 11/" PKGBUILD
2450+ fi &&
2451+ git commit -s -m " $package : update to v$version " PKGBUILD &&
2452+ MSYSTEM=msys PATH=" $sdk64 /usr/bin:$PATH " \
2453+ " $sdk64 " /git-cmd.exe --command=usr\\ bin\\ sh.exe -l -c \
2454+ ./update-patches.sh &&
2455+ git commit --amend -C HEAD ||
2456+ die " Could not update PKGBUILD of '%s' to version %s\n" \
2457+ " $package " " $version " &&
2458+ git -C " $sdk32 /$pkgpath " pull " $sdk64 /$pkgpath /.." master
2459+ ) || exit
2460+ relnotes_feature=" $( cat " $sdk64 /$pkgpath /../.git/relnotes" ) "
2461+ ;;
23692462 * )
23702463 die " Unhandled package: %s\n" " $package "
23712464 ;;
0 commit comments