[PATCH 0/3] Various improvements to Notmuch

  • Done
  • quality assurance status badge
Details
6 participants
  • Andrew Tropin
  • Carlo Zancanaro
  • Liliana Marie Prikler
  • Nicolas Goaziou
  • Xinglu Chen
  • zimoun
Owner
unassigned
Submitted by
Xinglu Chen
Severity
normal
X
X
Xinglu Chen wrote on 16 Aug 2021 16:10
(address . guix-patches@gnu.org)
cover.1629122681.git.public@yoctocell.xyz
Adding an extra ‘emacs’ output would allow one to propagate notmuch.el
without propagating the Notmuch executable and libnotmuch. This was

Xinglu Chen (3):
gnu: notmuch: Add separate 'emacs' output.
gnu: notmuch: Build Info manual.
gnu: notmuch: Use 'cc-for-target' instead of hardcoding 'gcc'.

gnu/packages/mail.scm | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)


base-commit: 0fa49fd2a8f0d1d2c37ea276cc44d0d5adcea701
--
2.32.0
X
X
Xinglu Chen wrote on 16 Aug 2021 16:12
[PATCH 1/3] gnu: notmuch: Add separate 'emacs' output.
(address . 50077@debbugs.gnu.org)
dd24f426b72a1c590cbd71d2eaa66a75b559a9e7.1629122681.git.public@yoctocell.xyz
* gnu/packages/mail.scm (notmuch)[outputs]: Add ‘emacs’ output
[arguments]<#:modules>: Add (guix build emacs-utils).
<#:phases>{configure}: Use the ‘emacs’ output.
{make-autoloads}: Modify the default ‘make-autoloads’ phase to use the ‘emacs’
output.
---
gnu/packages/mail.scm | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)

Toggle diff (50 lines)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index ccf44b7cf3..bbc616f6f5 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1337,7 +1337,8 @@ invoking @command{notifymuch} from the post-new hook.")
(arguments
`(#:modules ((guix build gnu-build-system)
((guix build emacs-build-system) #:prefix emacs:)
- (guix build utils))
+ (guix build utils)
+ (guix build emacs-utils))
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-build-system)
(guix build emacs-utils))
@@ -1355,7 +1356,8 @@ invoking @command{notifymuch} from the post-new hook.")
(setenv "CONFIG_SHELL" (which "sh"))
(let* ((out (assoc-ref outputs "out"))
- (elisp (emacs:elpa-directory out)))
+ (emacs (assoc-ref outputs "emacs"))
+ (elisp (emacs:elpa-directory emacs)))
(invoke "./configure"
(string-append "--prefix=" out)
(string-append "--emacslispdir=" elisp)
@@ -1373,7 +1375,14 @@ invoking @command{notifymuch} from the post-new hook.")
(substitute* (find-files "test" "\\.sh$")
(("/bin/sh") (which "sh")))))
(add-after 'install 'make-autoloads
- (assoc-ref emacs:%standard-phases 'make-autoloads)))))
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let* ((emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs"))
+ (out (assoc-ref outputs "emacs"))
+ (elpa-name-ver ((@@ (guix build emacs-build-system)
+ store-directory->elpa-name-version) out))
+ (elpa-name (package-name->name+version elpa-name-ver))
+ (el-dir (emacs:elpa-directory out)))
+ (emacs-generate-autoloads elpa-name el-dir)))))))
(native-inputs
`(("bash-completion" ,bash-completion)
("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
@@ -1394,6 +1403,7 @@ invoking @command{notifymuch} from the post-new hook.")
("talloc" ,talloc)
("xapian" ,xapian)
("zlib" ,zlib)))
+ (outputs '("out" "emacs"))
(home-page "https://notmuchmail.org/")
(synopsis "Thread-based email index, search, and tagging")
(description
--
2.32.0
X
X
Xinglu Chen wrote on 16 Aug 2021 16:12
[PATCH 2/3] gnu: notmuch: Build Info manual.
(address . 50077@debbugs.gnu.org)
cb4ecb82546420a6a991a7f13f77a903cc93dbde.1629122681.git.public@yoctocell.xyz
* gnu/packages/mail.scm (notmuch)[native-inputs]: Add 'texinfo'.
---
gnu/packages/mail.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index bbc616f6f5..66e0d2482d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1390,6 +1390,7 @@ invoking @command{notifymuch} from the post-new hook.")
("python" ,python)
("python-docutils" ,python-docutils)
("sphinx" ,python-sphinx)
+ ("texinfo" ,texinfo)
;; The following are required for tests only.
("which" ,which)
--
2.32.0
X
X
Xinglu Chen wrote on 16 Aug 2021 16:12
[PATCH 3/3] gnu: notmuch: Use 'cc-for-target' instead of hardcoding 'gcc'.
(address . 50077@debbugs.gnu.org)
6ce89bf8646d07c68dc5b27b0795de45030b4adc.1629122681.git.public@yoctocell.xyz
* gnu/packages/mail.scm (notmuch)[arguments]<#:phases>: Use 'cc-for-target'
instead of 'gcc'.
---
gnu/packages/mail.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 66e0d2482d..2c2d740f9b 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1352,7 +1352,7 @@ invoking @command{notifymuch} from the post-new hook.")
(("/bin/sh") (which "sh")))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
- (setenv "CC" "gcc")
+ (setenv "CC" ,(cc-for-target))
(setenv "CONFIG_SHELL" (which "sh"))
(let* ((out (assoc-ref outputs "out"))
@@ -1370,7 +1370,7 @@ invoking @command{notifymuch} from the post-new hook.")
(("\\$NOTMUCH_GMIME_X509_CERT_VALIDITY") "0"))))
(add-before 'check 'prepare-test-environment
(lambda _
- (setenv "TEST_CC" "gcc")
+ (setenv "TEST_CC" ,(cc-for-target))
;; Patch various inline shell invocations.
(substitute* (find-files "test" "\\.sh$")
(("/bin/sh") (which "sh")))))
--
2.32.0
X
X
Xinglu Chen wrote on 28 Aug 2021 12:34
Re: [PATCH 1/3] gnu: notmuch: Add separate 'emacs' output.
(name . Andrew Tropin)(address . andrew@trop.in)(address . 50077@debbugs.gnu.org)
87r1edvown.fsf@yoctocell.xyz
[ Debbugs wasn’t Cc’d in the previous message ]

On Mon, Aug 23 2021, Andrew Tropin wrote:

Toggle quote (64 lines)
> On 2021-08-16 16:12, Xinglu Chen wrote:
>
>> * gnu/packages/mail.scm (notmuch)[outputs]: Add ‘emacs’ output
>> [arguments]<#:modules>: Add (guix build emacs-utils).
>> <#:phases>{configure}: Use the ‘emacs’ output.
>> {make-autoloads}: Modify the default ‘make-autoloads’ phase to use the ‘emacs’
>> output.
>> ---
>> gnu/packages/mail.scm | 16 +++++++++++++---
>> 1 file changed, 13 insertions(+), 3 deletions(-)
>>
>> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
>> index ccf44b7cf3..bbc616f6f5 100644
>> --- a/gnu/packages/mail.scm
>> +++ b/gnu/packages/mail.scm
>> @@ -1337,7 +1337,8 @@ invoking @command{notifymuch} from the post-new hook.")
>> (arguments
>> `(#:modules ((guix build gnu-build-system)
>> ((guix build emacs-build-system) #:prefix emacs:)
>> - (guix build utils))
>> + (guix build utils)
>> + (guix build emacs-utils))
>> #:imported-modules (,@%gnu-build-system-modules
>> (guix build emacs-build-system)
>> (guix build emacs-utils))
>> @@ -1355,7 +1356,8 @@ invoking @command{notifymuch} from the post-new hook.")
>> (setenv "CONFIG_SHELL" (which "sh"))
>>
>> (let* ((out (assoc-ref outputs "out"))
>> - (elisp (emacs:elpa-directory out)))
>> + (emacs (assoc-ref outputs "emacs"))
>> + (elisp (emacs:elpa-directory emacs)))
>> (invoke "./configure"
>> (string-append "--prefix=" out)
>> (string-append "--emacslispdir=" elisp)
>> @@ -1373,7 +1375,14 @@ invoking @command{notifymuch} from the post-new hook.")
>> (substitute* (find-files "test" "\\.sh$")
>> (("/bin/sh") (which "sh")))))
>> (add-after 'install 'make-autoloads
>> - (assoc-ref emacs:%standard-phases 'make-autoloads)))))
>> + (lambda* (#:key outputs inputs #:allow-other-keys)
>> + (let* ((emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs"))
>> + (out (assoc-ref outputs "emacs"))
>> + (elpa-name-ver ((@@ (guix build emacs-build-system)
>> + store-directory->elpa-name-version) out))
>> + (elpa-name (package-name->name+version elpa-name-ver))
>> + (el-dir (emacs:elpa-directory out)))
>> + (emacs-generate-autoloads elpa-name el-dir)))))))
>> (native-inputs
>> `(("bash-completion" ,bash-completion)
>> ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
>> @@ -1394,6 +1403,7 @@ invoking @command{notifymuch} from the post-new hook.")
>> ("talloc" ,talloc)
>> ("xapian" ,xapian)
>> ("zlib" ,zlib)))
>> + (outputs '("out" "emacs"))
>> (home-page "https://notmuchmail.org/")
>> (synopsis "Thread-based email index, search, and tagging")
>> (description
>
> The separate output is ok, but I think making a separate emacs-notmuch
> package looks more consistent. We can inherit it from notmuch package
> to be sure that the packages are built from the same source code.

Why would it be more consistent to make a separate package? Making a
separate package is usually used for packaging a slightly different
version of the “regular” package, e.g., ‘emacs-next-pgtk’ adds native
compilation and pure GTK support for Emacs., ‘emacs-no-x’ removes X
suport for ‘emacs’. ‘emacs-notmuch’ isn’t really a different version of
‘notmuch’, it’s just ‘notmuch’ but with all the non-Elisp stuff
removed. This is usually what using different outputs tries to achieve,
e.g., separate documentation from the main package, or in this case,
separate Elisp stuff from the main package.

The ‘notmuch’ package in Nixpkgs also uses multiple outputs[1], which I
think makes sense.

Toggle quote (3 lines)
>
> Thank you for working on this, the changes are good and useful!)

You are welcome! :-)
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmEqESgVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5kZcP/RTgDyBP+weLceLnv5Xo6z4wvR1y
mpqjSSoz7xEKazB7JGNkjKx+1Xcz15AcC1VOAyGUPJdBUGTbHtp1jSIMcmwCY5Xb
dNUlv+aGXZzQdKzMw2lTRxe4JPKq6fbIZN9aIhezCAX8oojDI8LIuRK4H6onZzkt
NijrdN09oYkfEsHTDXdoDu/EZNV25MH3MAW4lVQKnpwZIDqj6m3A46Z/2jvMFeoH
HaXQUD6ZJc4zN1n1tklds09hYyHeR+0ijBG33HmZ8KQloaOx+9J2k9AO326i3R2Y
Evjqt1DL3RoaCMqwSXIsxKBZmJj84YJZm2MxmZz8wGWdxf5AzpFzdmWl4svaPS2T
nCRrjf3M0PvW+eNUagLAnF186p3alC9incQqq/o9aOeri7YggHkoxQL/drHFlEik
93589LuGBa+cyaXIjV4t9hD7O47/sZyudT5kwIsDnyo+QZMTeMH/Mo9fPN7YhORm
0Am3niBcEMc0lZ6zNWQyupU4UdtLrgOcltJYYOH29wA5DrSb5WlM9rQZTu6O4PkD
HLlsa75O4e9OiENSllJClA/lM3dSmPp+VCWH08I5i1yduDaJ28EbF45Dwxh1Bgxx
P4LgB6XhBdGcsi2AFnF+worHqIv9qshfwBzLU10Qcxy3rvFTC+HDZ41JZtIlYPhK
2EdnAyHscS2FFONS
=kd3P
-----END PGP SIGNATURE-----

A
A
Andrew Tropin wrote on 30 Aug 2021 09:14
(name . Xinglu Chen)(address . public@yoctocell.xyz)(address . 50077@debbugs.gnu.org)
87lf4j8kux.fsf@trop.in
On 2021-08-28 12:34, Xinglu Chen wrote:

Toggle quote (3 lines)
> [ Debbugs wasn’t Cc’d in the previous message ]
>

Oops)

