public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mike Frysinger" <vapier@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/timezone-data/
Date: Tue, 29 May 2018 10:00:19 +0000 (UTC)	[thread overview]
Message-ID: <1527588009.bc6d2bc7660077a54e30a7cf63f9d35ddfef245b.vapier@gentoo> (raw)

commit:     bc6d2bc7660077a54e30a7cf63f9d35ddfef245b
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue May 29 09:48:59 2018 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue May 29 10:00:09 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc6d2bc7

sys-libs/timezone-data: version bump to 2018e

 sys-libs/timezone-data/Manifest                   |   2 +
 sys-libs/timezone-data/timezone-data-2018e.ebuild | 169 ++++++++++++++++++++++
 2 files changed, 171 insertions(+)

diff --git a/sys-libs/timezone-data/Manifest b/sys-libs/timezone-data/Manifest
index c5c0ad8cfaf..6d850b6c4fa 100644
--- a/sys-libs/timezone-data/Manifest
+++ b/sys-libs/timezone-data/Manifest
@@ -1,6 +1,8 @@
 DIST tzcode2017c.tar.gz 219346 BLAKE2B 2ac64949343520c074718b33d42f73653fc2d355a1eb9ffc4ea1f59f33f8a06642bfed9778f99333c49bfb6226b10a263d078b04e2fd3de2a0d1cd35fb1f180e SHA512 0d8c3e07b0de9015a137602450468ceb6358312a50eeda2a860882367107b8ba9ef275880b292570a671b9910afc54e6209e1e642387d246bc9c08c4ff660ffb
 DIST tzcode2018c.tar.gz 223876 BLAKE2B d0eaf4094c786a71d0ea4bbcf974044790f2631afa6ac5512cd2e787d400b5cf2dd3f2fcd5312f354dd1e57dc500d0134723d55a9ed94037128fc7ca9c29280d SHA512 21988e876479e38661d41ea4c7b5218ba14b979739d7ba8d49a2d343bb9f37c654056ab21c046a6652715f012e4ca33c4aa109b1ec3ac5d0244dd3a7ea9ed6d2
 DIST tzcode2018d.tar.gz 229888 BLAKE2B e18ccab84b22014900f07d8a2c11f86e0bd8bc06fdf85202de456dbbad5319cb4a15663d78e75fa2c2f5fc7aa27725afc3c1f49ff543cf9a56b5f66f877e43e8 SHA512 e79a95e235cd384247e4112d5154f30eb7b40f28dab4872ed9153e45bf56569949d0845bc1b9ad24b7a5f9609bdadfc892959dbf0d540dbca79b18398dc4f930
+DIST tzcode2018e.tar.gz 231732 BLAKE2B 5e73cd4d005413e3be56dfa01b5d023a6f07a37f84c0c2ac2eb126319fb8c34f435541b79f7f9776d3ef155e5db026ce8818a555687061fbf466220cb27c7343 SHA512 4a245cae2d0922b24539a94cf4a8ccc2bba1ee696e0aaefecb41c7c8d78724a7fcea6039909336177b8b26fec8fc47719e3e56ca9839dbaf52f9a4fec84d4717
 DIST tzdata2017c.tar.gz 335571 BLAKE2B 466eefacd5600d15685d973b16d98053b3610efd9a1a9c7c7f1f384dcde8950d037c25ef065a85876433f9e9483fa72c46bb28f9c4225c7fe38a6376ada91132 SHA512 feb5c544e617b30c73a397e5a1c51f9847d0fddf1dfa0f9ace2e6f686786f09b666937b2048e07075c84593fc584bd5a25d639fce70eca9735267df28621ab4c
 DIST tzdata2018c.tar.gz 341074 BLAKE2B b2aff97cd4e9e094e4de93245e80b04c8aa4764199320beaf02633d16e230fa75908e5f088e67d837d91c7cc6b7a2757f90815fb7a439f35a73d9f59954a7016 SHA512 0575c87c9ffcde7b7f62b0df928d8a0e8d93f832b5ef7227b3d8431686f851f1fd5372c7e768f2979830352433b31df7f3979a00c28ea3973a3a0987ebbfb835
 DIST tzdata2018d.tar.gz 351271 BLAKE2B 3d3abb8e5e96537cff8d6bd36c815bf3f19907806feba7cebbe010ca927e72358ded91120514baf15cabb311b50139e28b74674a7adafabc192de5a154ccca59 SHA512 ee961aedc34e134172523a29fb8a9358f42649d06ffcd2d8a6ad86eeb174a80af5bfc4637e9e52ecdc51fa3d01afef9fff660a69ed72904ff747a59b5634830b
