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.scm493
1 files changed, 267 insertions, 226 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 89533d8469..64d747a312 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
@@ -15,8 +15,8 @@
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2016, 2017, 2018, 2019, 2021 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018, 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
@@ -56,6 +56,7 @@
;;; Copyright © 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2022 cage <cage-dev@twistfold.it>
+;;; Copyright © 2022 Pradana Aumars <paumars@courrier.dev>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -112,6 +113,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages django)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages emacs)
@@ -154,6 +156,7 @@
#:use-module (gnu packages markup)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages openldap)
#:use-module (gnu packages openstack)
@@ -162,6 +165,8 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
@@ -177,7 +182,9 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages video)
#:use-module (gnu packages vim)
+ #:use-module (gnu packages wget)
#:use-module (gnu packages xml)
#:use-module ((srfi srfi-1) #:select (delete-duplicates)))
@@ -373,89 +380,86 @@ the same, being completely separated from the Internet.")
;; Track the ‘mainline’ branch. Upstream considers it more reliable than
;; ’stable’ and recommends that “in general you deploy the NGINX mainline
;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
- (version "1.21.5")
+ (version "1.21.6")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "1fygvl19cch100d15k74666jcbc7xpz7v5m7ygqac6556gskn3xj"))))
+ "1bh52jqqcaj5wlh2kvhxr00jhk2hnk8k97ki4pwyj4c8920p1p36"))))
(build-system gnu-build-system)
(inputs (list libxml2 libxslt openssl pcre zlib))
(arguments
- `(#:tests? #f ; no test target
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'patch-/bin/sh
- (lambda _
- (substitute* "auto/feature"
- (("/bin/sh") (which "sh")))
- #t))
- (replace 'configure
- ;; The configure script is hand-written, not from GNU autotools.
- (lambda* (#:key configure-flags inputs outputs #:allow-other-keys)
- (let ((flags
- (append (list (string-append "--prefix=" (assoc-ref outputs "out"))
- "--with-http_ssl_module"
- "--with-http_v2_module"
- "--with-http_xslt_module"
- "--with-http_gzip_static_module"
- "--with-http_gunzip_module"
- "--with-http_addition_module"
- "--with-http_sub_module"
- "--with-pcre-jit"
- "--with-debug"
- "--with-stream"
- ;; Even when not cross-building, we pass the
- ;; --crossbuild option to avoid customizing for the
- ;; kernel version on the build machine.
- ,(let ((system "Linux") ; uname -s
- (release "3.2.0") ; uname -r
- ;; uname -m
- (machine (match (or (%current-target-system)
- (%current-system))
- ("x86_64-linux" "x86_64")
- ("i686-linux" "i686")
- ("mips64el-linux" "mips64")
- ;; Prevent errors when querying
- ;; this package on unsupported
- ;; platforms, e.g. when running
- ;; "guix package --search="
- (_ "UNSUPPORTED"))))
- (string-append "--crossbuild="
- system ":" release ":" machine)))
- configure-flags)))
- (setenv "CC" ,(cc-for-target))
- ;; Fix ./configure test for ‘#include <libxml/parser.h>’.
- (setenv "CFLAGS" ; CPPFLAGS is not respected
- (string-append "-I" (assoc-ref inputs "libxml2")
- "/include/libxml2"))
- (format #t "configure flags: ~s~%" flags)
- (apply invoke "./configure" flags)
- #t)))
- (add-after 'install 'install-man-page
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (man (string-append out "/share/man")))
- (install-file "objs/nginx.8" (string-append man "/man8"))
- #t)))
- (add-after 'install 'fix-root-dirs
- (lambda* (#:key outputs #:allow-other-keys)
- ;; 'make install' puts things in strange places, so we need to
- ;; clean it up ourselves.
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share/nginx")))
- ;; This directory is empty, so get rid of it.
- (rmdir (string-append out "/logs"))
- ;; Example configuration and HTML files belong in
- ;; /share.
- (mkdir-p share)
- (rename-file (string-append out "/conf")
- (string-append share "/conf"))
- (rename-file (string-append out "/html")
- (string-append share "/html"))
- #t))))))
+ (list
+ #:tests? #f ; no test target
+ #:configure-flags
+ #~(list "--with-http_ssl_module"
+ "--with-http_v2_module"
+ "--with-http_xslt_module"
+ "--with-http_gzip_static_module"
+ "--with-http_gunzip_module"
+ "--with-http_addition_module"
+ "--with-http_sub_module"
+ "--with-pcre-jit"
+ "--with-debug"
+ "--with-stream"
+ ;; Even when not cross-building, we pass the
+ ;; --crossbuild option to avoid customizing for the
+ ;; kernel version on the build machine.
+ #$(let ((system "Linux") ; uname -s
+ (release "3.2.0") ; uname -r
+ ;; uname -m
+ (machine (match (or (%current-target-system)
+ (%current-system))
+ ("x86_64-linux" "x86_64")
+ ("i686-linux" "i686")
+ ("mips64el-linux" "mips64")
+ ;; Prevent errors when querying
+ ;; this package on unsupported
+ ;; platforms, e.g. when running
+ ;; "guix package --search="
+ (_ "UNSUPPORTED"))))
+ (string-append "--crossbuild="
+ system ":" release ":" machine)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'patch-/bin/sh
+ (lambda _
+ (substitute* "auto/feature"
+ (("/bin/sh") (which "sh")))))
+ (replace 'configure
+ ;; The configure script is hand-written, not from GNU autotools.
+ (lambda* (#:key configure-flags inputs #:allow-other-keys)
+ (setenv "CC" #$(cc-for-target))
+ ;; Fix ./configure test for ‘#include <libxml/parser.h>’.
+ (setenv "CFLAGS" ; CPPFLAGS is not respected
+ (string-append "-O2 -g "
+ "-I" (search-input-directory
+ inputs "/include/libxml2")))
+ (format #t "configure flags: ~s~%" configure-flags)
+ (apply invoke "./configure"
+ (string-append "--prefix=" #$output)
+ configure-flags)))
+ (add-after 'install 'install-man-page
+ (lambda _
+ (let ((man (string-append #$output "/share/man")))
+ (install-file "objs/nginx.8" (string-append man "/man8")))))
+ (add-after 'install 'fix-root-dirs
+ (lambda _
+ ;; 'make install' puts things in strange places, so we need to
+ ;; clean it up ourselves.
+ (let* ((out #$output)
+ (share (string-append out "/share/nginx")))
+ ;; This directory is empty, so get rid of it.
+ (rmdir (string-append out "/logs"))
+ ;; Example configuration and HTML files belong in
+ ;; /share.
+ (mkdir-p share)
+ (rename-file (string-append out "/conf")
+ (string-append share "/conf"))
+ (rename-file (string-append out "/html")
+ (string-append share "/html"))))))))
(home-page "https://nginx.org")
(synopsis "HTTP and reverse proxy server")
(description
@@ -471,9 +475,9 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(define-public nginx-documentation
;; This documentation should be relevant for the current nginx package.
- (let ((version "1.21.5")
- (revision 2816)
- (changeset "ae1d713a06e2"))
+ (let ((version "1.21.6")
+ (revision 2829)
+ (changeset "1ecf0e0526da"))
(package
(name "nginx-documentation")
(version (simple-format #f "~A-~A-~A" version revision changeset))
@@ -485,7 +489,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(file-name (string-append name "-" version))
(sha256
(base32
- "03j85wj6qb32q5xhq9nvcjzarq98802gaq6n3f7k85aqj731bml0"))))
+ "1r3y9wv4bhji5b16ljb557llf6ih3z2mzgwbia79h7223468w3fg"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no test suite
@@ -729,42 +733,42 @@ documentation.")
,@(package-inputs nginx)))
(arguments
(substitute-keyword-arguments
- `(#:configure-flags '("--add-dynamic-module=.")
- #:make-flags '("modules")
+ `(#:make-flags '("modules")
#:modules ((guix build utils)
(guix build gnu-build-system)
(ice-9 popen)
(ice-9 regex)
(ice-9 textual-ports))
- ,@(package-arguments nginx))
+ ,@(package-arguments nginx)
+ #:configure-flags '("--add-dynamic-module=."))
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'unpack-nginx-sources
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
- (begin
- ;; The nginx source code is part of the module’s source.
- (format #t "decompressing nginx source code~%")
- (let ((tar (assoc-ref inputs "tar"))
- (nginx-srcs (assoc-ref inputs "nginx-sources")))
- (invoke (string-append tar "/bin/tar")
- "xvf" nginx-srcs "--strip-components=1"))
- #t)))
- (add-before 'configure 'set-luajit-env
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((luajit (assoc-ref inputs "luajit")))
- (setenv "LUAJIT_LIB"
- (string-append luajit "/lib"))
- (setenv "LUAJIT_INC"
- (string-append luajit "/include/luajit-2.1"))
- #t)))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((modules-dir (string-append (assoc-ref outputs "out")
- "/etc/nginx/modules")))
- (install-file "objs/ngx_http_lua_module.so" modules-dir)
- #t)))
- (delete 'fix-root-dirs)
- (delete 'install-man-page)))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'unpack-nginx-sources
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (begin
+ ;; The nginx source code is part of the module’s source.
+ (format #t "decompressing nginx source code~%")
+ (let ((tar (assoc-ref inputs "tar"))
+ (nginx-srcs (assoc-ref inputs "nginx-sources")))
+ (invoke (string-append tar "/bin/tar")
+ "xvf" nginx-srcs "--strip-components=1"))
+ #t)))
+ (add-before 'configure 'set-luajit-env
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((luajit (assoc-ref inputs "luajit")))
+ (setenv "LUAJIT_LIB"
+ (string-append luajit "/lib"))
+ (setenv "LUAJIT_INC"
+ (string-append luajit "/include/luajit-2.1"))
+ #t)))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((modules-dir (string-append (assoc-ref outputs "out")
+ "/etc/nginx/modules")))
+ (install-file "objs/ngx_http_lua_module.so" modules-dir)
+ #t)))
+ (delete 'fix-root-dirs)
+ (delete 'install-man-page)))))
(synopsis "NGINX module for Lua programming language support")
(description "This NGINX module provides a scripting support with Lua
programming language.")))
@@ -789,34 +793,31 @@ programming language.")))
,@(package-inputs nginx)))
(arguments
(substitute-keyword-arguments
- `(#:configure-flags '("--add-dynamic-module=.")
- #:make-flags '("modules")
- #:modules ((guix build utils)
- (guix build gnu-build-system))
+ `(#:make-flags '("modules") ;Only build this module not all of nginx.
,@(package-arguments nginx))
+ ((#:configure-flags flags)
+ #~(cons "--add-dynamic-module=." #$flags))
((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'unpack-nginx-sources
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
- (begin
- ;; The nginx source code is part of the module’s source.
- (format #t "decompressing nginx source code~%")
- (invoke "tar" "xvf" (assoc-ref inputs "nginx-sources")
- ;; This package's LICENSE file would be
- ;; overwritten with the one from nginx when
- ;; unpacking the nginx source, so rename the nginx
- ;; one when unpacking.
- "--transform=s,/LICENSE$,/LICENSE.nginx,"
- "--strip-components=1")
- #t)))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((modules-dir (string-append (assoc-ref outputs "out")
- "/etc/nginx/modules")))
- (install-file "objs/ngx_rtmp_module.so" modules-dir)
- #t)))
- (delete 'fix-root-dirs)
- (delete 'install-man-page)))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'unpack-nginx-sources
+ (lambda _
+ (begin
+ ;; The nginx source code is part of the module’s source.
+ (format #t "decompressing nginx source code~%")
+ (invoke "tar" "xvf" #$(this-package-input "nginx-sources")
+ ;; This package's LICENSE file would be
+ ;; overwritten with the one from nginx when
+ ;; unpacking the nginx source, so rename the nginx
+ ;; one when unpacking.
+ "--transform=s,/LICENSE$,/LICENSE.nginx,"
+ "--strip-components=1"))))
+ (replace 'install
+ (lambda _
+ (let ((modules-dir (string-append #$output
+ "/etc/nginx/modules")))
+ (install-file "objs/ngx_rtmp_module.so" modules-dir))))
+ (delete 'fix-root-dirs)
+ (delete 'install-man-page)))))
(home-page "https://github.com/arut/nginx-rtmp-module")
(synopsis "NGINX module for audio and video streaming with RTMP")
(description "This NGINX module provides streaming with the @acronym{RTMP,
@@ -830,7 +831,7 @@ stream. Remote control of the module is possible over HTTP.")
(define-public lighttpd
(package
(name "lighttpd")
- (version "1.4.59")
+ (version "1.4.64")
(source (origin
(method url-fetch)
(uri (string-append "https://download.lighttpd.net/lighttpd/"
@@ -838,43 +839,51 @@ stream. Remote control of the module is possible over HTTP.")
"lighttpd-" version ".tar.xz"))
(sha256
(base32
- "1mc421yrbnq3k6yrc708svp0fgcamrn5a0p2nvnhivysffr3v5gv"))))
+ "09hf3cp4ivy9a9z9drgi4f6d60137dcqncqw0wpbyvs9lygrsj71"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags
- (list "--with-krb5"
- "--with-ldap"
- "--with-libev"
- "--with-libunwind"
- "--with-openssl"
- "--with-pam"
- "--with-sasl")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'embed-/bin/sh-reference
- (lambda _
- (substitute* "src/mod_ssi.c"
- (("/bin/sh") (which "sh")))
- #t))
- (add-after 'unpack 'fix-tests
- (lambda _
- (setenv "SHELL" (which "sh"))
- ;; gethostbyaddr fails
- (substitute* "tests/LightyTest.pm"
- (("\\{HOSTNAME\\} = \\$name;")
- "{HOSTNAME} = \"127.0.0.1\";"))
- #t)))))
+ (list #:configure-flags
+ #~(list "--with-krb5"
+ "--with-ldap"
+ "--with-libev"
+ "--with-libunwind"
+ "--with-openssl"
+ "--with-pam"
+ "--with-sasl")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'embed-/bin/sh-reference
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/mod_ssi.c"
+ (("/bin/sh") (search-input-file inputs "/bin/sh")))))
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (setenv "SHELL" (which "sh"))
+ ;; gethostbyaddr fails
+ (substitute* "tests/LightyTest.pm"
+ (("\\{HOSTNAME\\} = \\$name;")
+ "{HOSTNAME} = \"127.0.0.1\";"))))
+ (add-after 'unpack 'skip-failing-tests
+ ;; XXX It would be wonderful if you, reader, felt suddenly and
+ ;; irresistibly compelled to investigate & fix these failures.
+ (lambda _
+ ;; Throws a bunch of ‘connect failed: Connection refused’.
+ (delete-file "tests/mod-scgi.t")
+
+ ;; test_mod_ssi_read_fd: Assertion `cq->first' failed.
+ (substitute* "src/t/test_mod.c"
+ ((".*\\btest_mod_ssi\\b.*") "")))))))
(inputs
- `(("cyrus-sasl" ,cyrus-sasl)
- ("libev" ,libev)
- ("libunwind" ,libunwind)
- ("linux-pam" ,linux-pam)
- ("mit-krb5" ,mit-krb5)
- ("openldap" ,openldap)
- ("openssl" ,openssl)
- ("pcre" ,pcre)
- ("pcre:bin" ,pcre "bin")
- ("zlib" ,zlib)))
+ (list bash-minimal
+ cyrus-sasl
+ libev
+ libunwind
+ linux-pam
+ mit-krb5
+ openldap
+ openssl
+ pcre2
+ zlib))
(native-inputs
(list perl ; for tests
pkg-config which))
@@ -2258,17 +2267,17 @@ instance of a component on each request.")
(define-public perl-catalyst-devel
(package
(name "perl-catalyst-devel")
- (version "1.41")
+ (version "1.42")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
"Catalyst-Devel-" version ".tar.gz"))
(sha256
- (base32 "1r8arq7sw37d0mjyfzkc3pg1a9plgydqbscryc8qpvba4swpljls"))))
+ (base32 "1gcaqivyxwsdq87v9za1ijjibh6llirzqsbpwjbw1f5mravg1iky"))))
(build-system perl-build-system)
(native-inputs
- (list perl-test-fatal))
+ (list perl-file-sharedir-install perl-test-fatal))
(propagated-inputs
(list perl-catalyst-action-renderview
perl-catalyst-plugin-configloader
@@ -4643,33 +4652,9 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
(license (list license:bsd-2 ; source code
license:freebsd-doc)))) ; documentation
-(define-public python2-feedparser
- (package
- (name "python2-feedparser")
- (version "5.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "feedparser" version ".tar.bz2"))
- (sha256
- (base32
- "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f
- #:python ,python-2))
- (home-page
- "https://github.com/kurtmckee/feedparser")
- (synopsis "Parse feeds in Python")
- (description
- "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
-CDF, Atom 0.3, and Atom 1.0 feeds.")
- (license (list license:bsd-2 ; source code
- license:freebsd-doc)))) ; documentation
-
(define-public guix-data-service
- (let ((commit "27c34a9ca5ea010f207a4acad597ce98e84d3567")
- (revision "30"))
+ (let ((commit "198b6ef719745a48918e703990d1e846ffcd65b0")
+ (revision "31"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4681,7 +4666,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
(file-name (git-file-name name version))
(sha256
(base32
- "1jjdvld3gp711dp8qd4rnhicbl7322jjzx4plizkg89k7j4x0xhx"))))
+ "00ma74v9nrza5xpgpgr757hfdlp1cd9rnrpks99mqpjkz73sj1m6"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
@@ -4889,10 +4874,14 @@ It uses the uwsgi protocol for all the networking/interprocess communications.")
(inputs
(list oniguruma))
(native-inputs
- (list ;; TODO fix gems to generate documentation
- ;;("ruby" ,ruby)
- ;;("bundler" ,bundler)
- valgrind))
+ (append
+ ;; TODO: fix gems to generate documentation
+ ;(list ruby bundler)
+ '()
+ (if (member (%current-system)
+ (package-supported-systems valgrind))
+ (list valgrind)
+ '())))
(build-system gnu-build-system)
(home-page "https://stedolan.github.io/jq/")
(synopsis "Command-line JSON processor")
@@ -5537,6 +5526,12 @@ w3c webidl files and a binding configuration file.")
#:phases
(modify-phases %standard-phases
(delete 'configure)
+ (add-after 'unpack 'remove-timestamps
+ ;; Avoid embedding timestamp for reproducible builds
+ (lambda _
+ (substitute* "utils/git-testament.pl"
+ (("WT_COMPILEDATE ..$compiledate")
+ "WT_COMPILEDATE \\\""))))
(add-after 'build 'adjust-welcome
(lambda _
(substitute* "frontends/gtk/res/welcome.html"
@@ -6240,14 +6235,14 @@ inspired by Ruby's @code{fakeweb}.")
(define-public jo
(package
(name "jo")
- (version "1.4")
+ (version "1.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/jpmens/jo/releases/download/"
version "/jo-" version ".tar.gz"))
(sha256
- (base32 "18jna9xlpxci3cak3z85c448zv2zr41baclgym3hk433p0p4vii4"))))
+ (base32 "18fizi0368jgajrmy13xpdiks76jwch8lhx1d1sagmd63cpmj5gb"))))
(build-system gnu-build-system)
(home-page "https://github.com/jpmens/jo")
(synopsis "Output JSON from a shell")
@@ -6365,9 +6360,6 @@ internetarchive python module for programmatic access to archive.org.")
snippets on @url{https://commandlinefu.com}.")
(license license:expat))))
-(define-public python2-clf
- (package-with-python2 python-clf))
-
(define-public rss-bridge
(package
(name "rss-bridge")
@@ -7710,14 +7702,27 @@ bookmarks directly. It can also present them in a web interface with
(define-public anonip
(package
(name "anonip")
- (version "1.0.0")
+ (version "1.1.0")
+ ;; The version on PyPi does not include fixture definitions for tests.
(source (origin
- (method url-fetch)
- (uri (pypi-uri "anonip" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DigitaleGesellschaft/Anonip")
+ (commit "beab328945547b0147a53655f32c5cc76ab4488b")))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0ckn9nnfhpdnz8b92q8pkysdqj6pdh71ckfqvfj0z01cq0hzbhd2"))))
+ "0cssdcridadjzichz1vv1ng7jwphqkn8ihh83hpz9mcjmxyb94qc"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "tests.py" "anonip.py")))))))
+ (native-inputs
+ (list python-pytest python-pytest-cov))
(home-page "https://github.com/DigitaleGesellschaft/Anonip")
(synopsis "Anonymize IP addresses in log files")
(description
@@ -7842,7 +7847,7 @@ solution for any project's interface needs:
(define-public gmid
(package
(name "gmid")
- (version "1.8.1")
+ (version "1.8.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -7850,7 +7855,7 @@ solution for any project's interface needs:
version "/gmid-" version ".tar.gz"))
(sha256
(base32
- "0m4809mwy888bqsacmyck68grqfvynq74kswm109al6wjbvd61bn"))))
+ "1qbzlrzhyj7gvhgbm057zs1g5ajw1w6499qz61154v7ax8fwrdpp"))))
(build-system gnu-build-system)
(arguments
(list #:test-target "regress"
@@ -7865,8 +7870,7 @@ solution for any project's interface needs:
coreutils
flex
pkg-config
- procps
- which))
+ procps))
(inputs (list libevent libressl))
(home-page "https://git.omarpolo.com/gmid/about/")
(synopsis "Simple and secure Gemini server")
@@ -8178,13 +8182,13 @@ Unicode.")
"1znvnr30xi5vgd6n3wvgv9pwj992zpzzjk0fmq28ydf1l6kqvkm7"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no tests
- #:make-flags
- (list (string-append "CC=" ,(cc-for-target))
- (string-append "PREFIX=" %output))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)))) ; no configure script
+ (list #:tests? #f ; no tests
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)))) ; no configure script
(home-page "https://tools.suckless.org/quark/")
(synopsis "Small and simple HTTP GET/HEAD-only web server for static
content")
@@ -8197,3 +8201,40 @@ provided by a TLS reverse proxy (e.g. tlstunnel, hitch or stunnel).")
;; "cpe:2.3:a:comelz:quark" package. The proper fix is for (guix cve)
;; to account for "vendor names".
(properties '((lint-hidden-cve . ("CVE-2019-15520")))))))
+
+(define-public archivebox
+ (package
+ (name "archivebox")
+ (version "0.6.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri name version))
+ (sha256
+ (base32
+ "1mnq82ynq01l7vx957bbx4bvgwdh59qsnx6pdydaqszbakp74yyc"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list curl
+ node))
+ (inputs
+ (list python
+ youtube-dl
+ wget
+ git
+ python-w3lib
+ python-ipython
+ python-croniter
+ python-crontab
+ python-dateparser
+ python-django-extensions
+ python-django-3.1.14
+ python-mypy-extensions))
+ (native-inputs
+ (list python-wheel))
+ (synopsis "Self-hosted Web archiving")
+ (description "ArchiveBox is a powerful, self-hosted Web archiving
+solution to collect, save, and view sites you want to preserve offline.
+You can feed it URLs one at a time, or schedule regular imports. It saves
+snapshots of the URLs you feed it in several formats.")
+ (home-page "https://archivebox.io/")
+ (license license:expat)))