update notmuch and python bindings

Message ID 147059611699.9624.567002638658964680@what
State New
Headers

Commit Message

Troy Sankey Aug. 7, 2016, 6:55 p.m. UTC
  This patchset updates notmuch from 0.21 to 0.22.1, adds python3 bindings, and
updates the existing python2 bindings.  The notmuch upgrade was not necessary
for adding the python3 bindings (my primary goal) but I'm throwing it in
because the NEWS file does not indicate any breaking change.  Also my own
experience upgrading from 0.21 to 0.22.1 was problem-free.

Troy
  

Comments

non such Aug. 7, 2016, 7:29 p.m. UTC | #1
Hi,

Troy Sankey <sankeytms@gmail.com> writes:

> This patchset updates notmuch from 0.21 to 0.22.1, adds python3 bindings, and
> updates the existing python2 bindings.  The notmuch upgrade was not necessary
> for adding the python3 bindings (my primary goal) but I'm throwing it in
> because the NEWS file does not indicate any breaking change.  Also my own
> experience upgrading from 0.21 to 0.22.1 was problem-free.

thanks for the patches. I only have a short question, inlined below.

>
> From 1b98630890e543eae0dbfbf3dc38b4a26535a003 Mon Sep 17 00:00:00 2001
> From: Troy Sankey <sankeytms@gmail.com>
> Date: Sun, 7 Aug 2016 13:21:28 -0400
> Subject: [PATCH 1/3] gnu: notmuch: Update to 0.22.1.
>
> This also removes the emacs input.  Quote from the notmuch NEWS file:
>
>   Drop dependency on "pkg-config emacs".
> ---
>  gnu/packages/mail.scm | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 28978a8..c58e5f5 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -436,14 +436,14 @@ attachments, create new maildirs, and so on.")
>  (define-public notmuch
>    (package
>      (name "notmuch")
> -    (version "0.21")
> +    (version "0.22.1")
>      (source (origin
>                (method url-fetch)
>                (uri (string-append "https://notmuchmail.org/releases/notmuch-"
>                                    version ".tar.gz"))
>                (sha256
>                 (base32
> -                "1cr53rbpkcy3pvrmhbg2gq7sjpwb0c8xd7a4zhzxbiv8s7z8yvyh"))))
> +                "0jwpda3q023dn3sp41n8648951i7iagfv8zzpriv7hpkjivlafg7"))))
>      (build-system gnu-build-system)
>      (arguments
>       '(#:tests? #f ;; FIXME: 662 tests; 168 fail and 99 are skipped
> @@ -464,8 +464,7 @@ attachments, create new maildirs, and so on.")
>         ("python-sphinx" ,python2-sphinx)
>         ("bash-completion" ,bash-completion)))
>      (inputs
> -     `(("emacs" ,emacs)
> -       ("glib" ,glib)
> +     `(("glib" ,glib)

Why is emacs removed?

>         ("gmime" ,gmime)
>         ("talloc" ,talloc)
>         ("xapian" ,xapian)
> -- 
> 2.1.4
>
  
Troy Sankey Aug. 7, 2016, 8:40 p.m. UTC | #2
Quoting ng0 (2016-08-07 15:29:34)
> >      (inputs
> > -     `(("emacs" ,emacs)
> > -       ("glib" ,glib)
> > +     `(("glib" ,glib)
>
> Why is emacs removed?

Please see the commit message :)

Of course I could be misunderstanding something, but it does build
successfully.  I do not normally use emacs, so I was not able to test
this particular change.

Troy
  
non such Aug. 7, 2016, 10:04 p.m. UTC | #3
Troy Sankey <sankeytms@gmail.com> writes:

> Quoting ng0 (2016-08-07 15:29:34)
>> >      (inputs
>> > -     `(("emacs" ,emacs)
>> > -       ("glib" ,glib)
>> > +     `(("glib" ,glib)
>>
>> Why is emacs removed?
>
> Please see the commit message :)
>
> Of course I could be misunderstanding something, but it does build
> successfully.  I do not normally use emacs, so I was not able to test
> this particular change.
>
> Troy

Ah, sorry.
I don't want to mix up my notmuch and the review, and I'll be occupied
until tuesday night, so someone who does not rely on a functional
notmuch should review if it works correctly. I find it weird that the
input is dropped.
Maybe I should read the release notes.
  
non such Aug. 7, 2016, 10:24 p.m. UTC | #4
Troy Sankey <sankeytms@gmail.com> writes:

> This patchset updates notmuch from 0.21 to 0.22.1, adds python3 bindings, and
> updates the existing python2 bindings.  The notmuch upgrade was not necessary
> for adding the python3 bindings (my primary goal) but I'm throwing it in
> because the NEWS file does not indicate any breaking change.  Also my own
> experience upgrading from 0.21 to 0.22.1 was problem-free.
>
> Troy
> From a4523503314814adea61a7fef48ea443f7d14b8c Mon Sep 17 00:00:00 2001
> From: Troy Sankey <sankeytms@gmail.com>
> Date: Sun, 7 Aug 2016 13:27:18 -0400
> Subject: [PATCH 3/3] gnu: python2-notmuch: Update to 0.22.1.
>
> ---
>  gnu/packages/mail.scm | 33 +--------------------------------
>  1 file changed, 1 insertion(+), 32 deletions(-)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 96537c4..57ec7c8 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -560,38 +560,7 @@ and search library.")
>      (license gpl3+)))
>  
>  (define-public python2-notmuch
> -  (package
> -    (name "python2-notmuch")
> -    (version "0.15.2")
> -    (source (origin
> -              (method url-fetch)
> -              (uri (string-append
> -                    "https://pypi.python.org/packages/source/n/notmuch/notmuch-"
> -                    version
> -                    ".tar.gz"))
> -              (sha256
> -               (base32
> -                "18g8701ibr153ngsz258kgcd42wqnbf9ifpqig1bijy6b0zx9xn5"))))
> -    (build-system python-build-system)
> -    (inputs `(("notmuch" ,notmuch)))
> -    (arguments
> -     `(#:python ,python-2
> -       #:phases (modify-phases %standard-phases
> -                  (add-before
> -                   'build 'set-libnotmuch-file-name
> -                   (lambda* (#:key inputs #:allow-other-keys)
> -                     (let ((notmuch (assoc-ref inputs "notmuch")))
> -                       (substitute* "notmuch/globals.py"
> -                         (("libnotmuch\\.so\\.[0-9]")
> -                          (string-append notmuch "/lib/libnotmuch.so.4")))
> -                       #t))))
> -       #:tests? #f))                              ;no "test" target
> -    (home-page "http://notmuchmail.org/")
> -    (synopsis "Python bindings of the Notmuch mail indexing library")
> -    (description
> -     "This package provides Python bindings to use the Notmuch mail indexing
> -and search library.")
> -    (license gpl3+)))
> +  (package-with-python2 python-notmuch))
>  
>  (define-public getmail
>    (package
> -- 
> 2.1.4
>
> From b3c53dec33e35d554e4a30de108477bc4fbe932f Mon Sep 17 00:00:00 2001
> From: Troy Sankey <sankeytms@gmail.com>
> Date: Sun, 7 Aug 2016 13:26:30 -0400
> Subject: [PATCH 2/3] gnu: Add python-notmuch
>
> ---
>  gnu/packages/mail.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index c58e5f5..96537c4 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -517,6 +517,48 @@ ing, and tagging large collections of email messages.")
>  useful for email address completion.")
>      (license license:expat)))
>  
> +(define-public python-notmuch
> +  (package
> +    (name "python-notmuch")
> +    (version "0.22.1")
> +    (source (origin
> +              (method url-fetch)
> +              ; notmuch python bindings are now unavailable on pypi.  The
> +              ; bindings are distributed via the notmuch release tarball.

One line comments are preceeded by two ";", like you applied further down.

> +              (uri (string-append
> +                    "https://notmuchmail.org/releases/notmuch-"
> +                    version
> +                    ".tar.gz"))
> +              (sha256
> +               (base32
> +                "0jwpda3q023dn3sp41n8648951i7iagfv8zzpriv7hpkjivlafg7"))))
> +    (build-system python-build-system)
> +    (inputs `(("notmuch" ,notmuch)))
> +    (arguments
> +     `(#:tests? #f  ;; no "test" target

And this comment should be: ; no "test" target

> +       #:phases
> +       (modify-phases %standard-phases
> +         ;; this python package lives in a subdirectory of the notmuch source
> +         ;; tree, so chdir into it before building:
> +         (add-before 'build 'chdir
> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (chdir "bindings/python")))
> +         ;; make sure the correct notmuch shared library gets loaded:
> +         (add-before
> +           'build 'set-libnotmuch-file-name
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (let ((notmuch (assoc-ref inputs "notmuch")))
> +               (substitute* "notmuch/globals.py"
> +                 (("libnotmuch\\.so\\.")
> +                  (string-append notmuch "/lib/libnotmuch.so.")))
> +               #t))))))
> +    (home-page "http://notmuchmail.org/")
> +    (synopsis "Python bindings of the Notmuch mail indexing library")
> +    (description
> +     "This package provides Python bindings to use the Notmuch mail indexing
> +and search library.")
> +    (license gpl3+)))
> +
>  (define-public python2-notmuch
>    (package
>      (name "python2-notmuch")
> -- 
> 2.1.4
>
> From 1b98630890e543eae0dbfbf3dc38b4a26535a003 Mon Sep 17 00:00:00 2001
> From: Troy Sankey <sankeytms@gmail.com>
> Date: Sun, 7 Aug 2016 13:21:28 -0400
> Subject: [PATCH 1/3] gnu: notmuch: Update to 0.22.1.
>
> This also removes the emacs input.  Quote from the notmuch NEWS file:
>
>   Drop dependency on "pkg-config emacs".
> ---
>  gnu/packages/mail.scm | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 28978a8..c58e5f5 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -436,14 +436,14 @@ attachments, create new maildirs, and so on.")
>  (define-public notmuch
>    (package
>      (name "notmuch")
> -    (version "0.21")
> +    (version "0.22.1")
>      (source (origin
>                (method url-fetch)
>                (uri (string-append "https://notmuchmail.org/releases/notmuch-"
>                                    version ".tar.gz"))
>                (sha256
>                 (base32
> -                "1cr53rbpkcy3pvrmhbg2gq7sjpwb0c8xd7a4zhzxbiv8s7z8yvyh"))))
> +                "0jwpda3q023dn3sp41n8648951i7iagfv8zzpriv7hpkjivlafg7"))))
>      (build-system gnu-build-system)
>      (arguments
>       '(#:tests? #f ;; FIXME: 662 tests; 168 fail and 99 are skipped

Same as above: ; FIXME: 662 tests, 168 fail and 99 are skipped
But as this is just a version bump, someone should fix this in a later
update when patches are fixed.

> @@ -464,8 +464,7 @@ attachments, create new maildirs, and so on.")
>         ("python-sphinx" ,python2-sphinx)
>         ("bash-completion" ,bash-completion)))
>      (inputs
> -     `(("emacs" ,emacs)
> -       ("glib" ,glib)
> +     `(("glib" ,glib)
>         ("gmime" ,gmime)
>         ("talloc" ,talloc)
>         ("xapian" ,xapian)
> -- 
> 2.1.4
>

I'd also advise to upgrade git to something more recent if your distro
allows it :)

I'll try to test build tomorrow morning when my buildserver is up
again. release notes read interesting enough. thanks for the patches.
  
Alex Kost Aug. 8, 2016, 8:20 a.m. UTC | #5
ng0 (2016-08-08 01:04 +0300) wrote:

> Troy Sankey <sankeytms@gmail.com> writes:
>
>> Quoting ng0 (2016-08-07 15:29:34)
>>> >      (inputs
>>> > -     `(("emacs" ,emacs)
>>> > -       ("glib" ,glib)
>>> > +     `(("glib" ,glib)
>>>
>>> Why is emacs removed?
>>
>> Please see the commit message :)
>>
>> Of course I could be misunderstanding something, but it does build
>> successfully.  I do not normally use emacs, so I was not able to test
>> this particular change.

Commit message:

  This also removes the emacs input.  Quote from the notmuch NEWS file:

    Drop dependency on "pkg-config emacs".

This only means that emacs is not required for notmuch to be built
successfully (it is done for those people who don't use emacs).  But it
doesn't mean this dependency should be dropped.  In Guix we usually
include all available features.

> Ah, sorry.
> I don't want to mix up my notmuch and the review, and I'll be occupied
> until tuesday night, so someone who does not rely on a functional
> notmuch should review if it works correctly. I find it weird that the
> input is dropped.

You are right, emacs input shouldn't be dropped.  This would lead to
non-compiled elisp files (I mean
/gnu/store/...-notmuch-0.22.1/share/emacs/site-lisp/ would contain only
*.el files but not *.elc).

I would rather replace 'emacs' with 'emacs-minimal', also I think it
should be moved to 'native-inputs'; but this does not relate to this
patch (I'll commit this change separately).
  
Alex Kost Aug. 8, 2016, 8:35 a.m. UTC | #6
> From b3c53dec33e35d554e4a30de108477bc4fbe932f Mon Sep 17 00:00:00 2001
> From: Troy Sankey <sankeytms@gmail.com>
> Date: Sun, 7 Aug 2016 13:26:30 -0400
> Subject: [PATCH 2/3] gnu: Add python-notmuch
>
> ---
>  gnu/packages/mail.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index c58e5f5..96537c4 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -517,6 +517,48 @@ ing, and tagging large collections of email messages.")
>  useful for email address completion.")
>      (license license:expat)))
>  
> +(define-public python-notmuch
> +  (package
> +    (name "python-notmuch")
> +    (version "0.22.1")
> +    (source (origin
> +              (method url-fetch)
> +              ; notmuch python bindings are now unavailable on pypi.  The
> +              ; bindings are distributed via the notmuch release tarball.
> +              (uri (string-append
> +                    "https://notmuchmail.org/releases/notmuch-"
> +                    version
> +                    ".tar.gz"))
> +              (sha256
> +               (base32
> +                "0jwpda3q023dn3sp41n8648951i7iagfv8zzpriv7hpkjivlafg7"))))

I forgot one thing: since the source will be the same as the one of
'notmuch' package, I'm going to write it like this:

    ;; Notmuch python bindings are now unavailable on pypi.  The
    ;; bindings are distributed via the notmuch release tarball.
    (source (package-source notmuch))

Thanks again! (no need to resend the patches, I'll fix the mentioned
notes)
  
Troy Sankey Aug. 8, 2016, 3:07 p.m. UTC | #7
Quoting Alex Kost (2016-08-08 04:35:12)
> I forgot one thing: since the source will be the same as the one of
> 'notmuch' package, I'm going to write it like this:
> 
>     ;; Notmuch python bindings are now unavailable on pypi.  The
>     ;; bindings are distributed via the notmuch release tarball.
>     (source (package-source notmuch))

Neat!  It also occurs to me that guix doesn't need to re-download the tarball
because the /gnu/store is a local file cache---cool!

> Thanks again! (no need to resend the patches, I'll fix the mentioned
> notes)

Excellent, much appreciated.

Troy
  
Leo Famulari Aug. 8, 2016, 9:30 p.m. UTC | #8
On Sun, Aug 07, 2016 at 10:24:57PM +0000, ng0 wrote:
> Troy Sankey <sankeytms@gmail.com> writes:
> > 2.1.4
> 
> I'd also advise to upgrade git to something more recent if your distro
> allows it :)

I agree, unless your distro is patching this version against security
bugs. There was a client and server arbitrary remote code execution bug
in Git < 2.7.4:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2324
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2315
  

Patch

From 1b98630890e543eae0dbfbf3dc38b4a26535a003 Mon Sep 17 00:00:00 2001
From: Troy Sankey <sankeytms@gmail.com>
Date: Sun, 7 Aug 2016 13:21:28 -0400
Subject: [PATCH 1/3] gnu: notmuch: Update to 0.22.1.

This also removes the emacs input.  Quote from the notmuch NEWS file:

  Drop dependency on "pkg-config emacs".
---
 gnu/packages/mail.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 28978a8..c58e5f5 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -436,14 +436,14 @@  attachments, create new maildirs, and so on.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.21")
+    (version "0.22.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1cr53rbpkcy3pvrmhbg2gq7sjpwb0c8xd7a4zhzxbiv8s7z8yvyh"))))
+                "0jwpda3q023dn3sp41n8648951i7iagfv8zzpriv7hpkjivlafg7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ;; FIXME: 662 tests; 168 fail and 99 are skipped
@@ -464,8 +464,7 @@  attachments, create new maildirs, and so on.")
        ("python-sphinx" ,python2-sphinx)
        ("bash-completion" ,bash-completion)))
     (inputs
-     `(("emacs" ,emacs)
-       ("glib" ,glib)
+     `(("glib" ,glib)
        ("gmime" ,gmime)
        ("talloc" ,talloc)
        ("xapian" ,xapian)
-- 
2.1.4