commit:     71dd9cae20ac3342be0aed1831a80ea7858dc976
Author:     Matt Smith <matt <AT> offtopica <DOT> uk>
AuthorDate: Wed Jul 14 20:01:33 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jul 16 01:33:23 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71dd9cae

net-mail/mu: Guile 3 compat

Closes: https://bugs.gentoo.org/755875
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Matt Smith <matt <AT> offtopica.uk>
Closes: https://github.com/gentoo/gentoo/pull/21643
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-mail/mu/files/mu-1.4.15-guile3-1.patch | 141 +++++++++++++++++++++++++++++
 net-mail/mu/files/mu-1.4.15-guile3-2.patch |  17 ++++
 net-mail/mu/mu-1.4.15-r2.ebuild            |  72 +++++++++++++++
 3 files changed, 230 insertions(+)

diff --git a/net-mail/mu/files/mu-1.4.15-guile3-1.patch 
b/net-mail/mu/files/mu-1.4.15-guile3-1.patch
new file mode 100644
index 00000000000..671a4685a27
--- /dev/null
+++ b/net-mail/mu/files/mu-1.4.15-guile3-1.patch
@@ -0,0 +1,141 @@
+From 623cf787ad009c42b2adf3767be5f01fec56ff5a Mon Sep 17 00:00:00 2001
+From: Danny O'Brien <danny@codetherapy.space>
+Date: Mon, 7 Sep 2020 19:52:17 -0700
+Subject: [PATCH] guile: support version 3.0.
+
+Includes an update to the guile m4 package, and tweaks the build so that
+both 2.2 and 3.0 should work fine.
+---
+ configure.ac                  | 14 +++++++-------
+ guile/Makefile.am             |  2 +-
+ guile/mu/Makefile.am          |  4 +---
+ m4/Makefile.am                |  2 +-
+ m4/{guile-2.2.m4 => guile.m4} | 15 +++++++++------
+ 5 files changed, 19 insertions(+), 18 deletions(-)
+ rename m4/{guile-2.2.m4 => guile.m4} (97%)
+
+diff --git a/configure.ac b/configure.ac
+index eb5629696..cc43f43db 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -212,22 +212,22 @@ AM_CONDITIONAL(BUILD_GUI,[test "x$have_webkit" = "xyes" 
-a "x$have_gtk" = "xyes"
+ 
###############################################################################
+ 
+ 
###############################################################################
+-# build with guile2.2 when available and not disabled.
++# build with guile 3.0/2.2 when available and not disabled.
+ AC_ARG_ENABLE([guile], AS_HELP_STRING([--disable-guile],[Disable guile]))
+ AS_IF([test "x$enable_guile" != "xno"],[
+-  PKG_CHECK_MODULES(GUILE22, guile-2.2, [have_guile22=yes],[have_guile22=no])
+-  # this is a bit hacky; GUILE_PKG
+-  AS_IF([test "x$have_guile22" = "xyes"],[
+-    GUILE_PKG([2.2])
++  PKG_CHECK_MODULES(GUILE, [guile-3.0], [have_guile=yes],[
++    PKG_CHECK_MODULES(GUILE, [guile-2.2], [have_guile=yes], [have_guile=no])])
++  AS_IF([test "x$have_guile" = "xyes"],[
++    GUILE_PKG([3.0 2.2])
+     GUILE_PROGS
+     GUILE_FLAGS
+     AC_DEFINE_UNQUOTED([GUILE_BINARY],"$GUILE",[guile binary])
+     AC_DEFINE(BUILD_GUILE,[1], [Do we support Guile?])
+     AC_SUBST(GUILE_SNARF, [guile-snarf])
+-    guile_version=$($PKG_CONFIG guile-2.2 --modversion)
++    guile_version=$($PKG_CONFIG guile-$GUILE_EFFECTIVE_VERSION --modversion)
+   ])
+ ])
+-AM_CONDITIONAL(BUILD_GUILE,[test "x$have_guile22" = "xyes"])
++AM_CONDITIONAL(BUILD_GUILE,[test "x$have_guile" = "xyes"])
+ 
###############################################################################
+ 
+ 
###############################################################################
+diff --git a/guile/Makefile.am b/guile/Makefile.am
+index ed613068b..5c06ccc95 100644
+--- a/guile/Makefile.am
++++ b/guile/Makefile.am
+@@ -69,7 +69,7 @@ SUFFIXES = .x .doc
+ 
+ # FIXME: GUILE_SITEDIR would be better, but that
+ # breaks 'make distcheck'
+-scmdir=${prefix}/share/guile/site/2.2/
++scmdir=${prefix}/share/guile/site/${GUILE_EFFECTIVE_VERSION}
+ scm_DATA=mu.scm
+ 
+ EXTRA_DIST=$(scm_DATA)
+diff --git a/guile/mu/Makefile.am b/guile/mu/Makefile.am
+index f531822cd..9339ad973 100644
+--- a/guile/mu/Makefile.am
++++ b/guile/mu/Makefile.am
+@@ -16,9 +16,7 @@
+ 
+ include $(top_srcdir)/gtest.mk
+ 
+-# FIXME: GUILE_SITEDIR would be better, but that
+-# breaks 'make distcheck'
+-scmdir=${prefix}/share/guile/site/2.2/mu/
++scmdir=${prefix}/share/guile/site/${GUILE_EFFECTIVE_VERSION}/mu/
+ 
+ scm_DATA=             \
+       stats.scm       \
+diff --git a/m4/Makefile.am b/m4/Makefile.am
+index eeb8a05a4..27a49eebe 100644
+--- a/m4/Makefile.am
++++ b/m4/Makefile.am
+@@ -41,7 +41,7 @@ EXTRA_DIST=                          \
+       ax_lib_readline.m4              \
+       ax_require_defined.m4           \
+       ax_valgrind_check.m4            \
+-      guile-2.2.m4                    \
++      guile.m4                        \
+       lib-ld.m4                       \
+       lib-link.m4                     \
+       lib-prefix.m4
+diff --git a/m4/guile-2.2.m4 b/m4/guile.m4
+similarity index 97%
+rename from m4/guile-2.2.m4
+rename to m4/guile.m4
+index 89823e9c3..696897364 100644
+--- a/m4/guile-2.2.m4
++++ b/m4/guile.m4
+@@ -47,8 +47,8 @@
+ # for an available version of Guile.
+ #
+ # By default, this macro will search for the latest stable version of
+-# Guile (e.g. 2.2), falling back to the previous stable version
+-# (e.g. 2.0) if it is available.  If no guile-@var{VERSION}.pc file is
++# Guile (e.g. 3.0), falling back to the previous stable version
++# (e.g. 2.2) if it is available.  If no guile-@var{VERSION}.pc file is
+ # found, an error is signalled.  The found version is stored in
+ # @var{GUILE_EFFECTIVE_VERSION}.
+ #
+@@ -60,8 +60,11 @@
+ # @code{AC_SUBST}.
+ #
+ AC_DEFUN([GUILE_PKG],
+- [PKG_PROG_PKG_CONFIG
+-  _guile_versions_to_search="m4_default([$1], [2.2 2.0 1.8])"
++ [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
++  if test "x$PKG_CONFIG" = x; then
++    AC_MSG_ERROR([pkg-config is missing, please install it])
++  fi
++  _guile_versions_to_search="m4_default([$1], [3.0 2.2 2.0])"
+   if test -n "$GUILE_EFFECTIVE_VERSION"; then
+     _guile_tmp=""
+     for v in $_guile_versions_to_search; do
+@@ -221,7 +224,7 @@ AC_DEFUN([GUILE_SITE_DIR],
+ # as well.
+ #
+ # By default, this macro will search for the latest stable version of
+-# Guile (e.g. 2.2). x.y or x.y.z versions can be specified. If an older
++# Guile (e.g. 3.0). x.y or x.y.z versions can be specified. If an older
+ # version is found, the macro will signal an error.
+ #
+ # The effective version of the found @code{guile} is set to
+@@ -237,7 +240,7 @@ AC_DEFUN([GUILE_SITE_DIR],
+ AC_DEFUN([GUILE_PROGS],
+  [_guile_required_version="m4_default([$1], [$GUILE_EFFECTIVE_VERSION])"
+   if test -z "$_guile_required_version"; then
+-    _guile_required_version=2.2
++    _guile_required_version=3.0
+   fi
+ 
+   _guile_candidates=guile

diff --git a/net-mail/mu/files/mu-1.4.15-guile3-2.patch 
b/net-mail/mu/files/mu-1.4.15-guile3-2.patch
new file mode 100644
index 00000000000..6aa47d25230
--- /dev/null
+++ b/net-mail/mu/files/mu-1.4.15-guile3-2.patch
@@ -0,0 +1,17 @@
+---
+ lib/mu-script.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/mu-script.c b/lib/mu-script.c
+index 1175a60e3..92a63992e 100644
+--- a/lib/mu-script.c
++++ b/lib/mu-script.c
+@@ -318,7 +318,7 @@ mu_script_guile_run (MuScriptInfo *msi, const char *muhome,
+       g_return_val_if_fail (muhome, FALSE);
+ 
+       argv = g_new0 (char*, 6);
+-      argv[0] = g_strdup("guile2.2");
++      argv[0] = g_strdup(GUILE_BINARY);
+       argv[1] = g_strdup("-l");
+ 
+       if (access (mu_script_info_path (msi), R_OK) != 0) {

diff --git a/net-mail/mu/mu-1.4.15-r2.ebuild b/net-mail/mu/mu-1.4.15-r2.ebuild
new file mode 100644
index 00000000000..fa8dc2e3014
--- /dev/null
+++ b/net-mail/mu/mu-1.4.15-r2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools elisp-common
+
+DESCRIPTION="Set of tools to deal with Maildirs, in particular, searching and 
indexing"
+HOMEPAGE="https://www.djcbsoftware.nl/code/mu/ https://github.com/djcb/mu";
+SRC_URI="https://github.com/djcb/mu/archives/refs/tags/${PV}.tar.gz -> 
mu-${PV}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~x64-macos"
+IUSE="emacs guile mug"
+
+DEPEND="
+       dev-libs/glib:2=
+       dev-libs/gmime:3.0=
+       >=dev-libs/xapian-1.4:=
+       emacs? ( >=app-editors/emacs-24.4:* )
+       guile? ( >=dev-scheme/guile-2.2:* )
+       mug? (
+               net-libs/webkit-gtk:4=
+               x11-libs/gtk+:3=
+       )"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.4.15-guile3-1.patch
+       "${FILESDIR}"/${PN}-1.4.15-guile3-2.patch
+)
+
+SITEFILE="70mu-gentoo-autoload.el"
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               $(use_enable emacs mu4e)
+               $(use_enable mug gtk)
+               $(use_enable mug webkit)
+               $(use_enable guile)
+       )
+
+       econf "${myeconfargs[@]}"
+}
+
+pkg_preinst() {
+       if [[ -n ${REPLACING_VERSIONS} ]]; then
+               elog "After upgrading from an old major version, you should"
+               elog "rebuild your mail index."
+       fi
+}
+
+pkg_postinst() {
+       if use emacs; then
+               einfo "To use mu4e you need to configure it in your .emacs file"
+               einfo "See the manual for more information:"
+               einfo "https://www.djcbsoftware.nl/code/mu/mu4e/";
+
+               elisp-site-regen
+       fi
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}

Reply via email to