diff options
Diffstat (limited to 'gnu/packages/web.scm')
-rw-r--r-- | gnu/packages/web.scm | 136 |
1 files changed, 86 insertions, 50 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 861f3e0419..151e1a6301 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1090,19 +1090,29 @@ libraries for working with JNLP applets.") (define-public jansson (package (name "jansson") - (version "2.13.1") + (version "2.14") (source (origin (method url-fetch) - (uri - (string-append "http://www.digip.org/jansson/releases/jansson-" - version ".tar.bz2")) + (uri (string-append "https://github.com/akheron/jansson" + "/releases/download/v" version + "/jansson-" version ".tar.bz2")) (sha256 (base32 - "1g8h18vh8gyxlwfmvdivdp1siad26ywj5zr4j4avgdyjg7wa147f")))) + "1fdgji964mrrz19glx0zh91asji542fvybymvzk6rrbagkr5dagv")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--disable-static"))) - (home-page "http://www.digip.org/jansson/") + (list + #:configure-flags #~'("--disable-static") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + ;; Take a fix from upstream for testing with symbol versioning: + ;; https://github.com/akheron/jansson/pull/593 + (substitute* "test/suites/api/check-exports" + (("(grep ' \\[DT\\] ' \\$test_log/symbols.*) \\| sort" _ cmd) + (string-append cmd "| sed 's/@@libjansson.*//' | sort")))))))) + (home-page "https://github.com/akheron/jansson") (synopsis "JSON C library") (description "Jansson is a C library for encoding, decoding and manipulating JSON @@ -2049,8 +2059,7 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.") ;;("gss" ,gss) zlib)) (arguments - `(#:scons ,scons-3 ;TODO: remove in the next rebuild cycle - #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr")) + `(#:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr")) (string-append "APU=" (assoc-ref %build-inputs "apr-util")) (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl")) ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss")) @@ -3879,14 +3888,14 @@ and IPv6 sockets, intended as a replacement for IO::Socket::INET.") (define-public perl-io-socket-ssl (package (name "perl-io-socket-ssl") - (version "2.068") + (version "2.074") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/" "IO-Socket-SSL-" version ".tar.gz")) (sha256 (base32 - "1ycgzg1l7p07y5wc0vzgnj122vm51p5aqpi4s56pp0piaq0gq824")))) + "0cm810ys5az6z3h3pql71jpliva1gfd0dxwwh4lx194xwimnnj1n")))) (build-system perl-build-system) (propagated-inputs (list perl-net-ssleay @@ -7724,7 +7733,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") (define-public nghttp2 (package (name "nghttp2") - (version "1.44.0") + (version "1.49.0") (source (origin (method url-fetch) @@ -7733,7 +7742,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") "nghttp2-" version ".tar.xz")) (sha256 (base32 - "0p9wvva4g8hwj55x19rbyvnq2dbsnf65rphhxnpqs7ll54xlg6an")))) + "0vm692c7q2wc4xxz8c41nr8jps2fkwf51xp8fb233cghpf9d9kxh")))) (build-system gnu-build-system) (outputs (list "out" "lib")) ; only libnghttp2 @@ -7743,44 +7752,42 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") cunit python tzdata-for-tests)) (inputs ;; Required to build the tools (i.e. without ‘--enable-lib-only’). - `(("c-ares" ,c-ares) - ("jansson" ,jansson) ; for HPACK tools - ,@(if (hurd-target?) '() - `(("jemalloc" ,jemalloc))) ; fight nghttpd{,x} heap fragmentation - ("libev" ,libev) - ("libxml2" ,libxml2) ; for ‘nghttp -a’ - ("openssl" ,openssl) - ,@(if (hurd-target?) - `(("openssl-static" ,openssl "static")) - '()))) + (append + (if (hurd-target?) + `((,openssl "static")) + (list jemalloc)) ; fight nghttpd{,x} heap fragmentation + (list c-ares + jansson ; for HPACK tools + libev + libxml2 ; for ‘nghttp -a’ + openssl))) (arguments - `(#:configure-flags - (list (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib") - "--enable-app" ; build all the tools - "--enable-hpack-tools" ; ...all the tools - "--disable-examples" - "--disable-static" ; don't bother building .a files - ,@(if (%current-target-system) - '("--disable-python-bindings") - '())) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'break-circular-reference - ;; libnghttp2.pc by default retains a reference to the ‘out’ output, - ;; which is not allowed. Break this cycle. While we could install - ;; only the library to ‘out’ and move everything else to a separate - ;; output, this would inconvenience the majority of (human) users. - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "lib/libnghttp2.pc.in" - (("@prefix@") - (assoc-ref outputs "lib"))) - #t)) - (add-before 'check 'set-timezone-directory - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (setenv "TZDIR" (string-append - (assoc-ref (or native-inputs inputs) "tzdata") - "/share/zoneinfo")) - #t))))) + (list + #:configure-flags + #~(list (string-append "--libdir=" #$output:lib "/lib") + "--enable-app" ; build all the tools + "--enable-hpack-tools" ; ...all the tools + "--disable-examples" + "--disable-static" ; don't bother building .a files + #$@(if (%current-target-system) + '("--disable-python-bindings") + '())) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'break-circular-reference + ;; libnghttp2.pc by default retains a reference to the ‘out’ output, + ;; which is not allowed. Break this cycle. While we could install + ;; only the library to ‘out’ and move everything else to a separate + ;; output, this would inconvenience the majority of (human) users. + (lambda _ + (substitute* "lib/libnghttp2.pc.in" + (("@prefix@") + #$output:lib)))) + (add-before 'check 'set-timezone-directory + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (setenv "TZDIR" (search-input-directory + (or native-inputs inputs) + "share/zoneinfo"))))))) (home-page "https://nghttp2.org/") (synopsis "HTTP/2 protocol client, proxy, server, and library") (description @@ -7808,6 +7815,35 @@ compressed JSON header blocks. @end itemize\n") (license license:expat))) +;; Older variant for Node versions < 17 (upstream commit 43291b98edaa682 +;; add support for newer nghttp2, but is difficult to backport). +(define-public nghttp2-for-node + (hidden-package + (package + (inherit nghttp2) + (version "1.44.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/nghttp2/nghttp2/" + "releases/download/v" version "/" + "nghttp2-" version ".tar.xz")) + (sha256 + (base32 + "0p9wvva4g8hwj55x19rbyvnq2dbsnf65rphhxnpqs7ll54xlg6an")))) + (arguments + (substitute-keyword-arguments (package-arguments nghttp2) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'workaround-broken-python-version-check + (lambda _ + (substitute* "configure" + ;; The configure script uses a string comparison to + ;; determine whether the Python interpreter is recent + ;; enough, which fails when comparing 3.8 to 3.10. + ;; Convert to tuples for a more reliable check. + (("print \\(ver >= '3\\.8'\\)") + "print (tuple(map(int, ver.split('.'))) >= (3,8))"))))))))))) + (define-public hpcguix-web (package (name "hpcguix-web") |