Github messages for voidlinux
 help / color / mirror / Atom feed
From: voidlinux-github@inbox.vuxu.org
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [WIP] nodejs*: update
Date: Thu, 26 Dec 2019 14:29:31 +0100	[thread overview]
Message-ID: <20191226132931.Dbysp1d8k_-w-25cYo6B5wL609XZw9W0P6vZrBpL_8U@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-17592@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 457 bytes --]

There is an updated pull request by k4leg against master on the void-packages repository

https://github.com/k4leg/void-packages nodejs
https://github.com/void-linux/void-packages/pull/17592

[WIP] nodejs*: update
Do I need to rebuild packages that depend on `nodejs*` or `nodejs*-devel`?
(https://nodejs.org/en/blog/vulnerability/december-2019-security-releases/)

A patch file from https://github.com/void-linux/void-packages/pull/17592.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-nodejs-17592.patch --]
[-- Type: text/x-diff, Size: 15013 bytes --]

From 4fcec5d87ca586bc3d65dcbf5a14cdf83c258bd2 Mon Sep 17 00:00:00 2001
From: k4leg <d0xi@inbox.ru>
Date: Thu, 26 Dec 2019 13:36:17 +0300
Subject: [PATCH 1/4] llhttp: update to 2.0.1. [ci skip]

---
 srcpkgs/llhttp/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/llhttp/template b/srcpkgs/llhttp/template
index 3cf0b41e92d..4b155acc2dc 100644
--- a/srcpkgs/llhttp/template
+++ b/srcpkgs/llhttp/template
@@ -1,6 +1,6 @@
 # Template file for 'llhttp'
 pkgname=llhttp
-version=1.1.4
+version=2.0.1
 revision=1
 wrksrc="llhttp-release-v${version}"
 build_style=gnu-makefile
@@ -11,7 +11,7 @@ homepage="https://llhttp.org/"
 # _always_ use releases. Those have the C code generated, otherwise
 # we'd have a dep loop nodejs<->llhttp
 distfiles="https://github.com/nodejs/llhttp/archive/release/v${version}.tar.gz"
-checksum=eeb07e60a8f4113b110dd758756da3db69e4e2575b0407afb0a7755aef504dbb
+checksum=76100c5b7948c8e49e8afa8c658e2a477bcb831e18854cf134aa3bfd44a5c669
 
 post_extract() {
 	# No need to pull in gyp for such a simple Makefile...

From 7728157df06bbb570e7791b477a3e0b1c8810763 Mon Sep 17 00:00:00 2001
From: k4leg <d0xi@inbox.ru>
Date: Thu, 26 Dec 2019 13:37:39 +0300
Subject: [PATCH 2/4] nodejs: update to 13.5.0. [ci skip]

---
 srcpkgs/nodejs/patches/ppc32.patch | 20 ------------
 srcpkgs/nodejs/template            | 50 +++++++++++++-----------------
 2 files changed, 22 insertions(+), 48 deletions(-)
 delete mode 100644 srcpkgs/nodejs/patches/ppc32.patch

diff --git a/srcpkgs/nodejs/patches/ppc32.patch b/srcpkgs/nodejs/patches/ppc32.patch
deleted file mode 100644
index 502d471429f..00000000000
--- a/srcpkgs/nodejs/patches/ppc32.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- deps/v8/src/libsampler/sampler.cc.orig
-+++ deps/v8/src/libsampler/sampler.cc
-@@ -423,10 +423,17 @@
-   state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.regs->link);
- #else
-   // Some C libraries, notably Musl, define the regs member as a void pointer
-+  #if !V8_TARGET_ARCH_32_BIT
-   state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[32]);
-   state->sp = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[1]);
-   state->fp = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[31]);
-   state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[36]);
-+  #else
-+  state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[32]);
-+  state->sp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[1]);
-+  state->fp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[31]);
-+  state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[36]);
-+  #endif
- #endif
- #elif V8_HOST_ARCH_S390
- #if V8_TARGET_ARCH_32_BIT
diff --git a/srcpkgs/nodejs/template b/srcpkgs/nodejs/template
index 07cd6497856..73b62db458d 100644
--- a/srcpkgs/nodejs/template
+++ b/srcpkgs/nodejs/template
@@ -1,14 +1,13 @@
 # Template file for 'nodejs'
 pkgname=nodejs
-version=13.2.0
+version=13.5.0
 revision=1
 wrksrc="node-v${version}"
