summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/jrnl.scm57
-rw-r--r--gnu/packages/python.scm175
3 files changed, 227 insertions, 6 deletions
diff --git a/gnu-system.am b/gnu-system.am
index ec697c556a..793ee4c862 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -127,6 +127,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/inkscape.scm			\
   gnu/packages/irssi.scm			\
   gnu/packages/iso-codes.scm			\
+  gnu/packages/jrnl.scm				\
   gnu/packages/kde.scm				\
   gnu/packages/ld-wrapper.scm			\
   gnu/packages/less.scm				\
diff --git a/gnu/packages/jrnl.scm b/gnu/packages/jrnl.scm
new file mode 100644
index 0000000000..bdd4471c41
--- /dev/null
+++ b/gnu/packages/jrnl.scm
@@ -0,0 +1,57 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <address@hidden>
+;;;
+;;; 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 jrnl)
+  #:use-module (guix packages)
+  #:use-module (guix licenses)
+  #:use-module (guix download)
+  #:use-module (guix build-system python)
+  #:use-module (gnu packages python))
+
+(define-public jrnl
+  (package
+    (name "jrnl")
+    (version "1.8.4")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/maebert/jrnl/archive/"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "019ky09sj5i7frmca0imv4jm46mn3f4lzah2wmiwxh22cisj7ksn"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)
+       ("behave" ,behave)))
+    (inputs
+     `(("python" ,python)
+       ("python-keyring" ,python-keyring)
+       ("python-pycrypto" ,python-pycrypto)
+       ("python-pytz" ,python-pytz)
+       ("python-tzlocal" ,python-tzlocal)
+       ("python-six" ,python-six)
+       ("python-dateutil" , python-dateutil-2)
+       ("python-parsedatetime" ,python-parsedatetime)))
+    (home-page "http://maebert.github.io/jrnl/")
+    (synopsis "Personal journal application")
+    (description
+     "Jrnl is a command line journal application that stores your journal in a
+plain text file.  Optionally, your journal can be encrypted using 256-bit AES
+encryption.")
+    (license x11)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d88d4d3b3a..5b6faf0b5d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -22,8 +22,9 @@
 
 (define-module (gnu packages python)
   #:use-module ((guix licenses)
-                #:select (bsd-3 bsd-style expat psfl x11 x11-style
-                          gpl2 gpl2+ lgpl2.1+))
+                #:select (asl2.0 bsd-3 bsd-style cc0 expat x11 x11-style
+                          gpl2 gpl2+ lgpl2.1+
+                          psfl public-domain))
   #:use-module ((guix licenses) #:select (zlib)
                                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (gnu packages)
@@ -36,6 +37,8 @@
   #:use-module (gnu packages elf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sqlite)
+  #:use-module ((gnu packages zip) #:select (unzip))
+  #:use-module (gnu packages multiprecision)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -381,6 +384,80 @@ Python 3 support.")
   (package-with-python2 python-setuptools))
 
 
+(define-public python-pycrypto
+  (package
+    (name "python-pycrypto")
+    (version "2.6.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/p/"
+                          "pycrypto/pycrypto-" version ".tar.gz"))
+      (sha256
+       (base32
+        "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (inputs
+     `(("python" ,python)
+       ("gmp" ,gmp)))
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'build 'set-build-env
+        ;; pycrypto runs an autoconf configure script behind the scenes
+        (lambda _
+          (setenv "CONFIG_SHELL" (which "bash")))
+        %standard-phases)))
+    (home-page "http://www.pycrypto.org/")
+    (synopsis "Cryptographic modules for Python")
+    (description
+     "Pycrypto is a collection of both secure hash functions (such as SHA256
+and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
+etc.). The package is structured to make adding new modules easy.")
+    (license public-domain)))
+
+(define-public python-keyring
+  (package
+    (name "python-keyring")
+    (version "3.8")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/k/"
+                          "keyring/keyring-" version ".zip"))
+      (sha256
+       (base32
+        "1vxazfbcwggyfyramh55shkxs08skhpqrkm6lrrjnygnm8c1l2zg"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("python-setuptools" ,python-setuptools)
+       ("python-mock" ,python-mock)))
+    (inputs
+     `(("python-pycrypto" ,python-pycrypto)))
+    (arguments
+     `(#:tests? #f                      ;TODO: tests require pytest
+       #:phases
+       (alist-replace
+        'unpack
+        (lambda _
+          (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+                                      "/bin/unzip"))
+                (source (assoc-ref %build-inputs "source")))
+            (and (zero? (system* unzip source))
+                 (chdir (string-append "keyring-" ,version)))))
+        %standard-phases)))
+    (home-page "http://bitbucket.org/kang/python-keyring-lib")
+    (synopsis "Store and access your passwords safely")
+    (description
+     "The Python keyring lib provides a easy way to access the system keyring
+service from python. It can be used in any application that needs safe
+password storage.")
+    ;; "MIT" and PSF dual license
+    (license x11)))
+
 (define-public python-six
   (package
     (name "python-six")
@@ -406,6 +483,32 @@ Six supports every Python version since 2.5. It is contained in only one
 Python file, so it can be easily copied into your project.")
     (license x11)))
 