Toggle quote (78 lines)
>
> On Mon, Aug 23 2021, Andrew Tropin wrote:
>
>> On 2021-08-16 16:12, Xinglu Chen wrote:
>>
>>> * gnu/packages/mail.scm (notmuch)[outputs]: Add ‘emacs’ output
>>> [arguments]<#:modules>: Add (guix build emacs-utils).
>>> <#:phases>{configure}: Use the ‘emacs’ output.
>>> {make-autoloads}: Modify the default ‘make-autoloads’ phase to use the ‘emacs’
>>> output.
>>> ---
>>> gnu/packages/mail.scm | 16 +++++++++++++---
>>> 1 file changed, 13 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
>>> index ccf44b7cf3..bbc616f6f5 100644
>>> --- a/gnu/packages/mail.scm
>>> +++ b/gnu/packages/mail.scm
>>> @@ -1337,7 +1337,8 @@ invoking @command{notifymuch} from the post-new hook.")
>>> (arguments
>>> `(#:modules ((guix build gnu-build-system)
>>> ((guix build emacs-build-system) #:prefix emacs:)
>>> - (guix build utils))
>>> + (guix build utils)
>>> + (guix build emacs-utils))
>>> #:imported-modules (,@%gnu-build-system-modules
>>> (guix build emacs-build-system)
>>> (guix build emacs-utils))
>>> @@ -1355,7 +1356,8 @@ invoking @command{notifymuch} from the post-new hook.")
>>> (setenv "CONFIG_SHELL" (which "sh"))
>>>
>>> (let* ((out (assoc-ref outputs "out"))
>>> - (elisp (emacs:elpa-directory out)))
>>> + (emacs (assoc-ref outputs "emacs"))
>>> + (elisp (emacs:elpa-directory emacs)))
>>> (invoke "./configure"
>>> (string-append "--prefix=" out)
>>> (string-append "--emacslispdir=" elisp)
>>> @@ -1373,7 +1375,14 @@ invoking @command{notifymuch} from the post-new hook.")
>>> (substitute* (find-files "test" "\\.sh$")
>>> (("/bin/sh") (which "sh")))))
>>> (add-after 'install 'make-autoloads
>>> - (assoc-ref emacs:%standard-phases 'make-autoloads)))))
>>> + (lambda* (#:key outputs inputs #:allow-other-keys)
>>> + (let* ((emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs"))
>>> + (out (assoc-ref outputs "emacs"))
>>> + (elpa-name-ver ((@@ (guix build emacs-build-system)
>>> + store-directory->elpa-name-version) out))
>>> + (elpa-name (package-name->name+version elpa-name-ver))
>>> + (el-dir (emacs:elpa-directory out)))
>>> + (emacs-generate-autoloads elpa-name el-dir)))))))
>>> (native-inputs
>>> `(("bash-completion" ,bash-completion)
>>> ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
>>> @@ -1394,6 +1403,7 @@ invoking @command{notifymuch} from the post-new hook.")
>>> ("talloc" ,talloc)
>>> ("xapian" ,xapian)
>>> ("zlib" ,zlib)))
>>> + (outputs '("out" "emacs"))
>>> (home-page "https://notmuchmail.org/")
>>> (synopsis "Thread-based email index, search, and tagging")
>>> (description
>>
>> The separate output is ok, but I think making a separate emacs-notmuch
>> package looks more consistent. We can inherit it from notmuch package
>> to be sure that the packages are built from the same source code.
>
> Why would it be more consistent to make a separate package? Making a
> separate package is usually used for packaging a slightly different
> version of the “regular” package, e.g., ‘emacs-next-pgtk’ adds native
> compilation and pure GTK support for Emacs., ‘emacs-no-x’ removes X
> suport for ‘emacs’. ‘emacs-notmuch’ isn’t really a different version of
> ‘notmuch’, it’s just ‘notmuch’ but with all the non-Elisp stuff
> removed. This is usually what using different outputs tries to achieve,
> e.g., separate documentation from the main package, or in this case,
> separate Elisp stuff from the main package.
>

Almost all elisp packages in Guix have a emacs- prefix, so as a user I
expect to find notmuch*.el in emacs-notmuch package and notmuch binary
in notmuch package, despite the fact that upstream distributes the
source code for both of them in one tarball. Moreover, with
emacs-notmuch and notmuch packages it's possible to use different build
systems, which helps in automated package modification, for example I
want to native compile all emacs packages or generate some additional
metainformation, I just find all packages in my profile with
emacs-build-system and modify phases accordingly. Yes, it's possible to
do such modification for other packages manually, but it feels hacky and
inconvinient.

The separate output can work, but a separate package looks better to me.

P.S. I know that there are some emacs packages in Guix already, which
doesn't use emacs-build-system, but I think we should keep that number
as low as possible and ideally to make it equal to 0 =)

Toggle quote (9 lines)
>
> The ‘notmuch’ package in Nixpkgs also uses multiple outputs[1], which
> I think makes sense.
>
> <https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/mailreaders/notmuch/default.nix>
>>
>> Thank you for working on this, the changes are good and useful!)
>
> You are welcome! :-)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmEshWYACgkQIgjSCVjB
3rBY5A/9Fb5hO8de8DXW+b3JXdba0EiIvzo8FItr6Vl25iW5y6RQSBDAAwHyq7oE
+ej2oC/5o0GnC5ECYsxirHP3HTtRyG7DIQaw/MX2T9CVoCMa3sL2TaYfiqCfC074
tJJCMbTQ77P9ng3ZQNtAAzf3qn/sRgmPKPcmEsX+khY5J5sqtPD7FGo0j8R+wDvz
W/9vdMpkvnQP1poBvZ2MSz+AQI9+iJo8cZjeX/zl2L1eUZLE+UYlHKe/77rSRqUG
x5JHmoRTOO/1Qrg8XxcF0XVVWAPVsBTP2QwEnCTm2Pz4zUxNv9zl9xUThsztoWIJ
u57dMiQIOae21DmWvQPZFEfBaeXGgs7feglCoxXiLzAtqLst7cSQXpRnU24cyLWW
MElOtDq4B36XFOO9/ennf2hecyOgX36plZ62694h7wwxf2ha3iKVJtOUtlYgBhq8
W8p6cnNv1S0L+JGp8fC3xd/vxLc3w2sMFhmYqq/wH7Cv/exhM1/0X2v66QocB39y
prvSOWqiLQ15nEkobB7xtjtxq1jVStTTAZWQKPPd6YlYn8p1NBI8UKYCeHK7GjP1
8Y5XUldymU0BgimzgqrQC/Aw+v1Jy+f27xz4z/v9iupYHFUiz42RMk8kLB/qgk/1
EjHswkGE/hotsbkYZvhlztUtEMZuVSkzjsQ5xuDS82uZXpv22B8=
=vYqN
-----END PGP SIGNATURE-----

