X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/076527c354795e6e1b23a7fd827ac1ce846b06f2..144d7c07ace01b89d220c2de3d6a58da0c937ef3:/gnu/packages/web-browsers.scm?ds=sidebyside diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 6a59021ae9..205538ee27 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -1,14 +1,18 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2019 Mark H Weaver ;;; Copyright © 2015, 2016, 2019 Efraim Flashner ;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2017 Eric Bavier -;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2018 Rutger Helling ;;; Copyright © 2018 Timo Eisenmann ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019 Clément Lassieur +;;; Copyright © 2019 Brett Gilio +;;; Copyright © 2020 Raghav Gururajan +;;; Copyright © 2020 B. Wilson +;;; Copyright © 2020 Michael Rohleder ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,20 +30,36 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages web-browsers) + #:use-module (guix build-system asdf) + #:use-module (guix build-system cmake) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system gnu) + #:use-module (guix build-system go) + #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix git-download) #: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 gtk) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gcc) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnome-xyz) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages libevent) #:use-module (gnu packages libidn) + #:use-module (gnu packages linux) #:use-module (gnu packages lisp) + #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages lua) - #:use-module (gnu packages gnome) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -47,18 +67,66 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) - #:use-module (gnu packages image) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages webkit) - #:use-module (gnu packages xorg) - #:use-module (gnu packages gcc) - #:use-module (guix download) - #:use-module (guix git-download) - #: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 (gnu packages xorg)) + +(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 @@ -66,8 +134,8 @@ (version "3.0.5") (source (origin (method url-fetch) - (uri (string-append "http://www.dillo.org/download/" - name "-" version ".tar.bz2")) + (uri (string-append "https://www.dillo.org/download/" + "dillo-" version ".tar.bz2")) (sha256 (base32 "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv")))) @@ -76,32 +144,32 @@ (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("fltk" ,fltk) ("fontconfig" ,fontconfig) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) ("libxcursor" ,libxcursor) ("libxft" ,libxft) ("libxi" ,libxi) ("libxinerama" ,libxinerama) - ("openssl" ,openssl) + ("openssl" ,openssl-1.0) ;XXX try latest openssl for dillo > 3.0.5 ("perl" ,perl) ("zlib" ,zlib))) (synopsis "Very small and fast graphical web browser") (description "Dillo is a minimalistic web browser particularly intended for older or slower computers and embedded systems.") - (home-page "http://www.dillo.org") + (home-page "https://www.dillo.org") (license license:gpl3+))) (define-public links (package (name "links") - (version "2.20.2") + (version "2.21") (source (origin (method url-fetch) (uri (string-append "http://links.twibright.com/download/" "links-" version ".tar.bz2")) (sha256 (base32 - "097ll98ympzfx7qfdyhc52yzvsp167x5nnjs6v8ih496wv80fksb")))) + "0qqdcghsdqm7l6kyi0k752ws3ak5crw85pqkcb11wy67j62yspi8")))) (build-system gnu-build-system) (arguments `(#:phases @@ -121,14 +189,16 @@ older or slower computers and embedded systems.") (string-append "--prefix=" out) "--enable-graphics") #t)))))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("zlib" ,zlib) - ("openssl" ,openssl) - ("libjpeg" ,libjpeg) - ("libtiff" ,libtiff) + (native-inputs `(("linux-libre-headers" ,linux-libre-headers) + ("pkg-config" ,pkg-config))) + (inputs `(("gpm" ,gpm) ("libevent" ,libevent) + ("libjpeg" ,libjpeg-turbo) ("libpng" ,libpng) - ("libxt" ,libxt))) + ("libtiff" ,libtiff) + ("libxt" ,libxt) + ("openssl" ,openssl) + ("zlib" ,zlib))) (synopsis "Text and graphics mode web browser") (description "Links is a graphics and text mode web browser, with many features including, tables, builtin image display, bookmarks, SSL and more.") @@ -145,16 +215,16 @@ features including, tables, builtin image display, bookmarks, SSL and more.") (define-public luakit (package (name "luakit") - (version "2.1") + (version "2.2") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/luakit/luakit.git") + (url "https://github.com/luakit/luakit") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1qa90caxv1k6ak88fn0a7n7h0c4iv8szw6zn2axch8ig83i86az2")))) + "0km5nxn6innzn8pfsvlkxvfj2z5g46fp6dy5bnmaklbn13mqlcrn")))) (inputs `(("lua-5.1" ,lua-5.1) ("gtk+" ,gtk+) @@ -274,19 +344,18 @@ access.") (define-public qutebrowser (package (name "qutebrowser") - (version "0.11.0") + (version "1.13.1") (source (origin (method url-fetch) - (uri (string-append "https://github.com/The-Compiler/" + (uri (string-append "https://github.com/qutebrowser/" "qutebrowser/releases/download/v" version "/" "qutebrowser-" version ".tar.gz")) (sha256 - (base32 - "13ihx66jm1dd6vx8px7pm0kbzf2sf9x43hhivc1rp17kahnxxdyv")))) + (base32 "1n72dvrv4dch4i07lsis76p7g16a039fwx8rk7w8q9f60wgqb5i8")))) (build-system python-build-system) (native-inputs - `(("asciidoc" ,asciidoc))) + `(("python-attrs" ,python-attrs))) ; for tests (inputs `(("python-colorama" ,python-colorama) ("python-cssutils" ,python-cssutils) @@ -295,21 +364,31 @@ access.") ("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) - ("qtwebkit" ,qtwebkit))) + ;; While qtwebengine is provided by python-pyqtwebengine, it's + ;; included here so we can wrap QTWEBENGINEPROCESS_PATH. + ("qtwebengine" ,qtwebengine))) (arguments - `(#:tests? #f ;no tests + `(;; FIXME: With the existance of qtwebengine, tests can now run. But + ;; they are still disabled because test phase hangs. It's not readily + ;; apparent as to why. + #:tests? #f #:phases (modify-phases %standard-phases + (add-before 'check 'set-env-offscreen + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + #t)) (add-after 'install 'install-more (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (app (string-append out "/share/applications")) (hicolor (string-append out "/share/icons/hicolor"))) - (invoke "a2x" "-f" "manpage" "doc/qutebrowser.1.asciidoc") (install-file "doc/qutebrowser.1" (string-append out "/share/man/man1")) - (for-each (lambda (i) (let ((src (format #f "icons/qutebrowser-~dx~d.png" i i)) @@ -320,22 +399,31 @@ access.") '(16 24 32 48 64 128 256 512)) (install-file "icons/qutebrowser.svg" (string-append hicolor "/scalable/apps")) - - (substitute* "qutebrowser.desktop" + (substitute* "misc/org.qutebrowser.qutebrowser.desktop" (("Exec=qutebrowser") (string-append "Exec=" out "/bin/qutebrowser"))) - (install-file "qutebrowser.desktop" app) + (install-file "misc/org.qutebrowser.qutebrowser.desktop" app) + #t))) + (add-after 'wrap 'wrap-qt-process-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/qutebrowser")) + (qt-process-path (string-append + (assoc-ref inputs "qtwebengine") + "/lib/qt5/libexec/QtWebEngineProcess"))) + (wrap-program bin + `("QTWEBENGINEPROCESS_PATH" ":" prefix (,qt-process-path))) #t)))))) (home-page "https://qutebrowser.org/") (synopsis "Minimal, keyboard-focused, vim-like web browser") (description "qutebrowser is a keyboard-focused browser with a minimal -GUI. It is based on PyQt5 and QtWebKit.") +GUI. It is based on PyQt5 and QtWebEngine.") (license license:gpl3+))) (define-public vimb (package (name "vimb") - (version "3.5.0") + (version "3.6.0") (source (origin (method git-fetch) @@ -343,7 +431,7 @@ GUI. It is based on PyQt5 and QtWebKit.") (url "https://github.com/fanglingsu/vimb/") (commit version))) (sha256 - (base32 "13q7mk1hhjri0s30a98r8ncy0skf6m6lrnbqaf0jimf6sbwgiirf")) + (base32 "0228khh3lqbal046k6akqah7s5igq9s0wjfjbdjam75kjj42pbhj")) (file-name (git-file-name name version)))) (build-system glib-or-gtk-build-system) (arguments @@ -368,215 +456,177 @@ vim editor and also easily configurable during runtime. Vimb is mostly keyboard driven and does not detract you from your daily work.") (license license:gpl3+))) -(define next-gtk-webkit +(define-public nyxt (package - (name "next-gtk-webkit") - (version "1.3.4") + (name "nyxt") + ;; Package the pre-release because latest stable 1.5.0 does not build + ;; anymore. + (version "2-pre-release-1") (source (origin (method git-fetch) (uri (git-reference ;; TODO: Mirror seems to hang, let's fallback to GitHub for now. - ;; (url "https://source.atlas.engineer/public/next") - (url "https://github.com/atlas-engineer/next") + ;; (url "https://source.atlas.engineer/public/nyxt") + (url "https://github.com/atlas-engineer/nyxt") (commit version))) (sha256 (base32 - "00iqv4xarabl98gdl1rzqkc5v0vfljx1nawsxqsx9x3a9mnxmgxi")) - (file-name (git-file-name "next" version)))) - (build-system glib-or-gtk-build-system) + "0aipsmzqnlkmy001cihz2jnc0hja8c10rm08jycxr05j3gx3qsxd")) + (file-name (git-file-name "nyxt" version)))) + (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests - #:make-flags (list "gtk-webkit" - "CC=gcc" - (string-append "PREFIX=" %output)) + `(#:make-flags (list "nyxt" "NYXT_INTERNAL_QUICKLISP=false" + (string-append "DESTDIR=" (assoc-ref %outputs "out")) + "PREFIX=") + #:strip-binaries? #f ; Stripping breaks SBCL binaries. #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-version ; Version is guessed from .git which Guix does not have. + (lambda* (#:key inputs #:allow-other-keys) + (let ((version (format #f "~a" ,version)) + (file "source/global.lisp")) + (chmod file #o666) + (let ((port (open-file file "a"))) + (format port "(setf +version+ ~s)" version) + (close-port port))) + #t)) + (add-before 'build 'make-desktop-version-number + (lambda _ + (with-output-to-file "version" + (lambda _ + (format #t "~a" ,version) + #t)))) + (delete 'configure) - (replace 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (apply invoke "make" "install-gtk-webkit" make-flags)))))) - (inputs - `(("glib-networking" ,glib-networking) - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("webkitgtk" ,webkitgtk))) + (add-before 'build 'fix-common-lisp-cache-folder + (lambda _ + (setenv "HOME" "/tmp") + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs "out") "/bin/nyxt")) + (glib-networking (assoc-ref inputs "glib-networking")) + (libs '("gsettings-desktop-schemas")) + (path (string-join + (map (lambda (lib) + (string-append (assoc-ref inputs lib) "/lib")) + libs) + ":")) + (gi-path (string-join + (map (lambda (lib) + (string-append (assoc-ref inputs lib) "/lib/girepository-1.0")) + libs) + ":")) + (xdg-path (string-join + (map (lambda (lib) + (string-append (assoc-ref inputs lib) "/share")) + libs) + ":"))) + (wrap-program bin + `("GIO_EXTRA_MODULES" prefix + (,(string-append glib-networking "/lib/gio/modules"))) + `("GI_TYPELIB_PATH" prefix (,gi-path)) + `("LD_LIBRARY_PATH" ":" prefix (,path)) + `("XDG_DATA_DIRS" ":" prefix (,xdg-path))) + #t)))))) (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "https://next.atlas.engineer") - (synopsis "Infinitely extensible web-browser (user interface only)") - (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.") - (license license:bsd-3))) - -(define sbcl-next-download-manager - (package - (inherit next-gtk-webkit) - (name "sbcl-next-download-manager") - (build-system asdf-build-system/sbcl) - (arguments - `(#:tests? #f ; Need online access. - #:asd-file "next.asd" - #:asd-system-name "next/download-manager")) + `(("prove" ,sbcl-prove) + ("sbcl" ,sbcl))) (inputs - `(("cl-ppcre" ,sbcl-cl-ppcre) - ("dexador" ,sbcl-dexador) - ("log4cl" ,sbcl-log4cl) - ("lparallel" ,sbcl-lparallel) - ("quri" ,sbcl-quri) - ("str" ,sbcl-cl-str))) - (native-inputs - `(("trivial-features" ,sbcl-trivial-features) - ("prove-asdf" ,sbcl-prove-asdf))) - (synopsis "Infinitely extensible web-browser (download manager)"))) + ;; We need to avoid sbcl-* inputs (sbcl-cl-cffi-gtk in particular) as they + ;; seem to cause Nyxt to hang into a hogging process in about 10 minutes. + ;; Probably an issue between CFFI and how we build SBCL packages. + ;; See https://github.com/atlas-engineer/nyxt/issues/680. + `(("alexandria" ,cl-alexandria) + ("bordeaux-threads" ,cl-bordeaux-threads) + ("cl-containers" ,cl-containers) + ("cl-css" ,cl-css) + ("cl-json" ,cl-json) + ("cl-markup" ,cl-markup) + ("cl-ppcre" ,cl-ppcre) + ("cl-prevalence" ,cl-prevalence) + ("closer-mop" ,cl-closer-mop) + ("cluffer" ,cl-cluffer) + ("dexador" ,cl-dexador) + ("enchant" ,cl-enchant) + ("fset" ,cl-fset) + ("iolib" ,cl-iolib) + ("local-time" ,cl-local-time) + ("log4cl" ,cl-log4cl) + ("lparallel" ,cl-lparallel) + ("mk-string-metrics" ,cl-mk-string-metrics) + ("moptilities" ,cl-moptilities) + ("osicat" ,sbcl-osicat) ; SBCL version needed for libosicat.so. + ("parenscript" ,cl-parenscript) + ("plump" ,cl-plump) + ("quri" ,cl-quri) + ("serapeum" ,cl-serapeum) + ("str" ,cl-str) + ("swank" ,cl-slime-swank) + ("trivia" ,cl-trivia) + ("trivial-clipboard" ,cl-trivial-clipboard) + ("trivial-features" ,cl-trivial-features) + ("trivial-package-local-nicknames" ,cl-trivial-package-local-nicknames) + ("trivial-types" ,cl-trivial-types) + ("unix-opts" ,cl-unix-opts) + ;; WebKitGTK deps + ("cl-cffi-gtk" ,cl-cffi-gtk) + ("cl-webkit" ,cl-webkit) + ("glib-networking" ,glib-networking) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) + (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. 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-ring - (package - (inherit next-gtk-webkit) - (name "sbcl-next-ring") - (build-system asdf-build-system/sbcl) - (arguments - `(#:tests? #t - #:asd-file "next.asd" - #:asd-system-name "next/ring")) - (native-inputs - `(("trivial-features" ,sbcl-trivial-features) - ("prove-asdf" ,sbcl-prove-asdf))) - (synopsis "Infinitely extensible web-browser (ring)"))) +(define-public next + (deprecated-package "next" nyxt)) -(define sbcl-next-history-tree - (package - (inherit next-gtk-webkit) - (name "sbcl-next-history-tree") - (build-system asdf-build-system/sbcl) - (arguments - `(#:tests? #t - #:asd-file "next.asd" - #:asd-system-name "next/history-tree")) - (native-inputs - `(("trivial-features" ,sbcl-trivial-features) - ("prove-asdf" ,sbcl-prove-asdf))) - (synopsis "Infinitely extensible web-browser (history-tree)"))) +(define-public sbcl-next + (deprecated-package "sbcl-next" nyxt)) -(define sbcl-next-password-manager +(define-public bombadillo (package - (inherit next-gtk-webkit) - (name "sbcl-next-password-manager") - (build-system asdf-build-system/sbcl) + (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 - `(#:tests? #t - #:asd-file "next.asd" - #:asd-system-name "next/password-manager")) - (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("cl-annot" ,sbcl-cl-annot) - ("cl-ppcre" ,sbcl-cl-ppcre) - ("str" ,sbcl-cl-str) - ("trivial-clipboard" ,sbcl-trivial-clipboard))) - (native-inputs - `(("trivial-features" ,sbcl-trivial-features) - ("prove-asdf" ,sbcl-prove-asdf))) - (synopsis "Infinitely extensible web-browser (password manager)"))) - -(define-public next - (let ((version (package-version next-gtk-webkit))) - (package - (inherit next-gtk-webkit) - (name "next") - (build-system asdf-build-system/sbcl) - (outputs '("out" "lib")) - (arguments - `(#:tests? #f ; no tests - #:asd-system-name "next" - #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-platform-port-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "source/ports/gtk-webkit.lisp" - (("\"next-gtk-webkit\"") - (string-append "\"" (assoc-ref inputs "next-gtk-webkit") - "/bin/next-gtk-webkit\""))) - #t)) - (add-after 'patch-platform-port-path 'patch-version - ;; When the version is not just dot-separated numerals - ;; (e.g. a git-commit version), Guix modifies the .asd with - ;; an illegal version number, and then Next fails to query - ;; it. So we hard-code it here. - (lambda* (#:key inputs #:allow-other-keys) - (let ((version (format #f "~a" ,version))) - (substitute* "source/global.lisp" - (("version\\)\\)\\)") - (string-append "version))) -(setf +version+ \"" version "\")")))) - #t)) - (add-before 'cleanup 'move-bundle - (lambda* (#:key outputs #:allow-other-keys) - (define lib (assoc-ref outputs "lib")) - (define actual-fasl (string-append - lib - "/lib/sbcl/next.fasl")) - (define expected-fasl (string-append - lib - "/lib/sbcl/next--system.fasl")) - (copy-file actual-fasl expected-fasl) - #t)) - (add-after 'create-symlinks 'build-program - (lambda* (#:key outputs #:allow-other-keys) - (build-program - (string-append (assoc-ref outputs "out") "/bin/next") - outputs - #:entry-program '((next:entry-point) 0)))) - (add-before 'build 'install-assets - ;; Since the ASDF build system generates a new .asd with a - ;; possibly suffixed and thus illegal version number, assets - ;; should not be installed after the 'build phase or else - ;; the illegal version will result in NIL in the .desktop - ;; file. - (lambda* (#:key outputs #:allow-other-keys) - (with-output-to-file "version" - (lambda _ - (format #t "~a" ,(package-version next-gtk-webkit)))) - (invoke "make" "install-assets" - (string-append "PREFIX=" - (assoc-ref outputs "out")))))))) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("cl-annot" ,sbcl-cl-annot) - ("cl-ansi-text" ,sbcl-cl-ansi-text) - ("cl-css" ,sbcl-cl-css) - ("cl-hooks" ,sbcl-cl-hooks) - ("cl-json" ,sbcl-cl-json) - ("cl-markup" ,sbcl-cl-markup) - ("cl-ppcre" ,sbcl-cl-ppcre) - ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode) - ("cl-prevalence" ,sbcl-cl-prevalence) - ("closer-mop" ,sbcl-closer-mop) - ("dbus" ,cl-dbus) - ("dexador" ,sbcl-dexador) - ("ironclad" ,sbcl-ironclad) - ("local-time" ,sbcl-local-time) - ("log4cl" ,sbcl-log4cl) - ("lparallel" ,sbcl-lparallel) - ("mk-string-metrics" ,sbcl-mk-string-metrics) - ("parenscript" ,sbcl-parenscript) - ("quri" ,sbcl-quri) - ("sqlite" ,sbcl-cl-sqlite) - ("str" ,sbcl-cl-str) - ("swank" ,cl-slime-swank) - ("trivia" ,sbcl-trivia) - ("trivial-clipboard" ,sbcl-trivial-clipboard) - ("unix-opts" ,sbcl-unix-opts) - ;; Local deps - ("next-gtk-webkit" ,next-gtk-webkit) - ("next-download-manager" ,sbcl-next-download-manager) - ("next-ring" ,sbcl-next-ring) - ("next-history-tree" ,sbcl-next-history-tree) - ("next-password-manager" ,sbcl-next-password-manager))) - (native-inputs - `(("trivial-features" ,sbcl-trivial-features) - ("prove-asdf" ,sbcl-prove-asdf))) - (synopsis "Infinitely extensible web-browser (with Lisp development files)")))) - -(define-public sbcl-next - (deprecated-package "sbcl-next" next)) + `(#: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 "https://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+)))