-# Need these for host v8 for torque, see https://github.com/nodejs/node/pull/21079
-hostmakedepends="pkg-config python zlib-devel $(vopt_if icu icu-devel)
+hostmakedepends="pkg-config python3 zlib-devel $(vopt_if icu icu-devel)
  $(vopt_if ssl libressl-devel) $(vopt_if libuv libuv-devel)
  $(vopt_if http_parser http-parser-devel) $(vopt_if nghttp2 nghttp2-devel)
  $(vopt_if cares c-ares-devel) $(vopt_if http_parser llhttp-devel)"
-makedepends="zlib-devel python-devel $(vopt_if icu icu-devel)
+makedepends="zlib-devel python3-devel $(vopt_if icu icu-devel)
  $(vopt_if ssl libressl-devel) $(vopt_if libuv libuv-devel)
  $(vopt_if http_parser http-parser-devel) $(vopt_if nghttp2 nghttp2-devel)
  $(vopt_if cares c-ares-devel) $(vopt_if http_parser llhttp-devel)"
@@ -17,7 +16,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="MIT"
 homepage="https://nodejs.org/"
 distfiles="${homepage}/dist/v${version}/node-v${version}.tar.gz"
-checksum=379dcecb721984a99dc9e16c2a096d6eb7a760d50b188582d9ce33e0478a1a5e
+checksum=4b8078d896a7550d7ed399c1b4ac9043e9f883be404d9b337185c8d8479f2db8
 
 build_options="ssl libuv http_parser icu nghttp2 cares"
 desc_option_ssl="Enable shared libressl"
@@ -33,41 +32,34 @@ conflicts="nodejs-lts nodejs-lts-10"
 provides="nodejs-runtime-0_1"
 
 if [ "$XBPS_WORDSIZE" -ne "$XBPS_TARGET_WORDSIZE" ]; then
-	nocross="host and target must have the same pointer size"
+	nocross="Host and target must have the same pointer size."
 fi
 
-case "$XBPS_TARGET_MACHINE" in
-	ppc64*) ;;
-	ppc*) broken="Node 12.x does not support 32-bit ppc" ;;
+case "$XBPS_MACHINE" in
+	'mips*'|'ppc64*') hostmakedepends+=" libatomic-devel";;
 esac
 
-# v8 requires libatomic on ppc*/s390x/mips*
 case "$XBPS_TARGET_MACHINE" in
-	mips*|ppc*) makedepends+=" libatomic-devel" ;;
-	*) ;;
-esac
-
-# also need it on host when it's one of those archs
-case "$XBPS_MACHINE" in
-	mips*|ppc*) hostmakedepends+=" libatomic-devel" ;;
-	*) ;;
+	'mips*'|'ppc64*') makedepends+=" libatomic-devel";;
+	'ppc*') broken="Node ${version} does not support 32-bit ppc.";;
 esac
 
 do_configure() {
 	local _args
 
+	_args="--dest-os=linux --use-largepages"
 	export LD="$CXX"
+
 	if [ "$CROSS_BUILD" ]; then
 		case "$XBPS_TARGET_MACHINE" in
-			arm*) _args="--dest-cpu=arm" ;;
-			aarch64*) _args="--dest-cpu=arm64" ;;
-			ppc64*) _args="--dest-cpu=ppc64" ;;
-			ppc*) _args="--dest-cpu=ppc" ;;
-			mipsel*) _args="--dest-cpu=mipsel" ;;
-			mips*) _args="--dest-cpu=mips" ;;
-			i686*) _args="--dest-cpu=x86" ;;
-			x86_64*) _args="--dest-cpu=x86_64" ;;
-			*) msg_error "$pkgver: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.\n" ;;
+			'arm*') _args+=" --dest-cpu=arm";;
+			'aarch64*') _args+=" --dest-cpu=arm64";;
+			'ppc64*') _args+=" --dest-cpu=ppc64";;
+			'mipsel*') _args+=" --dest-cpu=mipsel";;
+			'mips*') _args+=" --dest-cpu=mips";;
+			'i686*') _args+=" --dest-cpu=x86";;
+			'x86_64*') _args+=" --dest-cpu=x86_64";;
+			'*') msg_error "${pkgver}: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.\n";;
 		esac
 		# this is necessary - for example, normally compiling from ppc64le
 		# to ppc64 or from glibc to musl is considered non-cross-compiling
