[bug#36559] add rednotebook
diff mbox series

Message ID 20190708222208.71c9d614@gmail.com
State New
Headers show
Series
  • [bug#36559] add rednotebook
Related show

Commit Message

Jesse Gibbons July 9, 2019, 4:22 a.m. UTC
Patch is attached.
As explained in the comment I had to correct a few problems:
1. Tests always fail, but (in my experience) the final application is
stable.
2. rednotebook  uses the GI_TYPELIB_PATH and LD_LIBRARY_PATH to find
webkitgtk.

Furthermore:

- The commit message was killed/yanked from commit
  072e986ec808690db991e018d6ceee868b5b5f4a and adjusted.

- I made gnu/packages/journal.scm to add other similar journal/diary
  applications. Because I do not like naming sources for the only
  package defined within, especially when the package is simple, I
  recommend moving the jrnl package definition to it. Say the word and
  I will produce the patch to do this. Perhaps we should discuss the
  idea of organizing packages by function on the devel mailing list?

  - I also plan to define a package for other journal applications
    (like those listed between rednotebook and jrnl at
    <https://www.maketecheasier.com/best-journal-apps-for-linux/> and
    any other recommendations).

Knowing I am likely to err, I expect you (whoever reviews this patch)
to point out everything you don't like so I can fix it before you
approve and commit to savannah ;)

Thanks,
-Jesse

Comments

Nicolas Goaziou Aug. 26, 2019, 9:03 a.m. UTC | #1
Hello,

Jesse Gibbons <jgibbons2357@gmail.com> writes:

> Patch is attached.

It looks like this patch felt through the cracks. Do not hesitate to
send a friendly ping after one or two weeks if no one responds.

> As explained in the comment I had to correct a few problems:
> 1. Tests always fail, but (in my experience) the final application is
> stable.
> 2. rednotebook  uses the GI_TYPELIB_PATH and LD_LIBRARY_PATH to find
> webkitgtk.

> - I made gnu/packages/journal.scm to add other similar journal/diary
>   applications. Because I do not like naming sources for the only
>   package defined within, especially when the package is simple, I
>   recommend moving the jrnl package definition to it. Say the word and
>   I will produce the patch to do this.

It sounds good.

> Perhaps we should discuss the idea of organizing packages by function
> on the devel mailing list?

Feel free to start a discussion about it.

>   - I also plan to define a package for other journal applications
>     (like those listed between rednotebook and jrnl at
>     <https://www.maketecheasier.com/best-journal-apps-for-linux/> and
>     any other recommendations).

Great!

> Knowing I am likely to err, I expect you (whoever reviews this patch)

Some comments follow.

> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append
> +             "https://github.com/jendrikseipp/rednotebook/archive/v"
> +             version
> +             ".tar.gz"))

We do not use Github releases, because they are not stable. You should
use `git-fetch` here:

       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/jendrikseipp/rednotebook.git")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))

with an appropriate hash.

> +       (sha256
> +        (base32
> +         "15n1ziypfj3lzpvhha7r637zrb259l9yrcsvkic9cg5mndiaivs3"))))
> +    (build-system python-build-system)
> +    (arguments
> +     ;;Tests fail to find the "_" function.
> +     ;;It should be defined in rednotebook/info.py if '_' is not a member of 'builtins'.
> +     ;;It is either not defined or not exported during the check phase.
> +     ;;The program does not have this problem after it is installed.
> +     ;;TODO: Fix tests.

Nitpick: missing space between ";;" and "Make".

> +     `(#:tests? #f
> +       #:imported-modules ((guix build glib-or-gtk-build-system)
> +                           ,@%python-build-system-modules)
> +       #:modules ((ice-9 match)
> +                  (guix build python-build-system)
> +                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
> +                  (guix build utils))
> +       #:phases
> +       (modify-phases %standard-phases
> +         ;;Make sure rednotebook can find the typelibs and webkitgtk shared libraries.

Ditto.

> +         (add-before 'wrap 'wrap-with-library-paths
> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (let ((out (assoc-ref outputs "out"))
> +                   (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
> +                   (webkitgtk-path (string-append
> +                                    (assoc-ref inputs "webkitgtk")
> +                                    "/lib")))
> +               (wrap-program (string-append out "/bin/rednotebook")
> +                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
> +                 `("LD_LIBRARY_PATH" ":" prefix (,webkitgtk-path)))
> +               #t))))))
> +    (inputs
> +     `(("python" ,python-3)

I don't think this input is necessary. `python-build-system' should
provide it already, shouldn't it?

> +       ("gtk+"  ,gtk+)

Nitpick: spurious spaces.

> +       ("gtksourceview" ,gtksourceview-3)
> +       ("webkitgtk" ,webkitgtk)
> +       ("python-pyyaml" ,python-pyyaml)))
> +    (home-page "https://www.rednotebook.app")
> +    (synopsis "journal")