X
X
Xinglu Chen wrote on 30 Aug 2021 15:33
Separate ‘emacs’ output vs separate ‘emacs-’ package (was Re: [bug#50077] [PATCH 1/3] gnu: notmuch: Add separate 'emacs' output.)
(name . Andrew Tropin)(address . andrew@trop.in)(address . 50077@debbugs.gnu.org)
87r1ebm503.fsf@yoctocell.xyz
On Mon, Aug 30 2021, Andrew Tropin wrote:

Toggle quote (16 lines)
>> Why would it be more consistent to make a separate package? Making a
>> separate package is usually used for packaging a slightly different
>> version of the “regular” package, e.g., ‘emacs-next-pgtk’ adds native
>> compilation and pure GTK support for Emacs., ‘emacs-no-x’ removes X
>> suport for ‘emacs’. ‘emacs-notmuch’ isn’t really a different version of
>> ‘notmuch’, it’s just ‘notmuch’ but with all the non-Elisp stuff
>> removed. This is usually what using different outputs tries to achieve,
>> e.g., separate documentation from the main package, or in this case,
>> separate Elisp stuff from the main package.
>>
>
> Almost all elisp packages in Guix have a emacs- prefix, so as a user I
> expect to find notmuch*.el in emacs-notmuch package and notmuch binary
> in notmuch package, despite the fact that upstream distributes the
> source code for both of them in one tarball.

Good point, however, If we were to have separate ‘emacs-’ packages for
the packages that also contain Elisp stuff, should those packages still
include the Emacs package in their output, i.e., should the ‘notmuch’
package still include notmuch.el, or should the Elisp stuff only be in
‘emacs-notmuch’?

Toggle quote (8 lines)
> Moreover, with emacs-notmuch and notmuch packages it's possible to use
> different build systems, which helps in automated package
> modification, for example I want to native compile all emacs packages
> or generate some additional metainformation, I just find all packages
> in my profile with emacs-build-system and modify phases accordingly.
> Yes, it's possible to do such modification for other packages
> manually, but it feels hacky and inconvinient.

This sounds like an interesting use-case, but I don’t know how useful
this will be for most people.
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmEs3iwVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5LCEQAJhsIHTuXqy8Wo69MC3D3nnv//SX
ax6sRTEg/rgElWEzKxNo6ren+Srk9p9pZCMn8NUgbRtPQsksd6X1jtjwxikFrpUp
P4e5gMTDF/EytPGZRG7KmocueqMELa2MAc7WOrZMI5Dhe4sTB1q0O1C+/47d/nKY
fNMK+ZHH7IhErzUNQ8bxcfXWFnsJ3XLa6cUSQ0qMKoWC7hHuPexIJjleM31IUg4/
zmp9SsZSyc7VpNg3wXX15vd5O8s8HkyfgeM/4Pd5dxer39xChZwvMujA8ZVFsak3
KOuCVdL37dYK2Bin8+o61EWZ4GffHUPRKNCL5slajOCVbb2z2JL7qu4JMT5BK7B9
yXvjiYqTwrtBpGejv6FoWRlwY2Dnx6Gpoteur3fa4XaY9pYvTC3L1ZZfvfqMbqXv
nFto9nkeixuvhyQYAe3QBAiOxg77GkhpOcXZIttLPs9Zu/672/pf5EuJRpO3pfne
eEpWbkldhwfoNc1zCdD151zNbhGjfcKvuCWY0exlrY70QyrC1swVlQOs89wyN+eB
5h4q6ydBA91m8nFahb4HmbyJ8TXcmgLm+fFXIZBaYnjOVj2MQwdETZhPgBwV1myx
YqUmdZEgKGI1H7CRSVDyaLB2QGcCJupP7bk5HL9C7LonoVyGvbmnpOS2uCwEPTGU
/ANxAlOx+lOYfDP2
=3x6X
-----END PGP SIGNATURE-----

A
A
Andrew Tropin wrote on 1 Sep 2021 11:50
(name . Xinglu Chen)(address . public@yoctocell.xyz)(address . 50077@debbugs.gnu.org)
8735qozkt0.fsf@trop.in
On 2021-08-30 15:33, Xinglu Chen wrote:

Toggle quote (25 lines)
> On Mon, Aug 30 2021, Andrew Tropin wrote:
>
>>> Why would it be more consistent to make a separate package? Making a
>>> separate package is usually used for packaging a slightly different
>>> version of the “regular” package, e.g., ‘emacs-next-pgtk’ adds native
>>> compilation and pure GTK support for Emacs., ‘emacs-no-x’ removes X
>>> suport for ‘emacs’. ‘emacs-notmuch’ isn’t really a different version of
>>> ‘notmuch’, it’s just ‘notmuch’ but with all the non-Elisp stuff
>>> removed. This is usually what using different outputs tries to achieve,
>>> e.g., separate documentation from the main package, or in this case,
>>> separate Elisp stuff from the main package.
>>>
>>
>> Almost all elisp packages in Guix have a emacs- prefix, so as a user I
>> expect to find notmuch*.el in emacs-notmuch package and notmuch binary
>> in notmuch package, despite the fact that upstream distributes the
>> source code for both of them in one tarball.
>
> Good point, however, If we were to have separate ‘emacs-’ packages for
> the packages that also contain Elisp stuff, should those packages still
> include the Emacs package in their output, i.e., should the ‘notmuch’
> package still include notmuch.el, or should the Elisp stuff only be in
> ‘emacs-notmuch’?
>

IMO, notmuch package should not include Elisp stuff, at least I don't
see use cases, where it can be useful, but see where it can be harmful.

Toggle quote (12 lines)
>
>> Moreover, with emacs-notmuch and notmuch packages it's possible to use
>> different build systems, which helps in automated package
>> modification, for example I want to native compile all emacs packages
>> or generate some additional metainformation, I just find all packages
>> in my profile with emacs-build-system and modify phases accordingly.
>> Yes, it's possible to do such modification for other packages
>> manually, but it feels hacky and inconvinient.
>
> This sounds like an interesting use-case, but I don’t know how useful
> this will be for most people.

Even if there are not so many people, who do it right now or even in
some future, it's very likely that some derivative distribution with
considerable amount of users will appear, which will be utilizing such
capabilities.

Actually, the exact use case doesn't matter so much, but the whole
picture, where you need to track every package, which picks some phases
of one build system to make sure that your transformation of package
list works correctly is. More regular and consistent package
definitions are, the easier and simplier to transform them
programmatically.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmEvTOsACgkQIgjSCVjB
3rDU+Q//Z701kZCQDE2DIV2PwjbaPDr23uyLOoF+7a9Begci6tFoG4v+/ZORKmvn
lwx2Hjf6qQCWbxW9CYUVwwmHmXpfHexUpz4rwHLBRfCK632i42IdF/X8+NjkqHZP
xNbafRf83q0sxP82oM88mQcv+qVVbPR+WgHLM5IaMNxInXxncoZRm5cCiRQT2UjE
ztJhWeUBu9ng9JJqKBbEv9vs40D7SZaEdCeM3ScOF0AvsK6lc3OcTAt52UlU+Mdq
0AbG7/ZJ3GmGL16Vj9HmvF/VBSmnXbqInDXoB1RUVUqyjtOwyuT3wgrLVODL4l9M
sl5560B3RVEBmNdaq77Cxgp4FIHYooqzgbXc2FqgHcHTuXirDHM2ZlyP7UqXMm5p
j9Ev+56ZqWxJn6gh95TvpflCPzDThkDN6rRkLOQpVyq6lyRHcf3TDF0IdTGVrcm7
AvJB2K+J8KviSdrPFB84Iv+wu+eqL6tV/cRXpTQv4z8HUqU5PllUP73QP8qLN+39
CsnnvYrkP9HfzZZHpyfNaAqJDT5vPagkGy9n0C6tdW9Lp8wKv7KAIzPZy7Cilq9y
2W7YC33511seXQz5rfB818Y+0JklLMNq/xtqCKKDf1f4QmmDxCtYN+ou7C9inaae
yCCPMXNasJy6sSfP8/OPsDa/lYF7oAqCpQr99wy74rQW8t2M158=
=vjxh
-----END PGP SIGNATURE-----

X
X
Xinglu Chen wrote on 1 Sep 2021 14:05
Re: [bug#50077] Separate ‘emacs’ output vs separate ‘emacs-’ package (was Re: [bug#50077] [PATCH 1/3] gnu: notmuch: Add separate 'emacs' output.)
(name . Andrew Tropin)(address . andrew@trop.in)
874kb4lcvf.fsf@yoctocell.xyz
On Wed, Sep 01 2021, Andrew Tropin wrote:

Toggle quote (31 lines)
> On 2021-08-30 15:33, Xinglu Chen wrote:
>
>> On Mon, Aug 30 2021, Andrew Tropin wrote:
>>
>>>> Why would it be more consistent to make a separate package? Making a
>>>> separate package is usually used for packaging a slightly different
>>>> version of the “regular” package, e.g., ‘emacs-next-pgtk’ adds native
>>>> compilation and pure GTK support for Emacs., ‘emacs-no-x’ removes X
>>>> suport for ‘emacs’. ‘emacs-notmuch’ isn’t really a different version of
>>>> ‘notmuch’, it’s just ‘notmuch’ but with all the non-Elisp stuff
>>>> removed. This is usually what using different outputs tries to achieve,
>>>> e.g., separate documentation from the main package, or in this case,
>>>> separate Elisp stuff from the main package.
>>>>
>>>
>>> Almost all elisp packages in Guix have a emacs- prefix, so as a user I
>>> expect to find notmuch*.el in emacs-notmuch package and notmuch binary
>>> in notmuch package, despite the fact that upstream distributes the
>>> source code for both of them in one tarball.
>>
>> Good point, however, If we were to have separate ‘emacs-’ packages for
>> the packages that also contain Elisp stuff, should those packages still
>> include the Emacs package in their output, i.e., should the ‘notmuch’
>> package still include notmuch.el, or should the Elisp stuff only be in
>> ‘emacs-notmuch’?
>>
>
> IMO, notmuch package should not include Elisp stuff, at least I don't
> see use cases, where it can be useful, but see where it can be
> harmful.

Should this apply to other packages that contains Elisp stuff too, or is
it specific to ‘notmuch’?

Cc’ing guix-devel to see what other people think before we start
breaking people’s setups. :-)
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmEvbJQVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x56t8P/2kqL4vYvy0B4xBoUNey+oW24dCj
5FDMDgdn8aPYzuwBIoU6P68tRL6dTu3QOVxTwosJxs6/pR0GpiK/CgJLhBlVFgSr
pRIZRUB53YUv2m8vjmUTm4ImwDGAzqCaTPINQlkq6IDKBgn709A951IUs15dXBGQ
U3Skb5GwLM5BK2Em9ZHhVz6K/x5U5GF/RLqkQFftqRhl9i8pavWGFbJq3YKUeyB8
qdGbxM+TLOmR0c63JEhqtmXnS918PYJREaNSJF79dBSsEp6BGyz/mm6dXPzlLSJ2
zhfjDcBqL5CyIyuHidV+WeqrqjZ3DGVeqBe6foTfTIqcXqe6Kka95CEJtbs+Ooch
rdoHJSTF+ITogaWd8T+HxwR9QjBv8eZZM2gv4I/GRsq/HsB5rrGssb2tKupM1pJm
+BZ5ZfC1C08KAvMxYWrrxPQ8So8B/oEVSo7p72ZD09bfS7x9xxQzH8Lvf9H7o26m
avkqVlLjhehprCYWsrrUFcsuJu3ukEGXotvHp64L+2Ij9hBORekqPKXzR/nZAVEA
PN8FVLh2pxtkv+qOcRE5Kof4eS7uudPgUH4w2bLZ9n2zjvzrPuYmpvrkv67IbNcm
QV7V4kdPP4AVAIUE30txDRewLtSa0cbeq+GpnDZDDA+miB2wGGyyxxj1H4vmmcct
CE7hFP54QN9/ietW
=uNAt
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 1 Sep 2021 14:48
456243eca955ecc83b26663ed4e7e22d5170f03d.camel@student.tugraz.at
Am Mittwoch, den 01.09.2021, 14:05 +0200 schrieb Xinglu Chen:
Toggle quote (9 lines)
> > IMO, notmuch package should not include Elisp stuff, at least I
> > don't see use cases, where it can be useful, but see where it can
> > be harmful.
>
> Should this apply to other packages that contains Elisp stuff too, or
> is it specific to ‘notmuch’?
>
> Cc’ing guix-devel to see what other people think before we start
> breaking people’s setups. :-)
In my personal opinion providing a separate package (perhaps one using
emacs-build-system) is to be preferred as per the principle of least
surprise. However, in some situations we might want to hold back on
that, e.g. if providing an extra emacs package would entail propagating
the original package just because.

On current master, there's quite a number of packages that require
mixing emacs-build-system into something else. Reducing this number
would make changes to emacs-build-system cause less breakages, some of
which we've seen in the past and some of which could possibly happen in
the future, if e.g. post native-compilation we realize that we need an
extra phase to deal with <insert stuff here>.

TL;DR: I'm generally in favor of branching emacs support packages off,
even if origins are to be inherited.

Regards
Z
Z
zimoun wrote on 1 Sep 2021 15:52
86mtowo132.fsf@gmail.com
Hi,

On Wed, 01 Sep 2021 at 14:05, Xinglu Chen <public@yoctocell.xyz> wrote:

Toggle quote (3 lines)
> Cc’ing guix-devel to see what other people think before we start
> breaking people’s setups. :-)