@@ -77,10 +69,12 @@ do_configure() {
 		# to execute it within the build system fails
 		_args+=" --cross-compiling"
 	fi
+
 	# their pregenerated asm is for ELFv1...
 	case "$XBPS_TARGET_MACHINE" in
-		ppc64|ppc64-musl) _args+=" --openssl-no-asm" ;;
+		'ppc64'|'ppc64-musl') _args+=" --openssl-no-asm";;
 	esac
+
 	./configure --prefix=/usr --shared-zlib \
 		$(vopt_if icu --with-intl=system-icu) \
 		$(vopt_if http_parser --shared-http-parser) \

From 651d8f6c3d3e70cdb6fd33cf34e0f165c57ed68d Mon Sep 17 00:00:00 2001
From: k4leg <d0xi@inbox.ru>
Date: Thu, 26 Dec 2019 16:19:23 +0300
Subject: [PATCH 3/4] nodejs-lts: update to 12.14.0. [ci skip]

---
 srcpkgs/nodejs-lts/patches/ppc32.patch | 20 -----------
 srcpkgs/nodejs-lts/template            | 46 +++++++++++---------------
 srcpkgs/nodejs-lts/update              |  2 --
 3 files changed, 20 insertions(+), 48 deletions(-)
 delete mode 100644 srcpkgs/nodejs-lts/patches/ppc32.patch
 delete mode 100644 srcpkgs/nodejs-lts/update

diff --git a/srcpkgs/nodejs-lts/patches/ppc32.patch b/srcpkgs/nodejs-lts/patches/ppc32.patch
deleted file mode 100644
index 502d471429f..00000000000
--- a/srcpkgs/nodejs-lts/patches/ppc32.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- deps/v8/src/libsampler/sampler.cc.orig
-+++ deps/v8/src/libsampler/sampler.cc
-@@ -423,10 +423,17 @@
-   state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.regs->link);
- #else
-   // Some C libraries, notably Musl, define the regs member as a void pointer
-+  #if !V8_TARGET_ARCH_32_BIT
-   state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[32]);
-   state->sp = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[1]);
-   state->fp = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[31]);
-   state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.gp_regs[36]);
-+  #else
-+  state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[32]);
-+  state->sp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[1]);
-+  state->fp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[31]);
-+  state->lr = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[36]);
-+  #endif
- #endif
- #elif V8_HOST_ARCH_S390
- #if V8_TARGET_ARCH_32_BIT
diff --git a/srcpkgs/nodejs-lts/template b/srcpkgs/nodejs-lts/template
index aa4a2d86c7b..55b63e1e2c7 100644
--- a/srcpkgs/nodejs-lts/template
+++ b/srcpkgs/nodejs-lts/template
@@ -1,9 +1,8 @@
 # Template file for 'nodejs-lts'
 pkgname=nodejs-lts
-version=12.13.1
+version=12.14.0
 revision=1
 wrksrc="node-v${version}"
-# Need these for host v8 for torque, see https://github.com/nodejs/node/pull/21079
 hostmakedepends="pkg-config python zlib-devel $(vopt_if icu icu-devel)
  $(vopt_if ssl libressl-devel) $(vopt_if libuv libuv-devel)
  $(vopt_if http_parser http-parser-devel) $(vopt_if nghttp2 nghttp2-devel)
@@ -17,7 +16,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="MIT"
 homepage="https://nodejs.org/"
 distfiles="${homepage}/dist/v${version}/node-v${version}.tar.gz"
-checksum=4ee710087687c8de142329d95085f5cba66e454a2c9ea7ec11e1f4b476d6d1ac
+checksum=5c1939867228f3845c808ef84a89c8ee93cc35f857bf7587ecee1b5a6d9da67b
 
 build_options="ssl libuv http_parser icu nghttp2 cares"
 desc_option_ssl="Enable shared libressl"
@@ -33,48 +32,43 @@ conflicts="nodejs nodejs-lts-10"
 provides="nodejs-runtime-0_1"
 
 if [ "$XBPS_WORDSIZE" -ne "$XBPS_TARGET_WORDSIZE" ]; then
-	nocross="host and target must have the same pointer size"
+	nocross="Host and target must have the same pointer size."
 fi
 
-case "$XBPS_TARGET_MACHINE" in
-	ppc64*) ;;
-	ppc*) broken="Node 12.x does not support 32-bit ppc" ;;
+case "$XBPS_MACHINE" in
+	'mips*'|'ppc64*') hostmakedepends+=" libatomic-devel";;
 esac
 
