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.scm267
1 files changed, 241 insertions, 26 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b8ff15892b..f7d10a0a17 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
-;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
@@ -13,7 +13,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016, 2023 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016–2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -59,6 +59,9 @@
;;; Copyright © 2022 Pradana Aumars <paumars@courrier.dev>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
+;;; Copyright © 2023 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -147,6 +150,7 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages kde)
#:use-module (gnu packages kerberos)
+ #:use-module (gnu packages libbsd)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libunistring)
@@ -385,14 +389,14 @@ 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.2")
+ (version "1.23.3")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "0ihbkfcqlqadzkdk813raq15qqrahss1gdd81bkswanpsdrc4358"))))
+ "0m5s8a04jlpv6qhk09sfqbj4rxj38g6923w12j5y3ymrvf3mgjvm"))))
(build-system gnu-build-system)
(inputs (list libxml2 libxslt openssl pcre zlib))
(arguments
@@ -410,6 +414,7 @@ the same, being completely separated from the Internet.")
"--with-debug"
"--with-stream"
"--with-stream_ssl_module"
+ "--with-http_stub_status_module"
;; Even when not cross-building, we pass the
;; --crossbuild option to avoid customizing for the
;; kernel version on the build machine.
@@ -481,9 +486,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.1")
- (revision 2898)
- (changeset "0b7e004b5061"))
+ (let ((version "1.23.3")
+ (revision 2916)
+ (changeset "178f55cf631a"))
(package
(name "nginx-documentation")
(version (simple-format #f "~A-~A-~A" version revision changeset))
@@ -495,7 +500,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(file-name (string-append name "-" version))
(sha256
(base32
- "027q7gnx7k3hgj7qana44g383fvvj6ndz1kavr30mj2z87cnq3dp"))))
+ "0b03dnniwm3p3gd76vqs6lj2z4blqmb7y4lhn9vg7xjz0yqgzvn2"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no test suite
@@ -834,10 +839,61 @@ on-demand streaming from a file on disk and pulling from an upstream RTMP
stream. Remote control of the module is possible over HTTP.")
(license license:bsd-2)))
+(define-public nginx-module-vts
+ (package
+ (inherit nginx)
+ (name "nginx-module-vts")
+ (version "0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vozlt/nginx-module-vts")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "017298vpp1ra16xyfdbsczdrz0b0y67x6adkzcc98y6gb3kg52n7"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("nginx-sources" ,(package-source nginx))
+ ,@(package-inputs nginx)))
+ (arguments
+ (substitute-keyword-arguments
+ `(#:make-flags '("modules") ;Only build this module not all of nginx.
+ ,@(package-arguments nginx))
+ ((#:configure-flags flags)
+ #~(cons "--add-dynamic-module=." #$flags))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'unpack-nginx-sources
+ (lambda _
+ (begin
+ ;; The nginx source code is part of the module’s source.
+ (format #t "decompressing nginx source code~%")
+ (invoke "tar" "xvf" #$(this-package-input "nginx-sources")
+ ;; This package's LICENSE file would be
+ ;; overwritten with the one from nginx when
+ ;; unpacking the nginx source, so rename the nginx
+ ;; one when unpacking.
+ "--transform=s,/LICENSE$,/LICENSE.nginx,"
+ "--strip-components=1"))))
+ (replace 'install
+ (lambda _
+ (let ((modules-dir (string-append #$output
+ "/etc/nginx/modules")))
+ (install-file "objs/ngx_http_vhost_traffic_status_module.so" modules-dir))))
+ (delete 'fix-root-dirs)
+ (delete 'install-man-page)))))
+ (home-page "https://github.com/vozlt/nginx-module-vts")
+ (synopsis "NGINX module for monitoring virtual host traffic status")
+ (description "This NGINX module provides access to virtual host status information,
+similar to live activity monitoring provided with NGINX plus.")
+ (license license:bsd-2)))
+
(define-public lighttpd
(package
(name "lighttpd")
- (version "1.4.65")
+ (version "1.4.68")
(source (origin
(method url-fetch)
(uri (string-append "https://download.lighttpd.net/lighttpd/"
@@ -845,7 +901,7 @@ stream. Remote control of the module is possible over HTTP.")
"lighttpd-" version ".tar.xz"))
(sha256
(base32
- "1gi84fsc7x4d7r5vpg4pcwfk6j80wxvv64m94d041g4zca5ac3xz"))))
+ "111kb3lkcvbxw46dnsrgx9pfbdpzb807ikkn9pd1lgmnaap3fvz5"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
@@ -1502,6 +1558,53 @@ These tools are intended for use in (or for development of) toolchains or
other systems that want to manipulate WebAssembly files.")
(license license:asl2.0)))
+(define-public wasm3
+ (package
+ (name "wasm3")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wasm3/wasm3")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07zzmk776j8ydyxhrnnjiscbhhmz182a62r6aix6kfk5kq2cwia2"))))
+ (build-system cmake-build-system)
+ (arguments
+ ;; The default WASI option "uvwasi" causes CMake to initiate a 'git
+ ;; clone' which cannot happen within the build container.
+ '(#:configure-flags '("-DBUILD_WASI=simple")
+ ;; No check target. There are tests but they require a network
+ ;; connection to download the WebAssembly core test suite.
+ #:tests? #f
+ ;; There is no install target. Instead, we have to manually copy the
+ ;; wasm3 build artifacts to the output directory.
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bindir (string-append out "/bin"))
+ (includedir (string-append out "/include"))
+ (libdir (string-append out "/lib")))
+ (mkdir-p bindir)
+ (mkdir-p includedir)
+ (mkdir-p libdir)
+ (copy-file "wasm3" (string-append bindir "/wasm3"))
+ (for-each (lambda (header)
+ (copy-file header
+ (string-append includedir "/"
+ (basename header))))
+ (find-files "../source/source" "\\.h$"))
+ (copy-file "source/libm3.a"
+ (string-append libdir "/libm3.a"))))))))
+ (home-page "https://github.com/wasm3/wasm3")
+ (synopsis "WebAssembly interpreter")
+ (description "WASM3 is a fast WebAssembly interpreter.")
+ (license license:expat)))
+
(define-public websocketpp
(package
(name "websocketpp")
@@ -4927,7 +5030,7 @@ time strings.")
(define-public go-github-com-itchyny-gojq
(package
(name "go-github-com-itchyny-gojq")
- (version "0.12.9")
+ (version "0.12.11")
(source
(origin
(method git-fetch)
@@ -4936,7 +5039,7 @@ time strings.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1m4zchhhi2428r1v0qz08drac4s63mag1pwcqzsf6n495yc3g0h0"))))
+ (base32 "1dqmnxnipi497nx9x10ifack09w41579svryss5q2w5wxy0pg764"))))
(build-system go-build-system)
(inputs
(list go-github-com-google-go-cmp-cmp
@@ -5026,15 +5129,16 @@ playback of HTTP request/response traces.")
(define-public woof
(package
(name "woof")
- (version "2012-05-31")
+ (version "20220202")
(source (origin
- (method url-fetch)
- (uri (string-append
- "http://www.home.unix-ag.org/simon/woof-"
- version ".py"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/simon-budig/woof")
+ (commit (string-append name "-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq"))))
+ "0rm8xs5dhy42jhjpx30vwnvps2rnmrh8scfr89j6dnihc6mpjkmn"))))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
@@ -5047,11 +5151,10 @@ playback of HTTP request/response traces.")
(python (assoc-ref %build-inputs "python")))
(mkdir-p bin)
(with-directory-excursion bin
- (copy-file source "woof")
- (patch-shebang "woof" (list (string-append python "/bin")))
- (chmod "woof" #o555))
+ (copy-file (in-vicinity source "woof") "woof")
+ (patch-shebang "woof" (list (string-append python "/bin"))))
#t))))
- (inputs `(("python" ,python-2)))
+ (inputs (list python))
(home-page "http://www.home.unix-ag.org/simon/woof.html")
(synopsis "Single file web server")
(description "Woof (Web Offer One File) is a small simple web server that
@@ -6551,7 +6654,7 @@ file links.")
cairo
gdk-pixbuf
gtk+
- libressl
+ openssl-3.0
pango))
(home-page "https://git.sr.ht/~julienxx/castor")
(synopsis "Graphical client for plain-text protocols")
@@ -7474,6 +7577,73 @@ object. It's meant as a replacement for @code{HTML::Lint}, which is written
in Perl but is not nearly as capable as @code{HTML::Tidy}.")
(license license:artistic2.0)))
+(define-public gophernicus
+ ;; Contains some unreleased fixes.
+ (let ((commit "da3390089c2a856db1ab2e3bd9751b9a9101a33a")
+ (revision "0"))
+ (package
+ (name "gophernicus")
+ (version (git-version "3.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gophernicus/gophernicus")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a7kpymwqcsqzszdxvcqppbg61bpyg9f7raj783pldm4kf2wjyij"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ; No tests
+ #:configure-flags
+ ;; Listener and hostname used only in configuration files, which
+ ;; we don't install.
+ ;; This is what's done in the release.sh script.
+ #~(list "--listener=none" "--hostname=HOSTNAME")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-version
+ (lambda _
+ (substitute* "Makefile.in"
+ (("^(VERSION += ).*" _ prefix)
+ (string-append prefix #$version "\n")))
+ ;; This is done in the release.sh script.
+ (substitute* "README.md"
+ (("^(This release: Version )DEVEL\\b.*" _ prefix)
+ (string-append prefix #$version "\n"))
+ (("^NOTE: The master branch is rolling Development\\b.*")
+ ""))))
+ (replace 'configure
+ ;; The configure script is hand-written, not from GNU autotools.
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ (setenv "CC" #$(cc-for-target))
+ (setenv "HOSTCC" "gcc")
+ (apply invoke "./configure"
+ (string-append "--prefix=" #$output)
+ configure-flags))))))
+ ;; TODO: Make configure script find libwrap.
+ ;;(inputs
+ ;; (list tcp-wrappers))
+ (home-page "https://gophernicus.org/")
+ (synopsis "Gopher protocol server")
+ (description
+ "Gophernicus is a Gopher protocol server. Its features include:
+@itemize
+@item written with security in mind;
+@item automatically generated Gopher menus;
+@item gophertags for virtually renaming directories;
+@item personal gopherspaces, located in @file{~/public_gopher/};
+@item virtual hosting;
+@item CGI support;
+@item output filtering and PHP support;
+@item charset support and conversions;
+@item selector rewriting;
+@item session tracking and statistics;
+@item TLS/SSL and proxy support.
+@end itemize")
+ (license license:bsd-2))))
+
(define-public geomyidae
(package
(name "geomyidae")
@@ -7643,7 +7813,7 @@ compressed JSON header blocks.
(define-public hpcguix-web
(package
(name "hpcguix-web")
- (version "0.2.0")
+ (version "0.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7652,7 +7822,7 @@ compressed JSON header blocks.
(file-name (git-file-name name version))
(sha256
(base32
- "1l856d1vr63ns1sp9fm6v97p71mx00769k6lwzqzppsb9clksnwp"))))
+ "1g1sd5d6fhrblqk3rc8hzkk1sxyiilbb45kdgbrfg7ccd1sbic30"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -7677,9 +7847,11 @@ compressed JSON header blocks.
(bs (assoc-ref inputs "guile-bytestructures"))
(json (assoc-ref inputs "guile-json"))
(zlib (assoc-ref inputs "guile-zlib"))
+ (syntax (assoc-ref inputs "guile-syntax-highlight"))
(guile-cm (assoc-ref inputs
"guile-commonmark"))
- (deps (list guile gcrypt git bs zlib guile-cm guix json))
+ (deps (list guile gcrypt git bs zlib guile-cm
+ syntax guix json))
(effective
(read-line
(open-pipe* OPEN_READ
@@ -7709,6 +7881,7 @@ compressed JSON header blocks.
guile-zlib
guile-commonmark
guile-json-4
+ guile-syntax-highlight
bash-minimal))
(home-page "https://github.com/UMCUGenetics/hpcguix-web")
(synopsis "Web interface for cluster deployments of Guix")
@@ -8066,6 +8239,48 @@ concurrency, and return status.")
(license (list license:gpl3+
license:bsd-3)))) ;; for ini.c and ini.h
+(define-public vger
+ (package
+ (name "vger")
+ (version "2.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://tildegit.org/solene/vger")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jiwzn5dqadwq4ih3vzld66yq23gqsf7281sllh29bf6kmf9dz2k"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:test-target "test"
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-makefile
+ (lambda _
+ (substitute* "Makefile"
+ (("\\binstall -o root -g wheel vger ")
+ "install vger ")
+ (("\\binstall -o root -g wheel vger\\.8 ")
+ "install -m 644 vger.8 "))))
+ (add-before 'install 'make-install-dirs
+ (lambda _
+ (mkdir-p (string-append #$output "/bin"))
+ (mkdir-p (string-append #$output "/man/man8")))))))
+ (inputs
+ (list libbsd))
+ (home-page "https://tildegit.org/solene/vger")
+ (synopsis "Gemini protocol server")
+ (description "Vger is a Gemini protocol server that supports chroots,
+virtualhosts, CGI, default language choice, redirections and MIME-type
+detection. It delegates TLS support to an external daemon, for example
+@command{stunnel} on @command{inetd}.")
+ (license license:bsd-2)))
+
(define-public libzim
(package
(name "libzim")