Subject: [bug#40358] Add beancount

From: Christopher Lemmer Webber <[email-masked]>
Date: Tue, 31 Mar 2020 17:03:23 -0400

Yet Another Plaintext Accounting System!

From 27274e0075f7215693cc4a51482c68ce00167d37 Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <[email-masked]>
Date: Tue, 31 Mar 2020 16:57:15 -0400
Subject: [PATCH] gnu: Add beancount.

* gnu/packages/finance.scm (beancount): New variable.
* gnu/packages/patches/beancount-disable-googleapis-fonts.patch: New file.
---
 gnu/packages/finance.scm                      | 42 +++++++++++++++++++
 .../beancount-disable-googleapis-fonts.patch  | 23 ++++++++++
 2 files changed, 65 insertions(+)
 create mode 100644 gnu/packages/patches/beancount-disable-googleapis-fonts.patch

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 7bf8f4fc6e..53bbbb2f84 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2019 Martin Becze <[email-masked]>
 ;;; Copyright © 2019 Sebastian Schott <[email-masked]>
 ;;; Copyright © 2020 Kei Kebreau <[email-masked]>
+;;; Copyright © 2020 Christopher Lemmer Webber <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1398,3 +1399,44 @@ entity management.")
 electronic cash system.  This package provides a command line client and
 a Qt GUI.")
     (license license:expat)))
+
+(define-public beancount
+  (package
+    (name "beancount")
+    (version "2.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "beancount" version))
+       (sha256
+        (base32
+         "0pcfl2rx2ng06i4f9izdpnlnb1k0rdzsckbzzn4cn4ixfzyssm0m"))
+       (patches (search-patches "beancount-disable-googleapis-fonts.patch"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f  ; Says test is missing, not sure why
+       #:phases
+       (modify-phases %standard-phases
+         ;; Not importing the googleapis package for now
+         (add-after 'unpack 'ignore-googleapis
+           (lambda _
+             (substitute* "setup.py"
+               (("'google-api-python-client',") ""))
+             #t)))))
+    (propagated-inputs
+     `(("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-bottle" ,python-bottle)
+       ("python-chardet" ,python-chardet)
+       ("python-dateutil" ,python-dateutil)
+       ("python-lxml" ,python-lxml)
+       ("python-magic" ,python-magic)
+       ("python-ply" ,python-ply)
+       ("python-pytest" ,python-pytest)
+       ("python-requests" ,python-requests)))
+    (home-page "http://furius.ca/beancount")
+    (synopsis "Command-line Double-Entry Accounting")
+    (description
+     "A double-entry bookkeeping computer language that lets you define
+financial transaction records in a text file, read them in memory, generate
+a variety of reports from them, and provides a web interface.")
+    (license license:gpl2)))
diff --git a/gnu/packages/patches/beancount-disable-googleapis-fonts.patch b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch
new file mode 100644
index 0000000000..f3ef574ddc
--- /dev/null
+++ b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch
@@ -0,0 +1,23 @@
+From: Nicolas Dandrimont <[email-masked]>
+Date: Tue, 1 May 2018 04:49:55 +0200
+Subject: Remove fonts.googleapis.com links for the bean-web template
+
+---
+ beancount/web/web.html | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/beancount/web/web.html b/beancount/web/web.html
+index 3995ce2..ec9e707 100644
+--- a/beancount/web/web.html
++++ b/beancount/web/web.html
+@@ -3,10 +3,6 @@
+   <head>
+     <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ 
+-    <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:400italic,700italic,700,400" rel="stylesheet" type="text/css" />
+-    <link href="https://fonts.googleapis.com/css?family=Roboto:400italic,700italic,700,400" rel="stylesheet" type="text/css" />
+-    <link href='https://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css' />
+-
+     <link href="/resources/web.css" rel="stylesheet" type="text/css" />
+     <title>{{title}}: {{pagetitle}}</title>
+ 
\ No newline at end of file
-- 
2.25.1