summary refs log tree commit diff
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 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")