X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/d85edd7a9528fc9f3f0b6d4d4ce5c9e144ebbedf..e0f983c0d55e301fc646d956039cc425ad18076d:/gnu/packages/web.scm diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 68fd9c4d11..4ff6411e63 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2016 Jelle Licht -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Clément Lassieur @@ -22,7 +22,7 @@ ;;; Copyright © 2017, 2018, 2020 Marius Bakke ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2017 Petter -;;; Copyright © 2017 Pierre Langlois +;;; Copyright © 2017, 2021 Pierre Langlois ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2017, 2019, 2020 Christopher Baines ;;; Copyright © 2018, 2019 Julien Lepiller @@ -77,6 +77,7 @@ #: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) @@ -170,6 +171,79 @@ #: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") @@ -242,7 +316,7 @@ Interface} specification.") (define-public monolith (package (name "monolith") - (version "2.4.0") + (version "2.4.1") (source (origin (method git-fetch) @@ -251,17 +325,18 @@ Interface} specification.") (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 @@ -292,14 +367,14 @@ the same, being completely separated from the Internet.") ;; ’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) @@ -322,6 +397,7 @@ the same, being completely separated from the Internet.") "--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. @@ -382,9 +458,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.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)) @@ -396,7 +472,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.") (file-name (string-append name "-" version)) (sha256 (base32 - "06w6fg33pnkqpaagzp9rqizill61vj7db7083mrd6i6by0j7cp1b")))) + "00b0dkpblw3m2cwbbzv3miw47c0m3s0dvh1xy0hihkggy7mqv2r2")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no test suite @@ -1256,18 +1332,17 @@ parser written in ANSI C and a small validating JSON generator.") (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) @@ -1479,7 +1554,7 @@ used to validate and fix HTML data.") (define-public esbuild (package (name "esbuild") - (version "0.8.51") + (version "0.11.12") (source (origin (method git-fetch) @@ -1488,7 +1563,7 @@ used to validate and fix HTML data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1j4qza2chng3az1h1fh9zbhxh99q7bfrqbgppyyq5947svi8fvaz")) + (base32 "1mxj4mrq1zbvv25alnc3s36bhnnhghivgwp45a7m3cp1389ffcd1")) (modules '((guix build utils))) (snippet '(begin @@ -3996,7 +4071,7 @@ is limited to http and https.") (define-public perl-net-http (package (name "perl-net-http") - (version "6.20") + (version "6.21") (source (origin (method url-fetch) (uri (string-append @@ -4004,7 +4079,7 @@ is limited to http and https.") "Net-HTTP-" version ".tar.gz")) (sha256 (base32 - "07lzfycza7qqxli18xgsnqwiwxapl0b64z33wfw62aai4hm7nllj")))) + "1i7fk6q1iaxzgf82mjd5hg77hvy7dbb79488cijg16dyfrds6nip")))) (build-system perl-build-system) (propagated-inputs `(("perl-io-socket-ssl" ,perl-io-socket-ssl) @@ -4610,14 +4685,14 @@ their web site.") (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)) @@ -4631,11 +4706,32 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") 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))) @@ -4647,7 +4743,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (file-name (git-file-name name version)) (sha256 (base32 - "0brv64bsqysl7dncz067blwvmqrlx99c2kwrgpz6k0nqv8nzsa28")))) + "1ss1prr98zdjkm97w24rd04lfnnvcw6xs0gwxqgd40briqisaa5g")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) @@ -4706,15 +4802,15 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") #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")) @@ -5813,14 +5909,14 @@ tools like SSH (Secure Shell) to reach the outside world.") (define-public stunnel (package (name "stunnel") - (version "5.58") + (version "5.59") (source (origin (method url-fetch) (uri (string-append "https://www.stunnel.org/downloads/stunnel-" version ".tar.gz")) (sha256 - (base32 "0y9vjzjqi340vy6h321r1cskb7l6a4prr9d2ysixqzjpjv04rhfl")))) + (base32 "17yf2n47j5hw2y9527mrkx3j7q9jk5vvg46m3hgp1wg8dggpcxqk")))) (build-system gnu-build-system) (native-inputs ;; For tests. @@ -5937,14 +6033,14 @@ configuration language.") (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) @@ -6134,9 +6230,6 @@ response. This exists to cover all kinds of HTTP scenarios. All endpoint respo JSON-encoded.") (license license:isc))) -(define-public python2-httpbin - (package-with-python2 python-httpbin)) - (define-public python-pytest-httpbin (package (name "python-pytest-httpbin") @@ -6236,27 +6329,31 @@ message stream (in a web server that is per connection).") (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, @@ -6585,14 +6682,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.") (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 @@ -6754,18 +6851,19 @@ Web Server.") (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 @@ -6784,11 +6882,6 @@ Web Server.") (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 @@ -6849,6 +6942,7 @@ or embedded instantiation. This package provides utility classes.") `(#: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") @@ -6890,6 +6984,7 @@ or embedded instantiation. This package provides IO-related utility classes.")) `(#: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 @@ -7025,9 +7120,6 @@ or embedded instantiation. This package provides the JMX management."))) ("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 @@ -7057,6 +7149,7 @@ artifact."))) `(#: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 @@ -7070,9 +7163,6 @@ artifact."))) ("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 @@ -7093,6 +7183,18 @@ infrastructure"))) `(("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) @@ -7101,6 +7203,7 @@ infrastructure"))) `(#: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 @@ -7110,8 +7213,8 @@ infrastructure"))) (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) @@ -7201,6 +7304,7 @@ container."))) `(#: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 @@ -7212,14 +7316,12 @@ container."))) (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