gnu: uhttpmock: Don't use NAME in source URI.
[jackhill/guix/guix.git] / gnu / packages / web-browsers.scm
index 1a492ca..b61ed7f 100644 (file)
@@ -10,6 +10,8 @@
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (gnu packages)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages libevent)
@@ -42,6 +47,7 @@
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnome-xyz)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages gcc)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #: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
+    (name "midori")
+    (version "9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://github.com/midori-browser/core/releases/"
+                       "download/v" version "/" name "-v" version ".tar.gz"))
+       (sha256
+        (base32
+         "05i04qa83dnarmgkx4xsk6fga5lw1lmslh4rb3vhyyy4ala562jy"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:imported-modules
+       (,@%cmake-build-system-modules
+        (guix build glib-or-gtk-build-system))
+       #:modules
+       ((guix build cmake-build-system)
+        ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+        (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'glib-or-gtk-compile-schemas
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'glib-or-gtk-compile-schemas))
+         (add-after 'install 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases
+                      'glib-or-gtk-wrap)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin")
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gcr" ,gcr)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
+       ("libarchive" ,libarchive)
+       ("libpeas" ,libpeas)
+       ("libsoup" ,libsoup)
+       ("sqlite" ,sqlite)
+       ("vala" ,vala)
+       ("webkitgtk" ,webkitgtk)))
+    (synopsis "Lightweight graphical web browser")
+    (description "@code{Midori} is a lightweight, Webkit-based web browser.
+It features integration with GTK+3, configurable web search engine, bookmark
+management, extensions such as advertisement blocker and colorful tabs.")
+    (home-page "https://www.midori-browser.org")
+    (license license:lgpl2.1+)))
 
 (define-public dillo
   (package
@@ -276,7 +340,7 @@ access.")
 (define-public qutebrowser
   (package
     (name "qutebrowser")
-    (version "1.9.0")
+    (version "1.11.0")
     (source
      (origin
        (method url-fetch)
@@ -285,7 +349,7 @@ access.")
                            "qutebrowser-" version ".tar.gz"))
        (sha256
         (base32
-         "1y0yq1qfr6g1s7kf3w2crd0b025dv2dfknhlz3v0001ns3rgwj17"))))
+         "0b0qlki9bp9mm41lrh6rc6qqvm4nsz8da63sby3a1f2xm9b9vvg2"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-attrs" ,python-attrs))) ; for tests
@@ -392,7 +456,7 @@ driven and does not detract you from your daily work.")
 (define next-gtk-webkit
   (package
     (name "next-gtk-webkit")
-    (version "1.4.0")
+    (version "1.5.0")
     (source
      (origin
        (method git-fetch)
@@ -403,7 +467,7 @@ driven and does not detract you from your daily work.")
              (commit version)))
        (sha256
         (base32
-         "1gkmr746rqqg94698a051gv79fblc8n9dq0zg04llba44adhpmjl"))
+         "1gqkp185wcwaxr8py90hqk44nqjblrrdwvig19gizrbzr2gx2zhy"))
        (file-name (git-file-name "next" version))))
     (build-system glib-or-gtk-build-system)
     (arguments
@@ -424,11 +488,10 @@ driven and does not detract you from your daily work.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://next.atlas.engineer")
-    (synopsis "Infinitely extensible web-browser (user interface only)")
+    (synopsis "Extensible web-browser in Common Lisp")
     (description "Next is a keyboard-oriented, extensible web-browser
-inspired by Emacs and designed for power users.  The application has familiar
-key-bindings, is fully configurable and extensible in Lisp, and has powerful
-features for productive professionals.")
+designed for power users.  The application has familiar Emacs and VI
+key-bindings and is fully configurable and extensible in Common Lisp.")
     (license license:bsd-3)))
 
 (define sbcl-next-download-manager
@@ -450,7 +513,7 @@ features for productive professionals.")
     (native-inputs
      `(("trivial-features" ,sbcl-trivial-features)
        ("prove-asdf" ,sbcl-prove-asdf)))
-    (synopsis "Infinitely extensible web-browser (download manager)")))
+    (synopsis "Extensible web-browser in Common Lisp (download manager)")))
 
 (define sbcl-next-ring
   (package
@@ -464,7 +527,7 @@ features for productive professionals.")
     (native-inputs
      `(("trivial-features" ,sbcl-trivial-features)
        ("prove-asdf" ,sbcl-prove-asdf)))
-    (synopsis "Infinitely extensible web-browser (ring)")))
+    (synopsis "Extensible web-browser in Common Lisp (ring)")))
 
 (define sbcl-next-history-tree
   (package
@@ -478,7 +541,7 @@ features for productive professionals.")
     (native-inputs
      `(("trivial-features" ,sbcl-trivial-features)
        ("prove-asdf" ,sbcl-prove-asdf)))
-    (synopsis "Infinitely extensible web-browser (history-tree)")))
+    (synopsis "Extensible web-browser in Common Lisp (history-tree)")))
 
 (define sbcl-next-password-manager
   (package
@@ -498,7 +561,7 @@ features for productive professionals.")
     (native-inputs
      `(("trivial-features" ,sbcl-trivial-features)
        ("prove-asdf" ,sbcl-prove-asdf)))
-    (synopsis "Infinitely extensible web-browser (password manager)")))
+    (synopsis "Extensible web-browser in Common Lisp (password manager)")))
 
 (define sbcl-next-hooks
   (package
@@ -511,8 +574,7 @@ features for productive professionals.")
        #:asd-system-name "next/hooks"))
     (inputs
      `(("alexandria" ,sbcl-alexandria)
-       ("serapeum" ,sbcl-serapeum)
-       ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)))
+       ("serapeum" ,sbcl-serapeum)))
     (native-inputs
      `(("trivial-features" ,sbcl-trivial-features)
        ("prove-asdf" ,sbcl-prove-asdf)))
@@ -577,7 +639,17 @@ features for productive professionals.")
                             (format #t "~a" ,(package-version next-gtk-webkit))))
                         (invoke "make" "install-assets"
                                 (string-append "PREFIX="
-                                               (assoc-ref outputs "out"))))))))
+                                               (assoc-ref outputs "out")))))
+                    (add-after 'unpack 'fix-lambda-list
+                      ;; Starting from SBCL 2.0.2, Next 1.5.0 won't build
+                      ;; because of a weird lambda list type.
+                      (lambda _
+                        (substitute* "source/keymap.lisp"
+                          (("^\\(declaim .* define-key\\)\\)") ""))
+                        (substitute* "source/search-buffer.lisp"
+                          (("define-key :keymap keymap \"C-s\"") "define-key \"C-s\"")
+                          (("\\(update-selection-highlight-hint :follow t :scroll t\\)\\)\\)")
+                           "(update-selection-highlight-hint :follow t :scroll t)) :keymap keymap)")))))))
       (inputs
        `(("alexandria" ,sbcl-alexandria)
          ("bordeaux-threads" ,sbcl-bordeaux-threads)
@@ -592,7 +664,6 @@ features for productive professionals.")
          ("closer-mop" ,sbcl-closer-mop)
          ("dbus" ,cl-dbus)
          ("dexador" ,sbcl-dexador)
-         ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras) ; For serapeum.  Guix bug?
          ("ironclad" ,sbcl-ironclad)
          ("local-time" ,sbcl-local-time)
          ("log4cl" ,sbcl-log4cl)
@@ -619,7 +690,50 @@ features for productive professionals.")
        `(("trivial-features" ,sbcl-trivial-features)
          ("trivial-types" ,sbcl-trivial-types)
          ("prove-asdf" ,sbcl-prove-asdf)))
-      (synopsis "Infinitely extensible web-browser (with Lisp development files)"))))
+      (synopsis "Extensible web-browser 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 version)))
+              (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* (#:key outputs #:allow-other-keys)
+                      (let* ((builddir "src/tildegit.org/sloum/bombadillo")
+                             (out (assoc-ref outputs "out"))
+                             (pkg (strip-store-file-name out))
+                             (sharedir (string-append out "/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+)))