| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 | |
| 35 | |
| 36 | |
| 37 | |
| 38 | |
| 39 | |
| 40 | |
| 41 | |
| 42 | |
| 43 | |
| 44 |
|
| 45 | (define-module (gnu packages web-browsers)
|
| 46 | #:use-module (guix build-system cmake)
|
| 47 | #:use-module (guix build-system glib-or-gtk)
|
| 48 | #:use-module (guix build-system gnu)
|
| 49 | #:use-module (guix build-system go)
|
| 50 | #:use-module (guix build-system meson)
|
| 51 | #:use-module (guix build-system pyproject)
|
| 52 | #:use-module (guix download)
|
| 53 | #:use-module (guix gexp)
|
| 54 | #:use-module (guix git-download)
|
| 55 | #:use-module ((guix licenses) #:prefix license:)
|
| 56 | #:use-module (guix packages)
|
| 57 | #:use-module (guix utils)
|
| 58 | #:use-module (gnu packages)
|
| 59 | #:use-module (gnu packages autotools)
|
| 60 | #:use-module (gnu packages backup)
|
| 61 | #:use-module (gnu packages base)
|
| 62 | #:use-module (gnu packages bash)
|
| 63 | #:use-module (gnu packages bison)
|
| 64 | #:use-module (gnu packages compression)
|
| 65 | #:use-module (gnu packages curl)
|
| 66 | #:use-module (gnu packages databases)
|
| 67 | #:use-module (gnu packages documentation)
|
| 68 | #:use-module (gnu packages fltk)
|
| 69 | #:use-module (gnu packages fontutils)
|
| 70 | #:use-module (gnu packages fonts)
|
| 71 | #:use-module (gnu packages freedesktop)
|
| 72 | #:use-module (gnu packages fribidi)
|
| 73 | #:use-module (gnu packages gcc)
|
| 74 | #:use-module (gnu packages gettext)
|
| 75 | #:use-module (gnu packages glib)
|
| 76 | #:use-module (gnu packages gnome)
|
| 77 | #:use-module (gnu packages gnome-xyz)
|
| 78 | #:use-module (gnu packages gnupg)
|
| 79 | #:use-module (gnu packages golang)
|
| 80 | #:use-module (gnu packages gstreamer)
|
| 81 | #:use-module (gnu packages gtk)
|
| 82 | #:use-module (gnu packages image)
|
| 83 | #:use-module (gnu packages imagemagick)
|
| 84 | #:use-module (gnu packages javascript)
|
| 85 | #:use-module (gnu packages libevent)
|
| 86 | #:use-module (gnu packages libidn)
|
| 87 | #:use-module (gnu packages libunistring)
|
| 88 | #:use-module (gnu packages linux)
|
| 89 | #:use-module (gnu packages lisp)
|
| 90 | #:use-module (gnu packages lisp-check)
|
| 91 | #:use-module (gnu packages lisp-xyz)
|
| 92 | #:use-module (gnu packages lua)
|
| 93 | #:use-module (gnu packages man)
|
| 94 | #:use-module (gnu packages markup)
|
| 95 | #:use-module (gnu packages mp3)
|
| 96 | #:use-module (gnu packages ncurses)
|
| 97 | #:use-module (gnu packages pcre)
|
| 98 | #:use-module (gnu packages perl)
|
| 99 | #:use-module (gnu packages pkg-config)
|
| 100 | #:use-module (gnu packages python)
|
| 101 | #:use-module (gnu packages python-crypto)
|
| 102 | #:use-module (gnu packages python-build)
|
| 103 | #:use-module (gnu packages python-web)
|
| 104 | #:use-module (gnu packages python-xyz)
|
| 105 | #:use-module (gnu packages qt)
|
| 106 | #:use-module (gnu packages readline)
|
| 107 | #:use-module (gnu packages regex)
|
| 108 | #:use-module (gnu packages sdl)
|
| 109 | #:use-module (gnu packages sqlite)
|
| 110 | #:use-module (gnu packages suckless)
|
| 111 | #:use-module (gnu packages tcl)
|
| 112 | #:use-module (gnu packages text-editors)
|
| 113 | #:use-module (gnu packages tls)
|
| 114 | #:use-module (gnu packages web)
|
| 115 | #:use-module (gnu packages webkit)
|
| 116 | #:use-module (gnu packages xdisorg)
|
| 117 | #:use-module (gnu packages xml)
|
| 118 | #:use-module (gnu packages xorg)
|
| 119 | #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE)))
|
| 120 |
|
| 121 | (define-public midori
|
| 122 | (package
|
| 123 | (name "midori")
|
| 124 | (version "9.0")
|
| 125 | (source
|
| 126 | (origin
|
| 127 | (method url-fetch)
|
| 128 | (uri
|
| 129 | (string-append "https://github.com/midori-browser/core/releases/"
|
| 130 | "download/v" version "/" name "-v" version ".tar.gz"))
|
| 131 | (sha256
|
| 132 | (base32
|
| 133 | "05i04qa83dnarmgkx4xsk6fga5lw1lmslh4rb3vhyyy4ala562jy"))))
|
| 134 | (build-system cmake-build-system)
|
| 135 | (arguments
|
| 136 | `(#:imported-modules
|
| 137 | (,@%cmake-build-system-modules
|
| 138 | (guix build glib-or-gtk-build-system))
|
| 139 | #:modules
|
| 140 | ((guix build cmake-build-system)
|
| 141 | ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
|
| 142 | (guix build utils))
|
| 143 | #:configure-flags
|
| 144 | |
| 145 | '("-DCMAKE_C_FLAGS=-Wno-error=int-conversion")
|
| 146 | #:phases
|
| 147 | (modify-phases %standard-phases
|
| 148 | (add-after 'install 'glib-or-gtk-compile-schemas
|
| 149 | (assoc-ref glib-or-gtk:%standard-phases
|
| 150 | 'glib-or-gtk-compile-schemas))
|
| 151 | (add-after 'install 'glib-or-gtk-wrap
|
| 152 | (assoc-ref glib-or-gtk:%standard-phases
|
| 153 | 'glib-or-gtk-wrap)))))
|
| 154 | (native-inputs
|
| 155 | `(("desktop-file-utils" ,desktop-file-utils) |
| 156 | ("glib:bin" ,glib "bin")
|
| 157 | ("gtk+:bin" ,gtk+ "bin")
|
| 158 | ("intltool" ,intltool)
|
| 159 | ("pkg-config" ,pkg-config)
|
| 160 | ("which" ,which))) |
| 161 | (inputs
|
| 162 | `(("adwaita-icon-theme" ,adwaita-icon-theme)
|
| 163 | ("gcr" ,gcr-3)
|
| 164 | ("glib" ,glib)
|
| 165 | ("glib-networking" ,glib-networking)
|
| 166 | ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
| 167 | ("gtk+" ,gtk+)
|
| 168 | ("json-glib" ,json-glib)
|
| 169 | ("libarchive" ,libarchive)
|
| 170 | ("libpeas" ,libpeas)
|
| 171 | ("sqlite" ,sqlite)
|
| 172 | ("vala" ,vala)
|
| 173 | ("webkitgtk" ,webkitgtk-with-libsoup2)))
|
| 174 | (synopsis "Lightweight graphical web browser")
|
| 175 | (description "@code{Midori} is a lightweight, Webkit-based web browser.
|
| 176 | It features integration with GTK+3, configurable web search engine, bookmark
|
| 177 | management, extensions such as advertisement blocker and colorful tabs.")
|
| 178 | (home-page "https://www.midori-browser.org")
|
| 179 | (license license:lgpl2.1+)))
|
| 180 |
|
| 181 | (define-public links
|
| 182 | (package
|
| 183 | (name "links")
|
| 184 | (version "2.30")
|
| 185 | (source (origin
|
| 186 | (method url-fetch)
|
| 187 | (uri (string-append "http://links.twibright.com/download/"
|
| 188 | "links-" version ".tar.bz2"))
|
| 189 | (sha256
|
| 190 | (base32
|
| 191 | "0rpi2l1v9b8d86z9dm91n312aavz7g12z1xp7kf7qlhib9miqqy4"))))
|
| 192 | (build-system gnu-build-system)
|
| 193 | (arguments
|
| 194 | (list
|
| 195 | #:configure-flags #~(list "--enable-graphics")
|
| 196 | #:phases
|
| 197 | #~(modify-phases %standard-phases
|
| 198 | (replace 'configure
|
| 199 | (lambda* (#:key outputs (configure-flags '()) #:allow-other-keys)
|
| 200 | |
| 201 | |
| 202 | |
| 203 | (let ((out (assoc-ref outputs "out")))
|
| 204 | |
| 205 | #$@(if (%current-target-system)
|
| 206 | #~((setenv "CHOST" #$(%current-target-system)))
|
| 207 | #~())
|
| 208 | (setenv "CONFIG_SHELL" (which "bash"))
|
| 209 | (apply invoke "./configure"
|
| 210 | (string-append "--prefix=" out)
|
| 211 | configure-flags)))))))
|
| 212 | (native-inputs (list pkg-config))
|
| 213 | (inputs
|
| 214 | (list gpm
|
| 215 | libevent
|
| 216 | libjpeg-turbo
|
| 217 | libpng
|
| 218 | libtiff
|
| 219 | libxt
|
| 220 | openssl
|
| 221 | zlib))
|
| 222 | (synopsis "Text and graphics mode web browser")
|
| 223 | (description "Links is a graphics and text mode web browser, with many
|
| 224 | features including, tables, builtin image display, bookmarks, SSL and more.")
|
| 225 | (home-page "http://links.twibright.com")
|
| 226 | |
| 227 | |
| 228 | |
| 229 | |
| 230 | |
| 231 | |
| 232 | |
| 233 | (license license:gpl1+)))
|
| 234 |
|
| 235 | (define-public elinks
|
| 236 | (package
|
| 237 | (name "elinks")
|
| 238 | (version "0.19.1")
|
| 239 | (source
|
| 240 | (origin
|
| 241 | (method git-fetch)
|
| 242 | (uri (git-reference
|
| 243 | (url "https://github.com/rkd77/elinks")
|
| 244 | (commit (string-append "v" version))))
|
| 245 | (file-name (git-file-name name version))
|
| 246 | (sha256
|
| 247 | (base32
|
| 248 | "1802lh9zsmwmsd4b4kzxzgv3y8f6fmi6i0cjjbwmnkdfivcal3v9"))))
|
| 249 | (build-system meson-build-system)
|
| 250 | (arguments
|
| 251 | (list
|
| 252 | #:configure-flags
|
| 253 | #~(list "-D256-colors=true"
|
| 254 | "-Dbrotli=true"
|
| 255 | "-Dcgi=true"
|
| 256 | "-Dfinger=true"
|
| 257 | "-Dgemini=true"
|
| 258 | "-Dgopher=true"
|
| 259 | |
| 260 | |
| 261 | "-Dgpm=false"
|
| 262 | "-Dhtml-highlight=true"
|
| 263 | "-Dlibev=true"
|
| 264 | "-Dlzma=true"
|
| 265 | "-Dnntp=true"
|
| 266 | "-Dreproducible=true"
|
| 267 | "-Dsource-date-epoch=1"
|
| 268 | "-Dtest=true"
|
| 269 | "-Dtrue-color=true"
|
| 270 | |
| 271 | "-Dc_args=-Wno-implicit-function-declaration")))
|
| 272 | (native-inputs
|
| 273 | (list autoconf
|
| 274 | automake
|
| 275 | gettext-minimal
|
| 276 | perl
|
| 277 | pkg-config
|
| 278 | python-minimal))
|
| 279 | (inputs
|
| 280 | (list brotli
|
| 281 | bzip2
|
| 282 | curl
|
| 283 | expat
|
| 284 | gnutls
|
| 285 | gpm
|
| 286 | libcss
|
| 287 | libdom
|
| 288 | libev
|
| 289 | libgcrypt
|
| 290 | libidn
|
| 291 | lua
|
| 292 | openssl
|
| 293 | tre
|
| 294 | xz
|
| 295 | zlib))
|
| 296 | (home-page "http://elinks.cz/")
|
| 297 | (synopsis "Advanced text mode web browser")
|
| 298 | (description
|
| 299 | "ELinks is a feature-rich program for browsing the web in text mode.
|
| 300 | It can render both frames and tables, is highly customisable and can be
|
| 301 | extended via Lua scripts. It is like an enhanced Lynx and Links.")
|
| 302 | (license license:gpl2+)))
|
| 303 |
|
| 304 | (define-public luakit
|
| 305 | (package
|
| 306 | (name "luakit")
|
| 307 | (version "2.4.0")
|
| 308 | (source (origin
|
| 309 | (method git-fetch)
|
| 310 | (uri (git-reference
|
| 311 | (url "https://github.com/luakit/luakit")
|
| 312 | (commit version)))
|
| 313 | (file-name (git-file-name name version))
|
| 314 | (sha256
|
| 315 | (base32
|
| 316 | "15l0xb8ddv9j8hlrd4d11brngpss77ih9f8m08jfc18ir4rb32y5"))))
|
| 317 | (build-system glib-or-gtk-build-system)
|
| 318 | (arguments
|
| 319 | (list
|
| 320 | #:tests? #false |
| 321 | #:test-target "run-tests"
|
| 322 | #:make-flags
|
| 323 | #~(list (string-append "CC=" #$(cc-for-target))
|
| 324 | "LUA_BIN_NAME=lua"
|
| 325 | "DEVELOPMENT_PATHS=0"
|
| 326 | (string-append "PREFIX=" #$output)
|
| 327 | (string-append "XDGPREFIX=" #$output "/etc/xdg"))
|
| 328 | #:phases
|
| 329 | #~(modify-phases %standard-phases
|
| 330 | (add-before 'build 'lfs-workaround
|
| 331 | (lambda _
|
| 332 | (setenv "LUA_CPATH"
|
| 333 | (string-append #$(this-package-input "lua5.1-filesystem")
|
| 334 | "/lib/lua/5.1/?.so;;"))))
|
| 335 | (add-before 'build 'set-version
|
| 336 | (lambda _
|
| 337 | (setenv "VERSION_FROM_GIT" #$version)))
|
| 338 | (delete 'configure)
|
| 339 | (add-after 'install 'wrap
|
| 340 | (lambda _
|
| 341 | (wrap-program (string-append #$output "/bin/luakit")
|
| 342 | `("LUA_CPATH" prefix
|
| 343 | (,(string-append #$(this-package-input "lua5.1-filesystem")
|
| 344 | "/lib/lua/5.1/?.so;;")))
|
| 345 | `("XDG_CONFIG_DIRS" prefix
|
| 346 | (,(string-append #$output "/etc/xdg/")))))))))
|
| 347 | (native-inputs
|
| 348 | (list pkg-config))
|
| 349 | (inputs
|
| 350 | (list bash-minimal
|
| 351 | glib-networking
|
| 352 | gsettings-desktop-schemas
|
| 353 | gtk+
|
| 354 | lua-5.1
|
| 355 | lua5.1-filesystem
|
| 356 | luajit
|
| 357 | sqlite
|
| 358 | webkitgtk-for-gtk3))
|
| 359 | (synopsis "Fast, lightweight, and simple browser based on WebKit")
|
| 360 | (description "Luakit is a fast, lightweight, and simple to use
|
| 361 | micro-browser framework extensible by Lua using the WebKit web content engine
|
| 362 | and the GTK+ toolkit.")
|
| 363 | (home-page "https://luakit.github.io/")
|
| 364 | (license license:gpl3+)))
|
| 365 |
|
| 366 | (define-public lynx
|
| 367 | (package
|
| 368 | (name "lynx")
|
| 369 | (version "2.9.2")
|
| 370 | (source (origin
|
| 371 | (method url-fetch)
|
| 372 | (uri (string-append
|
| 373 | "http://invisible-mirror.net/archives/lynx/tarballs"
|
| 374 | "/lynx" version ".tar.bz2"))
|
| 375 | (sha256
|
| 376 | (base32
|
| 377 | "1kh7zfv7m9srqapppandx3hkc82rr7r9fkhz22g6d4fr6scvhx3k"))))
|
| 378 | (build-system gnu-build-system)
|
| 379 | (native-inputs (list pkg-config perl))
|
| 380 | (inputs (list ncurses
|
| 381 | libidn
|
| 382 | openssl
|
| 383 | libgcrypt
|
| 384 | unzip
|
| 385 | zlib
|
| 386 | gzip
|
| 387 | bzip2))
|
| 388 | (native-search-paths (list $SSL_CERT_DIR $SSL_CERT_FILE))
|
| 389 | (arguments
|
| 390 | (list #:configure-flags
|
| 391 | #~(let ((openssl #$(this-package-input "openssl")))
|
| 392 | (list "--with-pkg-config"
|
| 393 | "--with-screen=ncurses"
|
| 394 | "--with-zlib"
|
| 395 | "--with-bzlib"
|
| 396 | (string-append "--with-ssl=" openssl)
|
| 397 | |
| 398 | "--enable-widec"
|
| 399 | "--enable-ascii-ctypes"
|
| 400 | "--enable-local-docs"
|
| 401 | "--enable-htmlized-cfg"
|
| 402 | "--enable-gzip-help"
|
| 403 | "--enable-nls"
|
| 404 | "--enable-ipv6"))
|
| 405 | #:tests? #f |
| 406 | #:phases
|
| 407 | #~(modify-phases %standard-phases
|
| 408 | (add-before 'configure 'set-makefile-shell
|
| 409 | (lambda _ (substitute* "po/makefile.inn"
|
| 410 | (("/bin/sh") (which "sh")))))
|
| 411 | (replace 'install
|
| 412 | (lambda* (#:key (make-flags '()) #:allow-other-keys)
|
| 413 | (apply invoke "make" "install-full" make-flags))))))
|
| 414 | (synopsis "Text Web Browser")
|
| 415 | (description
|
| 416 | "Lynx is a fully-featured @acronym{WWW, World Wide Web} client for users
|
| 417 | of cursor-addressable, character-cell display devices. It will display
|
| 418 | @acronym{HTML, Hypertext Markup Language} documents containing links to files
|
| 419 | on the local system, as well as files on remote systems running http, gopher,
|
| 420 | ftp, wais, nntp, finger, or cso/ph/qi servers.
|
| 421 |
|
| 422 | Lynx can be used to access information on the WWW, or to build information
|
| 423 | systems intended primarily for local access.")
|
| 424 | (home-page "https://lynx.invisible-island.net/")
|
| 425 | (license license:gpl2)))
|
| 426 |
|
| 427 | (define-public qutebrowser
|
| 428 | (package
|
| 429 | (name "qutebrowser")
|
| 430 | (version "3.7.0")
|
| 431 | (source
|
| 432 | (origin
|
| 433 | (method git-fetch)
|
| 434 | (uri (git-reference
|
| 435 | (url "https://github.com/qutebrowser/qutebrowser")
|
| 436 | (commit (string-append "v" version))))
|
| 437 | (file-name (git-file-name name version))
|
| 438 | (sha256
|
| 439 | (base32 "1mg4nghf9zw6z1qrw7c6zpbcdzsqr5al5s2svms0wa4dp45rzp69"))))
|
| 440 | (build-system pyproject-build-system)
|
| 441 | (native-inputs
|
| 442 | (list python-setuptools
|
| 443 | python-wheel
|
| 444 | python-attrs |
| 445 | asciidoc))
|
| 446 | (inputs
|
| 447 | (list bash-minimal
|
| 448 | python-colorama
|
| 449 | python-jinja2
|
| 450 | python-markupsafe
|
| 451 | python-pygments
|
| 452 | python-pynacl
|
| 453 | python-pypeg2
|
| 454 | python-pyyaml
|
| 455 | python-pyqt-6
|
| 456 | python-pyqtwebengine-6
|
| 457 | python-tldextract
|
| 458 | |
| 459 | |
| 460 | qtwebengine))
|
| 461 | (arguments
|
| 462 | `( |
| 463 | |
| 464 | |
| 465 | #:tests? #f
|
| 466 | #:phases
|
| 467 | (modify-phases %standard-phases
|
| 468 | (add-after 'unpack 'patch-systemdir
|
| 469 | (lambda* (#:key outputs #:allow-other-keys)
|
| 470 | (let ((out (assoc-ref outputs "out")))
|
| 471 | (substitute* "qutebrowser/utils/standarddir.py"
|
| 472 | (("/usr/share") (string-append out "/share"))))))
|
| 473 | (add-after 'unpack 'find-userscripts
|
| 474 | (lambda* (#:key outputs #:allow-other-keys)
|
| 475 | (substitute* "qutebrowser/commands/userscripts.py"
|
| 476 | (("os.path.join.*system=True)")
|
| 477 | (string-append "os.path.join(\""
|
| 478 | (assoc-ref outputs "out")
|
| 479 | "\", \"share\", \"qutebrowser\"")))))
|
| 480 | (add-before 'build 'build-docs
|
| 481 | (lambda _
|
| 482 | (substitute* "scripts/asciidoc2html.py"
|
| 483 | (("sys.executable, \"-m\", \"asciidoc\"")
|
| 484 | "\"asciidoc\""))
|
| 485 | (invoke "python" "scripts/asciidoc2html.py")))
|
| 486 | (add-before 'check 'set-env-offscreen
|
| 487 | (lambda _
|
| 488 | (setenv "QT_QPA_PLATFORM" "offscreen")))
|
| 489 | (add-after 'install 'install-more
|
| 490 | (lambda* (#:key outputs #:allow-other-keys)
|
| 491 | (let ((out (assoc-ref outputs "out")))
|
| 492 | (rename-file "misc/Makefile" "Makefile")
|
| 493 | (substitute* "Makefile"
|
| 494 | ((".*setup\\.py.*") ""))
|
| 495 | (invoke "make" "install" (string-append "PREFIX=" out))
|
| 496 | (delete-file-recursively (string-append out "/share/metainfo")))))
|
| 497 | (add-after 'install-more 'wrap-scripts
|
| 498 | (lambda* (#:key inputs outputs #:allow-other-keys)
|
| 499 | (let* ((out (assoc-ref outputs "out"))
|
| 500 | (python (assoc-ref inputs "python"))
|
| 501 | (path (string-append out "/lib/python"
|
| 502 | ,(version-major+minor (package-version
|
| 503 | python))
|
| 504 | "/site-packages:"
|
| 505 | (getenv "GUIX_PYTHONPATH"))))
|
| 506 | (for-each
|
| 507 | (lambda (file)
|
| 508 | (wrap-program file
|
| 509 | `("GUIX_PYTHONPATH" ":" prefix (,path))))
|
| 510 | (append
|
| 511 | (find-files
|
| 512 | (string-append out "/share/qutebrowser/scripts") "\\.py$")
|
| 513 | (find-files
|
| 514 | (string-append out "/share/qutebrowser/userscripts")))))))
|
| 515 | (add-after 'wrap 'wrap-qt-process-path
|
| 516 | (lambda* (#:key inputs outputs #:allow-other-keys)
|
| 517 | (wrap-program (search-input-file outputs "bin/qutebrowser")
|
| 518 | `("QTWEBENGINE_RESOURCES_PATH" =
|
| 519 | (,(search-input-directory
|
| 520 | inputs "/share/qt6/resources")))))))))
|
| 521 | (home-page "https://qutebrowser.org/")
|
| 522 | (synopsis "Minimal, keyboard-focused, vim-like web browser")
|
| 523 | (description "qutebrowser is a keyboard-focused browser with a minimal
|
| 524 | GUI. It is based on PyQt6 and QtWebEngine.")
|
| 525 | (license license:gpl3+)))
|
| 526 |
|
| 527 | (define-public vimb
|
| 528 | (package
|
| 529 | (name "vimb")
|
| 530 | (version "3.7.1")
|
| 531 | (source
|
| 532 | (origin
|
| 533 | (method git-fetch)
|
| 534 | (uri (git-reference
|
| 535 | (url "https://github.com/fanglingsu/vimb/")
|
| 536 | (commit version)))
|
| 537 | (sha256
|
| 538 | (base32 "13gq6grhkscb0ms35k527fc49yrnkd4p3d1i0hv3pl4h6571s7ny"))
|
| 539 | (file-name (git-file-name name version))))
|
| 540 | (build-system glib-or-gtk-build-system)
|
| 541 | (arguments
|
| 542 | (list #:tests? #f |
| 543 | #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
|
| 544 | "DESTDIR="
|
| 545 | (string-append "PREFIX=" #$output))
|
| 546 | #:phases
|
| 547 | #~(modify-phases %standard-phases
|
| 548 | (delete 'configure))))
|
| 549 | (inputs (list glib-networking gsettings-desktop-schemas webkitgtk-for-gtk3))
|
| 550 | (native-inputs (list pkg-config))
|
| 551 | (home-page "https://fanglingsu.github.io/vimb/")
|
| 552 | (synopsis "Fast and lightweight Vim-like web browser")
|
| 553 | (description "Vimb is a fast and lightweight vim like web browser based on
|
| 554 | the webkit web browser engine and the GTK toolkit. Vimb is modal like the great
|
| 555 | vim editor and also easily configurable during runtime. Vimb is mostly keyboard
|
| 556 | driven and does not detract you from your daily work.")
|
| 557 | (license license:gpl3+)))
|
| 558 |
|
| 559 | (define-public lagrange
|
| 560 | (package
|
| 561 | (name "lagrange")
|
| 562 | (version "1.20.5")
|
| 563 | (source
|
| 564 | (origin
|
| 565 | (method url-fetch)
|
| 566 | (uri
|
| 567 | (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
|
| 568 | "download/v" version "/lagrange-" version ".tar.gz"))
|
| 569 | (sha256
|
| 570 | (base32 "1kha8p9bfhfr7bs3ihpzji3jz9qgwizz1f580nylnlrz418x9wkr"))
|
| 571 | (modules '((guix build utils)))
|
| 572 | (snippet
|
| 573 | '(begin
|
| 574 | |
| 575 | (delete-file-recursively "lib/fribidi")
|
| 576 | (delete-file-recursively "lib/harfbuzz")
|
| 577 | (delete-file-recursively "lib/sealcurses")))))
|
| 578 | (build-system cmake-build-system)
|
| 579 | (arguments
|
| 580 | (list
|
| 581 | #:tests? #false |
| 582 | #:configure-flags
|
| 583 | #~(list "-DTFDN_ENABLE_SSE41=OFF"
|
| 584 | (string-append "-DUNISTRING_DIR="
|
| 585 | #$(this-package-input "libunistring")))))
|
| 586 | (native-inputs
|
| 587 | (list pkg-config zip))
|
| 588 | (inputs
|
| 589 | (list freetype
|
| 590 | fribidi
|
| 591 | harfbuzz
|
| 592 | libmpg123
|
| 593 | libunistring
|
| 594 | libwebp
|
| 595 | openssl
|
| 596 | pcre
|
| 597 | sdl2
|
| 598 | zlib))
|
| 599 | (native-search-paths
|
| 600 | (list (search-path-specification
|
| 601 | (variable "XDG_DATA_DIRS")
|
| 602 | (files '("share")))))
|
| 603 | (home-page "https://gmi.skyjake.fi/lagrange/")
|
| 604 | (synopsis "Graphical Gemini client")
|
| 605 | (description
|
| 606 | "Lagrange is a desktop GUI client for browsing Geminispace. It offers
|
| 607 | modern conveniences familiar from web browsers, such as smooth scrolling,
|
| 608 | inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks,
|
| 609 | history, and page outlines.")
|
| 610 | (properties
|
| 611 | '((release-monitoring-url . "https://git.skyjake.fi/gemini/lagrange/releases")))
|
| 612 | (license license:bsd-2)))
|
| 613 |
|
| 614 | (define-public gmni
|
| 615 | (package
|
| 616 | (name "gmni")
|
| 617 | (version "1.0")
|
| 618 | (source (origin
|
| 619 | (method git-fetch)
|
| 620 | (uri (git-reference
|
| 621 | (url "https://git.sr.ht/~sircmpwn/gmni")
|
| 622 | (commit version)))
|
| 623 | (sha256
|
| 624 | (base32
|
| 625 | "0bky9fd8iyr13r6gj4aynb7j9nd36xdprbgq6nh5hz6jiw04vhfw"))
|
| 626 | (file-name (git-file-name name version))))
|
| 627 | (build-system gnu-build-system)
|
| 628 | (arguments
|
| 629 | (list
|
| 630 | #:tests? #f |
| 631 | #:make-flags #~(list #$(string-append "CC=" (cc-for-target)))))
|
| 632 | (inputs
|
| 633 | (list bearssl))
|
| 634 | (native-inputs
|
| 635 | (list pkg-config scdoc))
|
| 636 | (home-page "https://sr.ht/~sircmpwn/gmni")
|
| 637 | (synopsis "Minimalist command line Gemini client")
|
| 638 | (description "The gmni package includes:
|
| 639 |
|
| 640 | @itemize
|
| 641 | @item A CLI utility (like curl): gmni
|
| 642 | @item A line-mode browser: gmnlm
|
| 643 | @end itemize")
|
| 644 | (license (list license:gpl3+
|
| 645 | (license:non-copyleft
|
| 646 | "https://curl.se/docs/copyright.html"
|
| 647 | "Used only for files taken from curl.")))))
|
| 648 |
|
| 649 | (define-public bombadillo
|
| 650 | (package
|
| 651 | (name "bombadillo")
|
| 652 | (version "2.4.0")
|
| 653 | (source (origin
|
| 654 | (method git-fetch)
|
| 655 | (uri (git-reference
|
| 656 | (url "https://tildegit.org/sloum/bombadillo")
|
| 657 | (commit version)))
|
| 658 | (sha256
|
| 659 | (base32
|
| 660 | "03gcd813bmiy7ad179zg4p61nfa9z5l94sdmsmmn2x204h1ksd8n"))
|
| 661 | (file-name (git-file-name name version))))
|
| 662 | (build-system go-build-system)
|
| 663 | (arguments
|
| 664 | (list
|
| 665 | #:import-path "tildegit.org/sloum/bombadillo"
|
| 666 | #:install-source? #f
|
| 667 | #:phases
|
| 668 | #~(modify-phases %standard-phases
|
| 669 | (add-after 'install 'install-data
|
| 670 | (lambda _
|
| 671 | (let* ((builddir "src/tildegit.org/sloum/bombadillo")
|
| 672 | (pkg (strip-store-file-name #$output))
|
| 673 | (sharedir (string-append #$output "/share"))
|
| 674 | (appdir (string-append sharedir "/applications"))
|
| 675 | (docdir (string-append sharedir "/doc/" pkg))
|
| 676 | (mandir (string-append sharedir "/man/man1"))
|
| 677 | (pixdir (string-append sharedir "/pixmaps")))
|
| 678 | (with-directory-excursion builddir
|
| 679 | (install-file "bombadillo.desktop" appdir)
|
| 680 | (install-file "bombadillo.1" mandir)
|
| 681 | (install-file "bombadillo-icon.png" pixdir))))))
|
| 682 | #:test-flags #~(list "-vet=off")))
|
| 683 | (home-page "https://bombadillo.colorfield.space")
|
| 684 | (synopsis "Terminal browser for the gopher, gemini, and finger protocols")
|
| 685 | (description "Bombadillo is a non-web browser for the terminal with
|
| 686 | vim-like key bindings, a document pager, configurable settings, and robust
|
| 687 | command selection. The following protocols are supported as first-class
|
| 688 | citizens: gopher, gemini, finger, and local. There is also support for telnet,
|
| 689 | http, and https via third-party applications.")
|
| 690 | (license license:gpl3+)))
|
| 691 |
|
| 692 | (define-public tinmop
|
| 693 | (package
|
| 694 | (name "tinmop")
|
| 695 | (version "0.9.9.14142135623730951")
|
| 696 | (source
|
| 697 | (origin
|
| 698 | (method git-fetch)
|
| 699 | (uri (git-reference
|
| 700 | (url "https://codeberg.org/cage/tinmop")
|
| 701 | (commit (string-append "v" version))))
|
| 702 | (file-name (git-file-name name version))
|
| 703 | (sha256
|
| 704 | (base32 "0dgx0p1g9xq2kq71ycq5mfjj5h5sw8xs26nk648w3lc8a6764mji"))))
|
| 705 | (build-system gnu-build-system)
|
| 706 | (native-inputs
|
| 707 | (list autoconf
|
| 708 | automake
|
| 709 | bash-completion
|
| 710 | gettext-minimal
|
| 711 | libjpeg-turbo
|
| 712 | imagemagick
|
| 713 | mandoc
|
| 714 | nano
|
| 715 | openssl
|
| 716 | pkg-config
|
| 717 | sbcl
|
| 718 | tk
|
| 719 | unzip
|
| 720 | which
|
| 721 | xdg-utils))
|
| 722 | (inputs
|
| 723 | (list xsel
|
| 724 | ncurses
|
| 725 | sbcl-access
|
| 726 | sbcl-alexandria
|
| 727 | sbcl-babel
|
| 728 | sbcl-bordeaux-threads
|
| 729 | sbcl-cl+ssl
|
| 730 | sbcl-cl-base64
|
| 731 | sbcl-cl-colors2
|
| 732 | sbcl-cl-html5-parser
|
| 733 | sbcl-cl-i18n
|
| 734 | sbcl-cl-ppcre
|
| 735 | sbcl-cl-spark
|
| 736 | sbcl-cl-sqlite
|
| 737 | sbcl-clunit2
|
| 738 | sbcl-croatoan
|
| 739 | sbcl-chronicity
|
| 740 | sbcl-crypto-shortcuts
|
| 741 | sbcl-drakma
|
| 742 | sbcl-esrap
|
| 743 | sbcl-flexi-streams
|
| 744 | sbcl-ieee-floats
|
| 745 | sbcl-local-time
|
| 746 | sbcl-log4cl
|
| 747 | sbcl-marshal
|
| 748 | sbcl-nodgui
|
| 749 | sbcl-parse-number
|
| 750 | sbcl-percent-encoding
|
| 751 | sbcl-purgatory
|
| 752 | sbcl-sxql
|
| 753 | sbcl-sxql-composer
|
| 754 | sbcl-tooter
|
| 755 | sbcl-trivial-clipboard
|
| 756 | sbcl-unix-opts
|
| 757 | sbcl-usocket
|
| 758 | sbcl-yason
|
| 759 | sdl2-ttf
|
| 760 | sqlite))
|
| 761 | (arguments
|
| 762 | `(#:tests? #f
|
| 763 | #:strip-binaries? #f
|
| 764 | #:phases
|
| 765 | (modify-phases %standard-phases
|
| 766 | (add-after 'unpack 'set-home
|
| 767 | (lambda _
|
| 768 | (setenv "HOME" "/tmp")
|
| 769 | #t))
|
| 770 | (add-after 'unpack 'fix-configure.ac
|
| 771 | (lambda _
|
| 772 | (delete-file "configure")
|
| 773 | (substitute* "configure.ac"
|
| 774 | (("AC_PATH_PROG.+CURL")
|
| 775 | "dnl")
|
| 776 | (("AC_PATH_PROGS.+GIT")
|
| 777 | "dnl")
|
| 778 | (("AC_PATH_PROG.+GPG")
|
| 779 | "dnl")
|
| 780 | (("AC_PATH_PROG.+SDL2")
|
| 781 | "dnl ")
|
| 782 | (("AC_CHECK_HEADER.+ttf")
|
| 783 | "dnl "))
|
| 784 | (substitute* "Makefile.am"
|
| 785 | (("dist_completion_DATA")
|
| 786 | "#")
|
| 787 | (("completiondir")
|
| 788 | "#"))
|
| 789 | #t)))))
|
| 790 | (synopsis
|
| 791 | "Gemini, gopher, kami and mastodon/pleroma client with a terminal interface")
|
| 792 | (description
|
| 793 | "This package provides a Gemini, gopher, kami and mastodon/pleroma client
|
| 794 | with a terminal interface, for Gemini also a GUI is available.")
|
| 795 | (home-page "https://www.autistici.org/interzona/tinmop.html")
|
| 796 | (license license:gpl3+)))
|
| 797 |
|
| 798 | (define-public telescope
|
| 799 | (package
|
| 800 | (name "telescope")
|
| 801 | (version "0.9")
|
| 802 | (source
|
| 803 | (origin
|
| 804 | (method url-fetch)
|
| 805 | (uri (string-append "https://github.com/omar-polo/telescope/releases/download/"
|
| 806 | version "/telescope-" version ".tar.gz"))
|
| 807 | (sha256
|
| 808 | (base32 "1xbwdm3xcahwl6sjqx6f8hhx7nyzyygkjsnxglwxazp8zlmchqy9"))))
|
| 809 | (build-system gnu-build-system)
|
| 810 | (arguments
|
| 811 | `(#:tests? #f)) |
| 812 | (native-inputs
|
| 813 | (list gettext-minimal pkg-config))
|
| 814 | (inputs
|
| 815 | (list libgrapheme libressl ncurses))
|
| 816 | (home-page "https://telescope.omarpolo.com/")
|
| 817 | (synopsis "Gemini client with a terminal interface")
|
| 818 | (description "Telescope is a w3m-like browser for Gemini.")
|
| 819 | (license license:x11)))
|
| 820 |
|
| 821 | (define-public leo
|
| 822 | |
| 823 | (let ((commit "88cc10a87afe2ec86be06e6ea2bcd099f5360b74")
|
| 824 | (version "1.0.4")
|
| 825 | (revision "1"))
|
| 826 | (package
|
| 827 | (name "leo")
|
| 828 | (version (git-version version revision commit))
|
| 829 | (source
|
| 830 | (origin
|
| 831 | (method git-fetch)
|
| 832 | (uri (git-reference
|
| 833 | (url "https://github.com/xyzshantaram/leo")
|
| 834 | (commit commit)))
|
| 835 | (file-name (git-file-name name version))
|
| 836 | (sha256
|
| 837 | (base32 "0jp4v4jw82qqynqqs7x35g5yvm1sd48cvbqh7j2r1ixw1z6ldhc4"))))
|
| 838 | (build-system pyproject-build-system)
|
| 839 | (arguments (list #:tests? #f)) |
| 840 | (native-inputs (list python-setuptools))
|
| 841 | (home-page "https://github.com/xyzshantaram/leo")
|
| 842 | (synopsis "Gemini client written in Python")
|
| 843 | (description
|
| 844 | "@command{leo} is a gemini client written in Python with no external
|
| 845 | dependencies that fully implements the Gemini spec. A list of URLs can be
|
| 846 | saved to a file for further viewing in another window.")
|
| 847 | (license license:expat))))
|
| 848 |
|
| 849 | (define-public av-98
|
| 850 | (package
|
| 851 | (name "av-98")
|
| 852 | (version "1.4")
|
| 853 | (properties '((upstream-name . "AV-98")))
|
| 854 | (source
|
| 855 | (origin
|
| 856 | (method git-fetch)
|
| 857 | (uri (git-reference
|
| 858 | (url "https://git.sr.ht/~solderpunk/AV-98")
|
| 859 | (commit (string-append "v" version))))
|
| 860 | (file-name (git-file-name name version))
|
| 861 | (sha256
|
| 862 | (base32 "04dzkzsan1cnrslsvfgn1whpwald8xy34wqzvq81hd2mvw9a2n69"))))
|
| 863 | (build-system pyproject-build-system)
|
| 864 | (arguments
|
| 865 | (list
|
| 866 | #:tests? #f |
| 867 | #:phases
|
| 868 | #~(modify-phases %standard-phases
|
| 869 | (add-before 'sanity-check 'configure-sanity-check
|
| 870 | (lambda _
|
| 871 | (setenv "HOME" (getcwd)))))))
|
| 872 | (native-inputs (list python-setuptools))
|
| 873 | (home-page "https://git.sr.ht/~solderpunk/AV-98")
|
| 874 | (synopsis "Command line Gemini client")
|
| 875 | (description
|
| 876 | "AV-98 is an experimental client for the Gemini protocol. Features include
|
| 877 | @itemize
|
| 878 | @item TOFU or CA server certificate validation;
|
| 879 | @item Extensive client certificate support if an openssl binary is available;
|
| 880 | @item Ability to specify external handler programs for different MIME types;
|
| 881 | @item Gopher proxy support;
|
| 882 | @item Advanced navigation tools like tour and mark (as per VF-1);
|
| 883 | @item Bookmarks;
|
| 884 | @item IPv6 support;
|
| 885 | @item Support for any character encoding recognised by Python.
|
| 886 | @end itemize")
|
| 887 | (license license:bsd-2)))
|
| 888 |
|
| 889 | (define-public dillo
|
| 890 | (package
|
| 891 | (name "dillo")
|
| 892 | (version "3.3.0")
|
| 893 | (source
|
| 894 | (origin
|
| 895 | (method git-fetch)
|
| 896 | (uri (git-reference
|
| 897 | (url "https://git.dillo-browser.org/dillo")
|
| 898 | (commit (string-append "v" version))))
|
| 899 | (file-name (git-file-name name version))
|
| 900 | (sha256
|
| 901 | (base32 "14mrm84br4p6iq3ihzlyq07p8v8cdvrh8zhs9yhv1dxbdkjxhdrk"))))
|
| 902 | (build-system gnu-build-system)
|
| 903 | (native-inputs (list autoconf automake))
|
| 904 | (inputs (list fltk-1.3
|
| 905 | fontconfig
|
| 906 | openssl
|
| 907 | libjpeg-turbo
|
| 908 | libpng
|
| 909 | libwebp
|
| 910 | libxext
|
| 911 | libx11
|
| 912 | libxfixes
|
| 913 | libxft
|
| 914 | libxrender
|
| 915 | zlib))
|
| 916 | (home-page "https://dillo-browser.org/")
|
| 917 | (synopsis "Very small and fast graphical web browser")
|
| 918 | (description
|
| 919 | "Dillo is a minimalistic web browser particularly intended for
|
| 920 | -older or slower computers and embedded systems.")
|
| 921 | (license license:gpl3+)))
|
| 922 |
|
| 923 | (define-public edbrowse
|
| 924 | (package
|
| 925 | (name "edbrowse")
|
| 926 | (version "3.8.18")
|
| 927 | (source
|
| 928 | (origin
|
| 929 | (method git-fetch)
|
| 930 | (uri (git-reference
|
| 931 | (url "https://github.com/edbrowse/edbrowse")
|
| 932 | (commit (string-append "v" version))))
|
| 933 | (file-name (git-file-name name version))
|
| 934 | (sha256
|
| 935 | (base32 "04fly77d20h1g6i36rv3pca44vpi0adin8k3hfan57bxy9nx8iww"))))
|
| 936 | (build-system gnu-build-system)
|
| 937 | (inputs (list curl-ssh pcre2 quickjs-ng openssl readline unixodbc))
|
| 938 | (native-inputs (list perl pkg-config))
|
| 939 | (arguments
|
| 940 | (list
|
| 941 | #:make-flags
|
| 942 | #~(list (string-append "CC=" #$(cc-for-target))
|
| 943 | (string-append "PREFIX=" #$output)
|
| 944 | "CPPFLAGS=-DQ_NG=1"
|
| 945 | "QUICKJS_LIB_NAME=qjs")
|
| 946 | #:tests? #f |
| 947 | #:phases
|
| 948 | #~(modify-phases %standard-phases
|
| 949 | (delete 'configure))))
|
| 950 | (home-page "https://edbrowse.org/")
|
| 951 | (synopsis "Command-line editor and web browser")
|
| 952 | (description "Edbrowse is a combination editor, browser, and mail client that is
|
| 953 | 100% text based. The interface is similar to /bin/ed, though there are many more
|
| 954 | features, such as editing multiple files simultaneously, and rendering html. This
|
| 955 | program was originally written for blind users, but many sighted users have taken
|
| 956 | advantage of the unique scripting capabilities of this program, which can be found
|
| 957 | nowhere else. A batch job, or cron job, can access web pages on the internet, submit
|
| 958 | forms, and send email, with no human intervention whatsoever. edbrowse can also tap
|
| 959 | into databases through odbc. It was primarily written by Karl Dahlke.")
|
| 960 | (license license:gpl2+)))
|