What about this one, borrowed to Debian:

  "Daily journal with calendar, templates and keyword searching"

> +    (description
> +     "RedNotebook is a modern desktop journal. It lets you format, tag and search
> +your entries. You can also add pictures, links and customizable templates, spell
> +check your notes, and export to plain text, HTML, Latex or PDF.")

You need two spaces after full stops in Texinfo.

Also, would it make sense to package pyenchant and add it as
a dependency? It's not a blocker though.

Could you send an updated patch?

Thank you!

Regards,

Patch
diff mbox series

From 0d93f764f3eefd248966bd3efaddc3e4c09b3cf6 Mon Sep 17 00:00:00 2001
From: Jesse Gibbons <jgibbons2357+guix@gmail.com>
Date: Mon, 8 Jul 2019 21:31:31 -0600
Subject: [PATCH] gnu: Add rednotebook

    * gnu/packages/journal.scm: New file.
    * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk             |  1 +
 gnu/packages/journal.scm | 84 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+)
 create mode 100644 gnu/packages/journal.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 7dcac4f2bc..97f8d76e0a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -263,6 +263,7 @@  GNU_SYSTEM_MODULES =				\
   %D%/packages/jemalloc.scm			\
   %D%/packages/jrnl.scm				\
   %D%/packages/jose.scm				\
+  %D%/packages/journal.scm			\
   %D%/packages/julia.scm			\
   %D%/packages/kawa.scm				\
   %D%/packages/kde.scm				\
diff --git a/gnu/packages/journal.scm b/gnu/packages/journal.scm
new file mode 100644
index 0000000000..53fab9e591
--- /dev/null
+++ b/gnu/packages/journal.scm
@@ -0,0 +1,84 @@ 
+n;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages journal)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system python)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages webkit)
+  #:use-module (gnu packages python-xyz))
+(define-public rednotebook
+  (package
+    (name "rednotebook")
+    (version "2.11.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/jendrikseipp/rednotebook/archive/v"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "15n1ziypfj3lzpvhha7r637zrb259l9yrcsvkic9cg5mndiaivs3"))))
+    (build-system python-build-system)
+    (arguments
+     ;;Tests fail to find the "_" function.
+     ;;It should be defined in rednotebook/info.py if '_' is not a member of 'builtins'.
+     ;;It is either not defined or not exported during the check phase.
+     ;;The program does not have this problem after it is installed.
+     ;;TODO: Fix tests.
+     `(#:tests? #f
+       #:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%python-build-system-modules)
+       #:modules ((ice-9 match)
+                  (guix build python-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         ;;Make sure rednotebook can find the typelibs and webkitgtk shared libraries.
+         (add-before 'wrap 'wrap-with-library-paths
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+                   (webkitgtk-path (string-append
+                                    (assoc-ref inputs "webkitgtk")
+                                    "/lib")))
+               (wrap-program (string-append out "/bin/rednotebook")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("LD_LIBRARY_PATH" ":" prefix (,webkitgtk-path)))
+               #t))))))
+    (inputs
+     `(("python" ,python-3)
+       ("python-pygobject" ,python-pygobject)
+       ("gtk+"  ,gtk+)
+       ("gtksourceview" ,gtksourceview-3)
+       ("webkitgtk" ,webkitgtk)
+       ("python-pyyaml" ,python-pyyaml)))
+    (home-page "https://www.rednotebook.app")
+    (synopsis "journal")
+    (description
+     "RedNotebook is a modern desktop journal. It lets you format, tag and search
+your entries. You can also add pictures, links and customizable templates, spell
+check your notes, and export to plain text, HTML, Latex or PDF.")
+    (license license:gpl2+)))
-- 
2.22.0