I agree with this Andrew’s comment:

P.S. I know that there are some emacs packages in Guix already, which
doesn't use emacs-build-system, but I think we should keep that number
as low as possible and ideally to make it equal to 0 =)

If I do:

guix install emacs-next notmuch

then there is no guarantee that “M-x notmuch” will work. Because
’notmuch.el’ is byte-compiled using ’emacs-no-x’. The issue is that
some Emacs packages rely on ’emacs-minimal’, others on ’emacs-no-x’ as
input, others on other Emacs VM variant, therefore the transformation

guix build -m manifest.scm --with-input=emacs-minimal=emacs-next

will not work, as pointed by Nicolas here [1]. Well, you will tell me
that ’outputs’ does not change much the issue. :-) For sure, but IMHO
having Emacs packages using ’emacs-build-system’ eases the write of
generic transformation. Well, there is enough corner cases with Emacs
packages using ’emacs-build-system’ which rewriting their ’#:emacs’
argument. Other speaking about Emacs packages using other build
systems.

Another point is, if I want to build ’notmuch’ but I am not an Emacs
user, then:

guix environment notmuch

will download ’emacs-no-x’ for nothing. When my network is poor, I am
unhappy. Although, it is already the case. :-) Well, this is something
known, see:


I am not convinced that several outputs help. And generally speaking,
personally, I tend to prefer package inherit over several outputs.
Matter of taste I guess. :-)

Without speaking about cross-compilation. ;-)

From my point of view, I would split the package ’notmuch’ and propagate
this new ’notmuch’ package with a new ’emacs-notmuch’ (if ’notmuch.el’
requires it). Well, from my point of view, it would be how to improve
the situation. :-)


All the best,
simon

C
C
Carlo Zancanaro wrote on 2 Sep 2021 01:25
(name . Liliana Marie Prikler)(address . leo.prikler@student.tugraz.at)
87sfynq2xm.fsf@zancanaro.id.au
On Wed, Sep 01 2021, Liliana Marie Prikler wrote:
Toggle quote (3 lines)
> TL;DR: I'm generally in favor of branching emacs support
> packages off, even if origins are to be inherited.

This is my preference, and there is precedent for this in Guix
already. I know of emacs-protobuf-mode and emacs-erlang which are
separate packages, but which reference the source of an existing
package (with (package-source protobuf) and (package-source
erlang), respectively).

I like how easy it is to discover Emacs packages by looking for
the emacs- prefix. Mu and notmuch already violate that prefix
expectation, moving their elisp into a separate output would be
further hiding the Emacs modes.

Carlo
X
X
Xinglu Chen wrote on 3 Sep 2021 18:14
87lf4diqkt.fsf@yoctocell.xyz
On Thu, Sep 02 2021, Carlo Zancanaro wrote:

Toggle quote (17 lines)
> On Wed, Sep 01 2021, Liliana Marie Prikler wrote:
>> TL;DR: I'm generally in favor of branching emacs support
>> packages off, even if origins are to be inherited.
>
> This is my preference, and there is precedent for this in Guix
> already. I know of emacs-protobuf-mode and emacs-erlang which are
> separate packages, but which reference the source of an existing
> package (with (package-source protobuf) and (package-source
> erlang), respectively).
>
> I like how easy it is to discover Emacs packages by looking for
> the emacs- prefix. Mu and notmuch already violate that prefix
> expectation, moving their elisp into a separate output would be
> further hiding the Emacs modes.
>
> Carlo