-# v8 requires libatomic on ppc*/s390x/mips*
 case "$XBPS_TARGET_MACHINE" in
-	mips*|ppc*) makedepends+=" libatomic-devel" ;;
-	*) ;;
-esac
-
-# also need it on host when it's one of those archs
-case "$XBPS_MACHINE" in
-	mips*|ppc*) hostmakedepends+=" libatomic-devel" ;;
-	*) ;;
+	'mips*'|'ppc64*') makedepends+=" libatomic-devel";;
+	'ppc*') broken="Node ${version} does not support 32-bit ppc.";;
 esac
 
 do_configure() {
 	local _args
 
+	_args="--dest-os=linux --use-largepages"
 	export LD="$CXX"
+
 	if [ "$CROSS_BUILD" ]; then
 		case "$XBPS_TARGET_MACHINE" in
-			arm*) _args="--dest-cpu=arm" ;;
-			aarch64*) _args="--dest-cpu=arm64" ;;
-			ppc64*) _args="--dest-cpu=ppc64" ;;
-			ppc*) _args="--dest-cpu=ppc" ;;
-			mipsel*) _args="--dest-cpu=mipsel" ;;
-			mips*) _args="--dest-cpu=mips" ;;
-			i686*) _args="--dest-cpu=x86" ;;
-			x86_64*) _args="--dest-cpu=x86_64" ;;
-			*) msg_error "$pkgver: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.\n" ;;
+			'arm*') _args+=" --dest-cpu=arm";;
+			'aarch64*') _args+=" --dest-cpu=arm64";;
+			'ppc64*') _args+=" --dest-cpu=ppc64";;
+			'mipsel*') _args+=" --dest-cpu=mipsel";;
+			'mips*') _args+=" --dest-cpu=mips";;
+			'i686*') _args+=" --dest-cpu=x86";;
+			'x86_64*') _args+=" --dest-cpu=x86_64";;
+			'*') msg_error "${pkgname}-${pkgver}: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.";;
 		esac
 		_args+=" --cross-compiling"
 	fi
+
 	# their pregenerated asm is for ELFv1...
 	case "$XBPS_TARGET_MACHINE" in
-		ppc64|ppc64-musl) _args+=" --openssl-no-asm" ;;
+		'ppc64'|'ppc64-musl') _args+=" --openssl-no-asm";;
 	esac
+
 	./configure --prefix=/usr --shared-zlib \
 		$(vopt_if icu --with-intl=system-icu) \
 		$(vopt_if http_parser --shared-http-parser) \
diff --git a/srcpkgs/nodejs-lts/update b/srcpkgs/nodejs-lts/update
deleted file mode 100644
index 85376d5582e..00000000000
--- a/srcpkgs/nodejs-lts/update
+++ /dev/null
@@ -1,2 +0,0 @@
-site=https://nodejs.org/dist
-pattern='v\K8\.9\.\d(?=\/)'

From 130fc7c3c7d7585d6367647d25d3072908004484 Mon Sep 17 00:00:00 2001
From: k4leg <d0xi@inbox.ru>
Date: Thu, 26 Dec 2019 16:28:43 +0300
Subject: [PATCH 4/4] nodejs-lts-10: update to 10.18.0. [ci skip]

---
 srcpkgs/nodejs-lts-10/template | 38 ++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/srcpkgs/nodejs-lts-10/template b/srcpkgs/nodejs-lts-10/template
index 3f201bcb586..58ca667eae3 100644
--- a/srcpkgs/nodejs-lts-10/template
+++ b/srcpkgs/nodejs-lts-10/template
@@ -1,6 +1,6 @@
 # Template file for 'nodejs-lts-10'
 pkgname=nodejs-lts-10
-version=10.17.0
+version=10.18.0
 revision=1
 wrksrc="node-v${version}"
 hostmakedepends="pkg-config python zlib-devel $(vopt_if icu icu-devel)
@@ -15,8 +15,8 @@ short_desc="Evented I/O for V8 javascript (Dubnium)"
 maintainer="k4leg <d0xi@inbox.ru>"
 license="MIT"
 homepage="https://nodejs.org/"
-distfiles="${homepage}/download/release/latest-v10.x/node-v${version}.tar.xz"
-checksum=412667d76bd5273c07cb69c215998109fd5bb35c874654f93e6a0132d666c58e
+distfiles="${homepage}/download/release/latest-dubnium/node-v${version}.tar.xz"
+checksum=0b2662ab849713dea708d3f74fe5e63fe2d0e869d1dc06b9e9f178ed1c66fede
 
 build_options="ssl libuv http_parser icu nghttp2 cares"
 desc_option_ssl="Enable shared libressl"
