;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 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 © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2019, 2020 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018, 2019 Julien Lepiller <julien@lepiller.eu>
#:use-module (guix build-system ant)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (gnu packages xml)
#:use-module ((srfi srfi-1) #:select (delete-duplicates)))
+(define-public qhttp
+ (package
+ (name "qhttp")
+ (version "3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/azadkuh/qhttp")
+ (commit (string-append "version-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cx23g4y4k4v9p5ph6h7gfhp8sfy1gcdv1g6bl44hppar1y0zfdq"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no target
+ #:imported-modules
+ ((guix build copy-build-system)
+ ,@%gnu-build-system-modules)
+ #:modules
+ (((guix build copy-build-system) #:prefix copy:)
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "commondir.pri"
+ (("\\$\\$PRJDIR/xbin")
+ (string-append (assoc-ref outputs "out") "/lib"))
+ (("-L")
+ "-lhttp_parser -L")
+ (("\\$\\$PRJDIR/3rdparty")
+ ""))
+ (substitute* "src/src.pro"
+ (("SOURCES \\+= \\$\\$PRJDIR/3rdparty/http-parser/http_parser.c")
+ "")
+ (("HEADERS \\+= \\$\\$PRJDIR/3rdparty/http-parser/http_parser.h")
+ ""))
+ (substitute* '("src/private/qhttpbase.hpp" "src/qhttpabstracts.cpp")
+ (("http-parser/http_parser.h")
+ "http_parser.h"))
+ #t))
+ (replace 'configure
+ (lambda _ (invoke "qmake")))
+ (replace 'install
+ (lambda args
+ (apply (assoc-ref copy:%standard-phases 'install)
+ #:install-plan
+ '(("src" "include"
+ #:include-regexp ("\\.hpp$")))
+ args)))
+ (add-after 'install 'remove-examples
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion
+ (string-append (assoc-ref outputs "out") "/lib")
+ (for-each delete-file
+ (list
+ "basic-server"
+ "helloworld"
+ "postcollector")))
+ #t)))))
+ (inputs
+ `(("http-parser" ,http-parser)
+ ("qtbase" ,qtbase)))
+ (home-page "https://github.com/azadkuh/qhttp/")
+ (synopsis "Qt-based HTTP Library")
+ (description
+ "Qhttp is a light-weight and asynchronous HTTP library
+(both server & client) in Qt5 and C++14.")
+ (license license:expat)))
+
(define-public httpd
(package
(name "httpd")
(define-public monolith
(package
(name "monolith")
- (version "2.4.0")
+ (version "2.4.1")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "18c6bsv9m3spiyfhqp08v807m93r6n9hrlv4qbfiqp4kw5aryb4h"))))
+ (base32 "1z0bcvk2cvx2cd0hs8addzcb070xvrkcxvg25691xw0ikiynpkwz"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
- (("rust-base64" ,rust-base64-0.13)
+ (("rust-atty" ,rust-atty-0.2)
+ ("rust-base64" ,rust-base64-0.13)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-2)
- ("rust-cssparser" ,rust-cssparser-0.27)
+ ("rust-cssparser" ,rust-cssparser-0.28)
("rust-html5ever" ,rust-html5ever-0.24)
("rust-regex" ,rust-regex-1)
- ("rust-reqwest" ,rust-reqwest-0.10)
+ ("rust-reqwest" ,rust-reqwest-0.11)
("rust-sha2" ,rust-sha2-0.9)
("rust-url" ,rust-url-2))
#:cargo-development-inputs
;; ’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/)
;; Consider updating the nginx-documentation package together with this one.
- (version "1.19.6")
+ (version "1.19.10")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "1d9kzks8x1226prjbpdin4dz93fjnv304zlqybfqachx5fh9a4di"))))
+ "121d11693d6dbim3lh64hrqi66z129z30cvcrpbnm631yl7jkl78"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)
("pcre" ,pcre)
"--with-http_v2_module"
"--with-pcre-jit"
"--with-debug"
+ "--with-stream"
;; Even when not cross-building, we pass the
;; --crossbuild option to avoid customizing for the
;; kernel version on the build machine.
(define-public nginx-documentation
;; This documentation should be relevant for the current nginx package.
- (let ((version "1.19.6")
- (revision 2636)
- (changeset "a0824dab33ff"))
+ (let ((version "1.19.10")
+ (revision 2708)
+ (changeset "f8686d85df53"))
(package
(name "nginx-documentation")
(version (simple-format #f "~A-~A-~A" version revision changeset))
(file-name (string-append name "-" version))
(sha256
(base32
- "06w6fg33pnkqpaagzp9rqizill61vj7db7083mrd6i6by0j7cp1b"))))
+ "00b0dkpblw3m2cwbbzv3miw47c0m3s0dvh1xy0hihkggy7mqv2r2"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no test suite
(define-public libwebsockets
(package
(name "libwebsockets")
- (version "1.3")
+ (version "4.1.6")
(source (origin
;; The project does not publish tarballs, so we have to take
;; things from Git.
(method git-fetch)
(uri (git-reference
(url "https://github.com/warmcat/libwebsockets")
- (commit (string-append "v" version
- "-chrome37-firefox30"))))
+ (commit (string-append "v" version))))
(sha256
(base32
- "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
+ "0x56v4hsx92vm1zibfmnqb5g3v23kzciffn3fjlsc3sly2pknhsg"))
(file-name (string-append name "-" version))))
(build-system cmake-build-system)
(define-public esbuild
(package
(name "esbuild")
- (version "0.8.51")
+ (version "0.11.12")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1j4qza2chng3az1h1fh9zbhxh99q7bfrqbgppyyq5947svi8fvaz"))
+ (base32 "1mxj4mrq1zbvv25alnc3s36bhnnhghivgwp45a7m3cp1389ffcd1"))
(modules '((guix build utils)))
(snippet
'(begin
(define-public perl-net-http
(package
(name "perl-net-http")
- (version "6.20")
+ (version "6.21")
(source (origin
(method url-fetch)
(uri (string-append
"Net-HTTP-" version ".tar.gz"))
(sha256
(base32
- "07lzfycza7qqxli18xgsnqwiwxapl0b64z33wfw62aai4hm7nllj"))))
+ "1i7fk6q1iaxzgf82mjd5hg77hvy7dbb79488cijg16dyfrds6nip"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-io-socket-ssl" ,perl-io-socket-ssl)
(define-public python-feedparser
(package
(name "python-feedparser")
- (version "5.2.1")
+ (version "6.0.2")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "feedparser" version ".tar.bz2"))
+ (uri (pypi-uri "feedparser" version ".tar.gz"))
(sha256
(base32
- "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
+ "0x0hm9brh3j71645pydvlkrwxaaca9dnwd7xahwjyjaz882s200v"))))
(build-system python-build-system)
(arguments
'(#:tests? #f))
license:freebsd-doc)))) ; documentation
(define-public python2-feedparser
- (package-with-python2 python-feedparser))
+ (package
+ (name "python2-feedparser")
+ (version "5.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "feedparser" version ".tar.bz2"))
+ (sha256
+ (base32
+ "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:python ,python-2))
+ (home-page
+ "https://github.com/kurtmckee/feedparser")
+ (synopsis "Parse feeds in Python")
+ (description
+ "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
+CDF, Atom 0.3, and Atom 1.0 feeds.")
+ (license (list license:bsd-2 ; source code
+ license:freebsd-doc)))) ; documentation
(define-public guix-data-service
- (let ((commit "b7ba8d0c2ca3aca9ba5b5f9f27b9778ee949d20e")
- (revision "25"))
+ (let ((commit "df2a0a73f1f35ea53ba6c07a6ad4c5347ba12b8f")
+ (revision "27"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
(file-name (git-file-name name version))
(sha256
(base32
- "0brv64bsqysl7dncz067blwvmqrlx99c2kwrgpz6k0nqv8nzsa28"))))
+ "1ss1prr98zdjkm97w24rd04lfnnvcw6xs0gwxqgd40briqisaa5g"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
#t)))
(delete 'strip)))) ; As the .go files aren't compatible
(inputs
- `(("guix" ,guile3.0-guix)
- ("guile-fibers" ,guile3.0-fibers)
- ("guile-json" ,guile3.0-json)
- ("guile-email" ,guile3.0-email)
+ `(("guix" ,guix)
+ ("guile-fibers" ,guile-fibers)
+ ("guile-json" ,guile-json-4)
+ ("guile-email" ,guile-email)
("guile-prometheus" ,guile-prometheus)
- ("guile-squee" ,guile3.0-squee)
+ ("guile-squee" ,guile-squee)
("ephemeralpg" ,ephemeralpg)
("util-linux" ,util-linux)
- ("postgresql" ,postgresql-11)
+ ("postgresql" ,postgresql-13)
("sqitch" ,sqitch)))
(native-inputs
`(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
(define-public stunnel
(package
(name "stunnel")
- (version "5.57")
+ (version "5.59")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.stunnel.org/downloads/stunnel-"
version ".tar.gz"))
(sha256
- (base32 "1q8gc05fiz7w55ws0whwzb94ffjnhzfppf1mhz1hf671vmrvjnmg"))))
+ (base32 "17yf2n47j5hw2y9527mrkx3j7q9jk5vvg46m3hgp1wg8dggpcxqk"))))
(build-system gnu-build-system)
(native-inputs
;; For tests.
(substitute* "tests/make_test"
(("/bin/sh ")
(string-append (which "sh") " ")))
+ ;; test requires networking
+ (delete-file "tests/recipes/055_socket_closed")
#t)))))
(home-page "https://www.stunnel.org")
(synopsis "TLS proxy for clients or servers")
(package
(name "varnish-modules")
(home-page "https://github.com/varnish/varnish-modules")
- (version "0.17.0")
+ (version "0.17.1")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0zg8y2sgkygdani70zp9rbx278431fmssj26d47c5qsiw939i519"))))
+ "1mzkad9r4rpm1fi7j7skwrsyzzbwcapfnlvvl1ls3rng2djcqb5j"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
JSON-encoded.")
(license license:isc)))
-(define-public python2-httpbin
- (package-with-python2 python-httpbin))
-
(define-public python-pytest-httpbin
(package
(name "python-pytest-httpbin")
"f/0001-url-treat-empty-port-as-default.patch"))
(sha256
(base32
- "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g"))))))))
+ "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g"))))))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; This assertion fails when building for i686-linux.
+ (substitute* "test.c"
+ (("assert\\(sizeof\\(http_parser\\) == 32\\);")
+ "assert(1);"))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
'("CC=gcc")))
#:phases
(modify-phases %standard-phases
- ,@(match (%current-system)
- ("armhf-linux"
- '((add-before 'check 'apply-assertion.patch
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((patch (assoc-ref inputs "assertion.patch")))
- (invoke "patch" "-p1" "-i" patch)
- #t)))))
- (_ '()))
,@(if (%current-target-system)
'((replace 'configure
(lambda* (#:key target #:allow-other-keys)
(string-append "AR=" target "-ar\n")))
#t)))
'((delete 'configure))))))
- (native-inputs
- `(,@(match (%current-system)
- ("armhf-linux"
- ;; A fix for <https://issues.guix.gnu.org/40604> which in turn
- ;; breaks i686-linux builds.
- `(("assertion.patch"
- ,@(search-patches "http-parser-fix-assertion-on-armhf.patch"))))
- (_ '()))))
(synopsis "HTTP request/response parser for C")
- (description "This is a parser for HTTP messages written in C. It parses
-both requests and responses. The parser is designed to be used in
+ (description "This is a parser for HTTP messages written in C. It
+parses both requests and responses. The parser is designed to be used in
high-performance HTTP applications. It does not make any syscalls nor
allocations, it does not buffer data, it can be interrupted at anytime.
Depending on your architecture, it only requires about 40 bytes of data per
(define-public python-httpretty
(package
(name "python-httpretty")
- (version "0.9.6")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "httpretty" version))
(sha256
- (base32 "1p1rb4mpngh0632xrmdfhvc8yink519yfkqz97d2ww3y0x2jvd81"))))
+ (base32 "1dg0nfl7i9kjnq98ww98x2afzav4mpgiwzvjc43ily1x9my94g75"))))
(build-system python-build-system)
- (propagated-inputs
- `(("python-six" ,python-six)))
+ (arguments
+ `(#:tests? #f ; Tests require network access.
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "nosetests"))
+ #t)))))
(native-inputs
`(("python-coverage" ,python-coverage)
- ("python-httplib2" ,python-httplib2)
- ("python-mock" ,python-mock)
+ ("python-eventlet" ,python-eventlet)
("python-nose" ,python-nose)
- ("python-nose-randomly" ,python-nose-randomly)
("python-rednose" ,python-rednose)
("python-requests" ,python-requests)
("python-sure" ,python-sure)
- ("python-tornado" ,python-tornado)
- ("python-urllib3" ,python-urllib3)))
+ ("python-tornado" ,python-tornado)))
(home-page "https://httpretty.readthedocs.io")
(synopsis "HTTP client mock for Python")
(description "@code{httpretty} is a helper for faking web requests,
(define-public java-tomcat
(package
(name "java-tomcat")
- (version "8.5.53")
+ (version "8.5.63")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/tomcat/tomcat-8/v"
version "/src/apache-tomcat-" version "-src.tar.gz"))
(sha256
(base32
- "15lwq3clf21hzk7mma70sffpxjqn8ww5mjq6zhmwcp4m17m22z26"))
+ "1wr6mpgbk2gs18vp8mdggiq6vifj68a875dd1fkdf7cs31q54rns"))
(modules '((guix build utils)))
;; Delete bundled jars.
(snippet
(define-public java-eclipse-jetty-util
(package
(name "java-eclipse-jetty-util")
- (version "9.4.6")
+ (version "9.4.39")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/eclipse/jetty.project/"
- "archive/jetty-" version ".v20170531.tar.gz"))
+ "archive/jetty-" version ".v20210325.tar.gz"))
(sha256
(base32
- "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
+ "0b4hy4zmdmfbqk9bzmxk7v75y2ysqiappkip4z3hb9lxjvjh0b19"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "eclipse-jetty-util.jar"
#:source-dir "src/main/java"
+ #:tests? #f; require junit 5
#:test-exclude
(list "**/Abstract*.java"
;; requires network
(inputs
`(("slf4j" ,java-slf4j-api)
("servlet" ,java-javaee-servletapi)))
- (native-inputs
- `(("junit" ,java-junit)
- ("hamcrest" ,java-hamcrest-all)
- ("perf-helper" ,java-eclipse-jetty-perf-helper)
- ("test-helper" ,java-eclipse-jetty-test-helper)))
(home-page "https://www.eclipse.org/jetty/")
(synopsis "Utility classes for Jetty")
(description "The Jetty Web Server provides an HTTP server and Servlet
`(#:jar-name "eclipse-jetty-io.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
+ #:tests? #f; require junit 5
#:test-exclude (list "**/Abstract*.java"
;; Abstract class
"**/EndPointTest.java")
`(#:jar-name "eclipse-jetty-http.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
+ #:tests? #f; require junit 5
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
("io" ,java-eclipse-jetty-io)
("jmx" ,java-eclipse-jetty-jmx)
("util" ,java-eclipse-jetty-util)))
- (native-inputs
- `(("test-classes" ,java-eclipse-jetty-http-test-classes)
- ,@(package-native-inputs java-eclipse-jetty-util)))
(synopsis "Core jetty server artifact")
(description "The Jetty Web Server provides an HTTP server and Servlet
container capable of serving static and dynamic content either from a standalone
`(#:jar-name "eclipse-jetty-security.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
+ #:tests? #f; require junit 5
#:test-exclude (list "**/ConstraintTest.*") ; This test fails
#:phases
(modify-phases %standard-phases
("http" ,java-eclipse-jetty-http)
("server" ,java-eclipse-jetty-server)
("util" ,java-eclipse-jetty-util)))
- (native-inputs
- `(("io" ,java-eclipse-jetty-io)
- ,@(package-native-inputs java-eclipse-jetty-util)))
(synopsis "Jetty security infrastructure")
(description "The Jetty Web Server provides an HTTP server and Servlet
container capable of serving static and dynamic content either from a standalone
`(("io" ,java-eclipse-jetty-io-9.2)
,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+(define-public java-eclipse-jetty-util-ajax
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-util-ajax")
+ (arguments
+ `(#:jar-name "eclipse-jetty-util-ajax.jar"
+ #:source-dir "jetty-util-ajax/src/main/java"
+ #:tests? #f)); require junit 5
+ (inputs
+ `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
+ ("java-javaee-servletapi" ,java-javaee-servletapi)))))
+
(define-public java-eclipse-jetty-servlet
(package
(inherit java-eclipse-jetty-util)
`(#:jar-name "eclipse-jetty-servlet.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
+ #:tests? #f; require junit 5
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(inputs
`(("slf4j" ,java-slf4j-api)
("java-javaee-servletapi" ,java-javaee-servletapi)
+ ("java-eclipse-jetty-util-ajax" ,java-eclipse-jetty-util-ajax)
("http" ,java-eclipse-jetty-http)
- ("http-test" ,java-eclipse-jetty-http-test-classes)
("io" ,java-eclipse-jetty-io)
("jmx" ,java-eclipse-jetty-jmx)
("security" ,java-eclipse-jetty-security)
`(#:jar-name "eclipse-jetty-webapp.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
+ #:tests? #f; require junit 5
;; One test fails
#:test-exclude (list "**/WebAppContextTest.java")
#:phases
(inputs
`(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
+ ("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
- ("java-javaee-servletapi" ,java-javaee-servletapi)))
- (native-inputs
- `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
- ,@(package-native-inputs java-eclipse-jetty-util)))))
+ ("java-javaee-servletapi" ,java-javaee-servletapi)))))
(define-public java-eclipse-jetty-webapp-9.2
(package