diff options
Diffstat (limited to 'gnu/packages/web.scm')
-rw-r--r-- | gnu/packages/web.scm | 227 |
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)) |