@@ -494,6 +494,15 @@ set_package () {
494494 extra_packages=" mingw-w64-openssl-pdb"
495495 pkgpath=/usr/src/MINGW-packages/$package
496496 ;;
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+ ;;
497506 curl)
498507 type=MSYS
499508 extra_packages=" libcurl libcurl-devel"
@@ -2219,7 +2228,7 @@ ensure_gpg_key () {
22192228}
22202229
22212230create_bundle_artifact () {
2222- test -n " $artifactsdir " || return
2231+ test -n " $artifactsdir " || return 0
22232232 upstream_main_branch=" $( git rev-parse --verify -q git-for-windows/main) " ||
22242233 upstream_main_branch=" $( git rev-parse --verify -q origin/main) " ||
22252234 return
@@ -2265,8 +2274,34 @@ maybe_force_pkgrel () {
22652274 test 0 -lt $( git rev-list --count ${blame: +${blame%% * } ..} ${blame_ver: +$blame_ver ..} -- PKGBUILD)
22662275 then
22672276 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
22682295 fi
22692296 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
22702305}
22712306
22722307# --force overwrites existing an Git tag, or existing package files
@@ -2344,14 +2379,16 @@ upgrade () { # [--directory=<artifacts-directory>] [--only-mingw] [--no-build] [
23442379 test -z " $only_mingw " ||
23452380 test curl = " $package " ||
23462381 test openssl = " $package " ||
2382+ test gnutls = " $package " ||
23472383 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"
23492385
23502386 test -z " $skip_mingw " ||
23512387 test openssl = " $package " ||
2388+ test gnutls = " $package " ||
23522389 test curl = " $package " ||
23532390 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"
23552392
23562393 test -z " $only_mingw " || test -z " $skip_mingw " ||
23572394 die " --only-mingw and --skip-mingw are mutually exclusive\n"
@@ -2900,6 +2937,61 @@ upgrade () { # [--directory=<artifacts-directory>] [--only-mingw] [--no-build] [
29002937 url=https://www.openssl.org/news/openssl-$v -notes.html &&
29012938 release_notes_feature=' Comes with [OpenSSL v' $version ' ](' " $url " ' ).'
29022939 ;;
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+ ;;
29032995 mingw-w64-wintoast| mingw-w64-cv2pdb)
29042996 (cd " $sdk64$pkgpath " &&
29052997 MINGW_INSTALLS=mingw64 \
0 commit comments