Commit | Line | Data |
---|---|---|
c21a2562 | 1 | ;;; GNU Guix --- Functional package management for GNU |
8bdc36d4 | 2 | ;;; Copyright © 2014 John Darrington <jmd@gnu.org> |
c5196ac7 | 3 | ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> |
8bdc36d4 | 4 | ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> |
3c8ba11a | 5 | ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> |
7610c3ca | 6 | ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> |
c21a2562 KY |
7 | ;;; |
8 | ;;; This file is part of GNU Guix. | |
9 | ;;; | |
10 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
11 | ;;; under the terms of the GNU General Public License as published by | |
12 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
13 | ;;; your option) any later version. | |
14 | ;;; | |
15 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
16 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | ;;; GNU General Public License for more details. | |
19 | ;;; | |
20 | ;;; You should have received a copy of the GNU General Public License | |
21 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
22 | ||
0c3953ea | 23 | (define-module (gnu packages web-browsers) |
c21a2562 KY |
24 | #:use-module ((guix licenses) #:prefix license:) |
25 | #:use-module (guix packages) | |
26 | #:use-module (gnu packages) | |
27 | #:use-module (gnu packages compression) | |
7610c3ca | 28 | #:use-module (gnu packages documentation) |
c21a2562 KY |
29 | #:use-module (gnu packages fltk) |
30 | #:use-module (gnu packages fontutils) | |
c5196ac7 | 31 | #:use-module (gnu packages gnupg) |
8bdc36d4 | 32 | #:use-module (gnu packages libevent) |
c5196ac7 KK |
33 | #:use-module (gnu packages libidn) |
34 | #:use-module (gnu packages ncurses) | |
c21a2562 KY |
35 | #:use-module (gnu packages perl) |
36 | #:use-module (gnu packages pkg-config) | |
7610c3ca KK |
37 | #:use-module (gnu packages python) |
38 | #:use-module (gnu packages qt) | |
c21a2562 KY |
39 | #:use-module (gnu packages image) |
40 | #:use-module (gnu packages tls) | |
41 | #:use-module (gnu packages xorg) | |
42 | #:use-module (guix download) | |
7610c3ca KK |
43 | #:use-module (guix build-system gnu) |
44 | #:use-module (guix build-system python)) | |
c21a2562 KY |
45 | |
46 | (define-public dillo | |
47 | (package | |
48 | (name "dillo") | |
49 | (version "3.0.5") | |
50 | (source (origin | |
51 | (method url-fetch) | |
52 | (uri (string-append "http://www.dillo.org/download/" | |
53 | name "-" version ".tar.bz2")) | |
54 | (sha256 | |
55 | (base32 | |
56 | "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv")))) | |
57 | (build-system gnu-build-system) | |
58 | (arguments `(#:configure-flags '("--enable-ssl" "--enable-ipv6"))) | |
59 | (native-inputs `(("pkg-config" ,pkg-config))) | |
60 | (inputs `(("fltk" ,fltk) | |
61 | ("fontconfig" ,fontconfig) | |
62 | ("libjpeg" ,libjpeg) | |
63 | ("libpng" ,libpng) | |
64 | ("libxcursor" ,libxcursor) | |
65 | ("libxft" ,libxft) | |
66 | ("libxi" ,libxi) | |
67 | ("libxinerama" ,libxinerama) | |
68 | ("openssl" ,openssl) | |
69 | ("perl" ,perl) | |
70 | ("zlib" ,zlib))) | |
71 | (synopsis "Very small and fast graphical web browser") | |
72 | (description "Dillo is a minimalistic web browser particularly intended for | |
73 | older or slower computers and embedded systems.") | |
74 | (home-page "http://www.dillo.org") | |
75 | (license license:gpl3+))) | |
7610c3ca | 76 | |
8bdc36d4 KK |
77 | (define-public links |
78 | (package | |
79 | (name "links") | |
80 | (version "2.14") | |
81 | (source (origin | |
82 | (method url-fetch) | |
83 | (uri (string-append "http://links.twibright.com/download/" | |
84 | name "-" version ".tar.bz2")) | |
85 | (sha256 | |
86 | (base32 | |
87 | "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp")))) | |
88 | (build-system gnu-build-system) | |
89 | (arguments | |
90 | `(#:phases | |
91 | (modify-phases %standard-phases | |
92 | (replace 'configure | |
93 | (lambda* (#:key outputs #:allow-other-keys) | |
94 | ;; The tarball uses a very old version of autconf. It doesn't | |
95 | ;; understand extra flags like `--enable-fast-install', so | |
96 | ;; we need to invoke it with just what it understands. | |
97 | (let ((out (assoc-ref outputs "out"))) | |
98 | ;; 'configure' doesn't understand '--host'. | |
99 | ,@(if (%current-target-system) | |
100 | `((setenv "CHOST" ,(%current-target-system))) | |
101 | '()) | |
102 | (setenv "CONFIG_SHELL" (which "bash")) | |
103 | (zero? | |
104 | (system* "./configure" | |
105 | (string-append "--prefix=" out) | |
106 | "--enable-graphics")))))))) | |
107 | (native-inputs `(("pkg-config" ,pkg-config))) | |
108 | (inputs `(("zlib" ,zlib) | |
109 | ("openssl" ,openssl) | |
110 | ("libjpeg" ,libjpeg) | |
111 | ("libtiff" ,libtiff) | |
112 | ("libevent" ,libevent) | |
113 | ("libpng" ,libpng) | |
114 | ("libxt" ,libxt))) | |
115 | (synopsis "Text and graphics mode web browser") | |
116 | (description "Links is a graphics and text mode web browser, with many | |
117 | features including, tables, builtin image display, bookmarks, SSL and more.") | |
118 | (home-page "http://links.twibright.com") | |
119 | ;; The distribution contains a copy of GPLv2 | |
120 | ;; However, the copyright notices simply say: | |
121 | ;; "This file is a part of the Links program, released under GPL." | |
122 | ;; Therefore, under the provisions of Section 9, we can choose | |
123 | ;; any version ever published by the FSF. | |
124 | ;; One file (https.c) contains an exception permitting | |
125 | ;; linking of the program with openssl. | |
126 | (license license:gpl1+))) | |
127 | ||
c5196ac7 KK |
128 | (define-public lynx |
129 | (package | |
130 | (name "lynx") | |
6fb622bf | 131 | (version "2.8.9dev.15") |
c5196ac7 KK |
132 | (source (origin |
133 | (method url-fetch) | |
134 | (uri (string-append | |
135 | "http://invisible-mirror.net/archives/lynx/tarballs" | |
136 | "/lynx" version ".tar.bz2")) | |
137 | (sha256 | |
138 | (base32 | |
6fb622bf | 139 | "16bdr7ai130ps67px8ssxnjxp5j6m4rin3in7jm22fxk0a8p2428")))) |
c5196ac7 KK |
140 | (build-system gnu-build-system) |
141 | (native-inputs `(("pkg-config" ,pkg-config) | |
142 | ("perl" ,perl))) | |
143 | (inputs `(("ncurses" ,ncurses) | |
144 | ("libidn" ,libidn) | |
145 | ("gnutls" ,gnutls) | |
146 | ("libgcrypt" ,libgcrypt) | |
147 | ("unzip" ,unzip) | |
148 | ("zlib" ,zlib) | |
149 | ("gzip" ,gzip) | |
150 | ("bzip2" ,bzip2))) | |
151 | (arguments | |
152 | `(#:configure-flags | |
153 | (let ((gnutls (assoc-ref %build-inputs "gnutls"))) | |
154 | `("--with-pkg-config" | |
155 | "--with-screen=ncurses" | |
156 | "--with-zlib" | |
157 | "--with-bzlib" | |
158 | ,(string-append "--with-gnutls=" gnutls) | |
159 | ;; "--with-socks5" ; XXX TODO | |
160 | "--enable-widec" | |
161 | "--enable-ascii-ctypes" | |
162 | "--enable-local-docs" | |
163 | "--enable-htmlized-cfg" | |
164 | "--enable-gzip-help" | |
165 | "--enable-nls" | |
166 | "--enable-ipv6")) | |
167 | #:tests? #f ; no check target | |
dc1d3cde KK |
168 | #:phases |
169 | (modify-phases %standard-phases | |
170 | (replace 'install | |
171 | (lambda* (#:key (make-flags '()) #:allow-other-keys) | |
172 | (zero? (apply system* "make" "install-full" make-flags))))))) | |
c5196ac7 KK |
173 | (synopsis "Text Web Browser") |
174 | (description | |
175 | "Lynx is a fully-featured World Wide Web (WWW) client for users running | |
176 | cursor-addressable, character-cell display devices. It will display Hypertext | |
177 | Markup Language (HTML) documents containing links to files on the local | |
178 | system, as well as files on remote systems running http, gopher, ftp, wais, | |
179 | nntp, finger, or cso/ph/qi servers. Lynx can be used to access information on | |
180 | the WWW, or to build information systems intended primarily for local | |
181 | access.") | |
182 | (home-page "http://lynx.isc.org/") | |
183 | (license license:gpl2))) | |
184 | ||
7610c3ca KK |
185 | (define-public qutebrowser |
186 | (package | |
187 | (name "qutebrowser") | |
d209ce43 | 188 | (version "0.11.0") |
7610c3ca KK |
189 | (source |
190 | (origin | |
191 | (method url-fetch) | |
192 | (uri (string-append "https://github.com/The-Compiler/" | |
193 | "qutebrowser/releases/download/v" version "/" | |
194 | "qutebrowser-" version ".tar.gz")) | |
195 | (sha256 | |
196 | (base32 | |
d209ce43 | 197 | "13ihx66jm1dd6vx8px7pm0kbzf2sf9x43hhivc1rp17kahnxxdyv")))) |
7610c3ca KK |
198 | (build-system python-build-system) |
199 | (native-inputs | |
200 | `(("asciidoc" ,asciidoc))) | |
201 | (inputs | |
202 | `(("python-colorama" ,python-colorama) | |
203 | ("python-cssutils" ,python-cssutils) | |
204 | ("python-jinja2" ,python-jinja2) | |
205 | ("python-markupsafe" ,python-markupsafe) | |
206 | ("python-pygments" ,python-pygments) | |
207 | ("python-pypeg2" ,python-pypeg2) | |
208 | ("python-pyyaml" ,python-pyyaml) | |
209 | ("python-pyqt" ,python-pyqt) | |
210 | ("qtwebkit" ,qtwebkit))) | |
211 | (arguments | |
212 | `(#:tests? #f ;no tests | |
213 | #:phases | |
214 | (modify-phases %standard-phases | |
215 | (add-after 'install 'install-more | |
216 | (lambda* (#:key outputs #:allow-other-keys) | |
217 | (let* ((out (assoc-ref outputs "out")) | |
218 | (app (string-append out "/share/applications")) | |
219 | (hicolor (string-append out "/share/icons/hicolor"))) | |
220 | (system* "a2x" "-f" "manpage" "doc/qutebrowser.1.asciidoc") | |
221 | (install-file "doc/qutebrowser.1" | |
222 | (string-append out "/share/man/man1")) | |
223 | ||
224 | (for-each | |
225 | (lambda (i) | |
226 | (let ((src (format #f "icons/qutebrowser-~dx~d.png" i i)) | |
227 | (dest (format #f "~a/~dx~d/apps/qutebrowser.png" | |
228 | hicolor i i))) | |
229 | (mkdir-p (dirname dest)) | |
230 | (copy-file src dest))) | |
231 | '(16 24 32 48 64 128 256 512)) | |
232 | (install-file "icons/qutebrowser.svg" | |
233 | (string-append hicolor "/scalable/apps")) | |
234 | ||
235 | (substitute* "qutebrowser.desktop" | |
236 | (("Exec=qutebrowser") | |
237 | (string-append "Exec=" out "/bin/qutebrowser"))) | |
238 | (install-file "qutebrowser.desktop" app) | |
239 | #t)))))) | |
240 | (home-page "https://qutebrowser.org/") | |
241 | (synopsis "Minimal, keyboard-focused, vim-like web browser") | |
242 | (description "qutebrowser is a keyboard-focused browser with a minimal | |
243 | GUI. It is based on PyQt5 and QtWebKit.") | |
244 | (license license:gpl3+))) |