+(define-public python-dateutil-2
+  (package
+    (name "python-dateutil")
+    (version "2.2")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/p/"
+                          name "/" name "-" version ".tar.gz"))
+      (sha256
+       (base32
+        "0s74ad6r789810s10dxgvaf48ni6adac2icrdad34zxygqq6bj7f"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-setuptools" ,python-setuptools)
+       ("python-six" ,python-six)))
+    (home-page "http://labix.org/python-dateutil")
+    (synopsis "Extensions to the standard datetime module")
+    (description
+     "The dateutil module provides powerful extensions to the standard
+datetime module, available in Python 2.3+.")
+    (license bsd-3)))
+
+(define-public python2-dateutil-2
+  (package-with-python2 python-dateutil-2))
+
 (define-public python-dateutil
   (package
     (name "python-dateutil")
@@ -413,8 +516,8 @@ Python file, so it can be easily copied into your project.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://labix.org/download/python-dateutil/python-dateutil-"
-                          version ".tar.gz"))
+      (uri (string-append "http://labix.org/download/python-dateutil/"
+                          "python-dateutil-" version ".tar.gz"))
       (sha256
        (base32
         "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0"))))
@@ -422,8 +525,7 @@ Python file, so it can be easily copied into your project.")
     (inputs
      `(("python-setuptools" ,python-setuptools)))
     (home-page "http://labix.org/python-dateutil")
-    (synopsis
-     "Extensions to the standard datetime module, available in Python 2.3+")
+    (synopsis "Extensions to the standard datetime module")
     (description
      "The dateutil module provides powerful extensions to the standard
 datetime module, available in Python 2.3+.")
@@ -432,6 +534,67 @@ datetime module, available in Python 2.3+.")
 (define-public python2-dateutil
   (package-with-python2 python-dateutil))
 
+(define-public python-parsedatetime
+  (package
+    (name "python-parsedatetime")
+    (version "1.2")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/p/"
+                          "parsedatetime/parsedatetime-" version ".tar.gz"))
+      (sha256
+       (base32
+        "1zcj0pzxvpl4j2ma9awmpkfxldybi2kjaahjjpmgfbg5cxwcjsqv"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (arguments `(#:tests? #f))          ;no test target
+    (home-page "http://github.com/bear/parsedatetime/")
+    (synopsis
+     "Parse human-readable date/time text")
+    (description
+     "Parse human-readable date/time text")
+    (license asl2.0)))
+
+(define-public python-tzlocal
+  (package
+    (name "python-tzlocal")
+    (version "1.1.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/t/"
+                          "tzlocal/tzlocal-" version ".zip"))
+      (sha256
+       (base32
+        "1m3y918c3chf41fwg2bx4w42bqsjzn3dyvvcmwwy13c8gj6zssv9"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("python-setuptools" ,python-setuptools)))
+    (inputs `(("python-pytz" ,python-pytz)))
+    (arguments
+     `(#:phases
+       (alist-replace
+        'unpack
+        (lambda _
+          (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+                                      "/bin/unzip"))
+                (source (assoc-ref %build-inputs "source")))
+            (and (zero? (system* unzip source))
+                 (chdir (string-append "tzlocal-" ,version)))))
+        %standard-phases)))
+    (home-page "https://github.com/regebro/tzlocal")
+    (synopsis
+     "tzinfo object for the local timezone")
+    (description
+     "Tzlocal returns a tzinfo object with the local timezone information.
+This module attempts to fix a glaring hole in pytz, that there is no way to
+get the local timezone information, unless you know the zoneinfo name, and
+under several distributions that's hard or impossible to figure out.")
+    (license cc0)))
+
 
 (define-public python2-pysqlite
   (package