summaryrefslogtreecommitdiff
path: root/gnu/packages/web-browsers.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/web-browsers.scm')
-rw-r--r--gnu/packages/web-browsers.scm290
1 files changed, 165 insertions, 125 deletions
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 3f78be7114..0639bf7a92 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014, 2019 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -45,6 +45,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -52,6 +53,8 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@@ -60,6 +63,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages fribidi)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -73,6 +77,7 @@
#:use-module (gnu packages libunistring)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp)
+ #:use-module (gnu packages lisp-check)
#:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
@@ -124,10 +129,12 @@
(assoc-ref glib-or-gtk:%standard-phases
'glib-or-gtk-wrap)))))
(native-inputs
- `(("glib:bin" ,glib "bin")
+ `(("desktop-file-utils" ,desktop-file-utils) ;for tests
+ ("glib:bin" ,glib "bin")
("gtk+:bin" ,gtk+ "bin")
("intltool" ,intltool)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("which" ,which))) ;for tests
(inputs
`(("adwaita-icon-theme" ,adwaita-icon-theme)
("gcr" ,gcr)
@@ -138,10 +145,9 @@
("json-glib" ,json-glib)
("libarchive" ,libarchive)
("libpeas" ,libpeas)
- ("libsoup" ,libsoup)
("sqlite" ,sqlite)
("vala" ,vala)
- ("webkitgtk" ,webkitgtk)))
+ ("webkitgtk" ,webkitgtk-with-libsoup2)))
(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
@@ -152,21 +158,21 @@ management, extensions such as advertisement blocker and colorful tabs.")
(define-public links
(package
(name "links")
- (version "2.23")
+ (version "2.25")
(source (origin
(method url-fetch)
(uri (string-append "http://links.twibright.com/download/"
"links-" version ".tar.bz2"))
(sha256
(base32
- "0idcwryfbf6ds5x2fx1k21m459qz5mrz3hw4a6ziiz91yl1d4q36"))))
+ "0b6x97xi8i4pag2scba02c0h95cm3sia58q99zppk0lfd448bmrd"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
- ;; The tarball uses a very old version of autconf. It doesn't
+ ;; The tarball uses a very old version of autoconf. It doesn't
;; understand extra flags like `--enable-fast-install', so
;; we need to invoke it with just what it understands.
(let ((out (assoc-ref outputs "out")))
@@ -177,10 +183,8 @@ management, extensions such as advertisement blocker and colorful tabs.")
(setenv "CONFIG_SHELL" (which "bash"))
(invoke "./configure"
(string-append "--prefix=" out)
- "--enable-graphics")
- #t))))))
- (native-inputs `(("linux-libre-headers" ,linux-libre-headers)
- ("pkg-config" ,pkg-config)))
+ "--enable-graphics")))))))
+ (native-inputs (list pkg-config))
(inputs `(("gpm" ,gpm)
("libevent" ,libevent)
("libjpeg" ,libjpeg-turbo)
@@ -222,10 +226,10 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
("glib-networking" ,glib-networking)
("lua5.1-filesystem" ,lua5.1-filesystem)
("luajit" ,luajit)
- ("webkitgtk" ,webkitgtk)
+ ("webkitgtk" ,webkitgtk-with-libsoup2)
("sqlite" ,sqlite)))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(build-system glib-or-gtk-build-system)
(arguments
`(#:make-flags
@@ -284,16 +288,15 @@ and the GTK+ toolkit.")
(base32
"06jhv8ibfw1xkf8d8zrnkc2aw4d462s77hlp6f6xa6k8awzxvmkg"))))
(build-system gnu-build-system)
- (native-inputs `(("pkg-config" ,pkg-config)
- ("perl" ,perl)))
- (inputs `(("ncurses" ,ncurses)
- ("libidn" ,libidn)
- ("openssl" ,openssl)
- ("libgcrypt" ,libgcrypt)
- ("unzip" ,unzip)
- ("zlib" ,zlib)
- ("gzip" ,gzip)
- ("bzip2" ,bzip2)))
+ (native-inputs (list pkg-config perl))
+ (inputs (list ncurses
+ libidn
+ openssl
+ libgcrypt
+ unzip
+ zlib
+ gzip
+ bzip2))
(arguments
`(#:configure-flags
(let ((openssl (assoc-ref %build-inputs "openssl")))
@@ -441,13 +444,13 @@ access.")
(base32
"1kvkxkisi3czldnb43ig60l55pi4a3m2a4ixp7krhpf9fc5wp294")))))))
(inputs
- `(("cmark" ,cmark)
- ("font-google-noto" ,font-google-noto)
- ("font-openmoji" ,font-openmoji)
- ("openssl" ,openssl)
- ("qtbase" ,qtbase-5)
- ("qtmultimedia" ,qtmultimedia)
- ("qtsvg" ,qtsvg)))
+ (list cmark
+ font-google-noto
+ font-openmoji
+ openssl
+ qtbase-5
+ qtmultimedia
+ qtsvg))
(home-page "https://kristall.random-projects.net")
(synopsis "Small-internet graphical client")
(description "Graphical small-internet client with with many features
@@ -461,7 +464,7 @@ interface.")
(define-public qutebrowser
(package
(name "qutebrowser")
- (version "2.3.1")
+ (version "2.4.0")
(source
(origin
(method url-fetch)
@@ -469,26 +472,26 @@ interface.")
"qutebrowser/releases/download/v" version "/"
"qutebrowser-" version ".tar.gz"))
(sha256
- (base32 "05n64mw9lzzxpxr7lhakbkm9ir3x8p0rwk6vbbg01aqg5iaanyj0"))))
+ (base32 "1v4jhlmgfm8v9sbf7i3xg1vjh6dy8y2gpckk0mizkazb2jxrmkgj"))))
(build-system python-build-system)
(native-inputs
- `(("python-attrs" ,python-attrs))) ; for tests
+ (list python-attrs)) ; for tests
(inputs
- `(("python-colorama" ,python-colorama)
- ("python-cssutils" ,python-cssutils)
- ("python-importlib-resources" ,python-importlib-resources)
- ("python-jinja2" ,python-jinja2)
- ("python-markupsafe" ,python-markupsafe)
- ("python-pygments" ,python-pygments)
- ("python-pypeg2" ,python-pypeg2)
- ("python-pyyaml" ,python-pyyaml)
- ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so
- ;; that it's __init__.py is used first.
- ("python-pyqtwebengine" ,python-pyqtwebengine)
- ("python-pyqt" ,python-pyqt)
- ;; While qtwebengine is provided by python-pyqtwebengine, it's
- ;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
- ("qtwebengine" ,qtwebengine)))
+ (list bash-minimal
+ python-colorama
+ python-cssutils
+ python-jinja2
+ python-markupsafe
+ python-pygments
+ python-pypeg2
+ python-pyyaml
+ ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so
+ ;; that it's __init__.py is used first.
+ python-pyqtwebengine
+ python-pyqt
+ ;; While qtwebengine is provided by python-pyqtwebengine, it's
+ ;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
+ qtwebengine))
(arguments
`(;; FIXME: With the existance of qtwebengine, tests can now run. But
;; they are still disabled because test phase hangs. It's not readily
@@ -498,8 +501,7 @@ interface.")
(modify-phases %standard-phases
(add-before 'check 'set-env-offscreen
(lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen")
- #t))
+ (setenv "QT_QPA_PLATFORM" "offscreen")))
(add-after 'install 'install-more
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -520,8 +522,7 @@ interface.")
(substitute* "misc/org.qutebrowser.qutebrowser.desktop"
(("Exec=qutebrowser")
(string-append "Exec=" out "/bin/qutebrowser")))
- (install-file "misc/org.qutebrowser.qutebrowser.desktop" app)
- #t)))
+ (install-file "misc/org.qutebrowser.qutebrowser.desktop" app))))
(add-after 'wrap 'wrap-qt-process-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -530,8 +531,7 @@ interface.")
(assoc-ref inputs "qtwebengine")
"/lib/qt5/libexec/QtWebEngineProcess")))
(wrap-program bin
- `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
- #t))))))
+ `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))))))))
(home-page "https://qutebrowser.org/")
(synopsis "Minimal, keyboard-focused, vim-like web browser")
(description "qutebrowser is a keyboard-focused browser with a minimal
@@ -563,9 +563,9 @@ GUI. It is based on PyQt5 and QtWebEngine.")
(inputs
`(("glib-networking" ,glib-networking)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("webkitgtk" ,webkitgtk)))
+ ("webkitgtk" ,webkitgtk-with-libsoup2)))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(home-page "https://fanglingsu.github.io/vimb/")
(synopsis "Fast and lightweight Vim-like web browser")
(description "Vimb is a fast and lightweight vim like web browser based on
@@ -577,7 +577,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt
(package
(name "nyxt")
- (version "2.2.0")
+ (version "2.2.4")
(source
(origin
(method git-fetch)
@@ -586,11 +586,11 @@ driven and does not detract you from your daily work.")
(commit version)))
(sha256
(base32
- "0l8x32fsvk2gbymcda1yc0ggnsymjazqd58vmi05ifiiv7jwxyjw"))
+ "12l7ir3q29v06jx0zng5cvlbmap7p709ka3ik6x29lw334qshm9b"))
(file-name (git-file-name "nyxt" version))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags (list "nyxt" "NYXT_INTERNAL_QUICKLISP=false"
+ `(#:make-flags (list "nyxt" "NYXT_SUBMODULES=false"
(string-append "DESTDIR=" (assoc-ref %outputs "out"))
"PREFIX=")
#:strip-binaries? #f ; Stripping breaks SBCL binaries.
@@ -685,21 +685,15 @@ driven and does not detract you from your daily work.")
("gobject-introspection" ,gobject-introspection)))
(synopsis "Extensible web-browser in Common Lisp")
(home-page "https://nyxt.atlas.engineer")
- (description "Nyxt is a keyboard-oriented, extensible web browser designed
-for power users. Conceptually inspired by Emacs and Vim, it has familiar
-key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
+ (description "Nyxt is a keyboard-oriented, extensible web-browser 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-public next
- (deprecated-package "next" nyxt))
-
-(define-public sbcl-next
- (deprecated-package "sbcl-next" nyxt))
-
(define-public lagrange
(package
(name "lagrange")
- (version "1.5.2")
+ (version "1.10.2")
(source
(origin
(method url-fetch)
@@ -707,20 +701,29 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
(string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
"download/v" version "/lagrange-" version ".tar.gz"))
(sha256
- (base32 "0gqaipgs16kw711ijhshmbhhvlyjvh37wxdz059p4vvjhfrxbr1v"))))
+ (base32 "1zxvfl0fmkixralzj9jcshbbl2p3918js8qb4nra8pjkrrkaidbn"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; TODO: unbundle fonts.
+ (delete-file-recursively "lib/fribidi")
+ (delete-file-recursively "lib/harfbuzz")))))
(build-system cmake-build-system)
(arguments
`(#:tests? #false ;no tests
#:configure-flags (list "-DTFDN_ENABLE_SSE41=OFF")))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config zip))
(inputs
- `(("libunistring" ,libunistring)
- ("mpg123" ,mpg123)
- ("openssl" ,openssl)
- ("pcre" ,pcre)
- ("sdl2" ,sdl2)
- ("zlib" ,zlib)))
+ (list fribidi
+ harfbuzz
+ libunistring
+ libwebp
+ mpg123
+ openssl
+ pcre
+ sdl2
+ zlib))
(home-page "https://gmi.skyjake.fi/lagrange/")
(synopsis "Graphical Gemini client")
(description
@@ -728,44 +731,44 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
modern conveniences familiar from web browsers, such as smooth scrolling,
inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks,
history, and page outlines.")
+ (properties
+ '((release-monitoring-url . "https://git.skyjake.fi/gemini/lagrange/releases")))
(license license:bsd-2)))
(define-public gmni
- (let ((commit "d8f0870446c471a42612d6a8e853ad9b723a6d39")
- (revision "0"))
- (package
- (name "gmni")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.sr.ht/~sircmpwn/gmni")
- (commit commit)))
- (sha256
- (base32
- "1h0iqm7l0i06glf5b2872w656s1mjdiqva14zh6sl4f5yp7zmvwr"))
- (file-name (git-file-name name version))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f ; no check target
- #:make-flags (list (string-append "CC=" ,(cc-for-target)))))
- (inputs
- `(("openssl" ,openssl)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("scdoc" ,scdoc)))
- (home-page "https://sr.ht/~sircmpwn/gmni")
- (synopsis "Minimalist command line Gemini client")
- (description "The gmni package includes:
+ (package
+ (name "gmni")
+ (version "1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~sircmpwn/gmni")
+ (commit version)))
+ (sha256
+ (base32
+ "0bky9fd8iyr13r6gj4aynb7j9nd36xdprbgq6nh5hz6jiw04vhfw"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no check target
+ #:make-flags #~(list #$(string-append "CC=" (cc-for-target)))))
+ (inputs
+ (list bearssl))
+ (native-inputs
+ (list pkg-config scdoc))
+ (home-page "https://sr.ht/~sircmpwn/gmni")
+ (synopsis "Minimalist command line Gemini client")
+ (description "The gmni package includes:
@itemize
@item A CLI utility (like curl): gmni
@item A line-mode browser: gmnlm
@end itemize")
- (license (list license:gpl3+
- (license:non-copyleft
- "https://curl.se/docs/copyright.html"
- "Used only for files taken from curl."))))))
+ (license (list license:gpl3+
+ (license:non-copyleft
+ "https://curl.se/docs/copyright.html"
+ "Used only for files taken from curl.")))))
(define-public bombadillo
(package
@@ -812,7 +815,7 @@ http, and https via third-party applications.")
(define-public tinmop
(package
(name "tinmop")
- (version "0.8.3")
+ (version "0.9.2")
(source
(origin
(method git-fetch)
@@ -821,13 +824,17 @@ http, and https via third-party applications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "117p1wxi5swmqw429qrswxz2zvp1dcaw2145gk6zxlgwln48qxl8"))))
+ (base32 "1cgx2g2kryfmcwqzzjzcpbdc6zzj10xc52gz0cj2dx5ylc0yg7k3"))))
(build-system gnu-build-system)
(native-inputs
- `(("curl" ,curl)
+ `(("automake" ,automake)
+ ("autoreconf" ,autoconf)
("gettext" ,gnu-gettext)
- ("gnupg" ,gnupg)
- ("sbcl" ,sbcl)))
+ ("mandoc" , mandoc)
+ ("nano" ,nano)
+ ("openssl" ,openssl)
+ ("sbcl" ,sbcl)
+ ("xdg-utils" ,xdg-utils)))
(inputs
`(("access" ,sbcl-access)
("alexandria" ,sbcl-alexandria)
@@ -850,8 +857,6 @@ http, and https via third-party applications.")
("local-time" ,sbcl-local-time)
("log4cl" ,sbcl-log4cl)
("marshal" ,sbcl-marshal)
- ("nano" ,nano)
- ("openssl" ,openssl)
("osicat" ,sbcl-osicat)
("parse-number" ,sbcl-parse-number)
("percent-encoding" ,sbcl-percent-encoding)
@@ -859,8 +864,7 @@ http, and https via third-party applications.")
("sxql-composer" ,sbcl-sxql-composer)
("tooter" ,sbcl-tooter)
("unix-opts" ,sbcl-unix-opts)
- ("usocket" ,sbcl-usocket)
- ("xdg-utils" ,xdg-utils)))
+ ("usocket" ,sbcl-usocket)))
(arguments
`(#:tests? #f
#:strip-binaries? #f
@@ -870,11 +874,24 @@ http, and https via third-party applications.")
(lambda _
(setenv "HOME" "/tmp")
#t))
+ (add-after 'unpack 'fix-configure.ac
+ (lambda _
+ (delete-file "configure")
+ (substitute* "configure.ac"
+ (("AC_PATH_PROG.+CURL")
+ "dnl")
+ (("AC_PATH_PROGS.+GIT")
+ "dnl")
+ (("AC_PATH_PROG.+GPG")
+ "dnl"))
+ #t))
(add-after 'configure 'fix-asdf
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile.in"
(("LISP_COMPILER) ")
- "LISP_COMPILER) --eval \"(require 'asdf)\" --eval \"(push \\\"$$(pwd)/\\\" asdf:*central-registry*)\" "))
+ (string-concatenate
+ '("LISP_COMPILER) --eval \"(require 'asdf)\" "
+ "--eval \"(push \\\"$$(pwd)/\\\" asdf:*central-registry*)\" "))))
#t)))))
(synopsis "Gemini and pleroma client with a terminal interface")
(description
@@ -886,29 +903,52 @@ interface.")
(define-public telescope
(package
(name "telescope")
- (version "0.5.2")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/omar-polo/telescope/releases/download/"
version "/telescope-" version ".tar.gz"))
(sha256
- (base32 "0phvwhxvm63y68cyvzw5dk60yjzfv6bpxf5c4bl08daj3ia48fbk"))))
+ (base32 "055iqld99l4jshs10mhl2ml0p74wcyyv5kxjy8izzysw9lnkjjb5"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ;no tests
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)))
+ (list gettext-minimal pkg-config))
(inputs
- `(("libevent" ,libevent)
- ("libressl" ,libressl)
- ("ncurses" ,ncurses)))
+ (list libevent libressl ncurses))
(home-page "https://git.omarpolo.com/telescope/about/")
(synopsis "Gemini client with a terminal interface")
(description "Telescope is a w3m-like browser for Gemini.")
(license license:x11)))
+(define-public leo
+ ;; PyPi only provides a wheel.
+ (let ((commit "88cc10a87afe2ec86be06e6ea2bcd099f5360b74")
+ (version "1.0.4")
+ (revision "1"))
+ (package
+ (name "leo")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xyzshantaram/leo")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jp4v4jw82qqynqqs7x35g5yvm1sd48cvbqh7j2r1ixw1z6ldhc4"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/xyzshantaram/leo")
+ (synopsis "Gemini client written in Python")
+ (description
+ "@command{leo} is a gemini client written in Python with no external
+dependencies that fully implements the Gemini spec. A list of URLs can be
+saved to a file for further viewing in another window.")
+ (license license:expat))))
+
(define-public av-98
(package
(name "av-98")