Subject: Re: [bug#41226] gnu: Add bombadillo.

From: [email-masked]
Date: Fri, 15 May 2020 11:37:05 +0900

Thanks for taking a look, Efraim.

> 'guix lint' didn't catch this, but I'm pretty sure that this is an
> auto-generated tarball and you should use git-fetch to download the
> source instead.

This sounded surprising to me, so I asked about it on the irc channel. For
posterity, here is a summary of that discussion:

I naively would figure that url-fetch on release tarballs is preferable to a
git-fetch on the associated commit, since the tarball likely contains things
like autoconf output etc. 

On the channel, bricewge mentioned that this discussion just recently came up:
https://lists.gnu.org/archive/html/guix-devel/2020-05/msg00224.html. The
consensus seems to be that neither git-fetch nor url-fetch can be recommended
as preferable across the board.

That said, rekado also mentioned that GitHub has non-deterministically
regenerated tars in the past, causing problems, so I did go with git-fetch in
the updated patch.

> Assuming nothing needs this to build another package, you can add
> '#:install-source? #f' to the arguments.

Done.

> You actually don't need to gzip the man-page, it happens automatically
> as part of the build process. Also, I noticed that there's a .desktop
> file and a license file. Both of those can be installed.

This gave me a bit of grief. The source contains a makefile with an install
target that takes care of these files, but for some reason this was giving me
non-determinism problems. Anyway, I just went ahead and installed these "data"
files manually.

> Other than those small things it looks good. Can you send an updated
> patch?

Here you go!

From 954f46513fbb6f7b06645e8434021be03778cecd Mon Sep 17 00:00:00 2001
From: "B. Wilson" <[email-masked]>
Date: Wed, 13 May 2020 13:51:19 +0900
Subject: [PATCH] gnu: Add bombadillo.
To: [email-masked]

gnu/packages/web-browsers.scm (bombadillo): New variable.
---
 gnu/packages/web-browsers.scm | 46 ++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 62b7a5bdca..269754f37a 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2019 Clément Lassieur <[email-masked]>
 ;;; Copyright © 2019 Brett Gilio <[email-masked]>
 ;;; Copyright © 2020 Raghav Gururajan <[email-masked]>
+;;; Copyright © 2020 B. Wilson <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -66,7 +67,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system python)
-  #:use-module (guix build-system asdf))
+  #:use-module (guix build-system asdf)
+  #:use-module (guix build-system go))
 
 (define-public midori
   (package
@@ -692,3 +694,45 @@ key-bindings and is fully configurable and extensible in Common Lisp.")
 
 (define-public sbcl-next
   (deprecated-package "sbcl-next" next))
+
+(define-public bombadillo
+  (package
+    (name "bombadillo")
+    (version "2.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://tildegit.org/sloum/bombadillo")
+                    (commit "61ae2859bf7be4c586e6cb82097bef7cbbb1691f")))
+              (sha256
+               (base32
+                "1m52b1wk48gkqmjy8l0x3jaksrx2v8w6w59lhr7zaw2i0n4f5k0z"))
+              (file-name (git-file-name name version))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "tildegit.org/sloum/bombadillo"
+       #:install-source? #f
+       #:phases (modify-phases %standard-phases
+                  (add-after 'install 'install-data
+                    (lambda _
+                      (let* ((builddir "src/tildegit.org/sloum/bombadillo")
+                             (pkg (strip-store-file-name %output))
+                             (sharedir (string-append %output "/share"))
+                             (appdir (string-append sharedir "/applications"))
+                             (docdir (string-append sharedir "/doc/" pkg))
+                             (mandir (string-append sharedir "/man/man1"))
+                             (pixdir (string-append sharedir "/pixmaps")))
+                        (with-directory-excursion builddir
+                          (install-file "bombadillo.desktop" appdir)
+                          (install-file "LICENSE" docdir)
+                          (install-file "bombadillo.1" mandir)
+                          (install-file "bombadillo-icon.png" pixdir)
+                          #t)))))))
+    (home-page "http://bombadillo.colorfield.space")
+    (synopsis "Terminal browser for the gopher, gemini, and finger protocols")
+    (description "Bombadillo is a non-web browser for the terminal with
+vim-like key bindings, a document pager, configurable settings, and robust
+command selection.  The following protocols are supported as first-class
+citizens: gopher, gemini, finger, and local.  There is also support for telnet,
+http, and https via third-party applications.")
+    (license license:gpl3+)))
-- 
2.26.2