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.scm382
1 files changed, 266 insertions, 116 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 473fe2ff97..5ca9cf19d0 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -45,6 +45,7 @@
;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -67,39 +68,39 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
- #:use-module (guix git-download)
#:use-module (guix cvs-download)
#:use-module (guix hg-download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
- #:use-module (guix build-system gnu)
+ #:use-module (guix build-system ant)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system perl)
- #:use-module (guix build-system cmake)
- #:use-module (guix build-system trivial)
#:use-module (guix build-system python)
- #:use-module (guix build-system ant)
#:use-module (guix build-system scons)
- #:use-module (guix build-system go)
+ #:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages adns)
#:use-module (gnu packages apr)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
- #:use-module (gnu packages documentation)
- #:use-module (gnu packages docbook)
- #:use-module (gnu packages emacs)
- #:use-module (gnu packages emacs-xyz)
- #:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
- #:use-module (gnu packages bison)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages documentation)
+ #:use-module (gnu packages emacs)
+ #:use-module (gnu packages emacs-xyz)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
- #:use-module (gnu packages kerberos)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages gettext)
@@ -113,11 +114,12 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages hurd)
+ #:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages jemalloc)
- #:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages kde)
+ #:use-module (gnu packages kerberos)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libunistring)
@@ -132,19 +134,18 @@
#:use-module (gnu packages nss)
#:use-module (gnu packages openldap)
#:use-module (gnu packages openstack)
- #:use-module (gnu packages base)
#:use-module (gnu packages package-management)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
- #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
- #:use-module (gnu packages readline)
#:use-module (gnu packages re2c)
+ #:use-module (gnu packages readline)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
@@ -231,14 +232,14 @@ Interface} specification.")
;; ’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/)
;; Consider updating the nginx-documentation package together with this one.
- (version "1.19.2")
+ (version "1.19.3")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "0wr4ss4gld7x717m4j3a6l6f7ijblrrd55y563lkwhvr7sqpn7vw"))))
+ "1w4dkq7bl5gyix3x0ap3d9lndh7zyvc3mscl693d4ybql57vgrci"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)
("pcre" ,pcre)
@@ -254,31 +255,32 @@ Interface} specification.")
#t))
(replace 'configure
;; The configure script is hand-written, not from GNU autotools.
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key configure-flags outputs #:allow-other-keys)
(let ((flags
- (list (string-append "--prefix=" (assoc-ref outputs "out"))
- "--with-http_ssl_module"
- "--with-http_v2_module"
- "--with-pcre-jit"
- "--with-debug"
- ;; 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)))))
+ (append (list (string-append "--prefix=" (assoc-ref outputs "out"))
+ "--with-http_ssl_module"
+ "--with-http_v2_module"
+ "--with-pcre-jit"
+ "--with-debug"
+ ;; 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" "gcc")
(format #t "configure flags: ~s~%" flags)
(apply invoke "./configure" flags)
@@ -318,53 +320,11 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
;; except for two source files which are bsd-4 licensed.
(license (list license:bsd-2 license:expat license:bsd-3 license:bsd-4))))
-(define nginx-xslscript
- (let ((revision 11)
- (changeset "01dc9ba12e1b"))
- (package
- (name "nginx-xslscript")
- (version
- (simple-format #f "2014-03-31-~A-~A" revision changeset))
- (source (origin
- (method hg-fetch)
- (uri (hg-reference
- (url "http://hg.nginx.org/xslscript")
- (changeset changeset)))
- (file-name (string-append name "-" version))
- (sha256
- (base32
- "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f ; No test suite
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'build)
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out-bin (string-append
- (assoc-ref outputs "out")
- "/bin")))
- (mkdir-p out-bin)
- (copy-file "xslscript.pl"
- (string-append
- out-bin
- "/xslscript.pl"))
- #t))))))
- (home-page "http://hg.nginx.org/xslscript")
- (synopsis "XSLScript with NGinx specific modifications")
- (description
- "XSLScript is a terse notation for writing complex XSLT stylesheets.
-This is modified version, specifically intended for use with the NGinx
-documentation.")
- (license license:bsd-2))))
-
(define-public nginx-documentation
;; This documentation should be relevant for the current nginx package.
- (let ((version "1.19.2")
- (revision 2581)
- (changeset "324ca14c3003"))
+ (let ((version "1.19.3")
+ (revision 2603)
+ (changeset "94ebfbcd68bb"))
(package
(name "nginx-documentation")
(version (simple-format #f "~A-~A-~A" version revision changeset))
@@ -376,7 +336,7 @@ documentation.")
(file-name (string-append name "-" version))
(sha256
(base32
- "15bdbi6cjqhx8lqsyr3hnwagq2r80bsyh2im80ajmbfv7y47djqi"))))
+ "1yryharm4dkjnj424r7sy0rc28h8ypfyj8as255a42gmllkwl2pg"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no test suite
@@ -549,6 +509,120 @@ supported at your website.")
;; binary:
(package-license nginx)))))))
+(define nginx-xslscript
+ (let ((revision 11)
+ (changeset "01dc9ba12e1b"))
+ (package
+ (name "nginx-xslscript")
+ (version
+ (simple-format #f "2014-03-31-~A-~A" revision changeset))
+ (source (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "http://hg.nginx.org/xslscript")
+ (changeset changeset)))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; No test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out-bin (string-append
+ (assoc-ref outputs "out")
+ "/bin")))
+ (mkdir-p out-bin)
+ (copy-file "xslscript.pl"
+ (string-append
+ out-bin
+ "/xslscript.pl"))
+ #t))))))
+ (home-page "http://hg.nginx.org/xslscript")
+ (synopsis "XSLScript with NGinx specific modifications")
+ (description
+ "XSLScript is a terse notation for writing complex XSLT stylesheets.
+This is modified version, specifically intended for use with the NGinx
+documentation.")
+ (license license:bsd-2))))
+
+(define nginx-socket-cloexec
+ (package
+ (inherit nginx)
+ (name "nginx-socket-cloexec") ;required for lua-resty-shell
+ (source
+ (origin
+ (inherit (package-source nginx))
+ (patches (append (search-patches "nginx-socket-cloexec.patch")
+ (origin-patches (package-source nginx))))))))
+
+(define-public nginx-lua-module
+ (package
+ (inherit nginx)
+ (name "nginx-lua-module")
+ (version "0.10.15")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/openresty/lua-nginx-module")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "lua-nginx-module" version))
+ (sha256
+ (base32
+ "1j216isp0546hycklbr5wi8mlga5hq170hk7f2sm16sfavlkh5gz"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("nginx-sources" ,(package-source nginx-socket-cloexec))
+ ("luajit" ,luajit)
+ ,@(package-inputs nginx)))
+ (arguments
+ (substitute-keyword-arguments
+ `(#:configure-flags '("--add-dynamic-module=.")
+ #: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))
+ ((#: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)))))
+ (synopsis "NGINX module for Lua programming language support")
+ (description "This NGINX module provides a scripting support with Lua
+programming language.")))
+
(define-public lighttpd
(package
(name "lighttpd")
@@ -1272,15 +1346,15 @@ perform the opening handshake in HTTP.")
(define-public libpsl
(package
(name "libpsl")
- (version "0.21.0")
+ (version "0.21.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rockdaboot/libpsl/"
- "releases/download/libpsl-" version
+ "releases/download/" version
"/libpsl-" version ".tar.gz"))
(sha256
(base32
- "04pfagb7ppq3yibx4lhazd1v9nwkxdfkyy2rgcrmrf3mldsirga1"))))
+ "0k0d46bbh1jj2ll369f134vciplrzbqkg7fv9m62bl6lzghy2v5c"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1345,6 +1419,50 @@ used to validate and fix HTML data.")
(home-page "http://tidy.sourceforge.net/")
(license (license:x11-style "file:///include/tidy.h"))))
+(define-public esbuild
+ (package
+ (name "esbuild")
+ (version "0.7.14")
+ (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
+ "1y5hqymv2r8r29f8vh8kgncj3wlkg4fzi0zlc7mgyss872ajkc7i"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove prebuilt binaries
+ (delete-file-recursively "npm")
+ #t))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/evanw/esbuild/cmd/esbuild"
+ #:unpack-path "github.com/evanw/esbuild"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? unpack-path #:allow-other-keys)
+ (if tests?
+ (with-directory-excursion (string-append "src/" unpack-path)
+ (invoke "make" "test-go")))
+ #t)))))
+ (inputs
+ `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+ (native-inputs
+ `(("go-github-com-kylelemons-godebug" ,go-github-com-kylelemons-godebug)))
+ (home-page "https://github.com/evanw/esbuild")
+ (synopsis "Bundler and minifier tool for JavaScript and TypeScript")
+ (description
+ "The esbuild tool provides a unified bundler, transpiler and
+minifier. It packages up JavaScript and TypeScript code, along with JSON
+and other data, for distribution on the web.")
+ (license license:expat)))
+
(define-public tinyproxy
(package
(name "tinyproxy")
@@ -1502,15 +1620,18 @@ hash/signatures.")
(define-public libyaml
(package
(name "libyaml")
- (version "0.2.4")
+ (version "0.2.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://pyyaml.org/download/libyaml/yaml-"
version ".tar.gz"))
(sha256
- (base32 "0mq5wf17ifcwwxq3kbimhi53jn3fg23vcynqpzxjcz3vfjlfs2nq"))))
+ (base32
+ "1x4fcw13r3lqy8ndydr3ili87wicplw2awbcv6r21qgyfndswhn6"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--disable-static")))
(home-page "https://pyyaml.org/wiki/LibYAML")
(synopsis "YAML 1.1 parser and emitter written in C")
(description
@@ -2629,15 +2750,14 @@ development server with Starman.")
(define-public perl-cgi
(package
(name "perl-cgi")
- (version "4.47")
+ (version "4.51")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/"
"CGI-" version ".tar.gz"))
(sha256
- (base32
- "1a9cylhqsm5icvbg09m21nj0xx4zy5gbk4p74npm1ch3qlryzyyr"))))
+ (base32 "02k0p8zwbn0fz9r39rg8jvbmky8fwdg6kznklzk557rg07kiblhb"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-deep" ,perl-test-deep)
@@ -2855,15 +2975,15 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
(define-public perl-file-listing
(package
(name "perl-file-listing")
- (version "6.04")
+ (version "6.11")
(source (origin
(method url-fetch)
(uri (string-append
- "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
+ "mirror://cpan/authors/id/P/PL/PLICEASE/File-Listing-"
version ".tar.gz"))
(sha256
(base32
- "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
+ "0vmzw1mhv580flzkla80gvwfpficnhlbqr1dnlf9x50bw7n18k62"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-http-date" ,perl-http-date)))
@@ -3178,15 +3298,14 @@ and multipart/form-data.")
(define-public perl-http-cookiejar
(package
(name "perl-http-cookiejar")
- (version "0.008")
+ (version "0.010")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
"HTTP-CookieJar-" version ".tar.gz"))
(sha256
- (base32
- "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
+ (base32 "1l7mqsca4fmls7agzwmp6yq1x16y9jwq4114i6i75n654gl37qsn"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-deep" ,perl-test-deep)
@@ -3530,15 +3649,14 @@ algorithm specified in section 8.2.2.1 of the draft standard.")
(define-public perl-io-socket-ip
(package
(name "perl-io-socket-ip")
- (version "0.39")
+ (version "0.41")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
"IO-Socket-IP-" version ".tar.gz"))
(sha256
- (base32
- "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
+ (base32 "0ihlpxrkq1xrvhnq52nhghanskic718ch8kpp642afgq72i4b6l4"))))
(build-system perl-build-system)
(native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "https://metacpan.org/release/IO-Socket-IP")
@@ -3578,7 +3696,7 @@ select or poll.")
(define-public perl-libwww
(package
(name "perl-libwww")
- (version "6.41")
+ (version "6.49")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3586,7 +3704,7 @@ select or poll.")
version ".tar.gz"))
(sha256
(base32
- "0jh67946fwd33ap3xy8df0421d2mr6lmhalhkf1p7dx2b7fil9wf"))))
+ "19k0cg4j4qz005a4ngy48z4r8dc99dxlpq8kvj7qnk15mvgd1r63"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-fatal" ,perl-test-fatal)
@@ -3715,7 +3833,7 @@ https schemed URLs with LWP.")
(home-page "https://metacpan.org/release/LWP-UserAgent-Cached")
(synopsis "Simple caching for LWP::UserAgent")
(description "LWP::UserAgent::Cached is an LWP::UserAgent subclass with
-cache support. It returns responses from the local filesystem if available
+cache support. It returns responses from the local file system, if available,
instead of making an HTTP request.")
(license license:perl-license)))
@@ -4073,14 +4191,14 @@ either mocked HTTP or a locally spawned server.")
(define-public perl-test-tcp
(package
(name "perl-test-tcp")
- (version "2.21")
+ (version "2.22")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://cpan/authors/id/K/KA/KAZUHO/"
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
"Test-TCP-" version ".tar.gz"))
(sha256
- (base32 "1djnaw1yli0kcd7azchqnp59l62f6mp13q50xyrjirpaxhd51j32"))))
+ (base32 "0mvv9rqwrwlcfh8qrs0s47p85rhlnw15d4gbpyi802bddp0c6lry"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-test-sharedfork" ,perl-test-sharedfork)))
@@ -4986,7 +5104,7 @@ commenting.")
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)
("pkg-config" ,pkg-config)
- ("check" ,check))) ;for tests
+ ("check" ,check-0.14))) ;for tests
(arguments netsurf-buildsystem-arguments)
(home-page "https://www.netsurf-browser.org/projects/libwapcaplet/")
(synopsis "String internment library")
@@ -5035,6 +5153,7 @@ written in C. It is developed as part of the NetSurf project.")
(url "https://github.com/tlsa/libcyaml")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
+ (patches (search-patches "libcyaml-libyaml-compat.patch"))
(sha256
(base32 "0428p0rwq71nhh5nzcbapsbrjxa0x5l6h6ns32nxv7j624f0zd93"))))
(build-system gnu-build-system)
@@ -5052,7 +5171,7 @@ written in C. It is developed as part of the NetSurf project.")
(inputs
`(("libyaml" ,libyaml)))
(native-inputs
- `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)))
(synopsis "C library for reading and writing YAML")
(description
"LibCYAML is a C library written in ISO C11 for reading and writing
@@ -5605,14 +5724,14 @@ tools like SSH (Secure Shell) to reach the outside world.")
(define-public stunnel
(package
(name "stunnel")
- (version "5.56")
+ (version "5.57")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.stunnel.org/downloads/stunnel-"
version ".tar.gz"))
(sha256
- (base32 "08kb4gi9fzqngrczykvba6xhaxhq9m4wmdbhxvgrva5rasrvz13k"))))
+ (base32 "1q8gc05fiz7w55ws0whwzb94ffjnhzfppf1mhz1hf671vmrvjnmg"))))
(build-system gnu-build-system)
(native-inputs
;; For tests.
@@ -7409,6 +7528,37 @@ update an existing mirrored site, and resume interrupted downloads.
HTTrack is fully configurable, and has an integrated help system.")
(license license:gpl3+)))
+(define-public buku
+ (package
+ (name "buku")
+ (version "4.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "buku" version))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1g1xhdskfn72xaraqzz2v8dl2iza7bzfpn17z2wdrzkq3ih7yvgg"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;FIXME: many tests need network access
+ (inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-certifi" ,python-certifi)
+ ("python-cryptography" ,python-cryptography)
+ ("python-html5lib" ,python-html5lib)
+ ("python-urllib3" ,python-urllib3)))
+ (home-page "https://github.com/jarun/buku")
+ (synopsis "Bookmark manager")
+ (description
+ "buku is a powerful bookmark manager written in Python3 and SQLite3.
+@command{buku} can auto-import bookmarks from your browser and present them
+in an interactive command-line interface that lets you compose and update
+bookmarks directly. It can also present them in a web interface with
+@command{bukuserver}.")
+ (license license:gpl3+)))
+
(define-public anonip
(package
(name "anonip")