Looks like there is consensus on the matter, unless someone objects, I
will send an updated series that adds ‘emacs-notmuch’ instead of adding
an extra output to ‘notmuch’. :-)
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmEySfIVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x575YQAK807vIrOhJHCl6J932RmRV5JMVk
HSGo/Aajbicxt0Mib3rezqmokqwEkXNnD9/G8oTWHeiRdHSLMXz1keGXm4QE3fzn
L0bIbEq+Z/zQutD019753p1on09qo7hW5Dj+iAVf/+izq5smToY77q3E5YbD5tIy
0+9Y6TBhccCCUWnoNM3zNX9uXnhyVxCxgrs8aoPTrnVAYTbKXqEBNkFiNPR5YGP1
6uitxyLCuJKWrUd2tiyq+8qHEFjIY8ABBZXfwKGxshcOCN+5E3Oj34D0H+KX4M72
hVTaBxbhCl+zaL90/OqKrCP1f46gr+sWcmSQAlbCQigislbG1YCS319vyH5Vj4FA
RFyU+kZGkOsQa4SGs5+b4mTvaAXJR745a1Y6haR15bcZ1OOPHpHDfPM3m80Bda4V
mf1NWTuNEuktTm/sgulW/9Jib0VnGFiVGBn589Z9JyKlYhmc0IeHwTPeL/eJqJiL
15VO9TLAO3SsG4K5NbHpz2gBOo5/z3QBwQemlS96W8qHVFheMYTDjfVCoH6mop2U
D8q9AGFIUslNoq5frE8mKHc11b1xIzVd3kdLIgODhItybjXDbexScUQHOay/KZNK
Zg5qu4+frn95T/RbaSSgm9o5lu/IGYVe/T8UIHhWwlHenGmQixw12BLRsyQVWqpT
2x84MPsGRrHrXNKt
=uOBD
-----END PGP SIGNATURE-----

X
X
Xinglu Chen wrote on 4 Sep 2021 11:41
[PATCH v2 0/3] Improvements to Notmuch
(address . 50077@debbugs.gnu.org)(name . Andrew Tropin)(address . andrew@trop.in)
cover.1630748355.git.public@yoctocell.xyz
Changes since v1:

* Add separate ‘emacs-notmuch’ package instead of ‘emacs’ output, and
adjust other Emacs packages accordingly.

Xinglu Chen (3):
gnu: notmuch: Build Texinfo manual.
gnu: notmuch: Make cross-compilable.
gnu: Add emacs-notmuch.

gnu/packages/emacs-xyz.scm | 8 ++++--
gnu/packages/mail.scm | 57 +++++++++++++++++++++++---------------
2 files changed, 40 insertions(+), 25 deletions(-)


base-commit: 9540323458de87b0b8aa421e449a4fe27af7c393
--
2.33.0
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmEzP0IVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5psoP/0/2qZ00ExPAZRgUvFHuBOTmGSSr
VCaD3zeXvScyLYJcIYuOBljGrzfw2kAEOcsDztNmJ+tUXdSOz/zy6XF/sMEprpPJ
BYhxUc3HIkQS3qaGZyMaUsC/A9yigaKlWc4rAYeernC1JHdzxHAy4EMxorp5TagN
zmXcwvPRWAAjGXxlDp2oLGhSEgulEWH6lmrHjkcZq7HIigcM8pMdrH0ICemXOpd0
+8vSjyG8oBX9sJoCGyNEyAVAKQP7FZwZWaLcnCdJ0V/Q5N1q0mV0mAaUF84ZbAyS
ZY2nJSife5YN+VsBX8PKnnXGVFDxfpgRdZD/DRBC21cCBAxZcMVtaZncmvAdbve/
TydLLXi4/6cFipAKoK8yF2POD92Gju19F33H2b2mwOG+qRWHpcZzHmpxWwF35arj
m5rKBYFq3qDwfBmDJgrYijtA9ZMYbaKs9pUquNDPx9H2HZr/tUuocfU//VkzS4xy
jxBdU375A5yzwOLulx1oDp4D0YX5Rld9USSm7jacD6IbZ7IaI0eJYVnxeTmamQwo
buJMb78rkQoaOXmThjISh0JCIkbk4gUVG6ir/ladaJnBqLeeIbq6mJPfAdLpiFWe
UcQUQDIUoTnFn9udacnkEvOsNZRuOGkvysabTdqAaMe5EmR5KhOLXj5LW4OxHlaS
SRCeW6826zR/+svp
=RSHY
-----END PGP SIGNATURE-----

X
X
Xinglu Chen wrote on 4 Sep 2021 11:41
[PATCH v2 1/3] gnu: notmuch: Build Texinfo manual.
(address . 50077@debbugs.gnu.org)
c2f9baa46b4c6b504949e76141e1912a3f498f54.1630748355.git.public@yoctocell.xyz
* gnu/packages/mail.scm (notmuch)[native-inputs]: Add 'texinfo'.
---
gnu/packages/mail.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 87094cb9eb..eb141c5984 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1388,6 +1388,7 @@ invoking @command{notifymuch} from the post-new hook.")
("python" ,python)
("python-docutils" ,python-docutils)
("sphinx" ,python-sphinx)
+ ("texinfo" ,texinfo)
;; The following are required for tests only.
("which" ,which)
--
2.33.0
X
X
Xinglu Chen wrote on 4 Sep 2021 11:41
[PATCH v2 2/3] gnu: notmuch: Make cross-compilable.
(address . 50077@debbugs.gnu.org)
a04bd166f196170238fc255d8c4edc10fe4b71f8.1630748355.git.public@yoctocell.xyz
* gnu/packages/mail.scm (notmuch)[arguments]<#:phases>: Use 'cc-for-target'
instead of 'gcc'.
---
gnu/packages/mail.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index eb141c5984..173982cb12 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1358,7 +1358,7 @@ invoking @command{notifymuch} from the post-new hook.")
(("/bin/sh") (which "sh")))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
- (setenv "CC" "gcc")
+ (setenv "CC" ,(cc-for-target))
(setenv "CONFIG_SHELL" (which "sh"))
(let* ((out (assoc-ref outputs "out"))
@@ -1375,7 +1375,7 @@ invoking @command{notifymuch} from the post-new hook.")
(("\\$NOTMUCH_GMIME_X509_CERT_VALIDITY") "0"))))
(add-before 'check 'prepare-test-environment
(lambda _
- (setenv "TEST_CC" "gcc")
+ (setenv "TEST_CC" ,(cc-for-target))
;; Patch various inline shell invocations.
(substitute* (find-files "test" "\\.sh$")
(("/bin/sh") (which "sh")))))
--
2.33.0
X
X
Xinglu Chen wrote on 4 Sep 2021 11:42
[PATCH v2 3/3] gnu: Add emacs-notmuch.
(address . 50077@debbugs.gnu.org)(name . Andrew Tropin)(address . andrew@trop.in)
a9fb50394ef7ee48836a808ed2b3fc7d7aeb92e0.1630748355.git.public@yoctocell.xyz
* gnu/packages/mail.scm (notmuch)[arguments]: Remove Emacs-related stuff.
* gnu/packages/emacs-xyz.scm (emacs-consult-notmuch)[propagated-inputs]: Add
‘emacs-notmuch’.
(emacs-counsel-notmuch)[propagated-inputs]: Use ‘emacs-notmuch’ instead of
‘notmuch’.
(emacs-helm-notmuch): Likewise.
(emacs-notmuch-maildir): Likewise.
---
gnu/packages/emacs-xyz.scm | 8 +++---
gnu/packages/mail.scm | 52 +++++++++++++++++++++++---------------
2 files changed, 37 insertions(+), 23 deletions(-)