@@ -32,37 +32,39 @@ conflicts="nodejs nodejs-lts"
 provides="nodejs-runtime-0_1"
 
 if [ "$XBPS_WORDSIZE" -ne "$XBPS_TARGET_WORDSIZE" ]; then
-	nocross="host and target must have the same pointer size"
+	nocross="Host and target must have the same pointer size."
 fi
 
 case "$XBPS_MACHINE" in
-	ppc64*) ;;
-	mips*|ppc*) hostmakedepends+=" libatomic-devel" ;;
-	*) ;;
+	'mips*'|'ppc'|'ppc-musl') hostmakedepends+=" libatomic-devel";;
 esac
 
 do_configure() {
 	local _args
 
+	_args="--dest-os=linux --use-largepages"
 	export LD="$CXX"
+
 	if [ "$CROSS_BUILD" ]; then
 		case "$XBPS_TARGET_MACHINE" in
-			arm*) _args="--dest-cpu=arm" ;;
-			aarch64*) _args="--dest-cpu=arm64" ;;
-			ppc64*) _args="--dest-cpu=ppc64" ;;
-			ppc*) _args="--dest-cpu=ppc" ;;
-			mipsel*) _args="--dest-cpu=mipsel" ;;
-			mips*) _args="--dest-cpu=mips" ;;
-			i686*) _args="--dest-cpu=x86" ;;
-			x86_64*) _args="--dest-cpu=x86_64" ;;
-			*) msg_error "$pkgver: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.\n" ;;
+			'arm*') _args=" --dest-cpu=arm";;
+			'aarch64*') _args=" --dest-cpu=arm64";;
+			'ppc64*') _args=" --dest-cpu=ppc64";;
+			'ppc*') _args=" --dest-cpu=ppc";;
+			'mipsel*') _args=" --dest-cpu=mipsel";;
+			'mips*') _args=" --dest-cpu=mips";;
+			'i686*') _args=" --dest-cpu=x86";;
+			'x86_64*') _args=" --dest-cpu=x86_64";;
+			'*') msg_error "${pkgver}: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.\n";;
 		esac
-		_args+=" --without-snapshot"
+		_args+=" --without-snapshot --cross-compiling"
 	fi
+
 	# their pregenerated asm is for ELFv1...
 	case "$XBPS_TARGET_MACHINE" in
-		ppc64|ppc64-musl) _args+=" --openssl-no-asm" ;;
+		'ppc64'|'ppc64-musl') _args+=" --openssl-no-asm";;
 	esac
+
 	./configure --prefix=/usr --shared-zlib \
 		$(vopt_if icu --with-intl=system-icu) \
 		$(vopt_if http_parser --shared-http-parser) \

  parent reply	other threads:[~2019-12-26 13:29 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-17592@inbox.vuxu.org>
2019-12-25 23:27 ` voidlinux-github
2019-12-26 13:29 ` voidlinux-github [this message]
2019-12-26 13:31 ` voidlinux-github
2020-01-08 18:27 ` [PR PATCH] [Updated] " voidlinux-github
2020-01-08 18:28 ` voidlinux-github
2020-01-08 18:29 ` voidlinux-github
2020-01-08 19:24 ` voidlinux-github
2020-01-08 19:27 ` voidlinux-github
2020-01-08 19:30 ` voidlinux-github
2020-01-08 20:52 ` voidlinux-github
2020-01-09 14:27 ` voidlinux-github
2020-01-09 16:12 ` [PR PATCH] [Updated] " voidlinux-github
2020-01-09 17:43 ` voidlinux-github
2020-01-09 18:53 ` [PR PATCH] [Updated] " voidlinux-github
2020-01-09 19:03 ` voidlinux-github
2020-01-09 19:04 ` voidlinux-github
2020-01-09 19:41 ` voidlinux-github
2020-03-13 17:42 ` [PR PATCH] [Closed]: " k4leg

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=20191226132931.Dbysp1d8k_-w-25cYo6B5wL609XZw9W0P6vZrBpL_8U@z \
    --to=voidlinux-github@inbox.vuxu.org \
    --cc=ml@inbox.vuxu.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;
as well as URLs for NNTP newsgroup(s).