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