summaryrefslogtreecommitdiff
path: root/gnu/packages/web.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/web.scm')
-rw-r--r--gnu/packages/web.scm227
1 files changed, 205 insertions, 22 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 46a1003dd1..8a268b8f32 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
-;;; Copyright © 2016-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016, 2023 Clément Lassieur <clement@lassieur.org>
@@ -185,6 +185,7 @@
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
+ #:use-module (gnu packages perl-compression)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
@@ -200,7 +201,6 @@
#:use-module (gnu packages serialization)
#:use-module (gnu packages skribilo)
#:use-module (gnu packages sphinx)
- #:use-module (gnu packages syncthing)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages time)
@@ -1016,7 +1016,7 @@ similar to live activity monitoring provided with NGINX plus.")
(define-public lighttpd
(package
(name "lighttpd")
- (version "1.4.73")
+ (version "1.4.76")
(source (origin
(method url-fetch)
(uri (string-append "https://download.lighttpd.net/lighttpd/"
@@ -1024,7 +1024,7 @@ similar to live activity monitoring provided with NGINX plus.")
"lighttpd-" version ".tar.xz"))
(sha256
(base32
- "1a2cx3di07wf8qii7dpk4yr5wvaz8c9na1x7523smc0lng81d241"))))
+ "04ahiyn622mgpkib8j20vj7wa1av1dv7ing9vz7d1kvkwfb45gwc"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
@@ -1070,7 +1070,10 @@ similar to live activity monitoring provided with NGINX plus.")
pcre2
zlib))
(native-inputs
- (list perl ; for tests
+ (list autoconf
+ automake
+ libtool
+ perl ; for tests
pkg-config which))
(home-page "https://www.lighttpd.net/")
(synopsis "Lightweight HTTP and reverse proxy server")
@@ -2053,6 +2056,65 @@ begins forwarding traffic between the client and the target in both
directions.")
(license license:lgpl3)))
+;; This is a variant of esbuild that builds and installs the nodejs API.
+;; Eventually, this should probably be merged with the esbuild package.
+(define-public esbuild-node
+ (package
+ (inherit esbuild)
+ (name "esbuild-node")
+ (version (package-version esbuild))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/evanw/esbuild")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "09r1xy0kk6c9cpz6q0mxr4why373pwxbm439z2ihq3k1d5kk7x4w"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove prebuilt binaries
+ '(delete-file-recursively "lib/npm/exit0"))))
+ (arguments
+ (list
+ #:import-path "github.com/evanw/esbuild/cmd/esbuild"
+ #:unpack-path "github.com/evanw/esbuild"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'build 'build-platform
+ (lambda* (#:key unpack-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" unpack-path)
+ ;; We're using Node 10, which doesn't have this method.
+ (substitute* "scripts/esbuild.js"
+ (("exports.buildNativeLib" m)
+ (string-append
+ "Object.fromEntries = entries => entries.reduce((result, entry) => (result[entry[0]] = entry[1], result), {});\n"
+ m)))
+ ;; Must be writable.
+ (for-each make-file-writable (find-files "." "."))
+ (invoke "node" "scripts/esbuild.js"
+ (string-append #$output "/bin/esbuild"))
+ (let ((modules (string-append #$output "/lib/node_modules/esbuild")))
+ (mkdir-p modules)
+ (copy-recursively "npm/esbuild" modules)))))
+ (replace 'check
+ (lambda* (#:key tests? unpack-path #:allow-other-keys)
+ (when tests?
+ ;; The "Go Race Detector" is only supported on 64-bit
+ ;; platforms, this variable disables it.
+ ;; TODO: Causes too many rebuilds, rewrite to limit to x86_64,
+ ;; aarch64 and ppc64le.
+ #$(if (target-riscv64?)
+ `(setenv "ESBUILD_RACE" "")
+ #~(unless #$(target-64bit?)
+ (setenv "ESBUILD_RACE" "")))
+ (with-directory-excursion (string-append "src/" unpack-path)
+ (invoke "make" "test-go"))))))))
+ (native-inputs
+ (modify-inputs (package-native-inputs esbuild)
+ (append node)))))
+
(define-public wwwoffle
(package
(name "wwwoffle")
@@ -3395,34 +3457,55 @@ which can be used to parse directory listings.")
(define-public perl-finance-quote
(package
(name "perl-finance-quote")
- (version "1.47")
+ (version "1.59")
(source
(origin
(method url-fetch)
- (uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
+ (uri (string-append "https://cpan.metacpan.org/authors/id/B/BP/BPSCHUCK/"
"Finance-Quote-" version ".tar.gz"))
(sha256
- (base32 "0gzbq85738f299jaw4nj3ljnka380j2y6yspmyl71rgfypqjvbr7"))
- (patches (search-patches
- "perl-finance-quote-unuse-mozilla-ca.patch"))))
+ (base32 "0a19y5bj2pvdlfi747ihgz5khjlfkhjakv712r0gz0n6miwjiscs"))))
(build-system perl-build-system)
+ (native-inputs
+ (list perl-test-harness
+ perl-date-manip
+ perl-date-range
+ perl-date-simple
+ perl-datetime
+ perl-datetime-format-iso8601
+ perl-string-util
+ perl-pathtools
+ perl-test-pod
+ perl-test-pod-coverage))
(propagated-inputs
- (list perl-cgi
- perl-datetime
+ (list perl-datetime
+ perl-datetime-format-strptime
perl-html-parser
perl-html-tableextract
+ perl-html-tokeparser-simple
perl-html-tree
+ perl-html-treebuilder-xpath
+ perl-http-cookiejar
perl-http-cookies
perl-http-message
+ perl-io-string
perl-json
perl-libwww
perl-lwp-protocol-https
- perl-uri))
+ perl-mozilla-ca
+ perl-spreadsheet-xlsx
+ perl-readonly
+ perl-string-util
+ perl-text-template
+ perl-try-tiny
+ perl-web-scraper
+ perl-xml-libxml))
(home-page "https://metacpan.org/release/Finance-Quote")
(synopsis "Stock and mutual fund quotes")
(description
- "Finance::Quote gets stock quotes from various internet sources, including
-Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
+ "The @code{Finance::Quote} module retries stock quotes from various
+internet sources, including Yahoo! Finance, Fidelity Investments, and the
+Australian Stock Exchange.")
(license license:gpl2)))
(define-public perl-gssapi
@@ -3543,6 +3626,27 @@ composed of HTML::Element style components.")
syntactic legitmacy.")
(license license:artistic2.0)))
+(define-public perl-html-selector-xpath
+ (package
+ (name "perl-html-selector-xpath")
+ (version "0.28")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-" version
+ ".tar.gz"))
+ (sha256
+ (base32 "03wdwnrf0bvr2dw01njnz3a9mw2kl7ad7krh25j3vkyj7vq1f9s3"))))
+ (build-system perl-build-system)
+ (native-inputs (list perl-test-base
+ perl-test-pod))
+ (home-page "https://metacpan.org/release/HTML-Selector-XPath")
+ (synopsis "CSS Selector to XPath compiler")
+ (description "@code{HTML::Selector::XPath} is a Perl module for parsing
+and scraping XML/HTML documents using XPath expressions.")
+ (license license:perl-license)))
+
(define-public perl-html-tableextract
(package
(name "perl-html-tableextract")
@@ -3565,6 +3669,29 @@ syntactic legitmacy.")
in tables within an HTML document, either as text or encoded element trees.")
(license license:perl-license)))
+(define-public perl-html-tokeparser-simple
+ (package
+ (name "perl-html-tokeparser-simple")
+ (version "3.16")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/O/OV/OVID/HTML-TokeParser-Simple-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "17aa1v62sp8ycxcicwhankmj4brs6nnfclk9z7mf1rird1f164gd"))))
+ (build-system perl-build-system)
+ (native-inputs (list perl-module-build))
+ (propagated-inputs (list perl-html-parser
+ perl-html-tagset
+ perl-sub-override))
+ (home-page "https://metacpan.org/release/HTML-TokeParser-Simple")
+ (synopsis "Easy to use parsing interface")
+ (description "Provides @code{HTML::TokeParser::Simple}, a simpler interface
+to @code{HTML::TokeParser} for parsing HTML.")
+ (license license:perl-license)))
+
(define-public perl-html-tree
(package
(name "perl-html-tree")
@@ -3658,6 +3785,26 @@ for the variables, loops and branches declared in the template. This allows
you to separate design from the data.")
(license license:perl-license)))
+(define-public perl-html-treebuilder-xpath
+ (package
+ (name "perl-html-treebuilder-xpath")
+ (version "0.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1wx4i1scng20n405fp3a4vrwvvq9bvbmg977wnd5j2ja8jrbvsr5"))))
+ (build-system perl-build-system)
+ (propagated-inputs (list perl-html-tree perl-xml-xpathengine))
+ (home-page "https://metacpan.org/release/HTML-TreeBuilder-XPath")
+ (synopsis "XPath support for @code{HTML::TreeBuilder}")
+ (description "This module implements @code{HTML::TreeBuilder::XPath} for
+@code{HTML::TreeBuilder}, making it easy to parse documents using XPath.")
+ (license license:perl-license)))
+
(define-public perl-http-body
(package
(name "perl-http-body")
@@ -4745,6 +4892,38 @@ URI::Find::Schemeless. For a command-line interface, urifind is provided.")
methods for WebSocket URIs as it does for HTTP URIs.")
(license license:perl-license)))
+(define-public perl-web-scraper
+ (package
+ (name "perl-web-scraper")
+ (version "0.38")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1gs3fmbc83j34c0sig1hkpnm26ngnyi5kgq5dl8vxvkzimgnwnzr"))))
+ (build-system perl-build-system)
+ (native-inputs (list perl-module-build-tiny
+ perl-test-base
+ perl-test-requires))
+ (propagated-inputs (list perl-html-parser
+ perl-html-selector-xpath
+ perl-html-tagset
+ perl-html-tree
+ perl-html-treebuilder-xpath
+ perl-libwww
+ perl-universal-require
+ perl-uri
+ perl-xml-xpathengine
+ perl-yaml))
+ (home-page "https://metacpan.org/release/Web-Scraper")
+ (synopsis
+ "Web Scraping toolkit using HTML and CSS Selectors or XPath expressions")
+ (description "Perl module @code{Web::Scraper} is a toolkit for
+traversing and scraping sites, inspired by Ruby's Scapi.")
+ (license license:perl-license)))
+
(define-public perl-uri-template
(package
(name "perl-uri-template")
@@ -5013,8 +5192,8 @@ Cloud.")
(license license:expat)))
(define-public guix-data-service
- (let ((commit "c18589249f4b78994db6715226334a28ae6bc85f")
- (revision "47"))
+ (let ((commit "f4be64761073fbe9b1b07c6126104b54358c7bfb")
+ (revision "49"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -5026,7 +5205,7 @@ Cloud.")
(file-name (git-file-name name version))
(sha256
(base32
- "1ny2vnabirw19wn8dlsrac8nqrbklzqr3l18ismmmy70s4xkaabh"))))
+ "1vdwi7b6cjascl3h8l533i4dk20dgigrxrl9yl8rsdcc8cjpn19g"))))
(build-system gnu-build-system)
(arguments
(list
@@ -6396,6 +6575,10 @@ deployments.")
(search-input-file %build-inputs
"/bin/gcc"))
"--localstatedir=/var")
+ ,@(if (target-x86-32?)
+ '(#:make-flags
+ (list "CFLAGS+=-fexcess-precision=standard"))
+ '())
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'use-absolute-file-names
@@ -6458,14 +6641,14 @@ configuration language.")
(package
(name "varnish-modules")
(home-page "https://github.com/varnish/varnish-modules")
- (version "0.19.0")
+ (version "0.22.0")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0qq5g6bbd1a1ml1wk8jj9z39a899jzqbf7aizr3pvyz0f4kz8mis"))))
+ "1dxnla1k6kra0nkvm20iszgmq0czr5bgx002qlljwf9fl25vm1ks"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config
@@ -8281,7 +8464,7 @@ compressed JSON header blocks.
(define-public nghttp3
(package
(name "nghttp3")
- (version "1.2.0")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
@@ -8290,7 +8473,7 @@ compressed JSON header blocks.
"nghttp3-" version ".tar.gz"))
(sha256
(base32
- "0xfa3nbpv3d514ssjpxvizqmss8z330w9p0bp045w4qsyr1vkj8c"))))
+ "0z973zfd309wir7qv9iqa9qp77zhcgvmiz3s1hmwmqmyf3vl06ic"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))