Toggle diff (144 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 030809f5ac..67ba8bf523 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -8304,7 +8304,7 @@ list of candidates.")
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-consult" ,emacs-consult)
- ("notmuch" ,notmuch)))
+ ("emacs-notmuch" ,emacs-notmuch)))
(home-page "https://codeberg.org/jao/consult-notmuch")
(synopsis "Search and preview Notmuch emails using Consult")
(description
@@ -9490,6 +9490,8 @@ queries using counsel.")
`(("emacs-counsel" ,emacs-counsel)
("notmuch" ,notmuch)
("emacs-s" ,emacs-s)))
+ (propagated-inputs
+ `(("emacs-notmuch" ,emacs-notmuch)))
(home-page "https://github.com/fuxialexander/counsel-notmuch")
(synopsis "Search emails in Notmuch asynchronously with Ivy")
(description
@@ -23952,7 +23954,7 @@ workspaces with a LSP-compliant server running.")
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-helm" ,emacs-helm)
- ("notmuch" ,notmuch)))
+ ("emacs-notmuch" ,emacs-notmuch)))
(synopsis "Search emails with Emacs Notmuch and Helm")
(description
"This package can be used to search emails in Emacs, searching result
@@ -23975,7 +23977,7 @@ real search.")
"0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"))))
(build-system emacs-build-system)
(propagated-inputs
- `(("notmuch" ,notmuch)))
+ `(("emacs-notmuch" ,emacs-notmuch)))
(home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
(synopsis "Visualize maildirs as a tree")
(description
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 173982cb12..729e47cb95 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -167,6 +167,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system guile)
+ #:use-module (guix build-system emacs)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
@@ -1342,31 +1343,18 @@ invoking @command{notifymuch} from the post-new hook.")
"1myylb19hj5nb1vriqng252vfjwwkgbi3gxj93pi2q1fzyw7w2lf"))))
(build-system gnu-build-system)
(arguments
- `(#:modules ((guix build gnu-build-system)
- ((guix build emacs-build-system) #:prefix emacs:)
- (guix build utils))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build emacs-build-system)
- (guix build emacs-utils))
- #:make-flags
+ `(#:make-flags
(list "V=1" ; verbose test output
"NOTMUCH_TEST_TIMEOUT=1h") ; don't fail on slow machines
#:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-notmuch-lib.el
- (lambda _
- (substitute* "emacs/notmuch-lib.el"
- (("/bin/sh") (which "sh")))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" ,(cc-for-target))
(setenv "CONFIG_SHELL" (which "sh"))
-
- (let* ((out (assoc-ref outputs "out"))
- (elisp (emacs:elpa-directory out)))
+ (let* ((out (assoc-ref outputs "out")))
(invoke "./configure"
(string-append "--prefix=" out)
- (string-append "--emacslispdir=" elisp)
- (string-append "--emacsetcdir=" elisp)))))
+ "--without-emacs"))))
(add-before 'check 'disable-failing-tests
;; FIXME: Investigate why these tests are failing,
;; and try removing this for notmuch versions > 0.31.
@@ -1378,12 +1366,9 @@ invoking @command{notifymuch} from the post-new hook.")
(setenv "TEST_CC" ,(cc-for-target))
;; Patch various inline shell invocations.
(substitute* (find-files "test" "\\.sh$")
- (("/bin/sh") (which "sh")))))
- (add-after 'install 'make-autoloads
- (assoc-ref emacs:%standard-phases 'make-autoloads)))))
+ (("/bin/sh") (which "sh"))))))))
(native-inputs
`(("bash-completion" ,bash-completion)
- ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
("pkg-config" ,pkg-config)
("python" ,python)
("python-docutils" ,python-docutils)
@@ -1391,6 +1376,7 @@ invoking @command{notifymuch} from the post-new hook.")
("texinfo" ,texinfo)
;; The following are required for tests only.
+ ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
("which" ,which)
("dtach" ,dtach)
("gnupg" ,gnupg)
@@ -1409,6 +1395,32 @@ invoking @command{notifymuch} from the post-new hook.")
ing, and tagging large collections of email messages.")
(license license:gpl3+)))
+(define-public emacs-notmuch
+ (package
+ (inherit notmuch)
+ (name "emacs-notmuch")
+ (build-system emacs-build-system)
+ (native-inputs '())
+ (inputs
+ `(("notmuch" ,notmuch)))
+ (arguments
+ `(#:exclude (cons* "make-deps.el" "rstdoc.el" %default-exclude)
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "emacs")))
+ (add-after 'chdir 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((notmuch (assoc-ref inputs "notmuch")))
+ (substitute* "notmuch-lib.el"
+ (("\"notmuch\"")
+ (string-append "\"" notmuch "/bin/notmuch\"")))))))))
+ (synopsis "Run Notmuch within Emacs")
+ (description
+ "This package provides an Emacs-based interface to the Notmuch mail
+system.")))
+
(define-public notmuch-addrlookup-c
(package
(name "notmuch-addrlookup-c")
--
2.33.0
N
N
Nicolas Goaziou wrote on 14 Sep 2021 09:05
Re: [bug#50077] [PATCH v2 0/3] Improvements to Notmuch
(name . Xinglu Chen)(address . public@yoctocell.xyz)
87a6kf63hm.fsf@nicolasgoaziou.fr
Hello,

Xinglu Chen <public@yoctocell.xyz> writes:

Toggle quote (5 lines)
> Xinglu Chen (3):
> gnu: notmuch: Build Texinfo manual.
> gnu: notmuch: Make cross-compilable.
> gnu: Add emacs-notmuch.

Applied. Thank you.

Regards,
--
Nicolas Goaziou
Closed
A
A
Andrew Tropin wrote on 14 Sep 2021 09:22
Re: [PATCH v2 3/3] gnu: Add emacs-notmuch.
878rzzmxir.fsf@trop.in
On 2021-09-04 11:42, Xinglu Chen wrote:

Toggle quote (147 lines)
> * gnu/packages/mail.scm (notmuch)[arguments]: Remove Emacs-related stuff.
> * gnu/packages/emacs-xyz.scm (emacs-consult-notmuch)[propagated-inputs]: Add
> ‘emacs-notmuch’.
> (emacs-counsel-notmuch)[propagated-inputs]: Use ‘emacs-notmuch’ instead of
> ‘notmuch’.
> (emacs-helm-notmuch): Likewise.
> (emacs-notmuch-maildir): Likewise.
> ---
> gnu/packages/emacs-xyz.scm | 8 +++---
> gnu/packages/mail.scm | 52 +++++++++++++++++++++++---------------
> 2 files changed, 37 insertions(+), 23 deletions(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index 030809f5ac..67ba8bf523 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -8304,7 +8304,7 @@ list of candidates.")
> (build-system emacs-build-system)
> (propagated-inputs
> `(("emacs-consult" ,emacs-consult)
> - ("notmuch" ,notmuch)))
> + ("emacs-notmuch" ,emacs-notmuch)))
> (home-page "https://codeberg.org/jao/consult-notmuch")
> (synopsis "Search and preview Notmuch emails using Consult")
> (description
> @@ -9490,6 +9490,8 @@ queries using counsel.")
> `(("emacs-counsel" ,emacs-counsel)
> ("notmuch" ,notmuch)
> ("emacs-s" ,emacs-s)))
> + (propagated-inputs
> + `(("emacs-notmuch" ,emacs-notmuch)))
> (home-page "https://github.com/fuxialexander/counsel-notmuch")
> (synopsis "Search emails in Notmuch asynchronously with Ivy")
> (description
> @@ -23952,7 +23954,7 @@ workspaces with a LSP-compliant server running.")
> (build-system emacs-build-system)
> (propagated-inputs
> `(("emacs-helm" ,emacs-helm)
> - ("notmuch" ,notmuch)))
> + ("emacs-notmuch" ,emacs-notmuch)))
> (synopsis "Search emails with Emacs Notmuch and Helm")
> (description
> "This package can be used to search emails in Emacs, searching result
> @@ -23975,7 +23977,7 @@ real search.")
> "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"))))
> (build-system emacs-build-system)
> (propagated-inputs
> - `(("notmuch" ,notmuch)))
> + `(("emacs-notmuch" ,emacs-notmuch)))
> (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
> (synopsis "Visualize maildirs as a tree")
> (description
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 173982cb12..729e47cb95 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -167,6 +167,7 @@
> #:use-module (guix build-system gnu)
> #:use-module (guix build-system go)
> #:use-module (guix build-system guile)
> + #:use-module (guix build-system emacs)
> #:use-module (guix build-system meson)
> #:use-module (guix build-system perl)
> #:use-module (guix build-system python)
> @@ -1342,31 +1343,18 @@ invoking @command{notifymuch} from the post-new hook.")
> "1myylb19hj5nb1vriqng252vfjwwkgbi3gxj93pi2q1fzyw7w2lf"))))
> (build-system gnu-build-system)
> (arguments
> - `(#:modules ((guix build gnu-build-system)
> - ((guix build emacs-build-system) #:prefix emacs:)
> - (guix build utils))
> - #:imported-modules (,@%gnu-build-system-modules
> - (guix build emacs-build-system)
> - (guix build emacs-utils))
> - #:make-flags
> + `(#:make-flags
> (list "V=1" ; verbose test output
> "NOTMUCH_TEST_TIMEOUT=1h") ; don't fail on slow machines
> #:phases (modify-phases %standard-phases
> - (add-after 'unpack 'patch-notmuch-lib.el
> - (lambda _
> - (substitute* "emacs/notmuch-lib.el"
> - (("/bin/sh") (which "sh")))))
> (replace 'configure
> (lambda* (#:key outputs #:allow-other-keys)
> (setenv "CC" ,(cc-for-target))
> (setenv "CONFIG_SHELL" (which "sh"))
> -
> - (let* ((out (assoc-ref outputs "out"))
> - (elisp (emacs:elpa-directory out)))
> + (let* ((out (assoc-ref outputs "out")))
> (invoke "./configure"
> (string-append "--prefix=" out)
> - (string-append "--emacslispdir=" elisp)
> - (string-append "--emacsetcdir=" elisp)))))
> + "--without-emacs"))))
> (add-before 'check 'disable-failing-tests
> ;; FIXME: Investigate why these tests are failing,
> ;; and try removing this for notmuch versions > 0.31.
> @@ -1378,12 +1366,9 @@ invoking @command{notifymuch} from the post-new hook.")
> (setenv "TEST_CC" ,(cc-for-target))
> ;; Patch various inline shell invocations.
> (substitute* (find-files "test" "\\.sh$")
> - (("/bin/sh") (which "sh")))))
> - (add-after 'install 'make-autoloads
> - (assoc-ref emacs:%standard-phases 'make-autoloads)))))
> + (("/bin/sh") (which "sh"))))))))
> (native-inputs
> `(("bash-completion" ,bash-completion)
> - ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
> ("pkg-config" ,pkg-config)
> ("python" ,python)
> ("python-docutils" ,python-docutils)
> @@ -1391,6 +1376,7 @@ invoking @command{notifymuch} from the post-new hook.")
> ("texinfo" ,texinfo)
>
> ;; The following are required for tests only.
> + ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
> ("which" ,which)
> ("dtach" ,dtach)
> ("gnupg" ,gnupg)
> @@ -1409,6 +1395,32 @@ invoking @command{notifymuch} from the post-new hook.")
> ing, and tagging large collections of email messages.")
> (license license:gpl3+)))
>
> +(define-public emacs-notmuch
> + (package
> + (inherit notmuch)
> + (name "emacs-notmuch")
> + (build-system emacs-build-system)
> + (native-inputs '())
> + (inputs
> + `(("notmuch" ,notmuch)))
> + (arguments
> + `(#:exclude (cons* "make-deps.el" "rstdoc.el" %default-exclude)
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'chdir
> + (lambda _
> + (chdir "emacs")))
> + (add-after 'chdir 'patch-paths
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((notmuch (assoc-ref inputs "notmuch")))
> + (substitute* "notmuch-lib.el"
> + (("\"notmuch\"")
> + (string-append "\"" notmuch "/bin/notmuch\"")))))))))

