public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Viorel Munteanu" <ceamac@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/
Date: Sat, 26 Aug 2023 11:50:27 +0000 (UTC)	[thread overview]
Message-ID: <1693050608.93ab26a36f5d15fef87efa4db2a26ec844289bdc.ceamac@gentoo> (raw)

commit:     93ab26a36f5d15fef87efa4db2a26ec844289bdc
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 26 11:31:58 2023 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sat Aug 26 11:50:08 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=93ab26a3

app-emulation/virtualbox: install python vboxapi

Closes: https://bugs.gentoo.org/378871
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 ...box-9999.ebuild => virtualbox-7.0.10-r1.ebuild} | 85 ++++++++++------------
 app-emulation/virtualbox/virtualbox-9999.ebuild    | 22 +++++-
 2 files changed, 58 insertions(+), 49 deletions(-)

diff --git a/app-emulation/virtualbox/virtualbox-9999.ebuild b/app-emulation/virtualbox/virtualbox-7.0.10-r1.ebuild
similarity index 92%
copy from app-emulation/virtualbox/virtualbox-9999.ebuild
copy to app-emulation/virtualbox/virtualbox-7.0.10-r1.ebuild
index 3479b65025f4..d663f08829a9 100644
--- a/app-emulation/virtualbox/virtualbox-9999.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.10-r1.ebuild
@@ -3,15 +3,6 @@
 
 EAPI=8
 
-# Important!
-# This compiles the latest svn version.
-# It also compiles the kernel modules.  Does not depend on virtualbox-modules.
-# It is not meant to be used, might be very unstable.
-# Upstream seem to have added support for python 3.12; I haven't checked it yet.
-#
-# USE=doc does not work for now.
-#
-#
 # To add a new Python here:
 # 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
 #    Do NOT skip this part. It'll end up silently not-building the Python extension
@@ -24,26 +15,26 @@ EAPI=8
 #  trunk branch but not release branch.
 #
 #  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{9..12} )
+PYTHON_COMPAT=( python3_{10..11} )
 
-inherit desktop edo flag-o-matic java-pkg-opt-2 linux-mod-r1 multilib optfeature pax-utils \
-	python-single-r1 subversion tmpfiles toolchain-funcs udev xdg
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+	python-single-r1 tmpfiles toolchain-funcs udev xdg
 
 MY_PN="VirtualBox"
-BASE_PV=7.0.8
 MY_P=${MY_PN}-${PV}
 
 DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
 HOMEPAGE="https://www.virtualbox.org/"
-ESVN_REPO_URI="https://www.virtualbox.org/svn/vbox/trunk"
 SRC_URI="
-	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.10_pre20230615.tar.bz2
-	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${BASE_PV}.tar.xz ) )
+	https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+	https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.8.tar.bz2
+	gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
 "
-S="${WORKDIR}/trunk"
+S="${WORKDIR}/${MY_PN}-${PV}"
 
 LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
 SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
 IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
 
 unset WATCOM #856769
@@ -51,6 +42,7 @@ unset WATCOM #856769
 COMMON_DEPEND="
 	${PYTHON_DEPS}
 	acct-group/vboxusers
+	~app-emulation/virtualbox-modules-${PV}
 	dev-libs/libtpms
 	dev-libs/libxml2
 	dev-libs/openssl:0=
@@ -134,7 +126,6 @@ RDEPEND="
 "
 BDEPEND="
 	${PYTHON_DEPS}
-	app-arch/makeself
 	>=app-arch/tar-1.34-r2
 	>=dev-lang/yasm-0.6.2
 	dev-libs/libIDL
@@ -211,18 +202,15 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
 
 	"${FILESDIR}"/${PN}-7.0.0-fix-compilation-clang.patch
-	"${FILESDIR}"/${PN}-7.0.9-python.patch
+	"${FILESDIR}"/${PN}-7.0.10-python.patch
 	"${FILESDIR}"/${PN}-7.0.6-gcc-13.patch
 	"${FILESDIR}"/${PN}-7.0.8-mtune-keep-size.patch
