Merge branch 'master' into staging
authorLudovic Courtès <ludo@gnu.org>
Mon, 9 May 2022 12:44:48 +0000 (14:44 +0200)
committerLudovic Courtès <ludo@gnu.org>
Mon, 9 May 2022 12:44:48 +0000 (14:44 +0200)
26 files changed:
gnu/local.mk
gnu/packages/base.scm
gnu/packages/certs.scm
gnu/packages/check.scm
gnu/packages/databases.scm
gnu/packages/glib.scm
gnu/packages/gnome.scm
gnu/packages/golang.scm
gnu/packages/image.scm
gnu/packages/linux.scm
gnu/packages/man.scm
gnu/packages/password-utils.scm
gnu/packages/patches/python2-pyopenssl-openssl-compat.patch [new file with mode: 0644]
gnu/packages/python-crypto.scm
gnu/packages/python-web.scm
gnu/packages/python-xyz.scm
gnu/packages/radio.scm
gnu/packages/tex.scm
gnu/packages/time.scm
gnu/packages/unicode.scm
gnu/packages/video.scm
gnu/packages/virtualization.scm
gnu/packages/web-browsers.scm
gnu/packages/web.scm
gnu/packages/wget.scm
gnu/packages/xorg.scm

index 3b7db46..28e1736 100644 (file)
@@ -1693,6 +1693,7 @@ dist_patch_DATA =                                         \
   %D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch   \
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch   \
   %D%/packages/patches/python-pyflakes-test-location.patch     \
+  %D%/packages/patches/python2-pyopenssl-openssl-compat.patch  \
   %D%/packages/patches/python-flint-includes.patch             \
   %D%/packages/patches/python-libxml2-utf8.patch               \
   %D%/packages/patches/python-magic-python-bytecode.patch      \
index c3b33e3..5d9db07 100644 (file)
@@ -1241,7 +1241,7 @@ command.")
     (name "tzdata")
     ;; This package should be kept in sync with python-pytz in (gnu packages
     ;; time).
