aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/web.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/web.scm')
-rw-r--r--gnu/packages/web.scm862
1 files changed, 621 insertions, 241 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index a71a0e07a3..d7314f2932 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -10,12 +10,12 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
-;;; Copyright © 2016-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016, 2023 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2016–2023 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016–2024 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -30,7 +30,7 @@
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2019, 2020-2021, 2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2020-2021, 2023, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -40,7 +40,7 @@
;;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2020, 2021, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2021, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
@@ -64,8 +64,10 @@
;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2023 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
-;;; Copyright © 2023 Evgeny Pisemsky <evgeny@pisemsky.com>
+;;; Copyright © 2023 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -124,6 +126,7 @@
#:use-module (gnu packages crates-gtk)
#:use-module (gnu packages crates-tls)
#:use-module (gnu packages crates-web)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
@@ -148,6 +151,7 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gperf)
@@ -169,6 +173,7 @@
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp-xyz)
+ #:use-module (gnu packages logging)
#:use-module (gnu packages lsof)
#:use-module (gnu packages lua)
#:use-module (gnu packages mail)
@@ -184,9 +189,12 @@
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
+ #:use-module (gnu packages perl-compression)
+ #:use-module (gnu packages prometheus)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
@@ -199,7 +207,7 @@
#:use-module (gnu packages serialization)
#:use-module (gnu packages skribilo)
#:use-module (gnu packages sphinx)
- #:use-module (gnu packages syncthing)
+ #:use-module (gnu packages telephony)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages time)
@@ -232,7 +240,7 @@
`(#:tests? #f ; no target
#:imported-modules
((guix build copy-build-system)
- ,@%gnu-build-system-modules)
+ ,@%default-gnu-imported-modules)
#:modules
(((guix build copy-build-system) #:prefix copy:)
(guix build gnu-build-system)
@@ -298,17 +306,18 @@
"1id45r2ccgkbjm9i998997ch32lvicpyynyx8x6aa4420wmdf5ps"))))
(build-system gnu-build-system)
(native-inputs (list `(,pcre "bin"))) ;for 'pcre-config'
- (inputs (list apr apr-util openssl perl)) ; needed to run bin/apxs
+ (inputs (list apr apr-util libxcrypt openssl perl)) ; needed to run bin/apxs
(arguments
- `(#:test-target "test"
- #:configure-flags (list "--enable-rewrite"
- "--enable-userdir"
- "--enable-vhost-alias"
- "--enable-ssl"
- "--enable-mime-magic"
- (string-append "--sysconfdir="
- (assoc-ref %outputs "out")
- "/etc/httpd"))))
+ (list
+ #:test-target "test"
+ #:configure-flags #~(list "--enable-rewrite"
+ "--enable-userdir"
+ "--enable-vhost-alias"
+ "--enable-ssl"
+ "--enable-mime-magic"
+ (string-append "--sysconfdir="
+ #$output
+ "/etc/httpd"))))
(synopsis "Featureful HTTP server")
(description
"The Apache HTTP Server Project is a collaborative software development
@@ -338,52 +347,61 @@ and its related documentation.")
(define-public miniflux
(package
(name "miniflux")
- (version "2.0.46")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/miniflux/v2")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1qv95kipjlg374kiq6gssh5jsb5arahq4jsb7vkg3njnx0ldwvkb"))))
+ (version "2.2.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/miniflux/v2")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bllgjv7cdqrk3dm98dmp7mx0wmcbh410jcdcvid7z5qkr0fiy07"))))
(build-system go-build-system)
(arguments
- (list #:go go-1.19
- #:install-source? #f
- #:import-path "miniflux.app"
- #:build-flags
- #~(list (string-append
- "-ldflags= -X miniflux.app/version.Version=" #$version))
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'build 'disable-cgo
- (lambda _
- (setenv "CGO_ENABLED" "0")))
- (add-after 'install 'install-manpage
- (lambda* (#:key import-path #:allow-other-keys)
- (let ((man1 (string-append #$output "/share/man/man1/"))
- (page (format #f "src/~a/miniflux.1" import-path)))
- (install-file page man1))))
- (add-after 'install-manpage 'rename-binary
- (lambda _
- (let ((bindir (string-append #$output "/bin/")))
- (rename-file (string-append bindir "miniflux.app")
- (string-append bindir "miniflux"))))))))
+ (list
+ #:go go-1.22
+ #:install-source? #f
+ #:import-path "miniflux.app/v2"
+ #:build-flags
+ #~(list (string-append
+ "-ldflags= -X miniflux.app/v2/internal/version.Version="
+ #$version))
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: Replace when go-build-system supports nested path.
+ (replace 'check
+ (lambda* (#:key import-path tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "go" "test" "-v" "./...")))))
+ (add-after 'install 'install-manpage
+ (lambda* (#:key import-path #:allow-other-keys)
+ (let ((man1 (string-append #$output "/share/man/man1/"))
+ (page (format #f "src/~a/miniflux.1" import-path)))
+ (install-file page man1))))
+ (add-after 'install-manpage 'rename-binary
+ (lambda _
+ (let ((bindir (string-append #$output "/bin/")))
+ (rename-file (string-append bindir "v2")
+ (string-append bindir "miniflux"))))))))
(inputs
- (list go-github-com-coreos-go-oidc-v3
- go-github-com-go-telegram-bot-api-telegram-bot-api
+ (list go-github-com-abadojack-whatlanggo
+ go-github-com-andybalholm-brotli
+ go-github-com-coreos-go-oidc-v3
+ go-github-com-go-webauthn-webauthn
go-github-com-gorilla-mux
go-github-com-lib-pq
- go-github-com-matrix-org-gomatrix
go-github-com-prometheus-client-golang
go-github-com-puerkitobio-goquery
- go-github-com-rylans-getlang
go-github-com-tdewolff-minify-v2
go-github-com-yuin-goldmark
+ go-golang-org-x-crypto
+ go-golang-org-x-net
+ go-golang-org-x-oauth2
go-golang-org-x-term
- go-mvdan-cc-xurls))
+ go-golang-org-x-text
+ go-mvdan-cc-xurls-v2))
(home-page "https://miniflux.app/")
(synopsis "Minimalist and opinionated feed reader")
(description
@@ -397,7 +415,7 @@ and its related documentation.")
@item Use only modern vanilla Javascript (ES6 and Fetch API)
@item Single binary compiled statically without dependency
@item The number of features is voluntarily limited
-@end itemize\n")
+@end itemize")
(license license:asl2.0)))
(define-public mod-wsgi
@@ -458,24 +476,24 @@ replacing them with data URIs.")
(define-public monolith
(package
(name "monolith")
- (version "2.7.0")
+ (version "2.8.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Y2Z/monolith.git")
+ (url "https://github.com/Y2Z/monolith")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0ccwjsp8gdgp0wafc3zvlfmx3f58axc1k1ac80qha3g60xccqn56"))))
+ (base32 "0xr63302yb5k9c2sihd1iy97j5c44d4jrzfaiwm81d9li577ih58"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-atty" ,rust-atty-0.2)
- ("rust-base64" ,rust-base64-0.13)
+ ("rust-base64" ,rust-base64-0.21)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-3)
- ("rust-cssparser" ,rust-cssparser-0.29)
+ ("rust-cssparser" ,rust-cssparser-0.33)
("rust-encoding-rs" ,rust-encoding-rs-0.8)
("rust-html5ever" ,rust-html5ever-0.24)
("rust-percent-encoding" ,rust-percent-encoding-2)
@@ -510,16 +528,16 @@ the same, being completely separated from the Internet.")
;; Track the ‘mainline’ branch. Upstream considers it more reliable than
;; ’stable’ and recommends that “in general you deploy the NGINX mainline
;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
- (version "1.23.3")
+ (version "1.27.1")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "0m5s8a04jlpv6qhk09sfqbj4rxj38g6923w12j5y3ymrvf3mgjvm"))))
+ "1z5x0i0k1hmnxm7mb3dfn6qrz9am96my5ivinxl3gsp1dj5acyxx"))))
(build-system gnu-build-system)
- (inputs (list libxml2 libxslt openssl pcre zlib))
+ (inputs (list libxcrypt libxml2 libxslt openssl pcre zlib))
(arguments
(list
#:tests? #f ; no test target
@@ -533,6 +551,7 @@ the same, being completely separated from the Internet.")
"--with-http_sub_module"
"--with-pcre-jit"
"--with-debug"
+ "--with-compat"
"--with-stream"
"--with-stream_ssl_module"
"--with-http_stub_status_module"
@@ -607,9 +626,9 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(define-public nginx-documentation
;; This documentation should be relevant for the current nginx package.
- (let ((version "1.23.3")
- (revision 2916)
- (changeset "178f55cf631a"))
+ (let ((version "1.27.1")
+ (revision 3114)
+ (changeset "051789a80bcb"))
(package
(name "nginx-documentation")
(version (simple-format #f "~A-~A-~A" version revision changeset))
@@ -621,7 +640,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(file-name (string-append name "-" version))
(sha256
(base32
- "0b03dnniwm3p3gd76vqs6lj2z4blqmb7y4lhn9vg7xjz0yqgzvn2"))))
+ "0p198cjnhypssmj4mrj6wx2lbrfgw84i2fa4ydzdbjgkdzp803mv"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no test suite
@@ -631,7 +650,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(let ((output (assoc-ref outputs "out")))
- (substitute* "umasked.sh"
+ (substitute* "tools/umasked.sh"
((" /bin/sh") (string-append " " (which "sh"))))
;; The documentation includes a banner, which makes sense on
;; the NGinx website, but doesn't make much sense when
@@ -674,7 +693,8 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(sha256
(base32 "1hjysrl15kh5233w7apq298cc2bp4q1z5mvaqcka9pdl90m0vhbw"))))
(build-system gnu-build-system)
- (inputs `(("openssl" ,openssl)
+ (inputs `(("libxcrypt" ,libxcrypt)
+ ("openssl" ,openssl)
("pcre" ,pcre)
("nginx-sources" ,(package-source nginx))
("zlib" ,zlib)))
@@ -733,6 +753,7 @@ ngx_http_accept_language_module~%")
"--with-http_v2_module"
"--with-pcre-jit"
"--with-debug"
+ "--with-compat"
;; Even when not cross-building, we pass the
;; --crossbuild option to avoid customizing for the
;; kernel version on the build machine.
@@ -1543,7 +1564,7 @@ efficiently. It gives the application developer no more than 4 methods.")
(invoke (string-append (assoc-ref outputs "out") "/bin/ktImportText")
"ec.tsv")))))))
(inputs
- (list curl gnu-make perl))
+ (list bash-minimal curl gnu-make perl))
(home-page "https://github.com/marbl/Krona/wiki")
(synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
(description
@@ -1591,6 +1612,30 @@ current version of any major web browser.")
style API.")
(license license:expat))))
+(define-public libjwt
+ (package
+ (name "libjwt")
+ (version "1.17.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/benmcollins/libjwt/releases/download/v"
+ version "/libjwt-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1bpfaa0y8bccz5hr677lkrprs07akx02k0qbf82z2c8syr24a77i"))))
+ (build-system gnu-build-system)
+ (inputs
+ (list jansson openssl))
+ (native-inputs
+ (list check pkg-config))
+ (home-page "https://github.com/benmcollins/libjwt")
+ (synopsis "C @acronym{JWT, JSON Web Token} library")
+ (description "@code{libjwt} is a @acronym{JWT, JSON Web Token} library for
+C.")
+ (license license:mpl2.0)))
+
(define-public yajl
(package
(name "yajl")
@@ -1651,7 +1696,7 @@ for efficient socket-like bidirectional reliable communication channels.")
(define-public wabt
(package
(name "wabt")
- (version "1.0.34")
+ (version "1.0.36")
(source
(origin
(method git-fetch)
@@ -1661,7 +1706,7 @@ for efficient socket-like bidirectional reliable communication channels.")
(recursive? #true)))
(file-name (git-file-name name version))
(sha256
- (base32 "1vxvc34b7a7lkrmzdb5cjv0b54vhiyr33sy0i2ps5jrmg5rqqmia"))
+ (base32 "1gypy9bn2nvmfa469fi6kwsyw11j0vqkxm7givs3gidjpsy1bk0a"))
(modules '((guix build utils)))
(snippet
'(delete-file-recursively "third_party/gtest/"))))
@@ -1956,7 +2001,7 @@ and other data, for distribution on the web.")
(define-public tinyproxy
(package
(name "tinyproxy")
- (version "1.11.1")
+ (version "1.11.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/tinyproxy/tinyproxy/"
@@ -1964,7 +2009,7 @@ and other data, for distribution on the web.")
version ".tar.xz"))
(sha256
(base32
- "0z0gnk74y68fv34vlgn2mf0zp1h3s27dbz8a1nwsxl0mh928hqyn"))))
+ "0sm2i05sq2mkyix7dsvm9abb3vr2nnciqywmwa3wk4b6f206h4ka"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test" ; ‘make check’ silently does nothing
@@ -2038,7 +2083,7 @@ of people.")
(base32
"0ysqylpyv17s52634wn3vrwf7y9b5ig7fdfv8vwj1272lvv68qgk"))))
(build-system pyproject-build-system)
- (native-inputs (list python-nose2))
+ (native-inputs (list python-nose2 python-setuptools python-wheel))
(inputs
(list python-jwcrypto
python-numpy
@@ -2054,6 +2099,65 @@ begins forwarding traffic between the client and the target in both
directions.")
(license license:lgpl3)))
+;; This is a variant of esbuild that builds and installs the nodejs API.
+;; Eventually, this should probably be merged with the esbuild package.
+(define-public esbuild-node
+ (package
+ (inherit esbuild)
+ (name "esbuild-node")
+ (version (package-version esbuild))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/evanw/esbuild")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "09r1xy0kk6c9cpz6q0mxr4why373pwxbm439z2ihq3k1d5kk7x4w"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove prebuilt binaries
+ '(delete-file-recursively "lib/npm/exit0"))))
+ (arguments
+ (list
+ #:import-path "github.com/evanw/esbuild/cmd/esbuild"
+ #:unpack-path "github.com/evanw/esbuild"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'build 'build-platform
+ (lambda* (#:key unpack-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" unpack-path)
+ ;; We're using Node 10, which doesn't have this method.
+ (substitute* "scripts/esbuild.js"
+ (("exports.buildNativeLib" m)
+ (string-append
+ "Object.fromEntries = entries => entries.reduce((result, entry) => (result[entry[0]] = entry[1], result), {});\n"
+ m)))
+ ;; Must be writable.
+ (for-each make-file-writable (find-files "." "."))
+ (invoke "node" "scripts/esbuild.js"
+ (string-append #$output "/bin/esbuild"))
+ (let ((modules (string-append #$output "/lib/node_modules/esbuild")))
+ (mkdir-p modules)
+ (copy-recursively "npm/esbuild" modules)))))
+ (replace 'check
+ (lambda* (#:key tests? unpack-path #:allow-other-keys)
+ (when tests?
+ ;; The "Go Race Detector" is only supported on 64-bit
+ ;; platforms, this variable disables it.
+ ;; TODO: Causes too many rebuilds, rewrite to limit to x86_64,
+ ;; aarch64 and ppc64le.
+ #$(if (target-riscv64?)
+ `(setenv "ESBUILD_RACE" "")
+ #~(unless #$(target-64bit?)
+ (setenv "ESBUILD_RACE" "")))
+ (with-directory-excursion (string-append "src/" unpack-path)
+ (invoke "make" "test-go"))))))))
+ (native-inputs
+ (modify-inputs (package-native-inputs esbuild)
+ (append node)))))
+
(define-public wwwoffle
(package
(name "wwwoffle")
@@ -2082,6 +2186,57 @@ modifying pages and incoming and outgoing headers, monitoring pages for
changes, and much more.")
(license license:gpl2+)))
+(define-public libjuice
+ (package
+ (name "libjuice")
+ (version "1.4.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/paullouisageneau/libjuice")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "035kqyp5bcawzkpqpjb1qjwqf0dp2gm9h2j9py5iiahcvfjwh70i"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ; requires internet access
+ (home-page "https://github.com/paullouisageneau/libjuice")
+ (synopsis "UDP Interactive Connectivity Establishment library")
+ (description "@code{libjuice} opens bidirectionnal User Datagram
+Protocol (UDP) streams with Network Address Translator (NAT) traversal. It's a
+simplified implementation of the Interactive Connectivity Establishment (ICE)
+protocol, client-side and server-side, written in C without dependencies for
+POSIX platforms.")
+ (license license:mpl2.0)))
+
+(define-public libdatachannel
+ (package
+ (name "libdatachannel")
+ (version "0.21.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/paullouisageneau/libdatachannel")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11icbyd71dw5ywjdviq580xvad24yfsjj3c5zpjqsxc883i40dxi"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ; requires internet access
+ #:configure-flags
+ #~'("-DPREFER_SYSTEM_LIB=ON")))
+ (inputs (list libjuice libsrtp nlohmann-json openssl plog usrsctp))
+ (home-page "https://libdatachannel.org/")
+ (synopsis "WebRTC Data Channels and WebSockets library")
+ (description "@code{libdatachannel} is a standalone implementation of WebRTC
+Data Channels, WebRTC Media Transport, and WebSockets in C++17 with C bindings
+for POSIX platforms. WebRTC is a W3C and IETF standard enabling real-time
+peer-to-peer data and media exchange between two devices.")
+ (license license:mpl2.0)))
+
(define-public liboauth
(package
(name "liboauth")
@@ -2094,7 +2249,16 @@ changes, and much more.")
(base32
"07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"))))
(build-system gnu-build-system)
- (arguments '(#:configure-flags '("--enable-nss")))
+ (arguments
+ (list
+ #:configure-flags ''("--enable-nss")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-C-unicode-locale
+ (lambda _
+ (substitute* "tests/commontest.c"
+ (("en_US\\.UTF-8")
+ "C.UTF-8")))))))
(native-inputs (list pkg-config))
(propagated-inputs
(list curl nss))
@@ -3387,34 +3551,55 @@ which can be used to parse directory listings.")
(define-public perl-finance-quote
(package
(name "perl-finance-quote")
- (version "1.47")
+ (version "1.59")
(source
(origin
(method url-fetch)
- (uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
+ (uri (string-append "https://cpan.metacpan.org/authors/id/B/BP/BPSCHUCK/"
"Finance-Quote-" version ".tar.gz"))
(sha256
- (base32 "0gzbq85738f299jaw4nj3ljnka380j2y6yspmyl71rgfypqjvbr7"))
- (patches (search-patches
- "perl-finance-quote-unuse-mozilla-ca.patch"))))
+ (base32 "0a19y5bj2pvdlfi747ihgz5khjlfkhjakv712r0gz0n6miwjiscs"))))
(build-system perl-build-system)
+ (native-inputs
+ (list perl-test-harness
+ perl-date-manip
+ perl-date-range
+ perl-date-simple
+ perl-datetime
+ perl-datetime-format-iso8601
+ perl-string-util
+ perl-pathtools
+ perl-test-pod
+ perl-test-pod-coverage))
(propagated-inputs
- (list perl-cgi
- perl-datetime
+ (list perl-datetime
+ perl-datetime-format-strptime
perl-html-parser
perl-html-tableextract
+ perl-html-tokeparser-simple
perl-html-tree
+ perl-html-treebuilder-xpath
+ perl-http-cookiejar
perl-http-cookies
perl-http-message
+ perl-io-string
perl-json
perl-libwww
perl-lwp-protocol-https
- perl-uri))
+ perl-mozilla-ca
+ perl-spreadsheet-xlsx
+ perl-readonly
+ perl-string-util
+ perl-text-template
+ perl-try-tiny
+ perl-web-scraper
+ perl-xml-libxml))
(home-page "https://metacpan.org/release/Finance-Quote")
(synopsis "Stock and mutual fund quotes")
(description
- "Finance::Quote gets stock quotes from various internet sources, including
-Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
+ "The @code{Finance::Quote} module retries stock quotes from various
+internet sources, including Yahoo! Finance, Fidelity Investments, and the
+Australian Stock Exchange.")
(license license:gpl2)))
(define-public perl-gssapi
@@ -3535,6 +3720,27 @@ composed of HTML::Element style components.")
syntactic legitmacy.")
(license license:artistic2.0)))
+(define-public perl-html-selector-xpath
+ (package
+ (name "perl-html-selector-xpath")
+ (version "0.28")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-" version
+ ".tar.gz"))
+ (sha256
+ (base32 "03wdwnrf0bvr2dw01njnz3a9mw2kl7ad7krh25j3vkyj7vq1f9s3"))))
+ (build-system perl-build-system)
+ (native-inputs (list perl-test-base
+ perl-test-pod))
+ (home-page "https://metacpan.org/release/HTML-Selector-XPath")
+ (synopsis "CSS Selector to XPath compiler")
+ (description "@code{HTML::Selector::XPath} is a Perl module for parsing
+and scraping XML/HTML documents using XPath expressions.")
+ (license license:perl-license)))
+
(define-public perl-html-tableextract
(package
(name "perl-html-tableextract")
@@ -3557,6 +3763,29 @@ syntactic legitmacy.")
in tables within an HTML document, either as text or encoded element trees.")
(license license:perl-license)))
+(define-public perl-html-tokeparser-simple
+ (package
+ (name "perl-html-tokeparser-simple")
+ (version "3.16")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/O/OV/OVID/HTML-TokeParser-Simple-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "17aa1v62sp8ycxcicwhankmj4brs6nnfclk9z7mf1rird1f164gd"))))
+ (build-system perl-build-system)
+ (native-inputs (list perl-module-build))
+ (propagated-inputs (list perl-html-parser
+ perl-html-tagset
+ perl-sub-override))
+ (home-page "https://metacpan.org/release/HTML-TokeParser-Simple")
+ (synopsis "Easy to use parsing interface")
+ (description "Provides @code{HTML::TokeParser::Simple}, a simpler interface
+to @code{HTML::TokeParser} for parsing HTML.")
+ (license license:perl-license)))
+
(define-public perl-html-tree
(package
(name "perl-html-tree")
@@ -3650,6 +3879,26 @@ for the variables, loops and branches declared in the template. This allows
you to separate design from the data.")
(license license:perl-license)))
+(define-public perl-html-treebuilder-xpath
+ (package
+ (name "perl-html-treebuilder-xpath")
+ (version "0.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1wx4i1scng20n405fp3a4vrwvvq9bvbmg977wnd5j2ja8jrbvsr5"))))
+ (build-system perl-build-system)
+ (propagated-inputs (list perl-html-tree perl-xml-xpathengine))
+ (home-page "https://metacpan.org/release/HTML-TreeBuilder-XPath")
+ (synopsis "XPath support for @code{HTML::TreeBuilder}")
+ (description "This module implements @code{HTML::TreeBuilder::XPath} for
+@code{HTML::TreeBuilder}, making it easy to parse documents using XPath.")
+ (license license:perl-license)))
+
(define-public perl-http-body
(package
(name "perl-http-body")
@@ -4737,6 +4986,38 @@ URI::Find::Schemeless. For a command-line interface, urifind is provided.")
methods for WebSocket URIs as it does for HTTP URIs.")
(license license:perl-license)))
+(define-public perl-web-scraper
+ (package
+ (name "perl-web-scraper")
+ (version "0.38")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1gs3fmbc83j34c0sig1hkpnm26ngnyi5kgq5dl8vxvkzimgnwnzr"))))
+ (build-system perl-build-system)
+ (native-inputs (list perl-module-build-tiny
+ perl-test-base
+ perl-test-requires))
+ (propagated-inputs (list perl-html-parser
+ perl-html-selector-xpath
+ perl-html-tagset
+ perl-html-tree
+ perl-html-treebuilder-xpath
+ perl-libwww
+ perl-universal-require
+ perl-uri
+ perl-xml-xpathengine
+ perl-yaml))
+ (home-page "https://metacpan.org/release/Web-Scraper")
+ (synopsis
+ "Web Scraping toolkit using HTML and CSS Selectors or XPath expressions")
+ (description "Perl module @code{Web::Scraper} is a toolkit for
+traversing and scraping sites, inspired by Ruby's Scapi.")
+ (license license:perl-license)))
+
(define-public perl-uri-template
(package
(name "perl-uri-template")
@@ -4927,11 +5208,15 @@ their web site.")
(string-append indent
"os.utime(os.path.join(root, file), (315619200, 315619200))\n"
line))))))))
+ (native-inputs
+ (list python-setuptools
+ python-wheel))
(inputs (list python))
(propagated-inputs
(list python-boto3
python-botocore
python-docutils
+ python-pip
python-six
python-virtualenv))
(home-page "https://github.com/4dn-dcic/python-lambda")
@@ -4977,13 +5262,13 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
(define-public python-tibanna
(package
(name "python-tibanna")
- (version "4.0.0")
+ (version "5.4.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "tibanna" version))
(sha256
(base32
- "185jr5b1dfgh82xcjal0y9wbzds37s0yhx0hp8awlvw26v72awv2"))))
+ "11pbyw881qaj08syc9mwr301rm3jhy6vyci98pxin2dwvyzkgwhd"))))
(build-system pyproject-build-system)
(arguments
;; Tests require AWS credentials and access to the internet.
@@ -5005,8 +5290,8 @@ Cloud.")
(license license:expat)))
(define-public guix-data-service
- (let ((commit "c18589249f4b78994db6715226334a28ae6bc85f")
- (revision "47"))
+ (let ((commit "62d6b5901331ad5f78ac65a8a9cb5410b60942cb")
+ (revision "56"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -5018,7 +5303,7 @@ Cloud.")
(file-name (git-file-name name version))
(sha256
(base32
- "1ny2vnabirw19wn8dlsrac8nqrbklzqr3l18ismmmy70s4xkaabh"))))
+ "0nfh13sgp9f66bpm476866lpwgfzhxg0k04rxbxnxq2qqij3s9g4"))))
(build-system gnu-build-system)
(arguments
(list
@@ -5076,7 +5361,8 @@ Cloud.")
(_ #t)))))))
(delete 'strip)))) ; As the .go files aren't compatible
(inputs
- (list ephemeralpg
+ (list bash-minimal
+ ephemeralpg
util-linux
postgresql-13
sqitch
@@ -5084,10 +5370,12 @@ Cloud.")
(propagated-inputs
(list guix
guile-fibers
+ guile-knots
guile-json-4
guile-email
guile-prometheus
- guile-squee))
+ guile-squee
+ guile-lzlib))
(native-inputs
(list (car (assoc-ref (package-native-inputs guix) "guile"))
autoconf
@@ -5245,7 +5533,7 @@ you'd expect.")
(define-public go-github-com-mikefarah-yq-v4
(package
(name "go-github-com-mikefarah-yq-v4")
- (version "4.34.2")
+ (version "4.44.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5254,7 +5542,7 @@ you'd expect.")
(file-name (git-file-name name version))
(sha256
(base32
- "0y5i0p4fiq0kad9xqihhyclhd9d3l2r5yligdkvsdc90hlqjmql3"))))
+ "0s7c8r6y5jv6wda2v3k47hawfdr9j3rwk717l6byvh5qsbbml0vd"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/mikefarah/yq/v4"
@@ -5267,15 +5555,19 @@ you'd expect.")
(propagated-inputs
(list go-github-com-a8m-envsubst
go-github-com-alecthomas-participle-v2
+ go-github-com-alecthomas-repr
go-github-com-dimchansky-utfbom
go-github-com-elliotchance-orderedmap
go-github-com-fatih-color
go-github-com-goccy-go-json
- go-github-com-goccy-yaml
+ go-github-com-goccy-go-yaml
go-github-com-jinzhu-copier
go-github-com-magiconair-properties
go-github-com-pelletier-go-toml-v2
+ go-github-com-pkg-diff
go-github-com-spf13-cobra
+ go-github-com-spf13-pflag
+ go-github-com-yuin-gopher-lua
go-golang-org-x-net
go-golang-org-x-text
go-gopkg-in-op-go-logging-v1
@@ -5305,53 +5597,29 @@ JSON, XML, properties, CSV and TSV.")
(propagated-inputs '())
(inputs (package-propagated-inputs go-github-com-mikefarah-yq-v4))))
-(define-public go-github-com-itchyny-timefmt-go
+(define-public go-github-com-itchyny-gojq
(package
- (name "go-github-com-itchyny-timefmt-go")
- (version "0.1.4")
+ (name "go-github-com-itchyny-gojq")
+ (version "0.12.16")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/itchyny/timefmt-go")
+ (url "https://github.com/itchyny/gojq")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0z5z8hy5lbjqdxp544mf238i77n7pf7bv3psgr5gffh0630dsyag"))))
+ (base32 "0favs281iaq98cmqwf47amk12xpksznpwgfid24z8migkp8628wl"))))
(build-system go-build-system)
(arguments
- (list #:import-path "github.com/itchyny/timefmt-go"))
- (home-page "https://github.com/itchyny/timefmt-go")
- (synopsis "Efficient time formatting library (strftime, strptime) for Golang")
- (description
- "@code{timefmt-go} is a Go language package for formatting and parsing date
-time strings.")
- (license license:expat)))
-
-(define-public go-github-com-itchyny-gojq
- (package
- (name "go-github-com-itchyny-gojq")
- (version "0.12.11")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/itchyny/gojq")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1dqmnxnipi497nx9x10ifack09w41579svryss5q2w5wxy0pg764"))))
- (build-system go-build-system)
+ (list
+ #:import-path "github.com/itchyny/gojq"))
(inputs
- (list go-github-com-google-go-cmp-cmp
+ (list go-github-com-google-go-cmp
go-github-com-itchyny-timefmt-go
go-github-com-mattn-go-isatty
go-github-com-mattn-go-runewidth
go-gopkg-in-yaml-v3))
- (arguments
- (list
- #:import-path "github.com/itchyny/gojq/cmd/gojq"
- #:unpack-path "github.com/itchyny/gojq"))
(home-page "https://github.com/itchyny/gojq")
(synopsis "Pure Go implementation of jq")
(description
@@ -5366,7 +5634,48 @@ processor.")
(arguments
(ensure-keyword-arguments
(package-arguments go-github-com-itchyny-gojq)
- (list #:install-source? #f)))))
+ (list #:import-path "github.com/itchyny/gojq/cmd/gojq"
+ #:unpack-path "github.com/itchyny/gojq"
+ #:install-source? #f)))))
+
+(define-public go-jqp
+ (package
+ (name "go-jqp")
+ (version "0.7.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/noahgorstein/jqp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11xqh4113gkzp32hd4dg4cvjp40q3hxfh3889wd4bw2snl0alvcb"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:go go-1.22
+ #:embed-files #~(list ".*.xml")
+ #:install-source? #f
+ #:import-path "github.com/noahgorstein/jqp"))
+ (inputs
+ (list go-github-com-spf13-viper
+ go-github-com-spf13-cobra
+ go-github-com-muesli-termenv
+ go-github-com-itchyny-gojq
+ go-github-com-itchyny-timefmt-go
+ go-github-com-charmbracelet-lipgloss
+ go-github-com-charmbracelet-bubbletea
+ go-github-com-charmbracelet-bubbles
+ go-github-com-atotto-clipboard
+ go-github-com-alecthomas-chroma-v2))
+ (home-page "https://github.com/noahgorstein/jqp")
+ (synopsis "TUI playground to experiment with jq")
+ (description
+ "This package provides an interactive TUI to explor the @code{jq} command
+line utility. The command accepts an optional query argument which will be
+executed against the input JSON or newline-delimited JSON (NDJSON).")
+ (license license:expat)))
(define-public pup
(let ((revision "1")
@@ -5560,7 +5869,7 @@ NetSurf project.")
(define-public ikiwiki
(package
(name "ikiwiki")
- (version "3.20200202.3")
+ (version "3.20200202.4")
(source
(origin
(method git-fetch)
@@ -5570,13 +5879,12 @@ NetSurf project.")
(file-name (git-file-name name version))
(sha256
(base32
- "0fphyqzlk9y8v9s89ypsmrnbhyymzrpc2w0liy0n4knc7kk2pabq"))
+ "04ijislp7png18bg1carb71xk3sij9x5xpizfkxp6jbip6wdxsml"))
(snippet
'(begin
;; The POT file requires write permission during the build
;; phase.
- (chmod "po/ikiwiki.pot" #o644)
- #t))))
+ (chmod "po/ikiwiki.pot" #o644)))))
(build-system perl-build-system)
(arguments
`(#:phases
@@ -5587,16 +5895,14 @@ NetSurf project.")
(("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
(with-directory-excursion "po"
(substitute* "Makefile"
- (("PERL5LIB=") "PERL5LIB=${PERL5LIB}:")))
- #t))
+ (("PERL5LIB=") "PERL5LIB=${PERL5LIB}:")))))
(add-before 'build 'set-modification-times
;; The wiki '--refresh' steps, which are executed during
;; the check phase, require recent timestamps on files in
;; the 'doc' and 'underlays' directories.
(lambda _
(invoke "find" "doc" "underlays" "-type" "f" "-exec"
- "touch" "{}" "+")
- #t))
+ "touch" "{}" "+")))
(add-before 'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
;; Six tests use IPC::Run. For these tests the PERL5LIB
@@ -5621,9 +5927,10 @@ NetSurf project.")
(setenv "XDG_DATA_DIRS"
(string-append (assoc-ref inputs "shared-mime-info")
"/share"))
+ ;; This test fails: "Cannot read from a file without refname".
+ (rename-file "t/po.t" "t/po.t-")
;; CC is needed by IkiWiki/Wrapper.pm.
- (setenv "CC" "gcc")
- #t))
+ (setenv "CC" "gcc")))
(add-after 'install 'wrap-programs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -5632,8 +5939,7 @@ NetSurf project.")
(for-each (lambda (file)
(wrap-program file
`("PERL5LIB" ":" prefix (,path))))
- (find-files bin))
- #t))))))
+ (find-files bin))))))))
(native-inputs
(list which
gettext-minimal
@@ -5643,7 +5949,8 @@ NetSurf project.")
cvs
mercurial))
(inputs
- (list python-wrapper
+ (list bash-minimal
+ python-wrapper
perl-authen-passphrase
perl-cgi-simple
perl-db-file
@@ -6160,7 +6467,7 @@ and similar services.")
(define-public darkhttpd
(package
(name "darkhttpd")
- (version "1.13")
+ (version "1.16")
(source
(origin
(method git-fetch)
@@ -6169,20 +6476,19 @@ and similar services.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0w11xq160q9yyffv4mw9ncp1n0dl50d9plmwxb0yijaaxls9i4sk"))))
+ (base32 "15mmq1v8p50mm9wx5w6g4rlr40b7d044lw7rs1wyzdiw9lcnihvm"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags
- (list (string-append "CC=" ,(cc-for-target)))
- #:tests? #f ; No test suite
- #:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (install-file "darkhttpd"
- (string-append (assoc-ref outputs "out")
- "/bin")))))))
+ (list
+ #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
+ #:test-target "test"
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'install
+ (lambda _
+ (install-file "darkhttpd" (string-append #$output "/bin")))))))
+ (native-inputs (list which python-minimal))
(synopsis "Simple static web server")
(description "darkhttpd is a simple static web server. It is
standalone and does not need inetd or ucspi-tcp. It does not need any
@@ -6375,66 +6681,79 @@ deployments.")
(package
(name "varnish")
(home-page "https://varnish-cache.org/")
- (version "7.3.0")
+ (version "7.6.0")
(source (origin
(method url-fetch)
(uri (string-append home-page "_downloads/varnish-" version ".tgz"))
(sha256
(base32
- "1rsay4vrg0dvf8d7bpj8dvaax4v949p6x1l6qd3hdabhq87bpnz2"))))
+ "0p2xf4a8bk2w8j9q20fazrc93fwcfhw8zcvdd8ssbahvlg2q78mb"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
- (string-append "CC=" ,(cc-for-target))
- ;; Use absolute path of GCC so it's found at runtime.
- (string-append "PTHREAD_CC="
- (search-input-file %build-inputs
- "/bin/gcc"))
- "--localstatedir=/var")
+ (append
+ (if (target-x86-32?)
+ '(#:make-flags
+ (list "CFLAGS+=-fexcess-precision=standard"))
+ '())
+ (list
+ #:configure-flags
+ #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
+ (string-append "CC=" #$(cc-for-target))
+ ;; Use absolute path of GCC so it's found at runtime.
+ (string-append "PTHREAD_CC="
+ (search-input-file %build-inputs
+ "/bin/gcc"))
+ "--localstatedir=/var")
#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'use-absolute-file-names
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (let* ((inpts (or native-inputs inputs))
- (sh (search-input-file inpts "/bin/sh"))
- (rm (search-input-file inpts "/bin/rm")))
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-absolute-file-names
+ (lambda _
(substitute* '("bin/varnishtest/vtc_varnish.c"
"bin/varnishtest/vtc_process.c"
"bin/varnishtest/vtc_haproxy.c"
"bin/varnishtest/tests/u00014.vtc"
"bin/varnishd/mgt/mgt_vcc.c")
- (("/bin/sh") sh))
- (substitute* "bin/varnishd/mgt/mgt_shmem.c"
- (("rm -rf") (string-append rm " -rf")))
- (substitute* "bin/varnishtest/vtc_main.c"
- (("/bin/rm") rm)))))
- (add-before 'install 'patch-Makefile
- (lambda _
- (substitute* "Makefile"
- ;; Do not create /var/varnish during install.
- (("^install-data-am: install-data-local") "install-data-am: "))))
- (add-after 'install 'wrap-varnishd
- ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
- ;; environment variables to avoid propagating them to profiles.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (varnishd (string-append out "/sbin/varnishd"))
- (PATH (string-append (assoc-ref inputs "binutils") "/bin"))
- (LIBRARY_PATH (string-append (assoc-ref inputs "libc") "/lib")))
- (wrap-program varnishd
+ (("/bin/sh") (which "bash")))
+ (let* ((rm (which "rm")))
+ (substitute* "bin/varnishd/mgt/mgt_shmem.c"
+ (("rm -rf") (string-append rm " -rf")))
+ (substitute* "bin/varnishtest/vtc_main.c"
+ (("/bin/rm") rm)))
+ (substitute* "bin/varnishtest/tests/u00000.vtc"
+ (("/bin/echo") (which "echo")))))
+ (add-after 'unpack 'remove-failing-tests
+ (lambda _
+ ;; This test seems to fail because of
+ ;; Failed: Servname not supported for ai_socktype
+ (delete-file "bin/varnishtest/tests/b00085.vtc")))
+ (add-before 'install 'patch-Makefile
+ (lambda _
+ (substitute* "Makefile"
+ ;; Do not create /var/varnish during install.
+ (("^install-data-am: install-data-local")
+ "install-data-am: "))))
+ (add-after 'install 'wrap-varnishd
+ ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
+ ;; environment variables to avoid propagating them to profiles.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (wrap-program (string-append #$output "/sbin/varnishd")
;; Add binutils to PATH so gcc finds the 'as' executable.
- `("PATH" ":" prefix (,PATH))
+ `("PATH" ":" prefix (,(dirname (which "as"))))
;; Make sure 'crti.o' et.al is found.
- `("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))))))))
+ `("LIBRARY_PATH" ":" prefix
+ (,(dirname
+ (search-input-file inputs "lib/libc.so")))))))))))
(native-inputs
- (list pkg-config python-sphinx python-docutils))
+ (list pkg-config
+ python-sphinx
+ python-docutils))
(inputs
(list bash-minimal
- coreutils
+ coreutils-minimal
jemalloc
ncurses
pcre2
- python
+ python-minimal
readline))
(synopsis "Web application accelerator")
(description
@@ -6453,14 +6772,14 @@ configuration language.")
(package
(name "varnish-modules")
(home-page "https://github.com/varnish/varnish-modules")
- (version "0.19.0")
+ (version "0.25.0")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0qq5g6bbd1a1ml1wk8jj9z39a899jzqbf7aizr3pvyz0f4kz8mis"))))
+ "1jan3lwynp14awh6jk4zc052lm8m02vqms8ryc7zmjnm5jifdzlv"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config
@@ -6608,7 +6927,7 @@ functions of Tidy.")
`("PATH" ":" prefix (,mbed)))))))))
(inputs
;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
- (list libxslt libxml2 mbedtls-for-hiawatha
+ (list bash-minimal libxcrypt libxslt libxml2 mbedtls-for-hiawatha
`(,nghttp2 "lib") zlib))
(home-page "https://www.hiawatha-webserver.org")
(synopsis "Webserver with focus on security")
@@ -6621,48 +6940,66 @@ exploit attempts.")
(define-public python-httpbin
(package
(name "python-httpbin")
- (version "0.5.0")
+ (version "0.10.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "httpbin" version))
(sha256
- (base32
- "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
- (build-system python-build-system)
+ (base32 "1a8pcf6411pqkpl3c5z93wml0nw4xb6j9dnjl976ij31h9llh8b3"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-wheel))
(propagated-inputs
- (list python-decorator python-flask python-itsdangerous
- python-markupsafe python-six))
- (home-page "https://github.com/Runscope/httpbin")
+ (list python-brotlicffi
+ python-decorator
+ python-flasgger
+ python-flask
+ python-greenlet-2
+ python-itsdangerous
+ python-markupsafe
+ python-six
+ python-werkzeug))
+ ;; The archive in PyPI points to a fork of
+ ;; <https://github.com/postmanlabs/httpbin> which is unmaintained for 6y,
+ ;; where <https://github.com/Runscope/httpbin> rediects to. See
+ ;; <https://github.com/postmanlabs/httpbin/issues/719>
+ (home-page "https://github.com/psf/httpbin")
(synopsis "HTTP request and response service")
- (description "Testing an HTTP Library can become difficult sometimes.
-@code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
-response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
-JSON-encoded.")
+ (description
+ "Testing an HTTP Library can become difficult sometimes.
+@code{RequestBin} is fantastic for testing POST requests, but doesn't let you
+control the response. This exists to cover all kinds of HTTP scenarios. All
+endpoint responses are JSON-encoded.")
(license license:isc)))
(define-public python-pytest-httpbin
(package
(name "python-pytest-httpbin")
- (version "0.2.3")
+ (version "2.1.0")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "pytest-httpbin" version))
+ (uri (pypi-uri "pytest_httpbin" version))
(sha256
- (base32
- "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
- (build-system python-build-system)
+ (base32 "1iikdji2136mybjk7sczqa2qivlb6gchhkzyz4kq68j3hj1pj1fl"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-setuptools
+ python-wheel))
(propagated-inputs
- (list python-six python-httpbin python-pytest))
- (home-page
- "https://github.com/kevin1024/pytest-httpbin")
- (synopsis
- "Test your HTTP library against a local copy of httpbin")
+ (list python-httpbin
+ python-pytest
+ python-six))
+ (home-page "https://github.com/kevin1024/pytest-httpbin")
+ (synopsis "Test your HTTP library against a local copy of httpbin")
(description
- "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
-into your tests. It automatically starts up a HTTP server in a separate thread running
-@code{httpbin} and provides your test with the URL in the fixture.")
+ "@code{Pytest-httpbin} creates a @code{pytest} fixture that is
+dependency-injected into your tests. It automatically starts up a HTTP server
+in a separate thread running @code{httpbin} and provides your test with the
+URL in the fixture.")
(license license:expat)))
(define-public http-parser
@@ -7030,7 +7367,7 @@ file links.")
(define-public castor
(package
(name "castor")
- (version "0.8.18")
+ (version "0.9.0")
(source
(origin
(method git-fetch)
@@ -7039,18 +7376,25 @@ file links.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1l72r6a917ymc9pn8dllbal1xdczfai376nvqkiys5fm4j4s3zmj"))))
+ (base32 "1gda77ya2qbmjxfbw3yfr64inm8xw8243iwnfsgwwiwl35pw70n9"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-ansi-parser" ,rust-ansi-parser-0.6)
- ("rust-dirs" ,rust-dirs-2)
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-cargo-requirements
+ (lambda _
+ (substitute* "Cargo.toml" (("~") "")))))
+ #:cargo-inputs
+ `(("rust-ansi-parser" ,rust-ansi-parser-0.6)
+ ("rust-dirs" ,rust-dirs-3)
("rust-gdk" ,rust-gdk-0.13)
("rust-gtk" ,rust-gtk-0.8)
- ("rust-linkify" ,rust-linkify-0.4)
+ ("rust-linkify" ,rust-linkify-0.7)
("rust-native-tls" ,rust-native-tls-0.2)
- ("rust-open" ,rust-open-1)
+ ("rust-open" ,rust-open-2)
("rust-percent-encoding" ,rust-percent-encoding-2)
+ ("rust-textwrap" ,rust-textwrap-0.14)
("rust-url" ,rust-url-2))))
(native-inputs
(list pkg-config))
@@ -8049,6 +8393,37 @@ in Perl but is not nearly as capable as @code{HTML::Tidy}.")
@end itemize")
(license license:bsd-2))))
+(define-public gemget
+ (package
+ (name "gemget")
+ (version "1.9.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/makew0rld/gemget")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03x9apk73lwyafc4fd2vs033z7vcpk4k0jf97452l7pnlx2v57rz"))))
+ (build-system go-build-system)
+ (native-inputs
+ (list go-github-com-dustin-go-humanize
+ go-github-com-makeworld-the-better-one-go-gemini
+ go-github-com-makeworld-the-better-one-go-gemini-socks5
+ go-github-com-schollz-progressbar-v3
+ go-github-com-spf13-pflag))
+ (arguments
+ (list
+ #:install-source? #f
+ #:import-path "github.com/makeworld-the-better-one/gemget"))
+ (home-page "https://github.com/makew0rld/gemget")
+ (synopsis "Command line downloader for the Gemini protocol")
+ (description
+ "Gemget is a command line downloader for the Gemini protocol.
+It works well with streams and can print headers for debugging as well.")
+ (license license:expat)))
+
(define-public geomyidae
(package
(name "geomyidae")
@@ -8276,7 +8651,7 @@ compressed JSON header blocks.
(define-public nghttp3
(package
(name "nghttp3")
- (version "1.2.0")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
@@ -8285,7 +8660,7 @@ compressed JSON header blocks.
"nghttp3-" version ".tar.gz"))
(sha256
(base32
- "0xfa3nbpv3d514ssjpxvizqmss8z330w9p0bp045w4qsyr1vkj8c"))))
+ "186bjczm7hqs3icp5ss66pi78dinpsbyn15h2hhcmyhh7h8jzyd1"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
@@ -8373,7 +8748,8 @@ It does not support server push.")
(list autoconf automake uglify-js pkg-config
(lookup-package-native-input guix "guile")))
(inputs
- (list (lookup-package-native-input guix "guile")
+ (list bash-minimal
+ (lookup-package-native-input guix "guile")
guix
guile-zlib
guile-commonmark
@@ -8539,7 +8915,7 @@ bookmarks directly. It can also present them in a web interface with
(string-append #$output path))))))))
(inputs (list buku rofi))
(home-page "https://github.com/carnager/buku_run")
- (synopsis "rofi frontend for buku bookmarks manager")
+ (synopsis "@command{rofi} frontend for buku bookmarks manager")
(description
"This package provides a rofi frontend for the buku bookmark manager.")
(license license:gpl3+)))
@@ -8749,7 +9125,7 @@ solution for any project's interface needs:
(define-public gmid
(package
(name "gmid")
- (version "2.0.1")
+ (version "2.1.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -8757,7 +9133,7 @@ solution for any project's interface needs:
version "/gmid-" version ".tar.gz"))
(sha256
(base32
- "1riihzgshfk6907r4g69lrlvabiznwi5d7njk7y6km0695lf62g0"))))
+ "1gy41858xxgbvngw7b162sq8vddd104a3cdd53pp2vk1f91gxc4y"))))
(build-system gnu-build-system)
(arguments
(list #:test-target "regress"
@@ -8794,7 +9170,7 @@ in mind. It has features such as:
(define-public kiln
(package
(name "kiln")
- (version "0.4.0")
+ (version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8803,7 +9179,7 @@ in mind. It has features such as:
(file-name (git-file-name name version))
(sha256
(base32
- "1lvzv46hn80gffw47mcc28iahwqng7pvg500s9jlrq6mhr4k5ih4"))))
+ "1ynb079jsyv6viwdksavwar5lqj84ssfw39dl5da98z683xrvch5"))))
(build-system go-build-system)
(arguments
(list
@@ -9137,17 +9513,21 @@ tools:
(define-public uriparser
(package
(name "uriparser")
- (version "0.9.6")
+ (version "0.9.8")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/uriparser/uriparser"
- "/releases/download/uriparser-"
- version "/uriparser-" version ".tar.xz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/uriparser/uriparser")
+ (commit (string-append "uriparser-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0i7nxgy36i8v81r213sbvmpxxq9qb4rhii9qbvl1k32jd1ka1252"))))
+ "0qr3rc0iz1zxim1ylwzf7zijgnxpzv4m35fzvv5kf66a8bqhrw2k"))))
(build-system cmake-build-system)
(native-inputs (list googletest doxygen graphviz))
+ (arguments (if (%current-target-system)
+ (list #:configure-flags #~(list "-DURIPARSER_BUILD_TESTS=OFF"))
+ '()))
(synopsis "Strictly RFC 3986 compliant URI parsing and handling library")
(description "uriparser is a strictly RFC 3986 compliant URI parsing and
handling library written in C89 (\"ANSI C\"). uriparser is fast and supports