Skip to content

Commit 6731c33

Browse files
committed
Merge branch 'please-upgrade'
This topic branch adds support for building the `gnutls` package, and while in the area, addresses a couple other long-standing issues in the `upgrade` sub-command of the `please.sh` script. Signed-off-by: Johannes Schindelin <[email protected]>
2 parents 4fc3264 + 2031852 commit 6731c33

File tree

1 file changed

+95
-3
lines changed

1 file changed

+95
-3
lines changed

please.sh

Lines changed: 95 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

22212230
create_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

Comments
 (0)