-    (version "2021e")
+    (version "2022a")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1249,7 +1249,7 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07"))))
+               "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg"))))
     (build-system gnu-build-system)
     (arguments
      (list #:tests? #f
@@ -1317,7 +1317,7 @@ command.")
                           version ".tar.gz"))
                     (sha256
                      (base32
-                      "0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq")))))
+                      "1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq")))))
     (home-page "https://www.iana.org/time-zones")
     (synopsis "Database of current and historical time zones")
     (description "The Time Zone Database (often called tz or zoneinfo)
index d410b05..53fb027 100644 (file)
@@ -28,6 +28,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
@@ -159,31 +160,27 @@ that was originally contributed to Debian.")
     (inputs '())
     (propagated-inputs '())
     (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (rnrs io ports)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases
-           (map (cut assq <> %standard-phases)
-                '(set-paths install-locale unpack))
-         (add-after 'unpack 'install
-           (lambda _
-             ;; TODO: On the next rebuild cycle, remove references to
-             ;; '%output' and '%outputs'.
-             (let ((certsdir (string-append ,(if (%current-target-system)
-                                                 '(assoc-ref %outputs "out")
-                                                 '%output)
-                                            "/etc/ssl/certs/")))
-               (with-directory-excursion "nss/lib/ckfw/builtins/"
-                 (unless (file-exists? "blacklist.txt")
-                   (call-with-output-file "blacklist.txt" (const #t)))
-                 ;; Extract selected single certificates from blob.
-                 (invoke "certdata2pem")
-                 ;; Copy .pem files into the output.
-                 (for-each (cut install-file <> certsdir)
-                           (find-files "." ".*\\.pem$")))
-               (invoke "openssl" "rehash" certsdir)))))))
+     (list #:modules '((guix build gnu-build-system)
+                       (guix build utils)
+                       (rnrs io ports)
+                       (srfi srfi-26))
+           #:phases
+           #~(modify-phases
+                 (map (cut assq <> %standard-phases)
+                      '(set-paths install-locale unpack))
+               (add-after 'unpack 'install
+                 (lambda _
+                   (let ((certsdir (string-append #$output
+                                                  "/etc/ssl/certs/")))
+                     (with-directory-excursion "nss/lib/ckfw/builtins/"
+                       (unless (file-exists? "blacklist.txt")
+                         (call-with-output-file "blacklist.txt" (const #t)))
+                       ;; Extract selected single certificates from blob.
+                       (invoke "certdata2pem")
+                       ;; Copy .pem files into the output.
+                       (for-each (cut install-file <> certsdir)
+                                 (find-files "." ".*\\.pem$")))
+                     (invoke "openssl" "rehash" certsdir)))))))
     (synopsis "CA certificates from Mozilla")
     (description
      "This package provides certificates for Certification Authorities (CA)
index 335ab7a..1171d1c 100644 (file)
@@ -1150,13 +1150,13 @@ following improvements:
 (define-public python-pytest-cov
   (package
     (name "python-pytest-cov")
-    (version "2.8.1")
+    (version "3.0.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pytest-cov" version))
         (sha256
-         (base32 "0avzlk9p4nc44k7lpx9109dybq71xqnggxb9f4hp0l64pbc44ryc"))))
+         (base32 "0w6lfv8gc1lxmnvsz7mq5z9shxac5zz6s9mwrai108kxc6qzbw77"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2737,13 +2737,13 @@ mocks, stubs and fakes.")
 (define-public python-flaky
   (package
     (name "python-flaky")
-    (version "3.5.3")
+    (version "3.7.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "flaky" version))
               (sha256
                (base32
-                "1nm1kjf857z5aw7v642ffsy1vwf255c6wjvmil71kckjyd0mxg8j"))))
+                "03daz352021211kvdb056f3afrd2gsdq0rd1awgr38910xw01l9s"))))
     (build-system python-build-system)
     (arguments
      ;; TODO: Tests require 'coveralls' and 'genty' which are not in Guix yet.
index 90fbd14..3b9c136 100644 (file)
@@ -32,7 +32,7 @@
 ;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
 ;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
-;;; Copyright © 2018, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
@@ -56,6 +56,7 @@
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -90,6 +91,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
@@ -1239,38 +1241,43 @@ and high-availability (HA).")
               (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl"
-                           ;; PostgreSQL installs its own Makefile (should it?).
-                           ;; Prevent it from retaining needless references to
-                           ;; the build tools in order to save size.
-                           "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c"
-                           "LD=ld" "TAR=tar")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-/bin/sh
-                     (lambda _
-                       ;; Refer to the actual shell.
-                       (substitute* '("src/bin/pg_ctl/pg_ctl.c"
-                                      "src/bin/psql/command.c")
-                         (("/bin/sh") (which "sh")))
-                       #t))
-         (add-before 'configure 'set-socket-dir
-           (lambda _
-             (substitute* '("src/include/pg_config_manual.h")
-               (("DEFAULT_PGSOCKET_DIR[^\n]*")
-                "DEFAULT_PGSOCKET_DIR \"/var/run/postgresql\""))
-             #t))
-         (add-after 'build 'build-contrib
-           (lambda _
-             (invoke "make" "-C" "contrib")))
-         (add-after 'install 'install-contrib
-           (lambda _
-             (invoke "make" "-C" "contrib" "install"))))))
-    (inputs
-     `(("readline" ,readline)
-       ("libuuid" ,util-linux "lib")
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list
+      #:configure-flags
+      #~(list "--with-uuid=e2fs" "--with-openssl"
+              (string-append "--mandir=" #$output "/share/man")
+              ;; PostgreSQL installs its own Makefile (should it?).
+              ;; Prevent it from retaining needless references to
+              ;; the build tools in order to save size.
+              "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c"
+              "LD=ld" "TAR=tar")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'patch-/bin/sh
+            (lambda _
+              ;; Refer to the actual shell.
+              (substitute* '("src/bin/pg_ctl/pg_ctl.c"
+                             "src/bin/psql/command.c")
+                (("/bin/sh") (which "sh")))))
+          (add-before 'configure 'set-socket-dir
+            (lambda _
+              (substitute* '("src/include/pg_config_manual.h")
+                (("DEFAULT_PGSOCKET_DIR[^\n]*")
+                 "DEFAULT_PGSOCKET_DIR \"/var/run/postgresql\""))))
+          (add-after 'build 'build-contrib
+            (lambda _
+              (invoke "make" "-C" "contrib")))
+          (add-after 'install 'install-contrib
+            (lambda _
+              (invoke "make" "-C" "contrib" "install")))
+          (add-after 'install 'install-manuals
+            (lambda _
+              (with-directory-excursion "doc/src/sgml"
+                (invoke "make" "install-man")
+                (invoke "make" "postgres.info")
+                (install-file "postgres.info"
+                              (string-append #$output "/share/info"))))))))
+    (native-inputs (list docbook-xml docbook2x libxml2 perl texinfo))
+    (inputs (list readline `(,util-linux "lib") openssl zlib))
     (home-page "https://www.postgresql.org/")
     (synopsis "Powerful object-relational database system")
     (description
@@ -1285,36 +1292,15 @@ pictures, sounds, or video.")
 (define-public postgresql-13
   (package
     (inherit postgresql-14)
-    (version "13.4")
+    (version "13.6")
     (source (origin
               (inherit (package-source postgresql-14))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za"))))
-    (arguments
-     (if (target-riscv64?)
-       `(,@(substitute-keyword-arguments (package-arguments postgresql-14)
-             ((#:phases phases)
-              #~(modify-phases #$phases
-                  (add-after 'unpack 'apply-riscv-spinlock-patch
-                    ;; The patch is applied in this custom phase and not via the
-                    ;; "origin" object above to avoid rebuilding a large number
-                    ;; of packages on other platforms.
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((patch-file
-                              #$(local-file
-                                  (search-patch
-                                    "postgresql-riscv-spinlocks.patch"))))
-                        (invoke "patch" "-p1" "-i" patch-file))))))))
-       `(,@(package-arguments postgresql-14))))
-    (native-inputs
-     (if (target-riscv64?)
-       (list
-         (local-file (search-patch "postgresql-riscv-spinlocks.patch"))
-         patch)
-       '()))))
+                "1z37ix80hb2bqa2smh1hbj9r507ypnl3pil43gkqznnlv6ipzz5s"))
+              (patches (search-patches "postgresql-riscv-spinlocks.patch"))))))
 
 (define-public postgresql-11
   (package
index 30e5433..7e6acc0 100644 (file)
@@ -9,7 +9,7 @@
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2019, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
index dae6692..51ce1cd 100644 (file)
@@ -3508,18 +3508,9 @@ for dealing with different structured file formats.")
            `(,glib "bin")
            gobject-introspection
            pkg-config
-           python-wrapper
-           ruby
            vala))
     (inputs
-     (list bzip2
-           fontconfig
-           freetype
-           harfbuzz
-           libcroco
-           libgsf
-           libxml2
-           pango))
+     (list freetype harfbuzz libxml2 pango))
     (propagated-inputs
      (list cairo gdk-pixbuf glib))
     (synopsis "SVG rendering library")
@@ -3610,7 +3601,7 @@ diagrams.")
            `(,glib "bin") ; glib-mkenums, etc.
            gobject-introspection)) ; g-ir-compiler, etc.
     (inputs
-     (list pango libcroco bzip2 libgsf libxml2))
+     (list pango libcroco libxml2))
     (propagated-inputs
      ;; librsvg-2.0.pc refers to all of that.
      (list cairo gdk-pixbuf glib))
index 820e6b5..5cf925f 100644 (file)
@@ -626,7 +626,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.16)
     (name "go")
-    (version "1.17.8")
+    (version "1.17.9")
     (source
      (origin
        (method git-fetch)
@@ -636,7 +636,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "05qfs17wddxmmi349g9ci12w9fjb5vbss6qpjc4qzgqzznqf0ycy"))))
+         "02l6gxn738kam1niy2nl2wpsbzl4x87h2wik6hd3py19kq4z2flw"))))
     (outputs '("out" "tests")) ; 'tests' contains distribution tests.
     (arguments
      `(#:modules ((ice-9 match)
@@ -2684,8 +2684,8 @@ packages.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-sys
-  (let ((commit "05986578812163b26672dabd9b425240ae2bb0ad")
-        (revision "7"))
+  (let ((commit "ed5796bab16455f104b6a384d51b7f9990cb9806")
+        (revision "8"))
     (package
       (name "go-golang-org-x-sys")
       (version (git-version "0.0.0" revision commit))
@@ -2697,7 +2697,7 @@ packages.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1q2rxb6z5l6pmlckjsz2l0b8lw7bqgk6frhzbmi1dv0y5irb2ka7"))))
+                  "081vs5bg91mwg5bdmlcvy2qyrvg766aicj47smcwfk4bbh0nc0qa"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "golang.org/x/sys"
index d45a14e..ec6793a 100644 (file)
@@ -1003,31 +1003,31 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
 (define-public imlib2
   (package
     (name "imlib2")
-    (version "1.7.1")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://sourceforge/enlightenment/imlib2-src/" version
-                    "/imlib2-" version ".tar.bz2"))
+                    "/imlib2-" version ".tar.xz"))
               (sha256
                (base32
-                "01y45cdml2dr9cqgybrgxr86sd77d1qfa1gzclzy1j6bkminlfh3"))))
+                "0l662h74i3mzl5ligj1352rf8bf48drasj97wygr2037gk5fijas"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list "--disable-static")))
     (native-inputs
-     `(("pkgconfig" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("freetype" ,freetype)
-       ("giflib" ,giflib)
-       ("libid3tag" ,libid3tag)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libwebp" ,libwebp)))
+     (list bzip2
+           freetype
+           giflib
+           libid3tag
+           libjpeg-turbo
+           libpng
+           libtiff
+           libx11
+           libxext
+           libwebp))
     (home-page "https://sourceforge.net/projects/enlightenment/")
     (synopsis
      "Loading, saving, rendering and manipulating image files")
index 9bb2314..7814078 100644 (file)
@@ -50,6 +50,7 @@
 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
 ;;; Copyright © 2020 David Dashyan <mail@davie.li>
 ;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
+;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 ;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
index a434c70..1c1d827 100644 (file)
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -125,14 +126,14 @@ a flexible and convenient way.")
 (define-public man-db
   (package
     (name "man-db")
-    (version "2.9.4")
+    (version "2.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/man-db/man-db-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0mk7n7yn6scy785jhg1j14b3q9l0cgvpry49r0ldjsnizbnrjv5n"))))
+                "0kaiymd5lh4dnp6z15fnvfg0ir81kdxp5l690ccp64ra956rb5zf"))))
     (build-system gnu-build-system)
     (arguments
      (list #:phases
@@ -145,9 +146,7 @@ a flexible and convenient way.")
                                  (substitute* file
                                    (("#! /bin/sh")
                                     (string-append "#!" (which "sh")))))
-                               (remove file-is-directory?
-                                       (find-files "src/tests" ".*")))
-                     #t)))
+                               (find-files "src/tests")))))
                (add-after 'unpack 'patch-absolute-paths
                  (lambda* (#:key inputs #:allow-other-keys)
                    (substitute* "src/man.c"
@@ -160,64 +159,53 @@ a flexible and convenient way.")
                      (("groff_preconv = NULL")
                       (string-append "groff_preconv = \""
                                      (assoc-ref inputs "groff-minimal")
-                                     "/bin/preconv\"")))
-                   #t)))
+                                     "/bin/preconv\""))))))
            #:configure-flags
