114b11b2bSmrg#!/bin/bash
214b11b2bSmrg
314b11b2bSmrgset -eu
414b11b2bSmrg
514b11b2bSmrgbuild_dir=build-release
614b11b2bSmrg
714b11b2bSmrgcase "$(git rev-parse --abbrev-ref HEAD)" in
814b11b2bSmrgmaster | [0-9]*.[0-9]*)
914b11b2bSmrg	;;
1014b11b2bSmrg*)
1114b11b2bSmrg	echo "Not on the master or a stable branch"
1214b11b2bSmrg	exit 1
1314b11b2bSmrgesac
1414b11b2bSmrg
1514b11b2bSmrgif [[ -n "$(git log origin..)" ]]; then
1614b11b2bSmrg	echo "The main branch has unpushed commits"
1714b11b2bSmrg	exit 1
1814b11b2bSmrgfi
1914b11b2bSmrg
2014b11b2bSmrgmeson_options=""
2114b11b2bSmrgif [[ -e "$build_dir" ]]; then
2214b11b2bSmrg	meson_options="$meson_options --wipe"
2314b11b2bSmrgfi
2414b11b2bSmrgmeson setup "$build_dir" $meson_options
2514b11b2bSmrg
2614b11b2bSmrgprev_version="$(git describe --tags --abbrev=0)"
2714b11b2bSmrgversion="$(meson introspect "$build_dir" --projectinfo | jq -r .version)"
2814b11b2bSmrgif [[ "pixman-$version" == "$prev_version" ]]; then
2914b11b2bSmrg	echo "Version not bumped"
3014b11b2bSmrg	exit 1
3114b11b2bSmrgfi
3214b11b2bSmrg
3314b11b2bSmrgcairo_dest=cairographics.org:/srv/cairo.freedesktop.org/www/releases
3414b11b2bSmrgxorg_dest=xorg.freedesktop.org:/srv/xorg.freedesktop.org/archive/individual/lib
3514b11b2bSmrg
3614b11b2bSmrgcairo_url=https://cairographics.org/releases
3714b11b2bSmrgxorg_url=https://www.x.org/releases/individual/lib
3814b11b2bSmrg
3914b11b2bSmrgtar_gz="pixman-$version.tar.gz"
4014b11b2bSmrgsha512_tgz="$tar_gz.sha512"
4114b11b2bSmrgpgp_sig_tgz="$sha512_tgz.asc"
4214b11b2bSmrg
4314b11b2bSmrgtar_xz="pixman-$version.tar.xz"
4414b11b2bSmrgsha512_txz="$tar_xz.sha512"
4514b11b2bSmrgpgp_sig_txz="$sha512_txz.asc"
4614b11b2bSmrg
4714b11b2bSmrgannounce="pixman-$version.eml"
4814b11b2bSmrg
4914b11b2bSmrgdistdir="${build_dir}/meson-dist"
5014b11b2bSmrg
5114b11b2bSmrggit tag -s -m "pixman $version release" "pixman-$version"
5214b11b2bSmrg
5314b11b2bSmrgmeson setup "${build_dir}"
5414b11b2bSmrgmeson dist -C "${build_dir}" --formats xztar,gztar
5514b11b2bSmrgpushd "$distdir" >&/dev/null
5614b11b2bSmrgsha512sum "$tar_gz" >"$sha512_tgz"
5714b11b2bSmrgsha512sum "$tar_xz" >"$sha512_txz"
5814b11b2bSmrggpg --armor --sign "$sha512_tgz"
5914b11b2bSmrggpg --armor --sign "$sha512_txz"
6014b11b2bSmrg
6114b11b2bSmrgcat >"$announce" <<EOF
6214b11b2bSmrgTo: cairo-announce@cairographics.org, xorg-announce@lists.freedesktop.org, pixman@lists.freedesktop.org
6314b11b2bSmrgSubject: [ANNOUNCE] pixman release $version now available
6414b11b2bSmrg
6514b11b2bSmrgA new pixman release $version is now available.
6614b11b2bSmrg
6714b11b2bSmrgtar.gz:
6814b11b2bSmrg	$cairo_url/$tar_gz
6914b11b2bSmrg	$xorg_url/$tar_gz
7014b11b2bSmrg
7114b11b2bSmrgtar.xz:
7214b11b2bSmrg	$cairo_url/$tar_xz
7314b11b2bSmrg	$xorg_url/$tar_xz
7414b11b2bSmrg
7514b11b2bSmrgHashes:
7614b11b2bSmrg	SHA512: $(sha512sum "$tar_gz")
7714b11b2bSmrg	SHA512: $(sha512sum "$tar_xz")
7814b11b2bSmrg
7914b11b2bSmrgPGP signature:
8014b11b2bSmrg	$cairo_url/$pgp_sig_tgz
8114b11b2bSmrg	$cairo_url/$pgp_sig_txz
8214b11b2bSmrg	$xorg_url/$pgp_sig_tgz
8314b11b2bSmrg	$xorg_url/$pgp_sig_txz
8414b11b2bSmrg
8514b11b2bSmrgGit:
8614b11b2bSmrg	https://gitlab.freedesktop.org/pixman/pixman.git
8714b11b2bSmrg	tag: pixman-$version
8814b11b2bSmrg
8914b11b2bSmrgLog:
9014b11b2bSmrg$(git log --no-merges "${prev_version}..pixman-${version}" | git shortlog | awk '{ printf "\t"; print ; }' | cut -b1-80)
9114b11b2bSmrgEOF
9214b11b2bSmrg
9314b11b2bSmrgscp "$tar_gz" "$sha512_tgz" "$pgp_sig_tgz" "$tar_xz" "$sha512_txz" "$pgp_sig_txz" "$cairo_dest"
9414b11b2bSmrgscp "$tar_gz" "$sha512_tgz" "$pgp_sig_tgz" "$tar_xz" "$sha512_txz" "$pgp_sig_txz" "$xorg_dest"
9514b11b2bSmrgpopd >& /dev/null
9614b11b2bSmrg
9714b11b2bSmrggit push --follow-tags
9814b11b2bSmrg
9914b11b2bSmrgecho "[ANNOUNCE] template generated in \"$distdir/$announce\" file."
10014b11b2bSmrgecho "      Please pgp sign and send it."
101