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.scm136
1 files changed, 86 insertions, 50 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 7817373421..69d2d6b061 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1089,19 +1089,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
@@ -2001,8 +2011,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"))
@@ -3831,14 +3840,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
@@ -7676,7 +7685,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)
@@ -7685,7 +7694,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
@@ -7695,44 +7704,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
@@ -7760,6 +7767,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")