-           #~(let ((groff (assoc-ref %build-inputs "groff"))
-                   (groff-minimal (assoc-ref %build-inputs "groff-minimal"))
-                   (less  (assoc-ref %build-inputs "less"))
-                   (gzip  (assoc-ref %build-inputs "gzip"))
-                   (bzip2 (assoc-ref %build-inputs "bzip2"))
-                   (xz    (assoc-ref %build-inputs "xz"))
-                   (util  (assoc-ref %build-inputs "util-linux")))
-               ;; Invoke groff, less, gzip, bzip2, & xz directly from the store.
-               (append (list ;; Disable setuid man user.
-                        "--disable-setuid"
-                        ;; Don't constrain ownership of system-wide cache files.
-                        ;; Otherwise creating the manpage database fails with
-                        ;; man-db > 2.7.5.
-                        "--disable-cache-owner"
-                        (string-append "--with-pager=" less "/bin/less")
-                        (string-append "--with-gzip=" gzip "/bin/gzip")
-                        (string-append "--with-bzip2=" bzip2 "/bin/gzip")
-                        (string-append "--with-xz=" xz "/bin/xz")
-                        (string-append "--with-col=" util "/bin/col")
-                        ;; The default systemd directories ignore --prefix.
-                        ;; XXX TODO: Replace with simply #$OUTPUT on staging.
-                        (string-append "--with-systemdsystemunitdir="
-                                       #$(if (%current-target-system)
-                                             #~#$output
-                                             #~%output)
-                                       "/lib/systemd/system")
-                        (string-append "--with-systemdtmpfilesdir="
-                                       #$(if (%current-target-system)
-                                             #~#$output
-                                             #~%output)
-                                       "/lib/tmpfiles.d"))
-                   (map (lambda (prog)
-                          (string-append "--with-" prog "=" groff-minimal
-                                         "/bin/" prog))
-                        '("nroff" "eqn" "neqn" "tbl" "refer" "pic"))))
-
+           #~(cons*
+              ;; Disable setuid man user.
+              "--disable-setuid"
+              ;; Don't constrain ownership of system-wide cache files.
+              ;; Otherwise creating the manpage database fails with
+              ;; man-db > 2.7.5.
+              "--disable-cache-owner"
+              (string-append "--with-pager="
+                             (search-input-file %build-inputs "bin/less"))
+              (string-append "--with-gzip="
+                             (search-input-file %build-inputs "bin/gzip"))
+              (string-append "--with-bzip2="
+                             (search-input-file %build-inputs "bin/bzip2"))
+              (string-append "--with-xz="
+                             (search-input-file %build-inputs "bin/xz"))
+              (string-append "--with-zstd="
+                             (search-input-file %build-inputs "bin/zstd"))
+              (string-append "--with-col="
+                             (search-input-file %build-inputs "bin/col"))
+              ;; The default systemd directories ignore --prefix.
+              (string-append "--with-systemdsystemunitdir="
+                             #$output "/lib/systemd/system")
+              (string-append "--with-systemdtmpfilesdir="
+                             #$output "/lib/tmpfiles.d")
+              (map (lambda (prog)
+                     (string-append
+                      "--with-" prog "="
+                      #$(this-package-input "groff-minimal")
+                      (string-append "/bin/" prog)))
+                   '("nroff" "eqn" "neqn" "tbl" "refer" "pic")))
            ;; At run time we should refer to GROFF-MINIMAL, not GROFF (the latter
            ;; pulls in Perl.)
-           #:disallowed-references
-           (list groff)
-
-           #:modules '((guix build gnu-build-system)
-                       (guix build utils)
-                       (srfi srfi-1))))
+           #:disallowed-references (list groff)))
     (native-inputs
-     (list pkg-config flex groff))   ;needed at build time (troff, grops, soelim, etc.)
+     (list pkg-config flex
+           ;; Groff is needed at build time for troff, grops, soelim, etc.
+           groff))
     (inputs
      (list gdbm
            groff-minimal
            less
            libpipeline
-           ;; FIXME: 4.8 and later can use libseccomp, but it causes test
-           ;; failures in the build chroot.
-           ;;("libseccomp" ,libseccomp)
-           util-linux))
+           libseccomp
+           util-linux
+           zstd))
     (native-search-paths
      (list (search-path-specification
             (variable "MANPATH")
index 1891a2c..86e80e8 100644 (file)
@@ -29,6 +29,7 @@
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
diff --git a/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch b/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch
new file mode 100644 (file)
index 0000000..a185f41
--- /dev/null
@@ -0,0 +1,51 @@
+Adjust for OpenSSL 1.1.1:
+
+  https://github.com/pyca/pyopenssl/issues/1043
+
+Taken from upstream:
+
+  https://github.com/pyca/pyopenssl/commit/cc5c00ae5fd3c19d07fff79b5c4a08f5e58697ad
+
+diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py
+index 59f21cec..fcdee047 100644
+--- a/src/OpenSSL/SSL.py
++++ b/src/OpenSSL/SSL.py
+@@ -1421,6 +1421,12 @@ def set_alpn_protos(self, protos):
+             This list should be a Python list of bytestrings representing the
+             protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``.
+         """
++        # Different versions of OpenSSL are inconsistent about how they handle empty
++        # proto lists (see #1043), so we avoid the problem entirely by rejecting them
++        # ourselves.
++        if not protos:
++            raise ValueError("at least one protocol must be specified")
++
+         # Take the list of protocols and join them together, prefixing them
+         # with their lengths.
+         protostr = b"".join(
+@@ -2449,6 +2455,12 @@ def set_alpn_protos(self, protos):
+             This list should be a Python list of bytestrings representing the
+             protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``.
+         """
++        # Different versions of OpenSSL are inconsistent about how they handle empty
++        # proto lists (see #1043), so we avoid the problem entirely by rejecting them
++        # ourselves.
++        if not protos:
++            raise ValueError("at least one protocol must be specified")
++
+         # Take the list of protocols and join them together, prefixing them
+         # with their lengths.
+         protostr = b"".join(
+diff --git a/tests/test_ssl.py b/tests/test_ssl.py
+index ffc505d8..ca363b45 100644
+--- a/tests/test_ssl.py
++++ b/tests/test_ssl.py
+@@ -1928,7 +1928,7 @@ def test_alpn_call_failure(self):
+         protocols list. Ensure that we produce a user-visible error.
+         """
+         context = Context(SSLv23_METHOD)
+-        with pytest.raises(Error):
++        with pytest.raises(ValueError):
+             context.set_alpn_protos([])
+     def test_alpn_set_on_connection(self):
index 2e16392..d331601 100644 (file)
@@ -459,13 +459,13 @@ for example, for recording or replaying web content.")
 (define-public python-certifi
   (package
     (name "python-certifi")
-    (version "2020.12.5")
+    (version "2021.10.8")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "certifi" version))
               (sha256
                (base32
-                "177mdbw0livdjvp17sz6wsfrc32838m9y59v871gpgv2888raj8s"))))
+                "0wl8ln7acd797i1q7mmb430l6hqwhmk4bd37x8ycw02b3my4x23q"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ;no tests
     (home-page "https://certifi.io/")
@@ -481,14 +481,14 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography-vectors
   (package
     (name "python-cryptography-vectors")
-    (version "3.3.1")
+    (version "36.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography_vectors" version))
        (sha256
         (base32
-         "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03"))))
+         "166mvhhmgglqai1sjkkb76mpdkad2yykam11d2w44hs2snpr117w"))))
     (build-system python-build-system)
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
@@ -497,75 +497,9 @@ is used by the Requests library to verify HTTPS requests.")
     ;; Distributed under either BSD-3 or ASL2.0
     (license (list license:bsd-3 license:asl2.0))))
 
-(define-public python2-cryptography-vectors
-  (package-with-python2 python-cryptography-vectors))
-
 (define-public python-cryptography
   (package
     (name "python-cryptography")
-    (version "3.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "cryptography" version))
-       (sha256
-        (base32
-         "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy"))))
-    (build-system python-build-system)
-    (inputs
-     (list openssl))
-    (propagated-inputs
-     (list python-asn1crypto python-cffi python-six python-idna
-           python-iso8601))
-    (native-inputs
-     (list python-cryptography-vectors python-hypothesis python-pretend
-           python-pytz python-pytest))
-    (home-page "https://github.com/pyca/cryptography")
-    (synopsis "Cryptographic recipes and primitives for Python")
-    (description
-      "cryptography is a package which provides cryptographic recipes and
-primitives to Python developers.  It aims to be the “cryptographic standard
-library” for Python.  The package includes both high level recipes, and low
-level interfaces to common cryptographic algorithms such as symmetric ciphers,
-message digests and key derivation functions.")
-    ;; Distributed under either BSD-3 or ASL2.0
-    (license (list license:bsd-3 license:asl2.0))
-    (properties `((python2-variant . ,(delay python2-cryptography))))))
-
-(define-public python2-cryptography
-  (let ((crypto (package-with-python2
-                 (strip-python2-variant python-cryptography))))
-    (package/inherit crypto
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           ;; The sanity-check attempts attempts to import the non-existent
-           ;; modules "_openssl" and "_padding".
-           (delete 'sanity-check))))
-      (propagated-inputs
-       `(("python2-ipaddress" ,python2-ipaddress)
-         ("python2-backport-ssl-match-hostname"
-          ,python2-backport-ssl-match-hostname)
-         ("python2-enum34" ,python2-enum34)
-         ,@(package-propagated-inputs crypto))))))
-
-;; TODO: Make this the default in the next staging cycle.
-(define-public python-cryptography-vectors-next
-  (package
-    (inherit python-cryptography-vectors)
-    (version "36.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "cryptography_vectors" version))
-       (sha256
-        (base32
-         "166mvhhmgglqai1sjkkb76mpdkad2yykam11d2w44hs2snpr117w"))))))
-
-(define-public python-cryptography-next
-  (package
-    (inherit python-cryptography)
     (version "36.0.1")
     (source
      (origin
@@ -663,50 +597,103 @@ message digests and key derivation functions.")
      (list python-asn1crypto python-cffi python-six python-idna
            python-iso8601))
     (native-inputs
-     (list python-cryptography-vectors-next
+     (list python-cryptography-vectors
            python-hypothesis
            python-pretend
            python-pytz
            python-pytest
            python-pytest-subtests
            python-setuptools-rust
-           rust `(,rust "cargo")))
-    (properties '())))
+           rust
+           `(,rust "cargo")))
+    (home-page "https://github.com/pyca/cryptography")
+    (synopsis "Cryptographic recipes and primitives for Python")
+    (description
+      "cryptography is a package which provides cryptographic recipes and
+primitives to Python developers.  It aims to be the “cryptographic standard
+library” for Python.  The package includes both high level recipes, and low
+level interfaces to common cryptographic algorithms such as symmetric ciphers,
+message digests and key derivation functions.")
+    ;; Distributed under either BSD-3 or ASL2.0
+    (license (list license:bsd-3 license:asl2.0))
+    (properties `((python2-variant . ,(delay python2-cryptography))))))
+
+(define-public python2-cryptography-vectors
+  (package
+    (inherit python-cryptography-vectors)
+    (version "3.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "cryptography_vectors" version))
+              (sha256
+               (base32
+                "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03"))))
+    (arguments
+     (list #:python python-2))))
+
+(define-public python2-cryptography
+  (let ((crypto (package-with-python2
+                 (strip-python2-variant python-cryptography))))
+    (package
+      (inherit crypto)
+      (version "3.3.1")
+      (source (origin
+                (method url-fetch)
+                (uri (pypi-uri "cryptography" version))
+                (sha256
+                 (base32
+                  "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy"))))
+      (arguments
+       `(#:python ,python-2
+         #:phases
+         (modify-phases %standard-phases
+           ;; The sanity-check attempts attempts to import the non-existent
+           ;; modules "_openssl" and "_padding".
+           (delete 'sanity-check))))
+      (native-inputs
+       (list python2-cryptography-vectors python2-hypothesis python2-pretend
+             python2-pytz python2-pytest))
+      (inputs (list openssl))
+      (propagated-inputs
+       (modify-inputs (package-propagated-inputs crypto)
+         (prepend python2-ipaddress
+                  python2-backport-ssl-match-hostname
+                  python2-enum34))))))
 
 (define-public python-pyopenssl
   (package
     (name "python-pyopenssl")
-    (version "20.0.1")
+    (version "22.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyOpenSSL" version))
        (sha256
         (base32
-         "0labcbh2g0jhgisd79wx9kixmi6fip28096d1xb05fj3jmsiq8sc"))))
+         "1gzihw09sqi71lwx97c69hab7w4rbnl6hhfrl6za3i5a4la1n2v6"))))
     (build-system python-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             ;; PyOpenSSL runs tests against a certificate with a fixed
-             ;; expiry time.  To ensure successful builds in the future,
-             ;; set the time to roughly the release date.
-             (invoke "faketime" "2021-05-01" "py.test" "-v" "-k"
-                     (string-append
-                      ;; This test tries to look up certificates from
-                      ;; the compiled-in default path in OpenSSL, which
-                      ;; does not exist in the build environment.
-                      "not test_fallback_default_verify_paths "
-                      ;; This test attempts to make a connection to
-                      ;; an external web service.
-                      "and not test_set_default_verify_paths "
-                      ;; Fails on i686-linux and possibly other 32-bit platforms
-                      ;; https://github.com/pyca/pyopenssl/issues/974
-                      "and not test_verify_with_time")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; PyOpenSSL runs tests against a certificate with a fixed
+                ;; expiry time.  To ensure successful builds in the future,
+                ;; set the time to roughly the release date.
+                (invoke "faketime" "2022-02-01" "py.test" "-v" "-k"
+                        (string-append
+                         ;; This test tries to look up certificates from
+                         ;; the compiled-in default path in OpenSSL, which
+                         ;; does not exist in the build environment.
+                         "not test_fallback_default_verify_paths "
+                         ;; This test attempts to make a connection to
+                         ;; an external web service.
+                         "and not test_set_default_verify_paths "
+                         ;; Fails on i686-linux and possibly other 32-bit platforms
+                         ;; https://github.com/pyca/pyopenssl/issues/974
+                         "and not test_verify_with_time"))))))))
     (propagated-inputs
      (list python-cryptography python-six))
     (inputs
@@ -718,10 +705,22 @@ message digests and key derivation functions.")
     (description
       "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
 library.")
+    (properties `((python2-variant . ,(delay python2-pyopenssl))))
     (license license:asl2.0)))
 
 (define-public python2-pyopenssl
-  (package-with-python2 python-pyopenssl))
+  (let ((base (package-with-python2 (strip-python2-variant python-pyopenssl))))
+    (package
+      (inherit base)
+      (version "21.0.0")
+      (source
+       (origin
+         (method url-fetch)
+         (uri (pypi-uri "pyOpenSSL" version))
+         (patches (search-patches "python2-pyopenssl-openssl-compat.patch"))
+         (sha256
+          (base32
+           "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay")))))))
 
 (define-public python-ed25519
   (package
index 0f9f1e8..38f92fd 100644 (file)
@@ -2554,17 +2554,19 @@ APIs.")
 (define-public python-requests
   (package
     (name "python-requests")
-    (version "2.26.0")
+    (version "2.27.1")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "requests" version))
              (sha256
               (base32
-               "19q73fq7hip7b74fwls3p9x6zwvfwqcwpn6kha3zsgvrrzw5iamq"))))
+               "0qcsbi919d689xqlgyhw9zkppp1fs6k09wwffa3ri6d8smpwbmv8"))))
     (build-system python-build-system)
     (propagated-inputs
-     (list python-certifi python-chardet python-charset-normalizer
-           python-idna python-urllib3))
+     (list python-certifi
+           python-charset-normalizer
+           python-idna
+           python-urllib3))
     (arguments
      ;; FIXME: Some tests require network access.
      '(#:tests? #f))
@@ -2583,6 +2585,7 @@ than Python’s urllib2 library.")
       ;; The python-charset-normalizer dependency is necessary on Python 3
       ;; only.
       (propagated-inputs (modify-inputs (package-propagated-inputs base)
+                           (append python2-chardet)
                            (delete "python-charset-normalizer"))))))
 
 (define-public python-requests-unixsocket
@@ -2833,14 +2836,14 @@ addon for removing tracking fields from URLs.")
 (define-public python-urllib3
   (package
     (name "python-urllib3")
-    (version "1.26.7")
+    (version "1.26.8")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "urllib3" version))
         (sha256
          (base32
-          "1kkf6gi8a1fs0dqkf6kpmdpsy97iirvliz8q1krxp8ppaiawd1s9"))))
+          "0g18xk7gfm88gr4bp3f58vgvsbzwps3sq2kqhv5xyz9ylvck6z0f"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))
     (propagated-inputs
index 659538d..f6c4ca0 100644 (file)
@@ -6738,7 +6738,7 @@ toolkits.")
        ("graphviz" ,graphviz)
        ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
                                              texlive-enumitem
-                                             texlive-latex-amsmath
+                                             texlive-amsmath
                                              texlive-latex-expdlist
                                              texlive-latex-geometry
                                              texlive-latex-preview
@@ -7617,26 +7617,22 @@ data, and scientific formats.")
 (define-public python-pycparser
   (package
     (name "python-pycparser")
-    (version "2.20")
+    (version "2.21")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "pycparser" version))
       (sha256
        (base32
-        "1w0m3xvlrzq4lkbvd1ngfm8mdw64r1yxy6n7djlw6qj5d0km6ird"))))
+        "01kjlyn5w2nn2saj8w1rhq7v26328pd91xwgqn32z1zp2bngsi76"))))
     (outputs '("out" "doc"))
     (build-system python-build-system)
-    (native-inputs
-     (list pkg-config))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (with-directory-excursion "tests"
-               (invoke "python" "all_tests.py"))
-             #t))
+             (invoke "python" "-m" "unittest" "discover")))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@@ -7647,8 +7643,7 @@ data, and scientific formats.")
                            (copy-file (string-append "." file)
                                       (string-append doc file)))
                          '("/README.rst" "/CHANGES" "/LICENSE"))
-               (copy-recursively "examples" examples)
-               #t))))))
+               (copy-recursively "examples" examples)))))))
     (home-page "https://github.com/eliben/pycparser")
     (synopsis "C parser in Python")
     (description
@@ -12328,14 +12323,14 @@ versions of Python.")
 (define-public python-idna
   (package
     (name "python-idna")
-    (version "2.10")
+    (version "3.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "idna" version))
        (sha256
         (base32
-         "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk"))))
+         "0v8f6qjfi5i7qc5icsbv2pi24qy6k6m8wjqjvdf2sxjvlpq3yr4x"))))
     (build-system python-build-system)
     (home-page "https://github.com/kjd/idna")
     (synopsis "Internationalized domain names in applications")
@@ -12347,10 +12342,20 @@ from the earlier standard from 2003.  The library is also intended to act as a
 suitable drop-in replacement for the “encodings.idna” module that comes with
 the Python standard library but currently only supports the older 2003
 specification.")
+    (properties `((python2-variant . ,(delay python2-idna))))
     (license license:bsd-4)))
 
 (define-public python2-idna
-  (package-with-python2 python-idna))
+  (let ((base (package-with-python2 (strip-python2-variant python-idna))))
+    (package
+      (inherit base)
+      (version "2.10")
+      (source (origin
+                (method url-fetch)
+                (uri (pypi-uri "idna" version))
+                (sha256
+                 (base32
+                  "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk")))))))
 
 (define-public python-libsass
   (package
@@ -13040,7 +13045,7 @@ time.")
                                      texlive-fonts-rsfs
                                      texlive-generic-iftex
                                      texlive-jknappen
-                                     texlive-latex-amsmath
+                                     texlive-amsmath
                                      texlive-latex-fancyvrb
                                      texlive-latex-float
                                      texlive-fontspec
@@ -13351,19 +13356,40 @@ simulation, statistical modeling, machine learning and much more.")
 (define-public python-chardet
   (package
     (name "python-chardet")
-    (version "3.0.4")
+    (version "4.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "chardet" version))
        (sha256
         (base32
-         "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
+         "1ykr04qyhgpc0h5b7dhqw4g92b1xv7ki2ky910mhy4mlbnhm6vqd"))))
     (native-inputs
-     (list python-hypothesis python-pytest python-pytest-runner))
+     (list python-pytest))
     (build-system python-build-system)
-    ;; XXX: Incompatible with Pytest 4: <https://github.com/chardet/chardet/issues/173>.
-    (arguments `(#:tests? #f))
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda _
+                   (invoke "pytest" "-vv")))
+               ;; This package provides a 'chardetect' executable that only
+               ;; depends on Python, so customize the wrap phase to avoid
+               ;; adding pytest and friends in order to save size.
+               ;; (See also <https://bugs.gnu.org/25235>.)
+               (replace 'wrap
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((sitedir (site-packages inputs outputs))
+                          (python (dirname (dirname
+                                            (search-input-file
+                                             inputs "bin/python"))))
+                          (python-sitedir
+                           (string-append python "/lib/python"
+                                          (python-version python)
+                                          "/site-packages")))
+                     (wrap-program (string-append #$output "/bin/chardetect")
+                       `("GUIX_PYTHONPATH" ":" suffix
+                         ,(list sitedir python-sitedir)))))))))
     (home-page "https://github.com/chardet/chardet")
     (synopsis "Universal encoding detector for Python 2 and 3")
     (description
@@ -13377,14 +13403,34 @@ automatically detect a wide range of file encodings.")
 (define-public python-charset-normalizer
   (package
     (name "python-charset-normalizer")
-    (version "2.0.5")
+    (version "2.0.11")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "charset-normalizer" version))
        (sha256
-        (base32 "0rr3iv2xw4rz5ijnfqk229fw85cq6p6rhqqsilm0ldzncblfg63h"))))
+        (base32 "071pi2kd222rjjrjdllffqv3iz4bfaj93a9bfs65907fd6fqlfcq"))))
     (build-system python-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               ;; This package provides a 'normalizer' executable that only
+               ;; depends on Python, so customize the wrap phase to avoid
+               ;; adding pytest and friends in order to save size.
+               ;; (See also <https://bugs.gnu.org/25235>.)
+               (replace 'wrap
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((sitedir (site-packages inputs outputs))
+                          (python (dirname (dirname
+                                            (search-input-file
+                                             inputs "bin/python"))))
+                          (python-sitedir
+                           (string-append python "/lib/python"
+                                          (python-version python)
+                                          "/site-packages")))
+                     (wrap-program (string-append #$output "/bin/normalizer")
+                       `("GUIX_PYTHONPATH" ":" suffix
+                         ,(list sitedir python-sitedir)))))))))
     (native-inputs
      (list python-pytest))
     (home-page "https://github.com/ousret/charset_normalizer")
index 1d81675..ac81d33 100644 (file)
@@ -554,7 +554,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
        ("python-scipy" ,python-scipy)
        ("python-sphinx" ,python-sphinx)
        ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
-                                             texlive-latex-amsmath
+                                             texlive-amsmath
                                              ;; TODO: Add newunicodechar.
                                              texlive-latex-graphics)))
        ("xorg-server" ,xorg-server-for-tests)))
@@ -762,7 +762,7 @@ to access different radio hardware.")
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
        ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
-                                        texlive-latex-amsmath
+                                        texlive-amsmath
                                         ;; TODO: Add newunicodechar.
                                         texlive-latex-graphics)))))
     (inputs
index 34e9aa1..b214344 100644 (file)
@@ -1306,139 +1306,6 @@ Taco Hoekwater.")
 (define-public texlive-amsfonts
   (let ((template (simple-texlive-package
                    "texlive-amsfonts"
-                   (list "/source/latex/amsfonts/"
-                         "/fonts/source/public/amsfonts/"
-                         "/fonts/type1/public/amsfonts/"
-                         "/fonts/afm/public/amsfonts/"
-                         "/fonts/map/dvips/amsfonts/"
-                         "/tex/plain/amsfonts/"
-                         "/doc/fonts/amsfonts/")
-                   (base32
-                    "15q70nkjf8wqzbd5ivcdx3i2sdgqxjb38q0qn9a2qw9i0qcnx6zw"))))
-    (package
-      (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-amsfonts/fixed)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:build-targets _ #t)
-          '(list "amsfonts.ins"))
-         ((#:tex-directory _ #t)
-          "latex/amsfonts")
-         ((#:modules modules '())
-          `((guix build texlive-build-system)
-            (guix build utils)
-            (ice-9 match)
-            (srfi srfi-1)
-            (srfi srfi-26)))
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-fonts
-               (lambda* (#:key inputs #:allow-other-keys)
-                 ;; Allow self fonts sources and other resources to be
-                 ;; discovered.
-                 (setenv "GUIX_TEXMF" (string-append (getenv "GUIX_TEXMF")
-                                                     ":" (getcwd)))
-
-                 (let ((build (string-append (getcwd) "/build-fonts")))
-                   (mkdir-p build)
-                   (with-directory-excursion "fonts/source/public/amsfonts"
-                     (for-each (lambda (font)
-                                 (format #t "building font ~a\n" (basename font ".mf"))
-                                 (with-directory-excursion (dirname font)
-                                   (invoke "mf" "-progname=mf"
-                                           (string-append "-output-directory=" build)
-                                           (string-append "\\"
-                                                          "mode:=ljfour; "
-                                                          "mag:=1; "
-                                                          "nonstopmode; "
-                                                          "input "
-                                                          (getcwd) "/"
-                                                          (basename font ".mf")))))
-                               (find-files "." "[0-9]+\\.mf$"))))
-
-                 ;; There are no metafont sources for the Euler fonts, so we
-                 ;; convert the afm files instead.
-                 (let ((build (string-append (getcwd) "/build-fonts/euler")))
-                   (mkdir build)
-                   (with-directory-excursion "fonts/afm/public/amsfonts/euler"
-                     (for-each (lambda (font)
-                                 (format #t "converting afm font ~a\n" (basename font ".afm"))
-                                 (invoke "afm2tfm" font
-                                         (string-append build "/"
-                                                        (basename font ".tfm"))))
-                               (find-files "(cmextra|cyrillic|dummy|euler|symbols)"
-                                           "\\.afm$")))
-
-                   ;; Frustratingly, not all fonts can be created this way.  To
-                   ;; generate eufm8.tfm, for example, we first scale down
-                   ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
-                   ;; the pl file.
-                   (setenv "TEXINPUTS"
-                           (string-append ":" build "//:"
-                                          (getcwd) "/fonts/afm/public/amsfonts//:"
-                                          (getcwd) "/source/latex/amsfonts//:"))
-                   (with-directory-excursion build
-                     (for-each (match-lambda
-                                 (((target-base target-size)
-                                   (source-base source-size))
-                                  (let ((factor (number->string
-                                                 (truncate/ (* 1000 target-size)
-                                                            source-size))))
-                                    (invoke "tex"
-                                            "-interaction=scrollmode"
-                                            (string-append "\\input fontinst.sty "
-                                                           "\\transformfont{" target-base "}"
-                                                           "{\\scalefont{" factor "}"
-                                                           "{\\fromafm{" source-base "}}} "
-                                                           "\\bye")))
-                                  (invoke "pltotf"
-                                          (string-append target-base ".pl")
-                                          (string-append target-base ".tfm"))
-                                  (delete-file (string-append target-base ".pl"))))
-
-                               '((("eufm8" 8) ("eufm10" 10))
-
-                                 (("eufb6" 6) ("eufb7" 7))
-                                 (("eufb8" 8) ("eufb10" 10))
-                                 (("eufb9" 9) ("eufb10" 10))
-
-                                 (("eufm6" 6) ("eufb7" 7))
-                                 (("eufm9" 9) ("eufb10" 10))
-
-                                 (("eurb6" 6) ("eurb7" 7))
-                                 (("eurb8" 8) ("eurb10" 10))
-                                 (("eurb9" 9) ("eurb10" 10))
-
-                                 (("eurm6" 6) ("eurm7" 7))
-                                 (("eurm8" 8) ("eurm10" 10))
-                                 (("eurm9" 9) ("eurm10" 10))))))))
-             (add-after 'install 'install-generated-fonts
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (copy-recursively "build-fonts"
-                                   (string-append
-                                    (assoc-ref outputs "out")
-                                    "/share/texmf-dist/fonts/tfm/public/amsfonts"))))))))
-      (native-inputs
-       (list (texlive-updmap.cfg (list texlive-fontinst))))
-      (home-page "https://www.ctan.org/pkg/amsfonts")
-      (synopsis "TeX fonts from the American Mathematical Society")
-      (description
-       "This package provides an extended set of fonts for use in mathematics,
-including: extra mathematical symbols; blackboard bold letters (uppercase
-only); fraktur letters; subscript sizes of bold math italic and bold Greek
-letters; subscript sizes of large symbols such as sum and product; added sizes
-of the Computer Modern small caps font; cyrillic fonts (from the University of
-Washington); Euler mathematical fonts.  All fonts are provided as Adobe Type 1
-files, and all except the Euler fonts are provided as Metafont source.  The
-distribution also includes the canonical Type 1 versions of the Computer
-Modern family of fonts.  The Euler fonts are supported by separate packages;
-details can be found in the documentation.")
-      (license license:silofl1.1))))
-
-(define-public texlive-amsfonts/fixed
-  (let ((template (simple-texlive-package
-                   "texlive-amsfonts-fixed"
                    (list "/source/latex/amsfonts/"
                          "/fonts/source/public/amsfonts/"
                          "/fonts/type1/public/amsfonts/"
@@ -3901,37 +3768,6 @@ loading fonts by their proper names instead of file names.")
 
 (define-deprecated-package texlive-luatex-luaotfload texlive-luaotfload)
 
-(define-public texlive-latex-amsmath
-  (package
-    (name "texlive-latex-amsmath")
-    (version (number->string %texlive-revision))
-    (source (origin
-              (method svn-fetch)
-              (uri (texlive-ref "latex" "amsmath"))
-              (file-name (string-append name "-" version "-checkout"))
-              (sha256
-               (base32
-                "172zybw7rp05jca8wl6x0mh6z6gncdyi1j9wdfyjnhbvqw0z4wi4"))))
-    ;; This package misses important files
-    (replacement texlive-amsmath)
-    (build-system texlive-build-system)
-    (arguments '(#:tex-directory "latex/amsmath"))
-    (home-page "https://www.ctan.org/pkg/amsmath")
-    (synopsis "AMS mathematical facilities for LaTeX")
-    (description
-     "This is the principal package in the AMS-LaTeX distribution.  It adapts
-for use in LaTeX most of the mathematical features found in AMS-TeX; it is
-highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
-When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
-symbols), @code{amsopnamsopn} (for operator names) and
-@code{amstextamstext} (for text embedded in mathematics) are also loaded.
-This package is part of the LaTeX required distribution; however, several
-contributed packages add still further to its appeal; examples are
-@code{empheqempheq}, which provides functions for decorating and highlighting
-mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
-definitions.")
-    (license license:lppl1.3c+)))
-
 (define-public texlive-amsmath
   (let ((template (simple-texlive-package
                    "texlive-amsmath"
@@ -3977,6 +3813,8 @@ mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
 definitions.")
       (license license:lppl1.3c+))))
 
+(define-deprecated-package texlive-latex-amsmath texlive-amsmath)
+
 (define-public texlive-amscls
   (let ((template (simple-texlive-package
                    "texlive-amscls"
@@ -4017,8 +3855,6 @@ distribution.")
                     "0qr5vjp79g1c1l6k173qhfdfabgbky73wymzhm56pazx4a8r08wz"))))
     (package
       (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-babel/fixed)
       (arguments
        (substitute-keyword-arguments (package-arguments template)
          ((#:tex-directory _ #t)
@@ -4026,14 +3862,27 @@ distribution.")
          ((#:phases phases)
           `(modify-phases ,phases
              (add-after 'unpack 'chdir
-               (lambda _ (chdir "source/latex/babel/") #t))
+               (lambda _ (chdir "source/latex/babel/")))
              ;; This package tries to produce babel.aux twice but refuses to
              ;; overwrite the first one.
              (add-before 'build 'fix-ins
                (lambda _
                  (substitute* "babel.ins"
-                   (("askonceonly") "askforoverwritefalse"))
-                 #t))
+                   (("askonceonly") "askforoverwritefalse"))))
+           (add-before 'copy-files 'unchdir
+             (lambda _
+               (chdir "../../..")))
+           (add-after 'copy-files 'delete-extra-files
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/source/latex/babel/build"))
+               (delete-file
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/tex/generic/babel/bbind.ist"))
+               (delete-file
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/tex/generic/babel/bbglo.ist"))))
              (add-after 'install 'install-locales
                (lambda* (#:key outputs #:allow-other-keys)
                  (let ((locale-directory
@@ -4056,29 +3905,6 @@ what has to be done for each language.  Users of XeTeX are advised to use the
 polyglossia package rather than Babel.")
       (license license:lppl1.3+))))
 
-(define-public texlive-babel/fixed
-  (package
-    (inherit texlive-babel)
-    (name "texlive-babel-fixed")
-    (arguments
-     (substitute-keyword-arguments (package-arguments texlive-babel)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'copy-files 'unchdir
-             (lambda _
-               (chdir "../../..")))
-           (add-after 'copy-files 'delete-extra-files
-             (lambda* (#:key outputs #:allow-other-keys)
-               (delete-file-recursively
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/source/latex/babel/build"))
-               (delete-file
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/tex/generic/babel/bbind.ist"))
-               (delete-file
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/tex/generic/babel/bbglo.ist"))))))))))
-
 (define-deprecated-package texlive-latex-babel texlive-babel)
 
 (define-public texlive-generic-babel-english
@@ -4313,8 +4139,6 @@ language that is written in a Cyrillic alphabet.")
                     "11f14dzhwsy4pli21acccip43d36nf3pac33ihjffnps1i2mhqkd"))))
     (package
       (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-psnfss/fixed)
       (arguments
        (substitute-keyword-arguments (package-arguments template)
          ((#:tex-directory _ #t)
@@ -4323,7 +4147,15 @@ language that is written in a Cyrillic alphabet.")
           `(modify-phases ,phases
              (add-after 'unpack 'chdir
                (lambda _
-                 (chdir "source/latex/psnfss") #t))))))
+                 (chdir "source/latex/psnfss")))
+           (add-before 'copy-files 'unchdir
+             (lambda _
+               (chdir "../../..")))
+           (add-after 'copy-files 'delete-extra-files
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/source/latex/psnfss/build"))))))))
       (native-inputs
        (list texlive-cm))
       (home-page "https://www.ctan.org/pkg/psnfss")
@@ -4342,23 +4174,6 @@ means to select single glyphs from symbol fonts.  The bundle as a whole is
 part of the LaTeX required set of packages.")
       (license license:lppl1.2+))))
 
-(define-public texlive-psnfss/fixed
-  (package
-    (inherit texlive-psnfss)
-    (name "texlive-psnfss-fixed")
-    (arguments
-     (substitute-keyword-arguments (package-arguments texlive-psnfss)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'copy-files 'unchdir
-             (lambda _
-               (chdir "../../..")))
-           (add-after 'copy-files 'delete-extra-files
-             (lambda* (#:key outputs #:allow-other-keys)
-               (delete-file-recursively
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/source/latex/psnfss/build"))))))))))
-
 (define-deprecated-package texlive-latex-psnfss texlive-psnfss)
 
 ;; For user profiles
@@ -4374,7 +4189,7 @@ part of the LaTeX required set of packages.")
                 texlive-latex-base
                 texlive-kpathsea       ;for mktex.opt
                 ;; LaTeX packages from the "required" set.
-                texlive-latex-amsmath
+                texlive-amsmath
                 texlive-amscls
                 texlive-babel
                 texlive-generic-babel-english
@@ -6414,8 +6229,6 @@ use this package to insert PostScript files, in addition to PDF files.")
                     "0yn0yl6x1z9ab5gb56lhvkqabd2agz3ggxifwxkiysrj5780j29z"))))
     (package
       (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-stmaryrd/fixed)
       (arguments (substitute-keyword-arguments (package-arguments template)
                    ((#:tex-directory _ #t)
                     "latex/stmaryrd")
@@ -6431,7 +6244,15 @@ use this package to insert PostScript files, in addition to PDF files.")
                              (("^%% LaTeX2e.*") "\\input docstrip\n")
                              (("fontdef\\}\\}" line)
                               (string-append line "\n\\endbatchfile")))
-                           #t))))))
+                           #t))
+                       (add-before 'copy-files 'unchdir
+                         (lambda _
+                           (chdir "../../..")))
+                       (add-after 'copy-files 'delete-extra-files
+                         (lambda* (#:key outputs #:allow-other-keys)
+                           (delete-file-recursively
+                            (string-append (assoc-ref outputs "out")
+                                           "/share/texmf-dist/source/fonts/stmaryrd/build"))))))))
       (home-page "https://www.ctan.org/pkg/stmaryrd")
       (synopsis "St Mary Road symbols for theoretical computer science")
       (description
@@ -6442,25 +6263,6 @@ use under LaTeX; the package supports the @code{only} option (provided by the
 the whole font.")
       (license license:lppl))))
 
-(define-public texlive-stmaryrd/fixed
-  (package
-    (inherit texlive-stmaryrd)
-    (name "texlive-stmaryrd-fixed")
-    (arguments
-     (substitute-keyword-arguments (package-arguments texlive-stmaryrd)
-       ((#:tex-directory _ #t)
-        "latex/stmaryrd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'copy-files 'unchdir
-             (lambda _
-               (chdir "../../..")))
-           (add-after 'copy-files 'delete-extra-files
-             (lambda* (#:key outputs #:allow-other-keys)
-               (delete-file-recursively
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/source/fonts/stmaryrd/build"))))))))))
-
 (define-deprecated-package texlive-fonts-stmaryrd texlive-stmaryrd)
 
 (define-public texlive-latex-subfigure
index 9b57fe4..bdaa9c9 100644 (file)
@@ -126,14 +126,14 @@ expressions.")
   (package
     (name "python-pytz")
     ;; This package should be kept in sync with tzdata in (gnu packages base).
-    (version "2021.1")
+    (version "2022.1")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "pytz" version))
       (sha256
        (base32
-        "1nn459q7zg20n75akxl3ljkykgw1ydc8nb05rx1y4f5zjh4ak943"))))
+        "19ya5sh7if819flgmszz585glailhi7rr8frng03n5m8wqphwxhy"))))
     (build-system python-build-system)
     (home-page "http://pythonhosted.org/pytz")
     (synopsis "Python timezone library")
@@ -353,14 +353,14 @@ ISO 8601 dates, time and duration.")
 (define-public python-iso8601
   (package
     (name "python-iso8601")
-    (version "0.1.13")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "iso8601" version))
        (sha256
         (base32
-         "1cgfj91khil4ii5gb8s6nxwm73vx7hqc2k79dd9d8990ylmc5ppp"))))
+         "1ccl6plks706hxm35cn1wsvxhqh3bfwi5cjgjpdxjib81qi07x97"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -368,16 +368,27 @@ ISO 8601 dates, time and duration.")
                     (lambda _
                       (invoke "pytest" "-vv" "iso8601"))))))
     (native-inputs
-     (list python-pytest))
-    (home-page "https://bitbucket.org/micktwomey/pyiso8601")
+     (list python-pytest python-pytz))
+    (home-page "https://github.com/micktwomey/pyiso8601")
     (synopsis "Module to parse ISO 8601 dates")
     (description
      "This module parses the most common forms of ISO 8601 date strings (e.g.
 @code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
+    (properties `((python2-variant . ,(delay python2-iso8601))))
     (license expat)))
 
 (define-public python2-iso8601
-  (package-with-python2 python-iso8601))
+  (let ((base (package-with-python2 (strip-python2-variant python-iso8601))))
+    (package
+      (inherit base)
+      (version "0.1.16")
+      (source
+       (origin
+         (method url-fetch)
+         (uri (pypi-uri "iso8601" version))
+         (sha256
+          (base32
+           "0ny8dlycapxr8n2m13jxy0r7kbqvgypfshb6y7l981c0rivjylrn")))))))
 
 (define-public python-monotonic
   (package
index 23c5de1..bda0de0 100644 (file)
@@ -78,15 +78,14 @@ renderer.")
 (define-public ucd
   (package
     (name "ucd")
-    (version "12.0.0")
+    (version "14.0.0")
     (source
      (origin
        (method url-fetch/zipbomb)
        (uri (string-append "https://www.unicode.org/Public/zipped/" version
                            "/UCD.zip"))
        (sha256
-        (base32
-         "1ighy39cjkmqnv1797wrxjz76mv1fdw7zp5j04q55bkwxsdkvrmh"))))
+        (base32 "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))
     (build-system copy-build-system)
     (arguments
      '(#:install-plan
index e42a696..77b565e 100644 (file)
@@ -46,6 +46,7 @@
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
 ;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
 ;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
 ;;; Copyright © 2021 David Wilson <david@daviwil.com>
index f3396e7..3f7c631 100644 (file)
@@ -27,6 +27,7 @@
 ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1950,7 +1951,7 @@ virtual machines.")
 (define-public bubblewrap
   (package
     (name "bubblewrap")
-    (version "0.5.0")
+    (version "0.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/containers/bubblewrap/"
@@ -1958,7 +1959,7 @@ virtual machines.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0608l2sjwhnb1c0mslah1h6yjvqr17wk60by6i710qwxg4rszz8n"))
+                "10ij62jg7p2scwdx0pm141ss7p2gjdkbbymb56y8miib2vfcf2cn"))
                (patches (search-patches "bubblewrap-fix-locale-in-tests.patch"))))
     (build-system gnu-build-system)
     (arguments
index 198d289..f30e654 100644 (file)
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021, 2022 Cage <cage-dev@twistfold.it>
 ;;; Copyright © 2021 Benoit Joly <benoit@benoitj.ca>
 ;;; Copyright © 2021 Alexander Krotov <krotov@iitp.ru>
index bc91366..5eaebd2 100644 (file)
@@ -1637,7 +1637,7 @@ used to validate and fix HTML data.")
 (define-public esbuild
   (package
     (name "esbuild")
-    (version "0.12.9")
+    (version "0.14.0")
     (source
      (origin
        (method git-fetch)
@@ -1646,7 +1646,7 @@ used to validate and fix HTML data.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "10bz1xq2frdja7mbx04m009svg8b5rj7vfq3sc2gc88n31v21b1j"))
+        (base32 "09r1xy0kk6c9cpz6q0mxr4why373pwxbm439z2ihq3k1d5kk7x4w"))
        (modules '((guix build utils)))
        (snippet
         '(begin
index 9d23ecd..ec655b9 100644 (file)
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
index 75a7bbd..ca01cd0 100644 (file)
@@ -26,6 +26,7 @@
 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
+;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>