Not sure if we need to hardcode the path to notmuch binary (some people
can use guix for managing emacs packages, but not system), but I think
it's a rare case and this default is reasonable and easily fixable by
simple `(setq notmuch-command "notmuch")` in the cases, when notmuch
itslef provided by other package manager.

Toggle quote (9 lines)
> + (synopsis "Run Notmuch within Emacs")
> + (description
> + "This package provides an Emacs-based interface to the Notmuch mail
> +system.")))
> +
> (define-public notmuch-addrlookup-c
> (package
> (name "notmuch-addrlookup-c")

Overall, LGTM.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmFATcwACgkQIgjSCVjB
3rAMtxAAjDBugwYXQcSSKHyDjBX6KA3JNErwJmL6HAS5MJZlsB8WaVZNdjizwk4G
keJrzTOam6SgfpUXCcsSJ2GjZG6aMN/2MXi7QrUdbx9FYQt2xr118hBdSu9nBaSl
M01wuMM3PRFQg5l8Gbto6Lo3E/jVEIL3Xm4dU75ULY2s1DNos/ZMr3kNY+Kb3ILa
QVqsYqhodbG/2kHKiFRdxWxnZHJ1x5wXcaqyjeHf5tl/xrqK6Qu3oSHhj+OWuWIJ
/Ce9zBVsf5c7rTwcMuySH52guu2DxXrcMqWWNADnfqptE4PVcpaiQjBqUKiEXEC9
nFJA9hEMeHES5ZU5JAmEk04cVFEI1RwHUHkP7B/JZD8wiJd7FAkyJyHeXnYSf3NL
Uj8/TGVCS7qKJvMf7ddj4IDLd23zc4EjyOAiU39sZiAI3/GUc7DFEto7+KhBzkwJ
YTWaXmrk2+QeN4cNXYGzicB3DnKzXLaS+AbeEldxnn/vEEutqe8//zxg8wiEjwqG
R9DXsnnsP+V0LUVWwkxXtAFeS2UdqXzBgHJJcq4CAxXa/fBnOtuvVT5Ew36gqRHI
Q04OnxgMqZE80SnkSK/ZLMa9mJAlmN3ckKBFniwEnk//0kbDAsQgaKW4WNNmCk9p
xOe7eFCbHnJcq7yIemUbhfj05DsTrwXf2oUvQ630kDk9bHOYwIM=
=i949
-----END PGP SIGNATURE-----

X
X
Xinglu Chen wrote on 14 Sep 2021 17:29
Re: [bug#50077] [PATCH v2 3/3] gnu: Add emacs-notmuch.
87lf3ztbta.fsf@yoctocell.xyz
On Tue, Sep 14 2021, Andrew Tropin wrote:

Toggle quote (155 lines)
> On 2021-09-04 11:42, Xinglu Chen wrote:
>
>> * gnu/packages/mail.scm (notmuch)[arguments]: Remove Emacs-related stuff.
>> * gnu/packages/emacs-xyz.scm (emacs-consult-notmuch)[propagated-inputs]: Add
>> ‘emacs-notmuch’.
>> (emacs-counsel-notmuch)[propagated-inputs]: Use ‘emacs-notmuch’ instead of
>> ‘notmuch’.
>> (emacs-helm-notmuch): Likewise.
>> (emacs-notmuch-maildir): Likewise.
>> ---
>> gnu/packages/emacs-xyz.scm | 8 +++---
>> gnu/packages/mail.scm | 52 +++++++++++++++++++++++---------------
>> 2 files changed, 37 insertions(+), 23 deletions(-)
>>
>> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
>> index 030809f5ac..67ba8bf523 100644
>> --- a/gnu/packages/emacs-xyz.scm
>> +++ b/gnu/packages/emacs-xyz.scm
>> @@ -8304,7 +8304,7 @@ list of candidates.")
>> (build-system emacs-build-system)
>> (propagated-inputs
>> `(("emacs-consult" ,emacs-consult)
>> - ("notmuch" ,notmuch)))
>> + ("emacs-notmuch" ,emacs-notmuch)))
>> (home-page "https://codeberg.org/jao/consult-notmuch")
>> (synopsis "Search and preview Notmuch emails using Consult")
>> (description
>> @@ -9490,6 +9490,8 @@ queries using counsel.")
>> `(("emacs-counsel" ,emacs-counsel)
>> ("notmuch" ,notmuch)
>> ("emacs-s" ,emacs-s)))
>> + (propagated-inputs
>> + `(("emacs-notmuch" ,emacs-notmuch)))
>> (home-page "https://github.com/fuxialexander/counsel-notmuch")
>> (synopsis "Search emails in Notmuch asynchronously with Ivy")
>> (description
>> @@ -23952,7 +23954,7 @@ workspaces with a LSP-compliant server running.")
>> (build-system emacs-build-system)
>> (propagated-inputs
>> `(("emacs-helm" ,emacs-helm)
>> - ("notmuch" ,notmuch)))
>> + ("emacs-notmuch" ,emacs-notmuch)))
>> (synopsis "Search emails with Emacs Notmuch and Helm")
>> (description
>> "This package can be used to search emails in Emacs, searching result
>> @@ -23975,7 +23977,7 @@ real search.")
>> "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"))))
>> (build-system emacs-build-system)
>> (propagated-inputs
>> - `(("notmuch" ,notmuch)))
>> + `(("emacs-notmuch" ,emacs-notmuch)))
>> (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
>> (synopsis "Visualize maildirs as a tree")
>> (description
>> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
>> index 173982cb12..729e47cb95 100644
>> --- a/gnu/packages/mail.scm
>> +++ b/gnu/packages/mail.scm
>> @@ -167,6 +167,7 @@
>> #:use-module (guix build-system gnu)
>> #:use-module (guix build-system go)
>> #:use-module (guix build-system guile)
>> + #:use-module (guix build-system emacs)
>> #:use-module (guix build-system meson)
>> #:use-module (guix build-system perl)
>> #:use-module (guix build-system python)
>> @@ -1342,31 +1343,18 @@ invoking @command{notifymuch} from the post-new hook.")
>> "1myylb19hj5nb1vriqng252vfjwwkgbi3gxj93pi2q1fzyw7w2lf"))))
>> (build-system gnu-build-system)
>> (arguments
>> - `(#:modules ((guix build gnu-build-system)
>> - ((guix build emacs-build-system) #:prefix emacs:)
>> - (guix build utils))
>> - #:imported-modules (,@%gnu-build-system-modules
>> - (guix build emacs-build-system)
>> - (guix build emacs-utils))
>> - #:make-flags
>> + `(#:make-flags
>> (list "V=1" ; verbose test output
>> "NOTMUCH_TEST_TIMEOUT=1h") ; don't fail on slow machines
>> #:phases (modify-phases %standard-phases
>> - (add-after 'unpack 'patch-notmuch-lib.el
>> - (lambda _
>> - (substitute* "emacs/notmuch-lib.el"
>> - (("/bin/sh") (which "sh")))))
>> (replace 'configure
>> (lambda* (#:key outputs #:allow-other-keys)
>> (setenv "CC" ,(cc-for-target))
>> (setenv "CONFIG_SHELL" (which "sh"))
>> -
>> - (let* ((out (assoc-ref outputs "out"))
>> - (elisp (emacs:elpa-directory out)))
>> + (let* ((out (assoc-ref outputs "out")))
>> (invoke "./configure"
>> (string-append "--prefix=" out)
>> - (string-append "--emacslispdir=" elisp)
>> - (string-append "--emacsetcdir=" elisp)))))
>> + "--without-emacs"))))
>> (add-before 'check 'disable-failing-tests
>> ;; FIXME: Investigate why these tests are failing,
>> ;; and try removing this for notmuch versions > 0.31.
>> @@ -1378,12 +1366,9 @@ invoking @command{notifymuch} from the post-new hook.")
>> (setenv "TEST_CC" ,(cc-for-target))
>> ;; Patch various inline shell invocations.
>> (substitute* (find-files "test" "\\.sh$")
>> - (("/bin/sh") (which "sh")))))
>> - (add-after 'install 'make-autoloads
>> - (assoc-ref emacs:%standard-phases 'make-autoloads)))))
>> + (("/bin/sh") (which "sh"))))))))
>> (native-inputs
>> `(("bash-completion" ,bash-completion)
>> - ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
>> ("pkg-config" ,pkg-config)
>> ("python" ,python)
>> ("python-docutils" ,python-docutils)
>> @@ -1391,6 +1376,7 @@ invoking @command{notifymuch} from the post-new hook.")
>> ("texinfo" ,texinfo)
>>
>> ;; The following are required for tests only.
>> + ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
>> ("which" ,which)
>> ("dtach" ,dtach)
>> ("gnupg" ,gnupg)
>> @@ -1409,6 +1395,32 @@ invoking @command{notifymuch} from the post-new hook.")
>> ing, and tagging large collections of email messages.")
>> (license license:gpl3+)))
>>
>> +(define-public emacs-notmuch
>> + (package
>> + (inherit notmuch)
>> + (name "emacs-notmuch")
>> + (build-system emacs-build-system)
>> + (native-inputs '())
>> + (inputs
>> + `(("notmuch" ,notmuch)))
>> + (arguments
>> + `(#:exclude (cons* "make-deps.el" "rstdoc.el" %default-exclude)
>> + #:phases
>> + (modify-phases %standard-phases
>> + (add-after 'unpack 'chdir
>> + (lambda _
>> + (chdir "emacs")))
>> + (add-after 'chdir 'patch-paths
>> + (lambda* (#:key inputs #:allow-other-keys)
>> + (let ((notmuch (assoc-ref inputs "notmuch")))
>> + (substitute* "notmuch-lib.el"
>> + (("\"notmuch\"")
>> + (string-append "\"" notmuch "/bin/notmuch\"")))))))))
>
> Not sure if we need to hardcode the path to notmuch binary (some people
> can use guix for managing emacs packages, but not system), but I think
> it's a rare case and this default is reasonable and easily fixable by
> simple `(setq notmuch-command "notmuch")` in the cases, when notmuch
> itslef provided by other package manager.

Yeah, this default should work for most people, and as you said, people
who haven’t installed Notmuch via Guix can just set to the
‘notmuch-command’ to the appropriate value. It’s Emacs after all... ;-)

Also, since there was a consensus that Emacs packages that were included
in “regular” packages should be packaged as separate ‘emacs-’ packages,
I think it would be a good idea to add a paragraph about that in the
manual.
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmFAv/EVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5vxUQAJln8S5TpIM3sOU7jpy9pNS09Lvs
kJHYMmZZo7h/n4dpRQjqtslGe+GgQKNOrjWVb9AXTYfCsU9X0CEN6zhir+LxCbxo
2LcFUxcA9oGvWzj4iGOOotxOuASivFrDWpSMWL9j9TEe5dXoapYY5aj5VKO6v9ZH
EbA4nd4pqw+945z3EDusnCA/8npWifyf0jeAEVw/xM6RHHVYkZGOpVn/rBeEBvRw
bUSyqnQQ1qJOUP8r6odRowuCqzOi+wBmVpOjECyr2ITvKGRCT8JzANKBqgmkQT6E
QkIeVWJbuAdd1nvETt/GIcWp09a+jWvXS2oxuJ4cmBt2nYIKGeXNdksM4Ak9r/m5
LnEdGvVBCSSzi9vYINhSRyOk1j3N6h2O63Z6ckokjakXUCkL0KU5BHpLH8P74uPD
+o3ORUPuBF7S+bZSgk1FTwXlev2Z0YEJlwSNUVwdu0dd56qphgqh5/lJA8QlIyP7
Z4WK84nbtWhZGyzvfd57H6L1kzyxY9Jug536r92hkHEnGpFgl7qWyjiPN43/oO3D
E/a4Uh8tVdF3gKBWST7x5ssPcOCC8ATpgSUDrNSo6RRH/A7R6a5Y4RZ38p4FpSP3
dSfVzjZHHL4HRVJiwESOLoeO55nIIQZ2JD7yKwNVT07OefNTG3UbgMDQqoe6cGxL
l2lhWdiNP3ZXal3X
=WO/M
-----END PGP SIGNATURE-----

Z
Z
zimoun wrote on 14 Sep 2021 17:35
861r5rtbji.fsf@gmail.com
Hi,

On Tue, 14 Sep 2021 at 17:29, Xinglu Chen <public@yoctocell.xyz> wrote:
Toggle quote (18 lines)
> On Tue, Sep 14 2021, Andrew Tropin wrote:
>> On 2021-09-04 11:42, Xinglu Chen wrote:

>> Not sure if we need to hardcode the path to notmuch binary (some people
>> can use guix for managing emacs packages, but not system), but I think
>> it's a rare case and this default is reasonable and easily fixable by
>> simple `(setq notmuch-command "notmuch")` in the cases, when notmuch
>> itslef provided by other package manager.
>
> Yeah, this default should work for most people, and as you said, people
> who haven’t installed Notmuch via Guix can just set to the
> ‘notmuch-command’ to the appropriate value. It’s Emacs after all... ;-)
>
> Also, since there was a consensus that Emacs packages that were included
> in “regular” packages should be packaged as separate ‘emacs-’ packages,
> I think it would be a good idea to add a paragraph about that in the
> manual.

I agree. For references, this question appears here:


so it seems something is missing in the manual. :-)


All the best,
simon
X
X
Xinglu Chen wrote on 14 Sep 2021 21:20
87y27zrmkg.fsf@yoctocell.xyz
On Tue, Sep 14 2021, zimoun wrote:

Toggle quote (28 lines)
> Hi,
>
> On Tue, 14 Sep 2021 at 17:29, Xinglu Chen <public@yoctocell.xyz> wrote:
>> On Tue, Sep 14 2021, Andrew Tropin wrote:
>>> On 2021-09-04 11:42, Xinglu Chen wrote:
>
>>> Not sure if we need to hardcode the path to notmuch binary (some people
>>> can use guix for managing emacs packages, but not system), but I think
>>> it's a rare case and this default is reasonable and easily fixable by
>>> simple `(setq notmuch-command "notmuch")` in the cases, when notmuch
>>> itslef provided by other package manager.
>>
>> Yeah, this default should work for most people, and as you said, people
>> who haven’t installed Notmuch via Guix can just set to the
>> ‘notmuch-command’ to the appropriate value. It’s Emacs after all... ;-)
>>
>> Also, since there was a consensus that Emacs packages that were included
>> in “regular” packages should be packaged as separate ‘emacs-’ packages,
>> I think it would be a good idea to add a paragraph about that in the
>> manual.
>
> I agree. For references, this question appears here:
>
> <http://issues.guix.gnu.org/issue/49457>
> <http://issues.guix.gnu.org/issue/50231>
>
> so it seems something is missing in the manual. :-)

Just sent a patch for it. :-)

-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmFA9f8VHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5ZwMQAKgQWfJIOhqPv1VmcGDnr5dRPeP3
EL4tpHt4ippPE2qyA/LeXY0kAChuf3tXQqHRM1DxCIBoAu+i2/Wm9WHU147I+x1h
PB8NRA6G5SigjP2p5paQpA6QhcRkvhA7fAlFNPwBXuc1cDKMlUdyF2BM+h0XoQWw
3VfmqqFxp7oMUe/uuh3uqt1SYuaeHf/YUdUx3otsMUZJK6oe1oEmx/Mftg4+Gebj
2pBmtU1GKnkXpHoqWm83JtXxhU94r5NFcXOJYi1aGtBmuaWiU+J3QAxDy3mWsowz
BMkEyMk6z100b/9X5BnQ4ZB9G67LwklOCmH8vdDaONWQlYpwl38hoKzmN6LNAHy/
BFPDIgc0F1jWw2n4vM6JD6tYWAGD1uyU1sl0Zmhhqmm6ebc4f6qZrR1LONkaX/3z
K1+lqvMfiGQcRWSjkypyET36do6AxA7hZ3YRSe4n3iT96rMdCa/pzp64ZkjHWGHA
L3632+0jIh+qy0PluD01cRI3WTOKgN/TK0cWnf1bU6nA46cgc1DDNR7PJRvnKPXQ
RrFqKIo1PnuyK/e5ZT16+KfVaz4YStzTksT+bAAA3NS6Mk6yEB4Y2+GBmb5NwYS7
WGuRGwoupihkub0HjU8cL89DpIxUpBqLVZihbIXojOU2OrsGWtOlxCScwpYz2b5D
Qi9GMyGC3xDJiqNC
=diJm
-----END PGP SIGNATURE-----

?