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