summary refs log tree commit diff
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.scm245
1 files changed, 245 insertions, 0 deletions
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
new file mode 100644
index 0000000000..a10b1367ef
--- /dev/null
+++ b/gnu/packages/web-browsers.scm
@@ -0,0 +1,245 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 John Darrington <jmd@gnu.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages web-browsers)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages fltk)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libidn)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages zip)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python))
+
+(define-public dillo
+  (package
+    (name "dillo")
+    (version "3.0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.dillo.org/download/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv"))))
+    (build-system gnu-build-system)
+    (arguments `(#:configure-flags '("--enable-ssl" "--enable-ipv6")))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("fltk" ,fltk)
+              ("fontconfig" ,fontconfig)
+              ("libjpeg" ,libjpeg)
+              ("libpng" ,libpng)
+              ("libxcursor" ,libxcursor)
+              ("libxft" ,libxft)
+              ("libxi" ,libxi)
+              ("libxinerama" ,libxinerama)
+              ("openssl" ,openssl)
+              ("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")
+    (license license:gpl3+)))
+
+(define-public links
+  (package
+    (name "links")
+    (version "2.14")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://links.twibright.com/download/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp"))))
+    (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
+             ;; understand extra flags like `--enable-fast-install', so
+             ;; we need to invoke it with just what it understands.
+             (let ((out (assoc-ref outputs "out")))
+               ;; 'configure' doesn't understand '--host'.
+               ,@(if (%current-target-system)
+                     `((setenv "CHOST" ,(%current-target-system)))
+                     '())
+               (setenv "CONFIG_SHELL" (which "bash"))
+               (zero?
+                (system* "./configure"
+                         (string-append "--prefix=" out)
+                         "--enable-graphics"))))))))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("zlib" ,zlib)
+              ("openssl" ,openssl)
+              ("libjpeg" ,libjpeg)
+              ("libtiff" ,libtiff)
+              ("libevent" ,libevent)
+              ("libpng" ,libpng)
+              ("libxt" ,libxt)))
+    (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.")
+    (home-page "http://links.twibright.com")
+    ;; The distribution contains a copy of GPLv2
+    ;; However, the copyright notices simply say:
+    ;; "This file is a part of the Links program, released under GPL."
+    ;; Therefore, under the provisions of Section 9, we can choose
+    ;; any version ever published by the FSF.
+    ;; One file (https.c) contains an exception permitting
+    ;; linking of the program with openssl.
+    (license license:gpl1+)))
+
+(define-public lynx
+  (package
+    (name "lynx")
+    (version "2.8.9dev.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://invisible-mirror.net/archives/lynx/tarballs"
+                    "/lynx" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1cqm1i7d209brkrpzaqqf2x951ra3l67dw8x9yg10vz7rpr9441a"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("perl" ,perl)))
+    (inputs `(("ncurses" ,ncurses)
+              ("libidn" ,libidn)
+              ("gnutls" ,gnutls)
+              ("libgcrypt" ,libgcrypt)
+              ("unzip" ,unzip)
+              ("zlib" ,zlib)
+              ("gzip" ,gzip)
+              ("bzip2" ,bzip2)))
+    (arguments
+     `(#:configure-flags
+       (let ((gnutls (assoc-ref %build-inputs "gnutls")))
+         `("--with-pkg-config"
+           "--with-screen=ncurses"
+           "--with-zlib"
+           "--with-bzlib"
+           ,(string-append "--with-gnutls=" gnutls)
+           ;; "--with-socks5"    ; XXX TODO
+           "--enable-widec"
+           "--enable-ascii-ctypes"
+           "--enable-local-docs"
+           "--enable-htmlized-cfg"
+           "--enable-gzip-help"
+           "--enable-nls"
+           "--enable-ipv6"))
+       #:tests? #f  ; no check target
+       #:phases (alist-replace
+                 'install
+                 (lambda* (#:key (make-flags '()) #:allow-other-keys)
+                   (zero? (apply system* "make" "install-full" make-flags)))
+                 %standard-phases)))
+    (synopsis "Text Web Browser")
+    (description
+     "Lynx is a fully-featured World Wide Web (WWW) client for users running
+cursor-addressable, character-cell display devices.  It will display Hypertext
+Markup Language (HTML) documents containing links to files on the local
+system, as well as files on remote systems running http, gopher, ftp, wais,
+nntp, finger, or cso/ph/qi servers.  Lynx can be used to access information on
+the WWW, or to build information systems intended primarily for local
+access.")
+    (home-page "http://lynx.isc.org/")
+    (license license:gpl2)))
+
+(define-public qutebrowser
+  (package
+    (name "qutebrowser")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/The-Compiler/"
+                           "qutebrowser/releases/download/v" version "/"
+                           "qutebrowser-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05qryn56w2pbqhir4pl99idx7apx2xqw9f8wmbrhj59b1xgr3x2p"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("asciidoc" ,asciidoc)))
+    (inputs
+     `(("python-colorama" ,python-colorama)
+       ("python-cssutils" ,python-cssutils)
+       ("python-jinja2" ,python-jinja2)
+       ("python-markupsafe" ,python-markupsafe)
+       ("python-pygments" ,python-pygments)
+       ("python-pypeg2" ,python-pypeg2)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-pyqt" ,python-pyqt)
+       ("qtwebkit" ,qtwebkit)))
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:phases
+       (modify-phases %standard-phases
+         (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")))
+               (system* "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))
+                        (dest (format #f "~a/~dx~d/apps/qutebrowser.png"
+                                      hicolor i i)))
+                    (mkdir-p (dirname dest))
+                    (copy-file src dest)))
+                '(16 24 32 48 64 128 256 512))
+               (install-file "icons/qutebrowser.svg"
+                             (string-append hicolor "/scalable/apps"))
+               
+               (substitute* "qutebrowser.desktop"
+                 (("Exec=qutebrowser")
+                  (string-append "Exec=" out "/bin/qutebrowser")))
+               (install-file "qutebrowser.desktop" app)
+               #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.")
+    (license license:gpl3+)))