+DIST tzdata2018e.tar.gz 353953 BLAKE2B eaa18546434f71541567de75df17e03f8b7e4b5397e2b22e41d3ba51ba26dfe08a311926329737d9175df5e3a554ba06237cb12ff80a93a7ca441ceb7cd02710 SHA512 d059fcd381b2f6ecdafcd68fdd2a00451d1bf9b1affeb164ae7cabca2e022d499e77f0706ec3f3091b8e84c2211aa66da6c90937108771f1bf070cfebc105cae

diff --git a/sys-libs/timezone-data/timezone-data-2018e.ebuild b/sys-libs/timezone-data/timezone-data-2018e.ebuild
new file mode 100644
index 00000000000..d10a3eaf43e
--- /dev/null
+++ b/sys-libs/timezone-data/timezone-data-2018e.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit toolchain-funcs flag-o-matic
+
+code_ver=${PV}
+data_ver=${PV}
+DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)"
+HOMEPAGE="http://www.iana.org/time-zones http://www.twinsun.com/tz/tz-link.htm"
+SRC_URI="http://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.tar.gz
+	http://www.iana.org/time-zones/repository/releases/tzcode${code_ver}.tar.gz"
+
+LICENSE="BSD public-domain"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
+IUSE="nls leaps_timezone elibc_FreeBSD"
+
+DEPEND="nls? ( virtual/libintl )"
+RDEPEND="${DEPEND}
+	!sys-libs/glibc[vanilla(+)]"
+
+S=${WORKDIR}
+
+src_prepare() {
+	default
+	tc-is-cross-compiler && cp -pR "${S}" "${S}"-native
+}
+
+src_configure() {
+	tc-export CC
+
+	append-lfs-flags #471102
+
+	if use elibc_FreeBSD || use elibc_Darwin ; then
+		append-cppflags -DSTD_INSPIRED #138251
+	fi
+
+	append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"'
+	LDLIBS=""
+	if use nls ; then
+		# See if an external libintl is available. #154181 #578424
+		local c="${T}/test"
+		echo 'main(){}' > "${c}.c"
+		if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then
+			LDLIBS+=" -lintl"
+		fi
+	fi
+}
+
+_emake() {
+	emake \
+		REDO=$(usex leaps_timezone posix_right posix_only) \
+		TZDATA_TEXT= \
+		TOPDIR="${EPREFIX}" \
+		ZICDIR='$(TOPDIR)/usr/bin' \
+		"$@"
+}
+
+src_compile() {
+	_emake \
+		AR="$(tc-getAR)" \
+		cc="$(tc-getCC)" \
+		RANLIB="$(tc-getRANLIB)" \
+		CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \
+		LDFLAGS="${LDFLAGS}" \
+		LDLIBS="${LDLIBS}"
+	if tc-is-cross-compiler ; then
+		_emake -C "${S}"-native \
+			AR="$(tc-getBUILD_AR)" \
+			cc="$(tc-getBUILD_CC)" \
+			RANLIB="$(tc-getBUILD_RANLIB)" \
+			CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \
+			LDFLAGS="${BUILD_LDFLAGS}" \
+			LDLIBS="${LDLIBS}" \
+			zic
+	fi
+}
+
+src_test() {
+	# VALIDATE_ENV is used for extended/web based tests.  Punt on them.
+	emake -j1 check VALIDATE_ENV=true
+}
+
+src_install() {
+	local zic=""
+	tc-is-cross-compiler && zic="zic=${S}-native/zic"
+	_emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit"
+	rm -rf "${D}/nukeit" "${ED}/etc" || die
+	# Delete man pages installed by man-pages package.
+	rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die
+	dodoc CONTRIBUTING README NEWS *.html
+}
+
+get_TIMEZONE() {
+	local tz src="${EROOT}etc/timezone"
+	if [[ -e ${src} ]] ; then
+		tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
+	else
+		tz="FOOKABLOIE"
+	fi
+	[[ -z ${tz} ]] && return 1 || echo "${tz}"
+}
+
+pkg_preinst() {
+	local tz=$(get_TIMEZONE)
+	if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then
+		eerror "The right & posix subdirs are no longer installed as subdirs -- they have been"
+		eerror "relocated to match upstream paths as sibling paths.  Further, posix/xxx is the"
+		eerror "same as xxx, so you should simply drop the posix/ prefix.  You also should not"
+		eerror "be using right/xxx for the system timezone as it breaks programs."
+		die "Please fix your timezone setting"
+	fi
+
+	# Trim the symlink by hand to avoid portage's automatic protection checks.
+	rm -f "${EROOT}"/usr/share/zoneinfo/posix
+
+	if has_version "<=${CATEGORY}/${PN}-2015c" ; then
+		elog "Support for accessing posix/ and right/ directly has been dropped to match"
+		elog "upstream.  There is no need to set TZ=posix/xxx as it is the same as TZ=xxx."
+		elog "For TZ=right/, you can use TZ=../zoneinfo-leaps/xxx instead.  See this post"
+		elog "for details: https://mm.icann.org/pipermail/tz/2015-February/022024.html"
+	fi
+}
+
+configure_tz_data() {
+	# make sure the /etc/localtime file does not get stale #127899
+	local tz src="${EROOT}etc/timezone" etc_lt="${EROOT}etc/localtime"
+
+	# If it's a symlink, assume the user knows what they're doing and
+	# they're managing it themselves. #511474
+	if [[ -L ${etc_lt} ]] ; then
+		einfo "Assuming your ${etc_lt} symlink is what you want; skipping update."
+		return 0
+	fi
+
+	if ! tz=$(get_TIMEZONE) ; then
+		einfo "Assuming your empty ${etc_lt} file is what you want; skipping update."
+		return 0
+	fi
+	if [[ ${tz} == "FOOKABLOIE" ]] ; then
+		elog "You do not have TIMEZONE set in ${src}."
+
+		if [[ ! -e ${etc_lt} ]] ; then
+			cp -f "${EROOT}"/usr/share/zoneinfo/Factory "${etc_lt}"
+			elog "Setting ${etc_lt} to Factory."
+		else
+			elog "Skipping auto-update of ${etc_lt}."
+		fi
+		return 0
+	fi
+
+	if [[ ! -e ${EROOT}/usr/share/zoneinfo/${tz} ]] ; then
+		elog "You have an invalid TIMEZONE setting in ${src}"
+		elog "Your ${etc_lt} has been reset to Factory; enjoy!"
+		tz="Factory"
+	fi
+	einfo "Updating ${etc_lt} with ${EROOT}usr/share/zoneinfo/${tz}"
+	cp -f "${EROOT}"/usr/share/zoneinfo/"${tz}" "${etc_lt}"
+}
+
+pkg_config() {
+	configure_tz_data
+}
+
+pkg_postinst() {
+	configure_tz_data
+}


             reply	other threads:[~2018-05-29 10:00 UTC|newest]