+	"${FILESDIR}"/${PN}-7.0.6-fix-libxml2.patch
 
 	# Downloaded patchset
-	"${WORKDIR}"/virtualbox-patches-7.0.10_pre20230615/patches
+	"${WORKDIR}"/virtualbox-patches-7.0.8/patches
 )
 
-DOCS=()	# Don't install the default README file during einstalldocs
-
-CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
-
 pkg_pretend() {
 	if ! use gui; then
 		einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
@@ -254,12 +242,6 @@ pkg_pretend() {
 pkg_setup() {
 	java-pkg-opt-2_pkg_setup
 	python-single-r1_pkg_setup
-	linux-mod-r1_pkg_setup
-}
-
-src_unpack() {
-	subversion_src_unpack
-	default
 }
 
 src_prepare() {
@@ -511,21 +493,9 @@ src_compile() {
 	fi
 
 	MAKE="kmk" emake "${myemakeargs[@]}" all
-
-	local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc:"out/linux.${ARCH}/release/bin/src" )
-	local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
-	linux-mod-r1_src_compile
 }
 
 src_install() {
-	linux-mod-r1_src_install
-	insinto /usr/lib/modules-load.d/
-	newins - virtualbox.conf <<-EOF
-		vboxdrv
-		vboxnetflt
-		vboxnetadp
-	EOF
-
 	cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
 
 	local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
@@ -598,7 +568,10 @@ src_install() {
 	fi
 
 	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	# environment variables used during SDK binding installation
+	echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+	echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
 	doenvd "${T}/90virtualbox"
 
 	if use sdl; then
@@ -617,6 +590,11 @@ src_install() {
 			pax-mark -m "${ED}"${vbox_inst_path}/${each}
 		done
 
+		if use opengl; then
+			vbox_inst VBoxTestOGL
+			pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+		fi
+
 		for each in virtualbox{,vm} VirtualBox{,VM} ; do
 			dosym ${vbox_inst_path}/VBox /usr/bin/${each}
 		done
@@ -707,7 +685,7 @@ src_install() {
 		dodoc UserManual.pdf UserManual.q{ch,hc}
 		docompress -x /usr/share/doc/${PF}
 	elif use gui; then
-		dodoc "${WORKDIR}"/${PN}-help-${BASE_PV}/UserManual.q{ch,hc}
+		dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
 		docompress -x /usr/share/doc/${PF}
 	fi
 
@@ -719,14 +697,27 @@ src_install() {
 			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
 			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
 		fi
+
+		# 378871
+		local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+		pushd "${installer_dir}" &> /dev/null || die
+		sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+			-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+			-i vboxapi/__init__.py || die
+		# insert shebang, the files come without one
+		find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+		python_domodule vboxapi
+		popd &> /dev/null || die
+		python_doscript vboxshell.py
+
+		# do not install the installer
+		rm -r "${installer_dir}" || die
 	fi
 
 	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
 }
 
 pkg_postinst() {
-	linux-mod-r1_pkg_postinst
-
 	xdg_pkg_postinst
 
 	if use udev; then
@@ -743,7 +734,7 @@ pkg_postinst() {
 	elog "You must be in the vboxusers group to use VirtualBox."
 	elog ""
 	elog "The latest user manual is available for download at:"
-	elog "https://download.virtualbox.org/virtualbox/${BASE_PV}/UserManual.pdf"
+	elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
 	elog ""
 
 	optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities

diff --git a/app-emulation/virtualbox/virtualbox-9999.ebuild b/app-emulation/virtualbox/virtualbox-9999.ebuild
index 3479b65025f4..9048fa58d8a6 100644
--- a/app-emulation/virtualbox/virtualbox-9999.ebuild
+++ b/app-emulation/virtualbox/virtualbox-9999.ebuild
@@ -24,7 +24,7 @@ EAPI=8
 #  trunk branch but not release branch.
 #
 #  See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{9..12} )
+PYTHON_COMPAT=( python3_{10..11} )
 
 inherit desktop edo flag-o-matic java-pkg-opt-2 linux-mod-r1 multilib optfeature pax-utils \
 	python-single-r1 subversion tmpfiles toolchain-funcs udev xdg
@@ -598,7 +598,10 @@ src_install() {
 	fi
 
 	# set an env-variable for 3rd party tools
-	echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+	# environment variables used during SDK binding installation
+	echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+	echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
 	doenvd "${T}/90virtualbox"
 
 	if use sdl; then
@@ -719,6 +722,21 @@ src_install() {
 			eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
 			die "Incomplete installation of Python bindings! File a bug with Gentoo!"
 		fi
+
+		# 378871
+		local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+		pushd "${installer_dir}" &> /dev/null || die
+		sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+			-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+			-i vboxapi/__init__.py || die
+		# insert shebang, the files come without one
+		find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+		python_domodule vboxapi
+		popd &> /dev/null || die
+		python_doscript vboxshell.py
+
+		# do not install the installer
+		rm -r "${installer_dir}" || die
 	fi
 
 	newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf


             reply	other threads:[~2023-08-26 11:50 UTC|newest]

Thread overview: 211+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-26 11:50 Viorel Munteanu [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-28 14:12 [gentoo-commits] repo/gentoo:master commit in: app-emulation/virtualbox/ Viorel Munteanu
2025-01-28 19:36 Viorel Munteanu
2025-01-21 21:43 Viorel Munteanu
2025-01-21 21:43 Viorel Munteanu
2025-01-14  6:31 Viorel Munteanu
2025-01-13  7:00 Viorel Munteanu
2025-01-06 17:35 Viorel Munteanu
2025-01-02 10:59 Viorel Munteanu
2025-01-02 10:59 Viorel Munteanu
2024-12-31 18:20 Viorel Munteanu
2024-12-29 10:30 Viorel Munteanu
2024-12-28 18:21 Viorel Munteanu
2024-12-28 18:21 Viorel Munteanu
2024-10-18 17:16 Viorel Munteanu
2024-10-01  5:05 Viorel Munteanu
2024-09-27 17:08 Viorel Munteanu
2024-09-15 13:02 Viorel Munteanu
2024-09-15 13:02 Viorel Munteanu
2024-09-01 10:45 Viorel Munteanu
2024-08-22 11:20 Viorel Munteanu
2024-08-15 12:56 Viorel Munteanu
2024-07-26 15:02 Viorel Munteanu
2024-07-26 15:02 Viorel Munteanu
2024-07-16 18:13 Viorel Munteanu
2024-06-17 15:25 Viorel Munteanu
2024-06-05  4:53 Viorel Munteanu
2024-06-05  4:53 Viorel Munteanu
2024-06-03 11:32 Viorel Munteanu
2024-06-03 11:32 Viorel Munteanu
2024-06-03  8:07 Sam James
2024-05-25  9:53 Viorel Munteanu
2024-05-25  9:53 Viorel Munteanu
2024-05-25  9:53 Viorel Munteanu
2024-05-03 17:41 Viorel Munteanu
2024-05-03 17:41 Viorel Munteanu
2024-05-01  5:00 Viorel Munteanu
2024-05-01  5:00 Viorel Munteanu
2024-04-30  4:25 Viorel Munteanu
2024-04-30  4:25 Viorel Munteanu
2024-04-19  7:12 Viorel Munteanu
2024-04-17 19:56 Viorel Munteanu
2024-03-19 17:20 Viorel Munteanu
2024-01-27  7:44 Sam James
2024-01-27  7:34 Sam James
2024-01-25 15:50 Viorel Munteanu
2024-01-25 10:08 Viorel Munteanu
2024-01-25 10:08 Viorel Munteanu
2024-01-25  9:51 Viorel Munteanu
2024-01-25  9:51 Viorel Munteanu
2024-01-18 11:47 Viorel Munteanu
2024-01-17 17:38 Viorel Munteanu
2024-01-17 17:38 Viorel Munteanu
2023-10-18  4:08 Viorel Munteanu
2023-10-18  4:08 Viorel Munteanu
2023-10-17 19:22 Sam James
2023-08-15 12:16 Viorel Munteanu
2023-08-03 20:45 Sam James
2023-07-20  9:40 Viorel Munteanu
2023-07-20  9:40 Viorel Munteanu
2023-05-29 20:10 Sam James
2023-05-29 14:13 Sam James
2023-05-01  5:41 Viorel Munteanu
2023-04-30 11:12 Viorel Munteanu
2023-04-21 16:38 Viorel Munteanu
2023-04-21 16:38 Viorel Munteanu
2023-03-18  8:27 Viorel Munteanu
2023-02-21 15:06 Viorel Munteanu
2023-02-21 15:06 Viorel Munteanu
2023-02-15  5:12 Sam James
2023-02-15  5:12 Sam James
2023-02-08 17:13 Sam James
2023-02-03 14:35 Viorel Munteanu
2023-01-24  8:36 Viorel Munteanu
2023-01-22  9:59 Viorel Munteanu
2023-01-22  9:59 Viorel Munteanu
2023-01-13 13:15 Viorel Munteanu
2023-01-11 12:54 Arthur Zamarin
2022-12-10  9:56 Viorel Munteanu
2022-12-10  9:56 Viorel Munteanu
2022-11-20 10:13 Viorel Munteanu
2022-11-20  8:20 Viorel Munteanu
2022-11-20  8:20 Viorel Munteanu
2022-11-20  8:20 Viorel Munteanu
2022-11-20  8:20 Viorel Munteanu
2022-11-20  8:20 Viorel Munteanu
2022-11-20  8:20 Viorel Munteanu
2022-11-02 16:17 Viorel Munteanu
2022-10-27  8:35 Joonas Niilola
2022-10-17 21:05 Sam James
2022-10-06 10:23 Joonas Niilola
2022-09-05  1:22 Sam James
2022-09-05  1:22 Sam James
2022-08-23 20:48 Sam James
2022-08-23 18:57 Sam James
2022-08-13 19:24 Sam James
2022-08-08  9:40 Andreas Sturmlechner
2022-07-24 23:23 Sam James
2022-07-06  9:23 Sam James
2022-07-06  8:09 Sam James
2022-07-06  8:06 Sam James
2022-07-06  6:05 Sam James
2022-07-06  3:18 Sam James
2022-07-06  3:01 Sam James
2022-07-06  3:01 Sam James
2022-07-06  2:06 Sam James
2022-04-04 18:28 Jakov Smolić
2022-03-16 17:07 Sam James
2022-01-29 18:38 Sam James
2022-01-27 13:57 Lars Wendler
2022-01-12  2:45 Sam James
2021-12-06 21:11 Jakov Smolić
2021-11-06 20:53 Sam James
2021-07-30 22:55 David Seifert
2021-07-19 18:36 Sam James
2021-04-30 23:34 Sam James
2021-04-30 13:16 Mikle Kolyada
2021-04-21  9:55 Lars Wendler
2021-01-22  1:48 Sam James
2021-01-06  3:10 Sam James
2020-12-08 12:12 Lars Wendler
2020-12-08 12:12 Lars Wendler
2020-09-11 15:37 Lars Wendler
2020-09-09  8:10 Lars Wendler
2020-09-02  3:55 Sam James
2020-08-30  1:32 Thomas Deutschmann
2020-06-24 21:04 Ulrich Müller
2020-06-14 15:13 Lars Wendler
2020-05-07 13:18 Michał Górny
2020-04-26 23:44 Thomas Deutschmann
2020-04-22 14:03 Mikle Kolyada
2020-03-29  7:19 Mikle Kolyada
2020-03-27 12:43 Lars Wendler
2020-03-27 12:43 Lars Wendler
2020-03-27 12:43 Lars Wendler
2020-02-25 17:15 Lars Wendler
2019-12-17 12:42 Lars Wendler
2019-12-15 11:03 Lars Wendler
2019-12-13 19:17 Lars Wendler
2019-11-28 15:40 Lars Wendler
2019-09-15  9:04 Mikle Kolyada
2019-09-07 21:07 Thomas Deutschmann
2019-08-28 14:34 David Seifert
2019-07-21 17:54 Michał Górny
2019-07-18  7:18 Lars Wendler
2019-07-17  8:52 Lars Wendler
2019-05-09 13:06 Lars Wendler
2019-04-20 11:31 Lars Wendler
2019-04-18 20:32 Thomas Deutschmann
2019-04-08 13:15 Mikle Kolyada
2019-04-02  9:43 Lars Wendler
2019-01-16 19:50 Lars Wendler
2018-11-28  2:07 Thomas Deutschmann
2018-11-25  9:25 Mikle Kolyada
2018-11-17 15:29 Lars Wendler
2018-11-17 11:55 Lars Wendler
2018-11-16 16:32 Lars Wendler
2018-11-16 14:48 Lars Wendler
2018-07-22 17:07 Mikle Kolyada
2018-07-19  8:39 Lars Wendler
2018-07-19  8:37 Lars Wendler
2018-07-18 10:07 Lars Wendler
2018-07-16 23:42 Lars Wendler
2018-07-16  9:46 Lars Wendler
2018-07-16  9:46 Lars Wendler
2018-07-03 18:52 Jonas Stein
2018-07-02  9:42 Lars Wendler
2018-05-08 15:15 Agostino Sarubbo
2018-05-07 23:55 Thomas Deutschmann
2018-03-03 21:33 James Le Cuirot
2018-02-19 14:45 Lars Wendler
2018-02-16 14:56 Lars Wendler
2018-01-21 20:30 Thomas Deutschmann
2018-01-18 21:41 Mikle Kolyada
2018-01-02 16:33 Lars Wendler
2017-12-29 17:42 Mikle Kolyada
2017-12-26  2:06 Thomas Deutschmann
2017-10-17  9:44 Lars Wendler
2017-10-02 22:18 Lars Wendler
2017-08-06 20:43 Lars Wendler
2017-08-06 15:57 Aaron Bauman
2017-07-28  6:41 Lars Wendler
2017-07-23 19:13 Lars Wendler
2017-04-07  8:24 Lars Wendler
2017-03-28 16:31 Lars Wendler
2017-02-03 15:13 Lars Wendler
2017-01-31 12:31 Tobias Klausmann
2016-09-20 12:12 Lars Wendler
2016-09-02 15:09 Ian Stakenvicius
2016-08-17 13:07 Lars Wendler
2016-07-27 10:05 Jeroen Roovers
2016-07-26  8:38 Lars Wendler
2016-07-14 15:30 Lars Wendler
2016-07-14  9:28 Lars Wendler
2016-07-13 20:24 Lars Wendler
2016-07-13 10:16 Lars Wendler
2016-06-13 14:23 Lars Wendler
2016-05-15 19:36 Lars Wendler
2016-03-21 10:59 Patrick Lauer
2016-03-11 21:50 Lars Wendler
2016-03-07 14:51 Lars Wendler
2016-03-07 14:51 Lars Wendler
2016-03-05 22:38 Mikle Kolyada
2016-02-22  8:42 Patrick Lauer
2015-11-19 21:28 Lars Wendler
2015-11-06  8:46 Mikle Kolyada
2015-10-21  6:40 Lars Wendler
2015-10-06 10:26 Julian Ospald
2015-09-10 21:01 Lars Wendler
2015-08-30 11:32 Lars Wendler
2015-08-16 13:53 Patrice Clement

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=1693050608.93ab26a36f5d15fef87efa4db2a26ec844289bdc.ceamac@gentoo \
    --to=ceamac@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