Github messages for voidlinux
 help / color / mirror / Atom feed
From: oreo639 <oreo639@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] ibus: update to 1.5.28.
Date: Sun, 26 Mar 2023 12:16:55 +0200	[thread overview]
Message-ID: <20230326101655.zX_DSHQwlOPNeJp3U42NzPyD-T91RhmtlyKTGrmzfRY@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-42460@inbox.vuxu.org>

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

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

https://github.com/oreo639/void-packages ibus
https://github.com/void-linux/void-packages/pull/42460

ibus: update to 1.5.28.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


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

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

From 9a1de44750cb6955cfc8d012123226aae11953d1 Mon Sep 17 00:00:00 2001
From: oreo639 <oreo6391@gmail.com>
Date: Sun, 26 Feb 2023 05:41:35 -0800
Subject: [PATCH] ibus: update to 1.5.28.

---
 srcpkgs/ibus/patches/fix-cross.patch | 388 +++++++++++++++++++++++++++
 srcpkgs/ibus/template                |  20 +-
 2 files changed, 400 insertions(+), 8 deletions(-)
 create mode 100644 srcpkgs/ibus/patches/fix-cross.patch

diff --git a/srcpkgs/ibus/patches/fix-cross.patch b/srcpkgs/ibus/patches/fix-cross.patch
new file mode 100644
index 000000000000..713cf64174a9
--- /dev/null
+++ b/srcpkgs/ibus/patches/fix-cross.patch
@@ -0,0 +1,388 @@
+diff --git a/configure.ac b/configure.ac
+index cba242df..f442bac8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -130,6 +130,7 @@ AC_PROG_CC_STDC
+ AM_PROG_VALAC([0.20])
+ AC_PROG_INSTALL
+ AC_PROG_MAKE_SET
++AX_PROG_CC_FOR_BUILD
+ 
+ # i18n stuff
+ AM_GNU_GETTEXT_VERSION([0.19.8])
+@@ -151,10 +152,13 @@ AC_CHECK_FUNCS(daemon)
+ AC_CHECK_LIB(c, dlclose, LIBDL="", [AC_CHECK_LIB(dl, dlclose, LIBDL="-ldl")])
+ AC_SUBST(LIBDL)
+ 
++# Check if cross compiling.
++AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes)
++
+ # Check endianness.
+ AC_MSG_CHECKING([build system endianness])
+ ENDIAN=unknown
+-AC_RUN_IFELSE(
++AC_COMPILE_IFELSE(
+     [AC_LANG_PROGRAM(
+         [[
+             #include <endian.h>
+@@ -165,7 +169,7 @@ AC_RUN_IFELSE(
+     )],
+     [ENDIAN=little]
+ )
+-AC_RUN_IFELSE(
++AC_COMPILE_IFELSE(
+     [AC_LANG_PROGRAM(
+         [[
+             #include <endian.h>
+@@ -207,6 +211,14 @@ AH_BOTTOM([
+ #endif
+ ])
+ 
++if test "x$cross_compiling" = "xyes"; then
++PKG_PROG_PKG_CONFIG_FOR_BUILD
++GLIB_CFLAGS_FOR_BUILD=`$PKG_CONFIG_FOR_BUILD --cflags glib-2.0 gobject-2.0 gio-2.0 gio-unix-2.0 gthread-2.0`
++GLIB_LIBS_FOR_BUILD=`$PKG_CONFIG_FOR_BUILD --libs glib-2.0 gobject-2.0 gio-2.0 gio-unix-2.0 gthread-2.0`
++AC_SUBST(GLIB_CFLAGS_FOR_BUILD)
++AC_SUBST(GLIB_LIBS_FOR_BUILD)
++fi
++
+ # --disable-tests option.
+ AC_ARG_ENABLE(tests,
+     AS_HELP_STRING([--disable-tests],
+diff --git a/m4/Makefile.am b/m4/Makefile.am
+index dcf84ac3..dcaaa350 100644
+--- a/m4/Makefile.am
++++ b/m4/Makefile.am
+@@ -22,7 +22,9 @@
+ 
+ EXTRA_DIST = \
+     as-version.m4 \
++    ax_prog_cc_for_build.m4 \
+     ibuslocale.m4 \
++    pkg_config_for_build.m4 \
+     vapigen.m4 \
+     $(NULL)
+ 
+diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4
+new file mode 100644
+index 00000000..1db8d73f
+--- /dev/null
++++ b/m4/ax_prog_cc_for_build.m4
+@@ -0,0 +1,155 @@
++# ===========================================================================
++#   https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++#   AX_PROG_CC_FOR_BUILD
++#
++# DESCRIPTION
++#
++#   This macro searches for a C compiler that generates native executables,
++#   that is a C compiler that surely is not a cross-compiler. This can be
++#   useful if you have to generate source code at compile-time like for
++#   example GCC does.
++#
++#   The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything
++#   needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD).
++#   The value of these variables can be overridden by the user by specifying
++#   a compiler with an environment variable (like you do for standard CC).
++#
++#   It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object
++#   file extensions for the build platform, and GCC_FOR_BUILD to `yes' if
++#   the compiler we found is GCC. All these variables but GCC_FOR_BUILD are
++#   substituted in the Makefile.
++#
++# LICENSE
++#
++#   Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
++#
++#   Copying and distribution of this file, with or without modification, are
++#   permitted in any medium without royalty provided the copyright notice
++#   and this notice are preserved. This file is offered as-is, without any
++#   warranty.
++
++#serial 21
++
++AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
++AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
++AC_REQUIRE([AC_PROG_CC])dnl
++AC_REQUIRE([AC_PROG_CPP])dnl
++AC_REQUIRE([AC_CANONICAL_BUILD])dnl
++
++dnl Use the standard macros, but make them use other variable names
++dnl
++pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
++pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl
++pushdef([ac_cv_prog_cc_c99], ac_cv_build_prog_cc_c99)dnl
++pushdef([ac_cv_prog_cc_c11], ac_cv_build_prog_cc_c11)dnl
++pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
++pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
++pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
++pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
++pushdef([ac_cv_c_compiler_gnu], ac_cv_build_c_compiler_gnu)dnl
++pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
++pushdef([ac_cv_objext], ac_cv_build_objext)dnl
++pushdef([ac_exeext], ac_build_exeext)dnl
++pushdef([ac_objext], ac_build_objext)dnl
++pushdef([CC], CC_FOR_BUILD)dnl
++pushdef([CPP], CPP_FOR_BUILD)dnl
++pushdef([GCC], GCC_FOR_BUILD)dnl
++pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
++pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
++pushdef([EXEEXT], BUILD_EXEEXT)dnl
++pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
++pushdef([OBJEXT], BUILD_OBJEXT)dnl
++pushdef([host], build)dnl
++pushdef([host_alias], build_alias)dnl
++pushdef([host_cpu], build_cpu)dnl
++pushdef([host_vendor], build_vendor)dnl
++pushdef([host_os], build_os)dnl
++pushdef([ac_cv_host], ac_cv_build)dnl
++pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
++pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
++pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
++pushdef([ac_cv_host_os], ac_cv_build_os)dnl
++pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl
++pushdef([am_cv_CC_dependencies_compiler_type], am_cv_build_CC_dependencies_compiler_type)dnl
++pushdef([am_cv_prog_cc_c_o], am_cv_build_prog_cc_c_o)dnl
++pushdef([cross_compiling], cross_compiling_build)dnl
++
++cross_compiling_build=no
++
++ac_build_tool_prefix=
++AS_IF([test -n "$build"],      [ac_build_tool_prefix="$build-"],
++      [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"])
++
++AC_LANG_PUSH([C])
++
++dnl The pushdef([ac_cv_c_compiler_gnu], ...) currently does not cover
++dnl the use of this variable in _AC_LANG_COMPILER_GNU called by
++dnl AC_PROG_CC. Unset this cache variable temporarily as a workaround.
++was_set_c_compiler_gnu=${[ac_cv_c_compiler_gnu]+y}
++AS_IF([test ${was_set_c_compiler_gnu}],
++    [saved_c_compiler_gnu=$[ac_cv_c_compiler_gnu]
++    AS_UNSET([[ac_cv_c_compiler_gnu]])])
++
++AC_PROG_CC
++
++dnl Restore ac_cv_c_compiler_gnu
++AS_IF([test ${was_set_c_compiler_gnu}],
++  [[ac_cv_c_compiler_gnu]=$[saved_c_compiler_gnu]])
++
++_AC_COMPILER_EXEEXT
++_AC_COMPILER_OBJEXT
++AC_PROG_CPP
++
++dnl Restore the old definitions
++dnl
++popdef([cross_compiling])dnl
++popdef([am_cv_prog_cc_c_o])dnl
++popdef([am_cv_CC_dependencies_compiler_type])dnl
++popdef([ac_tool_prefix])dnl
++popdef([ac_cv_host_os])dnl
++popdef([ac_cv_host_vendor])dnl
++popdef([ac_cv_host_cpu])dnl
++popdef([ac_cv_host_alias])dnl
++popdef([ac_cv_host])dnl
++popdef([host_os])dnl
++popdef([host_vendor])dnl
++popdef([host_cpu])dnl
++popdef([host_alias])dnl
++popdef([host])dnl
++popdef([OBJEXT])dnl
++popdef([LDFLAGS])dnl
++popdef([EXEEXT])dnl
++popdef([CPPFLAGS])dnl
++popdef([CFLAGS])dnl
++popdef([GCC])dnl
++popdef([CPP])dnl
++popdef([CC])dnl
++popdef([ac_objext])dnl
++popdef([ac_exeext])dnl
++popdef([ac_cv_objext])dnl
++popdef([ac_cv_exeext])dnl
++popdef([ac_cv_c_compiler_gnu])dnl
++popdef([ac_cv_prog_cc_g])dnl
++popdef([ac_cv_prog_cc_cross])dnl
++popdef([ac_cv_prog_cc_works])dnl
++popdef([ac_cv_prog_cc_c89])dnl
++popdef([ac_cv_prog_gcc])dnl
++popdef([ac_cv_prog_CPP])dnl
++
++dnl restore global variables ac_ext, ac_cpp, ac_compile,
++dnl ac_link, ac_compiler_gnu (dependant on the current
++dnl language after popping):
++AC_LANG_POP([C])
++
++dnl Finally, set Makefile variables
++dnl
++AC_SUBST(BUILD_EXEEXT)dnl
++AC_SUBST(BUILD_OBJEXT)dnl
++AC_SUBST([CFLAGS_FOR_BUILD])dnl
++AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
++AC_SUBST([LDFLAGS_FOR_BUILD])dnl
++])
+diff --git a/m4/pkg_config_for_build.m4 b/m4/pkg_config_for_build.m4
+new file mode 100644
+index 00000000..0422f482
+--- /dev/null
++++ b/m4/pkg_config_for_build.m4
+@@ -0,0 +1,20 @@
++# PKG_PROG_PKG_CONFIG_FOR_BUILD([MIN-VERSION])
++# ----------------------------------
++AC_DEFUN([PKG_PROG_PKG_CONFIG_FOR_BUILD],
++[m4_pattern_allow([^PKG_CONFIG_FOR_BUILD$])
++AC_ARG_VAR([PKG_CONFIG_FOR_BUILD], [path to build system's pkg-config utility])
++
++if test "x$ac_cv_env_PKG_CONFIG_FOR_BUILD_set" != "xset"; then
++	AC_PATH_PROG([PKG_CONFIG_FOR_BUILD], [pkg-config])
++fi
++if test -n "$PKG_CONFIG_FOR_BUILD"; then
++	_pkg_for_build_min_version=m4_default([$1], [0.9.0])
++	AC_MSG_CHECKING([build system's pkg-config is at least version $_pkg_min_version])
++	if $PKG_CONFIG_FOR_BUILD --atleast-pkgconfig-version $_pkg_min_version; then
++		AC_MSG_RESULT([yes])
++	else
++		AC_MSG_RESULT([no])
++		PKG_CONFIG_FOR_BUILD=""
++	fi
++fi[]dnl
++])# PKG_PROG_PKG_CONFIG_FOR_BUILD
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 426376dd..7913487f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -46,9 +46,6 @@ noinst_PROGRAMS = gen-internal-compose-table
+ # C preprocessor flags
+ AM_CPPFLAGS =                                           \
+     -DG_LOG_DOMAIN=\"IBUS\"                             \
+-    @GLIB2_CFLAGS@                                      \
+-    @GOBJECT2_CFLAGS@                                   \
+-    @GIO2_CFLAGS@                                       \
+     -DIBUS_CACHE_DIR=\""$(localstatedir)/cache/ibus"\"  \
+     -DIBUS_DATA_DIR=\"$(pkgdatadir)\"                   \
+     -DIBUS_DISABLE_DEPRECATION_WARNINGS                 \
+@@ -65,6 +62,11 @@ libibus_1_0_la_LIBADD =     \
+     @GOBJECT2_LIBS@         \
+     @GIO2_LIBS@             \
+     $(NULL)
++libibus_1_0_la_CFLAGS =     \
++    @GLIB2_CFLAGS@          \
++    @GOBJECT2_CFLAGS@       \
++    @GIO2_CFLAGS@           \
++    $(NULL)
+ libibus_1_0_la_LDFLAGS =            \
+     -no-undefined                   \
+     -export-symbols-regex "ibus_.*" \
+@@ -107,7 +109,7 @@ ibus_sources =              \
+     ibusxevent.c            \
+     ibusxml.c               \
+     $(NULL)
+-libibus_1_0_la_SOURCES =    \
++libibus_sources =           \
+     ibuscomposetable.c      \
+     ibusenumtypes.c         \
+     ibusmarshalers.c        \
+@@ -166,6 +168,7 @@ ibus_headers =              \
+     ibusxevent.h            \
+     ibusxml.h               \
+     $(NULL)
++libibus_1_0_la_SOURCES = $(libibus_sources)
+ ibusincludedir = $(includedir)/ibus-@IBUS_API_VERSION@
+ ibus_public_headers =       \
+     $(ibus_headers)         \
+@@ -188,6 +191,35 @@ noinst_HEADERS =            \
+     $(ibus_private_headers) \
+     $(NULL)
+ 
++if CROSS_COMPILING
++# Avoid libtool when building native libraries
++libnativeibus =
++parser_extra_sources = $(libibus_sources)
++
++glib_cflags = @GLIB_CFLAGS_FOR_BUILD@
++glib_libs = @GLIB_LIBS_FOR_BUILD@
++
++$(noinst_PROGRAMS): CC=$(CC_FOR_BUILD)
++$(noinst_PROGRAMS): CCLD=$(CC_FOR_BUILD)
++$(noinst_PROGRAMS): CFLAGS=$(GLIB_CFLAGS_FOR_BUILD)
++$(noinst_PROGRAMS): CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
++$(noinst_PROGRAMS): LDFLAGS=$(LDFLAGS_FOR_BUILD)
++else
++libnativeibus = $(libibus)
++parser_extra_sources =
++
++glib_libs =             \
++    @GLIB2_LIBS@        \
++    @GOBJECT2_LIBS@     \
++    @GIO2_LIBS@         \
++    $(NULL)
++glib_cflags =           \
++    @GLIB2_CFLAGS@      \
++    @GOBJECT2_CFLAGS@   \
++    @GIO2_CFLAGS@       \
++    $(NULL)
++endif
++
+ gen_internal_compose_table_SOURCES = \
+     gencomposetable.c   \
+     ibuscomposetable.c  \
+@@ -195,11 +227,12 @@ gen_internal_compose_table_SOURCES = \
+     ibuskeynames.c      \
+     ibuskeyuni.c        \
+     $(NULL)
+-gen_internal_compose_table_CFLAGS = $(AM_CFLAGS)
++gen_internal_compose_table_CFLAGS =  \
++    $(AM_CFLAGS)        \
++    $(glib_cflags)      \
++    $(NULL)
+ gen_internal_compose_table_LDADD = \
+-    @GLIB2_LIBS@        \
+-    @GOBJECT2_LIBS@     \
+-    @GIO2_LIBS@         \
++    $(glib_libs)        \
+     $(NULL)
+ 
+ BUILT_SOURCES =                 \
+@@ -362,15 +395,15 @@ install-data-hook:
+ 
+ emoji_parser_SOURCES =          \
+     emoji-parser.c              \
++    $(parser_extra_sources)     \
+     $(NULL)
+ emoji_parser_CFLAGS =           \
+-    $(GLIB2_CFLAGS)             \
+-    $(GOBJECT2_CFLAGS)          \
++    $(AM_CFLAGS)                \
++    $(glib_cflags)              \
+     $(NULL)
+ emoji_parser_LDADD =            \
+-    $(libibus)                  \
+-    $(GLIB2_LIBS)               \
+-    $(GOBJECT2_LIBS)            \
++    $(libnativeibus)            \
++    $(glib_libs)                \
+     $(NULL)
+ endif
+ 
+@@ -407,13 +440,15 @@ ibusunicodegen.h:
+ 
+ unicode_parser_SOURCES =        \
+     unicode-parser.c            \
++    $(parser_extra_sources)     \
+     $(NULL)
+ unicode_parser_CFLAGS =         \
+-    $(GLIB2_CFLAGS)             \
++    $(AM_CFLAGS)                \
++    $(glib_cflags)              \
+     $(NULL)
+ unicode_parser_LDADD =          \
+-    $(GLIB2_LIBS)               \
+-    $(libibus)                  \
++    $(glib_libs)                \
++    $(libnativeibus)            \
+     $(NULL)
+ endif
+ 
diff --git a/srcpkgs/ibus/template b/srcpkgs/ibus/template
index 77a7a06a3037..ffe5ee881f94 100644
--- a/srcpkgs/ibus/template
+++ b/srcpkgs/ibus/template
@@ -1,7 +1,7 @@
 # Template file for 'ibus'
 pkgname=ibus
-version=1.5.27
-revision=2
+version=1.5.28
+revision=1
 build_style=gnu-configure
 build_helper="gir"
 configure_args="--enable-ui --enable-gtk3 --enable-gtk4
@@ -11,7 +11,7 @@ configure_args="--enable-ui --enable-gtk3 --enable-gtk4
  $(vopt_enable dicts emoji-dict) $(vopt_enable dicts unicode-dict)
  --enable-introspection --enable-vala $(vopt_enable ibus_setup setup)"
 hostmakedepends="pkg-config libtool gettext-devel intltool dconf
- python3 glib-devel vala
+ python3 glib-devel vala automake gtk-doc
  $(vopt_if dicts 'cldr-emoji-annotation unicode-character-database unicode-emoji')"
 makedepends="dconf-devel gtk+-devel gtk+3-devel gtk4-devel hicolor-icon-theme
  iso-codes json-glib-devel libnotify-devel librsvg-devel python3-xdg
@@ -23,15 +23,19 @@ maintainer="oreo639 <oreo6391@gmail.com>"
 license="LGPL-2.1-or-later"
 homepage="https://github.com/ibus/ibus"
 distfiles="https://github.com/ibus/ibus/releases/download/${version}/ibus-${version}.tar.gz"
-checksum=6efbda5adb96f607cf7108d1e270962c0729a59c9ea6d58eea2dde0e3cbb97df
+checksum=6c9ff3a7576c3d61264f386030f47ee467eb7298c8104367002986e008765667
 
 build_options="ibus_setup dicts"
 desc_option_ibus_setup="Enable support for building the ibus setup UI"
-build_options_default="ibus_setup"
+build_options_default="ibus_setup dicts"
 
-if [ -z "$CROSS_BUILD" ]; then
-	build_options_default+=" dicts"
-fi
+pre_build() {
+	export GIR_EXTRA_LIBS_PATH="${wrksrc}/src/.libs"
+}
+
+pre_configure() {
+	autoreconf -fi
+}
 
 post_install() {
 	vinstall bindings/pygobject/gi/overrides/IBus.py 644 ${py3_sitelib}/gi/overrides

  parent reply	other threads:[~2023-03-26 10:16 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-26 13:47 [PR PATCH] " oreo639
2023-02-26 13:49 ` [PR PATCH] [Updated] " oreo639
2023-03-26  7:11 ` oreo639
2023-03-26  7:15 ` oreo639
2023-03-26 10:00 ` oreo639
2023-03-26 10:16 ` oreo639 [this message]
2023-03-26 10:21 ` oreo639
2023-03-30 20:58 ` [PR PATCH] [Merged]: " paper42

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=20230326101655.zX_DSHQwlOPNeJp3U42NzPyD-T91RhmtlyKTGrmzfRY@z \
    --to=oreo639@users.noreply.github.com \
    --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).