[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

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