Thread overview: 227+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-29 10:00 Mike Frysinger [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-09  3:35 [gentoo-commits] repo/gentoo:master commit in: sys-libs/timezone-data/ Sam James
2025-02-09  3:35 Sam James
2025-02-09  3:35 Sam James
2025-02-09  3:35 Sam James
2025-02-09  1:39 Sam James
2025-02-09  1:39 Sam James
2025-01-22  6:51 Sam James
2024-03-02 12:14 Arthur Zamarin
2024-03-02 12:14 Arthur Zamarin
2024-03-02 12:14 Arthur Zamarin
2024-03-02 12:14 Arthur Zamarin
2024-03-02 12:14 Arthur Zamarin
2024-03-02 12:14 Arthur Zamarin
2024-03-02  9:30 Michał Górny
2024-03-02  9:30 Michał Górny
2024-03-02  1:20 Sam James
2024-02-07  0:51 Sam James
2024-02-02 17:51 Arthur Zamarin
2024-02-02 17:51 Arthur Zamarin
2024-02-02  3:58 Sam James
2024-02-02  3:58 Sam James
2024-02-02  2:46 Sam James
2023-12-24  1:45 Sam James
2023-12-03  7:42 Sam James
2023-07-17  9:42 Benda XU
2023-04-29 13:05 Arthur Zamarin
2023-04-28 14:42 Arthur Zamarin
2023-04-27  5:31 Sam James
2023-04-26 19:48 Sam James
2023-04-26 14:29 Sam James
2023-04-26 14:26 Sam James
2023-04-26 14:26 Sam James
2023-04-26 14:26 Sam James
2023-03-29  2:27 Sam James
2023-03-29  2:27 Sam James
2023-03-27 19:30 Sam James
2023-03-24  5:12 Sam James
2023-03-24  5:12 Sam James
2023-03-23  3:29 Sam James
2022-12-26 11:26 Sam James
2022-12-26 11:26 Sam James
2022-12-26 11:26 Sam James
2022-12-26 11:26 Sam James
2022-12-26 11:26 Sam James
2022-12-26 11:26 Sam James
2022-12-26 11:26 Sam James
2022-12-26 11:26 Sam James
2022-11-30  4:14 Sam James
2022-11-25  8:53 Arthur Zamarin
2022-11-23  5:24 Arthur Zamarin
2022-11-23  4:16 Sam James
2022-11-23  4:16 Sam James
2022-11-23  4:16 Sam James
2022-11-23  4:05 Sam James
2022-11-23  4:01 Sam James
2022-11-23  4:01 Sam James
2022-11-03  6:46 Sam James
2022-10-31 16:41 Agostino Sarubbo
2022-10-30 21:55 Sam James
2022-10-29 12:32 Arthur Zamarin
2022-10-29 12:10 Arthur Zamarin
2022-10-29 11:54 Arthur Zamarin
2022-10-29 11:34 Arthur Zamarin
2022-10-29 11:08 Arthur Zamarin
2022-10-29 11:08 Arthur Zamarin
2022-10-29  9:48 Sam James
2022-10-12 19:56 Sam James
2022-10-12 19:56 Sam James
2022-09-25  1:15 Sam James
2022-09-23  1:56 Sam James
2022-09-16 17:17 Arthur Zamarin
2022-09-14 19:38 Arthur Zamarin
2022-09-13 14:41 Sam James
2022-09-13 12:26 Sam James
2022-09-13  8:16 Agostino Sarubbo
2022-09-12 19:13 Arthur Zamarin
2022-09-12  9:55 Sam James
2022-09-12  9:55 Sam James
2022-08-26 23:27 Sam James
2022-08-26  5:46 Sam James
2022-08-25 16:44 Arthur Zamarin
2022-08-25 16:44 Arthur Zamarin
2022-08-25 16:44 Arthur Zamarin
2022-08-25 16:44 Arthur Zamarin
2022-08-25 16:44 Arthur Zamarin
2022-08-25 16:44 Arthur Zamarin
2022-08-25  8:20 Sam James
2022-08-16  1:57 Sam James
2022-08-13  6:17 Sam James
2022-07-29  4:17 Sam James
2022-03-20  2:51 Mike Frysinger
2022-02-23 20:00 Arthur Zamarin
2022-02-19 12:02 Arthur Zamarin
2022-02-19 11:08 Arthur Zamarin
2022-02-19  3:38 Sam James
2022-02-19  3:38 Sam James
2022-02-19  3:06 Sam James
2022-02-19  2:40 Sam James
2022-02-19  2:28 Sam James
2022-01-02 17:49 David Seifert
2021-10-25  4:20 Mike Frysinger
2021-06-30 18:49 Mike Gilbert
2021-06-30 18:31 Mike Gilbert
2021-03-22 19:05 Mike Gilbert
2021-03-06 10:13 Sergei Trofimovich
2021-02-27 10:44 Sam James
2021-02-27 10:08 Sam James
2021-02-26 17:34 Sergei Trofimovich
2021-02-26 16:11 Sam James
2021-02-26 14:19 Agostino Sarubbo
2021-02-26 14:03 Sam James
2021-02-26 14:00 Sam James
2021-02-26 13:59 Sam James
2021-02-26 13:53 Sam James
2021-02-20 10:23 Sergei Trofimovich
2021-02-15  1:49 Sam James
2021-02-14  2:10 Sam James
2021-02-12 13:46 Sam James
2021-02-08 15:08 Sergei Trofimovich
2021-02-06 18:27 Sergei Trofimovich
2021-02-06  0:02 Sam James
2021-02-05 12:31 Sam James
2021-02-05 12:29 Sam James
2021-02-05 10:42 Sam James
2021-02-05 10:42 Sam James
2021-02-05 10:40 Sam James
2021-02-02 23:46 Sam James
2021-01-30 19:31 Sam James
2021-01-30 10:03 Sam James
2021-01-29 20:50 Sam James
2021-01-28 19:47 Sam James
2021-01-28 17:47 Sam James
2021-01-28 16:29 Sam James
2021-01-28 16:27 Sam James
2021-01-27  7:31 Sergei Trofimovich
2021-01-06 15:35 Fabian Groffen
2020-12-30 16:35 Sergei Trofimovich
2020-12-27 18:20 Fabian Groffen
2020-12-26 12:56 Sergei Trofimovich
2020-12-18  9:53 Sergei Trofimovich
2020-12-09 22:38 Sergei Trofimovich
2020-12-02 21:31 Sam James
2020-12-02 10:23 Sam James
2020-12-01 12:49 Sam James
2020-11-29 17:17 Sergei Trofimovich
2020-11-29 17:11 Sergei Trofimovich
2020-11-29 17:08 Sergei Trofimovich
2020-11-28 13:34 Thomas Deutschmann
2020-11-05 14:05 Dirkjan Ochtman
2020-10-29 12:51 Louis Sautier
2020-10-29  7:59 Sergei Trofimovich
2020-10-29  7:59 Sergei Trofimovich
2020-10-29  7:59 Sergei Trofimovich
2020-10-07 17:22 Thomas Deutschmann
2020-08-02 15:19 Fabian Groffen
2020-05-10 10:50 Thomas Deutschmann
2020-04-29 21:31 Thomas Deutschmann
2020-03-23 23:58 Sergei Trofimovich
2019-10-20 18:10 Thomas Deutschmann
2019-10-20 18:10 Thomas Deutschmann
2019-10-16 23:53 Thomas Deutschmann
2019-10-16 23:53 Thomas Deutschmann
2019-10-16 23:53 Thomas Deutschmann
2019-09-20 19:29 Sergei Trofimovich
2019-08-22 21:03 Sergei Trofimovich
2019-08-22 11:01 Thomas Deutschmann
2019-07-20  0:56 Thomas Deutschmann
2019-07-19 16:31 Thomas Deutschmann
2019-07-19 16:31 Thomas Deutschmann
2019-05-04 10:19 Mikle Kolyada
2019-04-28 22:06 Thomas Deutschmann
2019-01-19  5:59 Thomas Deutschmann
2019-01-06 20:16 Thomas Deutschmann
2019-01-06 20:16 Thomas Deutschmann
2019-01-03  0:58 Thomas Deutschmann
2018-12-16 23:50 Thomas Deutschmann
2018-11-10 16:04 Thomas Deutschmann
2018-11-10 15:13 Thomas Deutschmann
2018-11-05 12:49 Thomas Deutschmann
2018-08-30 15:55 Thomas Deutschmann
2018-05-29 10:00 Mike Frysinger
2018-04-10 12:34 Manuel Rüger
2018-03-02  9:58 Michał Górny
2018-02-24 10:21 Michał Górny
2018-01-30  0:50 Benda XU
2018-01-27 21:01 Mike Frysinger
2018-01-24 13:51 Fabian Groffen
2018-01-24  6:37 Mike Frysinger
2018-01-20 18:34 Mike Frysinger
2018-01-17 18:01 Markus Meier
2017-12-16 13:24 Sergei Trofimovich
2017-12-14 11:18 Jason Zaman
2017-10-02 21:44 Andreas Hüttel
2017-10-02 21:38 Andreas Hüttel
2017-09-12  9:13 Fabian Groffen
2017-03-24  7:39 Mike Frysinger
2017-03-19 19:16 Mike Frysinger
2017-03-04  9:21 Dirkjan Ochtman
2017-01-29 20:14 Fabian Groffen
2016-11-27  4:43 Mike Gilbert
2016-11-24 11:40 Dirkjan Ochtman
2016-11-10  6:16 Mike Frysinger
2016-11-03 11:23 Dirkjan Ochtman
2016-10-21  8:16 Dirkjan Ochtman
2016-08-01  8:50 Mike Frysinger
2016-08-01  8:50 Mike Frysinger
2016-07-05 18:13 Dirkjan Ochtman
2016-06-23 14:30 Mike Frysinger
2016-06-14 17:22 Dirkjan Ochtman
2016-06-14 17:22 Dirkjan Ochtman
2016-05-09  2:33 Mike Frysinger
2016-05-09  2:33 Mike Frysinger
2016-05-09  2:33 Mike Frysinger
2016-04-19 19:49 Dirkjan Ochtman
2016-04-08  4:08 Mike Frysinger
2016-04-08  4:08 Mike Frysinger
2016-04-08  4:08 Mike Frysinger
2016-03-07 18:57 Mike Frysinger
2016-02-02 18:54 Mike Frysinger
2016-02-02 18:54 Mike Frysinger
2016-01-02  5:46 Mike Frysinger
2015-10-03  2:21 Mike Frysinger
2015-10-03  2:21 Mike Frysinger
2015-08-22  0:18 Mike Frysinger
2015-08-12  4:24 Mike Frysinger
2015-08-12  4:24 Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1527588009.bc6d2bc7660077a54e30a7cf63f9d35ddfef245b.vapier@gentoo \
    --to=vapier@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox