@@ -494,6 +494,15 @@ set_package () {
494
494
extra_packages=" mingw-w64-openssl-pdb"
495
495
pkgpath=/usr/src/MINGW-packages/$package
496
496
;;
497
+ gnutls)
498
+ type=MSYS
499
+ extra_packages=" libgnutls gnutls-devel"
500
+ pkgpath=/usr/src/MSYS2-packages/$package
501
+ ;;
502
+ mingw-w64-gnutls)
503
+ type=MINGW
504
+ pkgpath=/usr/src/MINGW-packages/$package
505
+ ;;
497
506
curl)
498
507
type=MSYS
499
508
extra_packages=" libcurl libcurl-devel"
@@ -2219,7 +2228,7 @@ ensure_gpg_key () {
2219
2228
}
2220
2229
2221
2230
create_bundle_artifact () {
2222
- test -n " $artifactsdir " || return
2231
+ test -n " $artifactsdir " || return 0
2223
2232
upstream_main_branch=" $( git rev-parse --verify -q git-for-windows/main) " ||
2224
2233
upstream_main_branch=" $( git rev-parse --verify -q origin/main) " ||
2225
2234
return
@@ -2265,8 +2274,34 @@ maybe_force_pkgrel () {
2265
2274
test 0 -lt $( git rev-list --count ${blame: +${blame%% * } ..} ${blame_ver: +$blame_ver ..} -- PKGBUILD)
2266
2275
then
2267
2276
sed -i " s/^\\ (pkgrel=\\ ).*/\\ 1" $(( 1 + ${blame##* =} )) / PKGBUILD
2277
+ else
2278
+ case " ${PWD##*/ MSYS2-packages/ } " in
2279
+ perl-* )
2280
+ # Handle perl dependencees: if perl changed, increment pkgrel
2281
+ blame_perl=" $( MSYS_NO_PATHCONV=1 git blame -L ' /^pkgver=/,+1' -- ../perl/PKGBUILD) " &&
2282
+ blame_perl=" $( echo " $blame_perl " | sed -e ' s/ .*//' -e ' s/^0*$//' ) " &&
2283
+ blame_perl_pkgrel=" $( MSYS_NO_PATHCONV=1 git blame -L ' /^pkgrel=/,+1' " $blame_perl .." -- ../perl/PKGBUILD) " &&
2284
+ if test -n " $blame_perl_pkgrel "
2285
+ then
2286
+ blame_perl=" $( echo " $blame_perl_pkgrel " | sed -e ' s/ .*//' -e ' s/^0*$//' ) "
2287
+ fi &&
2288
+ if test -n " $blame_perl " &&
2289
+ test 0 = $( git rev-list --count $blame_perl .. -- ./PKGBUILD)
2290
+ then
2291
+ sed -i " s/^\\ (pkgrel=\\ ).*/\\ 1" $(( 1 + ${blame##* =} )) / PKGBUILD
2292
+ fi
2293
+ ;;
2294
+ esac
2268
2295
fi
2269
2296
fi
2297
+
2298
+ # make sure that we did not downgrade
2299
+ if test 0 -ge $(( $(git diff HEAD -- PKGBUILD |
2300
+ sed -n 's/^\([-+]\)pkgrel=\([0 -9 ]*\)$/\1 \2 /p' | tr -d '\n')) )
2301
+ then
2302
+ die ' pkgrel must not be downgraded:\n\n%s\n' \
2303
+ " $( git diff HEAD -- PKGBUILD) "
2304
+ fi
2270
2305
}
2271
2306
2272
2307
# --force overwrites existing an Git tag, or existing package files
@@ -2344,14 +2379,16 @@ upgrade () { # [--directory=<artifacts-directory>] [--only-mingw] [--no-build] [
2344
2379
test -z " $only_mingw " ||
2345
2380
test curl = " $package " ||
2346
2381
test openssl = " $package " ||
2382
+ test gnutls = " $package " ||
2347
2383
test MINGW = " $type " ||
2348
- die " The --only-mingw option is supported only for curl\n"
2384
+ die " The --only-mingw option is supported only for openssl/gnutls/ curl\n"
2349
2385
2350
2386
test -z " $skip_mingw " ||
2351
2387
test openssl = " $package " ||
2388
+ test gnutls = " $package " ||
2352
2389
test curl = " $package " ||
2353
2390
test MSYS = " $type " ||
2354
- die " The --skip-mingw option is supported only for openssl/curl\n"
2391
+ die " The --skip-mingw option is supported only for openssl/gnutls/ curl\n"
2355
2392
2356
2393
test -z " $only_mingw " || test -z " $skip_mingw " ||
2357
2394
die " --only-mingw and --skip-mingw are mutually exclusive\n"
@@ -2900,6 +2937,61 @@ upgrade () { # [--directory=<artifacts-directory>] [--only-mingw] [--no-build] [
2900
2937
url=https://www.openssl.org/news/openssl-$v -notes.html &&
2901
2938
release_notes_feature=' Comes with [OpenSSL v' $version ' ](' " $url " ' ).'
2902
2939
;;
2940
+ gnutls)
2941
+ feed=" $( curl -s https://gnutls.org/news.atom) " &&
2942
+ version=" $( echo " $feed " |
2943
+ sed -n ' /<title>G[Nn][Uu] \?TLS [1-9]/{s/.*TLS \([1-9][0-9.]*\).*/\1/p;q}' ) " &&
2944
+ test -n " $version " ||
2945
+ die " Could not determine newest GNU TLS version\n"
2946
+
2947
+ test -n " $only_mingw " ||
2948
+ (cd " $sdk64$pkgpath " &&
2949
+ sed -i -e ' s/^\(_base_ver=\).*/\1' $version / \
2950
+ -e ' s/^pkgrel=.*/pkgrel=1/' PKGBUILD &&
2951
+ maybe_force_pkgrel " $force_pkgrel " &&
2952
+ updpkgsums &&
2953
+ git commit -s -m " $package : new version ($version ${force_pkgrel: +-$force_pkgrel } )" PKGBUILD &&
2954
+ create_bundle_artifact) &&
2955
+ test 0 = $? ||
2956
+ die " Could not update %s\n" " $sdk64$pkgpath /PKGBUILD"
2957
+
2958
+ git -C " $sdk32$pkgpath " pull " $sdk64$pkgpath /.." main &&
2959
+
2960
+ (if test -n " $skip_mingw "
2961
+ then
2962
+ exit 0
2963
+ fi &&
2964
+ set_package mingw-w64-$1 &&
2965
+ maybe_init_repository " $sdk64$pkgpath " &&
2966
+ cd " $sdk64$pkgpath " &&
2967
+ { test -n " $skip_upload " ||
2968
+ require_push_url origin; } &&
2969
+ sdk=" $sdk64 " ff_main_branch || exit
2970
+
2971
+ sed -i -e ' s/^\(_pkgver=\).*/\1' $version / \
2972
+ -e ' s/^pkgrel=.*/pkgrel=1/' PKGBUILD &&
2973
+ maybe_force_pkgrel " $force_pkgrel " &&
2974
+ updpkgsums &&
2975
+ git commit -s -m " ${package# mingw-w64-} : new version ($version ${force_pkgrel: +-$force_pkgrel } )" PKGBUILD &&
2976
+ create_bundle_artifact &&
2977
+
2978
+ if test -z " $skip_build "
2979
+ then
2980
+ build $force $cleanbuild " $package " &&
2981
+ sdk=" $sdk64 " pkg_copy_artifacts &&
2982
+ install " $package " &&
2983
+ if test -z " $skip_upload "
2984
+ then
2985
+ upload " $package "
2986
+ fi
2987
+ fi) &&
2988
+ test 0 = $? &&
2989
+
2990
+ v=" $( echo " $version " | tr -dc 0-9.) " &&
2991
+ url=" $( echo " $feed " |
2992
+ sed -n ' /<a href=[^>]*>G[Nn][Uu] \?TLS [1-9]/{s/.*<a href="\?\([^>"]*\).*/\1/p;q}' ) " &&
2993
+ release_notes_feature=' Comes with [GNU TLS v' $version ' ](' " $url " ' ).'
2994
+ ;;
2903
2995
mingw-w64-wintoast| mingw-w64-cv2pdb)
2904
2996
(cd " $sdk64$pkgpath " &&
2905
2997
MINGW_INSTALLS=mingw64 \
0 commit comments