summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVagrant Cascadian <vagrant@debian.org>2021-04-10 14:49:02 -0700
committerVagrant Cascadian <vagrant@debian.org>2021-04-10 14:49:02 -0700
commit52e3303a144a21dc33d447f1c6412f693ed4e1f1 (patch)
tree1f06b6a8d6a8f43327450ce91071f1bcdf637572
parent0ba9c3fbf8ed4983d7ff5bb9e82eff8ba8da85e8 (diff)
parent96026bdb8fc3ebcdb4b4144246a1ae8105eefb7c (diff)
Merge remote-tracking branch 'origin/master' into wip-pinebook-pro
-rw-r--r--.guix-authorizations22
-rw-r--r--Makefile.am4
-rw-r--r--build-aux/build-self.scm121
-rw-r--r--doc/contributing.texi16
-rw-r--r--doc/guix.texi516
-rwxr-xr-xetc/committer.scm.in144
-rwxr-xr-xetc/guix-install.sh4
-rw-r--r--etc/news.scm94
-rw-r--r--gnu/bootloader/grub.scm2
-rw-r--r--gnu/build/activation.scm13
-rw-r--r--gnu/ci.scm55
-rw-r--r--gnu/local.mk30
-rw-r--r--gnu/packages/acl.scm43
-rw-r--r--gnu/packages/admin.scm73
-rw-r--r--gnu/packages/aidc.scm21
-rw-r--r--gnu/packages/algebra.scm10
-rw-r--r--gnu/packages/antivirus.scm4
-rw-r--r--gnu/packages/assembly.scm4
-rw-r--r--gnu/packages/astronomy.scm18
-rw-r--r--gnu/packages/audio.scm118
-rw-r--r--gnu/packages/autotools.scm2
-rw-r--r--gnu/packages/aux-files/linux-libre/5.10-x86_64.conf2
-rw-r--r--gnu/packages/aux-files/linux-libre/5.11-x86_64.conf2
-rw-r--r--gnu/packages/axoloti.scm13
-rw-r--r--gnu/packages/backup.scm40
-rw-r--r--gnu/packages/base.scm40
-rw-r--r--gnu/packages/bioconductor.scm477
-rw-r--r--gnu/packages/bioinformatics.scm402
-rw-r--r--gnu/packages/boost.scm26
-rw-r--r--gnu/packages/bootstrap.scm39
-rw-r--r--gnu/packages/build-tools.scm40
-rw-r--r--gnu/packages/c.scm4
-rw-r--r--gnu/packages/calendar.scm2
-rw-r--r--gnu/packages/ccache.scm30
-rw-r--r--gnu/packages/check.scm6
-rw-r--r--gnu/packages/chez.scm261
-rw-r--r--gnu/packages/chromium.scm8
-rw-r--r--gnu/packages/ci.scm187
-rw-r--r--gnu/packages/code.scm6
-rw-r--r--gnu/packages/commencement.scm28
-rw-r--r--gnu/packages/compression.scm39
-rw-r--r--gnu/packages/cpp.scm210
-rw-r--r--gnu/packages/cran.scm565
-rw-r--r--gnu/packages/crates-graphics.scm3
-rw-r--r--gnu/packages/crates-io.scm416
-rw-r--r--gnu/packages/cross-base.scm2
-rw-r--r--gnu/packages/crypto.scm68
-rw-r--r--gnu/packages/cryptsetup.scm6
-rw-r--r--gnu/packages/cups.scm17
-rw-r--r--gnu/packages/curl.scm15
-rw-r--r--gnu/packages/databases.scm46
-rw-r--r--gnu/packages/dbm.scm6
-rw-r--r--gnu/packages/debug.scm11
-rw-r--r--gnu/packages/diffoscope.scm11
-rw-r--r--gnu/packages/disk.scm60
-rw-r--r--gnu/packages/django.scm12
-rw-r--r--gnu/packages/dns.scm36
-rw-r--r--gnu/packages/docbook.scm13
-rw-r--r--gnu/packages/docker.scm86
-rw-r--r--gnu/packages/ebook.scm143
-rw-r--r--gnu/packages/education.scm15
-rw-r--r--gnu/packages/efi.scm4
-rw-r--r--gnu/packages/elf.scm5
-rw-r--r--gnu/packages/emacs-xyz.scm433
-rw-r--r--gnu/packages/emacs.scm6
-rw-r--r--gnu/packages/embedded.scm10
-rw-r--r--gnu/packages/emulators.scm10
-rw-r--r--gnu/packages/engineering.scm269
-rw-r--r--gnu/packages/fcitx5.scm14
-rw-r--r--gnu/packages/file-systems.scm32
-rw-r--r--gnu/packages/file.scm2
-rw-r--r--gnu/packages/finance.scm36
-rw-r--r--gnu/packages/fontutils.scm2
-rw-r--r--gnu/packages/freedesktop.scm33
-rw-r--r--gnu/packages/ftp.scm121
-rw-r--r--gnu/packages/game-development.scm44
-rw-r--r--gnu/packages/games.scm62
-rw-r--r--gnu/packages/gcc.scm45
-rw-r--r--gnu/packages/genealogy.scm6
-rw-r--r--gnu/packages/geo.scm161
-rw-r--r--gnu/packages/gimp.scm58
-rw-r--r--gnu/packages/gl.scm2
-rw-r--r--gnu/packages/glib.scm2
-rw-r--r--gnu/packages/gnome-xyz.scm4
-rw-r--r--gnu/packages/gnome.scm143
-rw-r--r--gnu/packages/gnuzilla.scm14
-rw-r--r--gnu/packages/golang.scm25
-rw-r--r--gnu/packages/graphics.scm12
-rw-r--r--gnu/packages/gstreamer.scm2
-rw-r--r--gnu/packages/gtk.scm32
-rw-r--r--gnu/packages/guile-xyz.scm132
-rw-r--r--gnu/packages/hardware.scm6
-rw-r--r--gnu/packages/haskell-apps.scm4
-rw-r--r--gnu/packages/haskell-web.scm2
-rw-r--r--gnu/packages/image-processing.scm74
-rw-r--r--gnu/packages/image.scm40
-rw-r--r--gnu/packages/imagemagick.scm213
-rw-r--r--gnu/packages/irc.scm4
-rw-r--r--gnu/packages/jami.scm301
-rw-r--r--gnu/packages/java.scm7
-rw-r--r--gnu/packages/javascript.scm4
-rw-r--r--gnu/packages/julia-xyz.scm766
-rw-r--r--gnu/packages/kde-pim.scm2
-rw-r--r--gnu/packages/kde.scm5
-rw-r--r--gnu/packages/language.scm4
-rw-r--r--gnu/packages/libevent.scm16
-rw-r--r--gnu/packages/libffi.scm5
-rw-r--r--gnu/packages/libreoffice.scm4
-rw-r--r--gnu/packages/linphone.scm1049
-rw-r--r--gnu/packages/linux.scm167
-rw-r--r--gnu/packages/lisp-xyz.scm475
-rw-r--r--gnu/packages/lisp.scm10
-rw-r--r--gnu/packages/llvm.scm11
-rw-r--r--gnu/packages/logging.scm23
-rw-r--r--gnu/packages/lua.scm22
-rw-r--r--gnu/packages/mail.scm107
-rw-r--r--gnu/packages/man.scm51
-rw-r--r--gnu/packages/mate.scm4
-rw-r--r--gnu/packages/maths.scm98
-rw-r--r--gnu/packages/matrix.scm29
-rw-r--r--gnu/packages/mes.scm5
-rw-r--r--gnu/packages/messaging.scm259
-rw-r--r--gnu/packages/monitoring.scm4
-rw-r--r--gnu/packages/mp3.scm15
-rw-r--r--gnu/packages/mpd.scm3
-rw-r--r--gnu/packages/music.scm105
-rw-r--r--gnu/packages/nettle.scm17
-rw-r--r--gnu/packages/networking.scm167
-rw-r--r--gnu/packages/node-xyz.scm32
-rw-r--r--gnu/packages/node.scm508
-rw-r--r--gnu/packages/ocaml.scm68
-rw-r--r--gnu/packages/package-management.scm38
-rw-r--r--gnu/packages/parallel.scm6
-rw-r--r--gnu/packages/password-utils.scm31
-rw-r--r--gnu/packages/patches/calibre-no-updates-dialog.patch22
-rw-r--r--gnu/packages/patches/calibre-remove-test-sqlite.patch21
-rw-r--r--gnu/packages/patches/calibre-remove-test-unrar.patch24
-rw-r--r--gnu/packages/patches/cgal-security-pr-5371.patch1611
-rw-r--r--gnu/packages/patches/chez-scheme-build-util-paths-backport.patch780
-rw-r--r--gnu/packages/patches/containerd-test-with-go1.13.patch21
-rw-r--r--gnu/packages/patches/curl-7.76-use-ssl-cert-env.patch64
-rw-r--r--gnu/packages/patches/efibootmgr-remove-extra-decl.patch27
-rw-r--r--gnu/packages/patches/gimp-make-gegl-introspect-optional.patch43
-rw-r--r--gnu/packages/patches/glibc-ldd-powerpc.patch10
-rw-r--r--gnu/packages/patches/imagemagick-CVE-2020-27829.patch27
-rw-r--r--gnu/packages/patches/imagemagick-ReadDCMImage-fix.patch26
-rw-r--r--gnu/packages/patches/imagemagick-ReadDCMPixels-fix.patch35
-rw-r--r--gnu/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch25
-rw-r--r--gnu/packages/patches/libvirt-add-install-prefix.patch329
-rw-r--r--gnu/packages/patches/linphone-desktop-without-sdk.patch235
-rw-r--r--gnu/packages/patches/linphoneqt-tabbutton.patch96
-rw-r--r--gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch100
-rw-r--r--gnu/packages/patches/mariadb-CVE-2021-27928.patch642
-rw-r--r--gnu/packages/patches/mediastreamer2-srtp2.patch155
-rw-r--r--gnu/packages/patches/opendht-fix-jami.patch33
-rw-r--r--gnu/packages/patches/pidgin-vv-gst.patch48
-rw-r--r--gnu/packages/patches/pyqt-public-sip.patch55
-rw-r--r--gnu/packages/patches/qemu-build-info-manual.patch2
-rw-r--r--gnu/packages/patches/qemu-glibc-2.30.patch57
-rw-r--r--gnu/packages/patches/runc-CVE-2019-5736.patch343
-rw-r--r--gnu/packages/patches/upx-CVE-2021-20285.patch76
-rw-r--r--gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch14
-rw-r--r--gnu/packages/patches/wpa-supplicant-CVE-2021-30004.patch115
-rw-r--r--gnu/packages/patches/zstd-CVE-2021-24031_CVE-2021-24032.patch68
-rw-r--r--gnu/packages/pdf.scm13
-rw-r--r--gnu/packages/pep.scm15
-rw-r--r--gnu/packages/perl-check.scm4
-rw-r--r--gnu/packages/perl.scm39
-rw-r--r--gnu/packages/photo.scm17
-rw-r--r--gnu/packages/popt.scm2
-rw-r--r--gnu/packages/pretty-print.scm13
-rw-r--r--gnu/packages/python-build.scm6
-rw-r--r--gnu/packages/python-check.scm27
-rw-r--r--gnu/packages/python-compression.scm150
-rw-r--r--gnu/packages/python-web.scm29
-rw-r--r--gnu/packages/python-xyz.scm361
-rw-r--r--gnu/packages/qt.scm388
-rw-r--r--gnu/packages/radio.scm355
-rw-r--r--gnu/packages/rdf.scm4
-rw-r--r--gnu/packages/ruby.scm5
-rw-r--r--gnu/packages/rust.scm4
-rw-r--r--gnu/packages/scsi.scm6
-rw-r--r--gnu/packages/search.scm8
-rw-r--r--gnu/packages/security-token.scm6
-rw-r--r--gnu/packages/sequoia.scm76
-rw-r--r--gnu/packages/shells.scm651
-rw-r--r--gnu/packages/speech.scm15
-rw-r--r--gnu/packages/sqlite.scm22
-rw-r--r--gnu/packages/ssh.scm93
-rw-r--r--gnu/packages/statistics.scm35
-rw-r--r--gnu/packages/tcl.scm2
-rw-r--r--gnu/packages/telegram.scm4
-rw-r--r--gnu/packages/telephony.scm22
-rw-r--r--gnu/packages/tex.scm198
-rw-r--r--gnu/packages/text-editors.scm4
-rw-r--r--gnu/packages/time.scm12
-rw-r--r--gnu/packages/tls.scm6
-rw-r--r--gnu/packages/tmux.scm6
-rw-r--r--gnu/packages/toys.scm39
-rw-r--r--gnu/packages/upnp.scm4
-rw-r--r--gnu/packages/version-control.scm14
-rw-r--r--gnu/packages/video.scm34
-rw-r--r--gnu/packages/vim.scm14
-rw-r--r--gnu/packages/virtualization.scm151
-rw-r--r--gnu/packages/vpn.scm4
-rw-r--r--gnu/packages/web-browsers.scm44
-rw-r--r--gnu/packages/web.scm103
-rw-r--r--gnu/packages/webkit.scm13
-rw-r--r--gnu/packages/wm.scm96
-rw-r--r--gnu/packages/xdisorg.scm8
-rw-r--r--gnu/packages/xfce.scm27
-rw-r--r--gnu/packages/xml.scm149
-rw-r--r--gnu/services/admin.scm4
-rw-r--r--gnu/services/base.scm19
-rw-r--r--gnu/services/ci.scm127
-rw-r--r--gnu/services/cuirass.scm23
-rw-r--r--gnu/services/mail.scm2
-rw-r--r--gnu/services/sysctl.scm2
-rw-r--r--gnu/services/version-control.scm2
-rw-r--r--gnu/services/web.scm35
-rw-r--r--gnu/services/xorg.scm2
-rw-r--r--gnu/system/vm.scm18
-rw-r--r--gnu/tests/ci.scm128
-rw-r--r--gnu/tests/cuirass.scm299
-rw-r--r--gnu/tests/file-sharing.scm271
-rw-r--r--gnu/tests/nfs.scm2
-rw-r--r--gnu/tests/virtualization.scm11
-rw-r--r--guix/build-system/go.scm24
-rw-r--r--guix/build-system/node.scm29
-rw-r--r--guix/build/julia-build-system.scm2
-rw-r--r--guix/build/node-build-system.scm207
-rw-r--r--guix/build/qt-build-system.scm68
-rw-r--r--guix/build/syscalls.scm8
-rw-r--r--guix/gexp.scm32
-rw-r--r--guix/git.scm35
-rw-r--r--guix/gnu-maintenance.scm96
-rw-r--r--guix/http-client.scm109
-rw-r--r--guix/import/go.scm465
-rw-r--r--guix/import/print.scm11
-rw-r--r--guix/import/utils.scm48
-rw-r--r--guix/licenses.scm7
-rw-r--r--guix/lint.scm62
-rw-r--r--guix/narinfo.scm27
-rw-r--r--guix/packages.scm4
-rw-r--r--guix/scripts/archive.scm4
-rw-r--r--guix/scripts/build.scm2
-rw-r--r--guix/scripts/copy.scm4
-rw-r--r--guix/scripts/describe.scm10
-rw-r--r--guix/scripts/discover.scm12
-rw-r--r--guix/scripts/download.scm17
-rw-r--r--guix/scripts/edit.scm10
-rw-r--r--guix/scripts/import.scm3
-rw-r--r--guix/scripts/import/cran.scm2
-rw-r--r--guix/scripts/import/go.scm75
-rw-r--r--guix/scripts/publish.scm12
-rw-r--r--guix/scripts/repl.scm11
-rw-r--r--guix/scripts/search.scm9
-rw-r--r--guix/scripts/show.scm10
-rwxr-xr-xguix/scripts/substitute.scm257
-rw-r--r--guix/status.scm23
-rw-r--r--guix/upstream.scm15
-rw-r--r--guix/utils.scm9
-rw-r--r--m4/guix.m43
-rw-r--r--nix/libstore/build.cc4
-rw-r--r--nix/libstore/local-store.cc12
-rw-r--r--nix/local.mk2
-rw-r--r--nix/nix-daemon/nix-daemon.cc9
-rw-r--r--nix/nix-daemon/shared.hh9
-rw-r--r--tests/gnu-maintenance.scm19
-rw-r--r--tests/go.scm139
-rw-r--r--tests/guix-build.sh6
-rw-r--r--tests/publish.scm4
-rw-r--r--tests/substitute.scm4
273 files changed, 14490 insertions, 7976 deletions
diff --git a/.guix-authorizations b/.guix-authorizations
index 4efcd80bd9..c3e218b1f4 100644
--- a/.guix-authorizations
+++ b/.guix-authorizations
@@ -8,8 +8,6 @@
(name "andreas"))
("2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"
(name "ajgrf"))
- ("306F CB8F 2C01 C25D 29D3 0556 61EF 502E F602 52F2"
- (name "alexvong1995"))
("4FB9 9F49 2B12 A365 7997 E664 8246 0C08 2A0E E98F"
(name "alezost"))
("50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F"
@@ -27,8 +25,6 @@
(;; primary: "34FF 38BC D151 25A6 E340 A0B5 3453 2F9F AFCA 8B8E"
"A0C5 E352 2EF8 EF5C 64CD B7F0 FD73 CAC7 19D3 2566"
(name "bavier"))
- ("BCF8 F737 2CED 080A 67EB 592D 2A6A D9F4 AAC2 0DF6"
- (name "benwoodcroft"))
("45CC 63B8 5258 C9D5 5F34 B239 D37D 0EA7 CECC 3912"
(name "biscuolo"))
("7988 3B9F 7D6A 4DBF 3719 0367 2506 A96C CF63 0B21"
@@ -92,8 +88,6 @@
(name "lfam"))
("148B CB8B D80B FB16 B1DE 0E91 45A8 B1E8 6BCD 10A6"
(name "lle_bout"))
- ("2AE3 1395 932B E642 FC0E D99C 9BED 6EDA 32E5 B0BC"
- (name "lsl88"))
("8887 84C4 1459 ACCB 83E7 E84C 634C 6E89 79FA BEC2"
(name "m1gu3l"))
("CBF5 9755 CBE7 E7EF EF18 3FB1 DD40 9A15 D822 469D"
@@ -125,8 +119,6 @@
(name "reepca"))
("BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC"
(name "rekado"))
- ("0154 E1B9 1CC9 D9EF 7764 8DE7 F3A7 27DB 44FC CA36"
- (name "rhelling"))
(;; From commit cc51c03ff867d4633505354819c6d88af88bf919 (March 2020).
;; See <https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00070.html>.
"F556 FD94 FB8F 8B87 79E3 6832 CBD0 CD51 38C1 9AFC"
@@ -138,22 +130,10 @@
(;; primary: "D6B0 C593 DA8C 5EDC A44C 7A58 C336 91F7 1188 B004"
"A02C 2D82 0EF4 B25B A6B5 1D90 2AC6 A5EC 1C35 7C59"
(name "samplet"))
- ("77DD AD2D 97F5 31BB C0F3 C7FD DFB5 EB09 AA62 5423"
- (name "sleep_walker"))
("F494 72F4 7A59 00D5 C235 F212 89F9 6D48 08F3 59C7"
(name "snape"))
- ("9ADE 9ECF 2B19 C180 9C99 5CEA A1F4 CFCC 5283 6BAC"
- (name "taylanub"))
-
- ;; https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00826.html
- (;; primary: "1DD1 681F E285 E07F 11DC 0C59 2E15 A6BC D77D 54FD"
- "3D2C DA58 819C 08C2 A649 D43D 5C3B 064C 724A 5726"
- (name "thomasd"))
-
("6580 7361 3BFC C5C7 E2E4 5D45 DC51 8FC8 7F97 16AA"
(name "vagrantc"))
(;; primary: "C955 CC5D C048 7FB1 7966 40A9 199A F6A3 67E9 4ABB"
"7238 7123 8EAC EB63 4548 5857 167F 8EA5 001A FA9C"
- (name "wigust"))
- ("FF47 8FB2 64DE 32EC 2967 25A3 DDC0 F535 8812 F8F2"
- (name "wingo"))))
+ (name "wigust"))))
diff --git a/Makefile.am b/Makefile.am
index ecad9fe583..d4d3400dd1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,6 +14,7 @@
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+# Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
#
# This file is part of GNU Guix.
#
@@ -800,7 +801,8 @@ SOURCE_TARBALLS = \
$(foreach ext,tar.gz,$(PACKAGE_FULL_TARNAME).$(ext))
# Systems supported by Guix.
-SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux
+SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux \
+ powerpc64le-linux
# Guix binary tarballs.
BINARY_TARBALLS = \
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index dd845d1596..853a2f328f 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -285,8 +285,7 @@ interface (FFI) of Guile.")
#:select? select?))
(gexp->script "compute-guix-derivation"
#~(begin
- (use-modules (ice-9 match)
- (ice-9 threads))
+ (use-modules (ice-9 match))
(eval-when (expand load eval)
;; (gnu packages …) modules are going to be looked up
@@ -320,23 +319,9 @@ interface (FFI) of Guile.")
(guix derivations)
(srfi srfi-1))
- (define (spin system)
- (define spin
- (circular-list "-" "\\" "|" "/" "-" "\\" "|" "/"))
-
- (format (current-error-port)
- "Computing Guix derivation for '~a'... "
- system)
- (when (isatty? (current-error-port))
- (let loop ((spin spin))
- (display (string-append "\b" (car spin))
- (current-error-port))
- (force-output (current-error-port))
- (sleep 1)
- (loop (cdr spin)))))
-
(match (command-line)
- ((_ source system version protocol-version)
+ ((_ source system version protocol-version
+ build-output)
;; The current input port normally wraps a file
;; descriptor connected to the daemon, or it is
;; connected to /dev/null. In the former case, reuse
@@ -349,16 +334,18 @@ interface (FFI) of Guile.")
(current-input-port)
"w+0")
#:version proto)
- (open-connection))))
- (call-with-new-thread
- (lambda ()
- (spin system)))
+ (open-connection)))
+ (sock (socket AF_UNIX SOCK_STREAM 0)))
+ ;; Connect to BUILD-OUTPUT and send it the raw
+ ;; build output.
+ (connect sock AF_UNIX build-output)
(display
(and=>
;; Silence autoload warnings and the likes.
(parameterize ((current-warning-port
- (%make-void-port "w")))
+ (%make-void-port "w"))
+ (current-build-output-port sock))
(run-with-store store
(guix-derivation source version
#$guile-version
@@ -370,6 +357,28 @@ interface (FFI) of Guile.")
derivation-file-name))))))
#:module-path (list source))))
+(define (proxy input output)
+ "Dump the contents of INPUT to OUTPUT until EOF is reached on INPUT.
+Display a spinner when nothing happens."
+ (define spin
+ (circular-list "-" "\\" "|" "/" "-" "\\" "|" "/"))
+
+ (setvbuf input 'block 16384)
+ (let loop ((spin spin))
+ (match (select (list input) '() '() 1)
+ ((() () ())
+ (when (isatty? (current-error-port))
+ (display (string-append "\b" (car spin))
+ (current-error-port))
+ (force-output (current-error-port)))
+ (loop (cdr spin)))
+ (((_) () ())
+ ;; Read from INPUT as much as can be read without blocking.
+ (let ((bv (get-bytevector-some input)))
+ (unless (eof-object? bv)
+ (put-bytevector output bv)
+ (loop spin)))))))
+
(define (call-with-clean-environment thunk)
(let ((env (environ)))
(dynamic-wind
@@ -426,7 +435,14 @@ files."
;; way, we know 'open-pipe*' will not close it on 'exec'. If PORT is
;; not a file port (e.g., it's an SSH channel), then the subprocess's
;; stdin will actually be /dev/null.
- (let* ((pipe (with-input-from-port port
+ (let* ((sock (socket AF_UNIX SOCK_STREAM 0))
+ (node (let ((file (string-append (or (getenv "TMPDIR") "/tmp")
+ "/guix-build-output-"
+ (number->string (getpid)))))
+ (bind sock AF_UNIX file)
+ (listen sock 1)
+ file))
+ (pipe (with-input-from-port port
(lambda ()
;; Make sure BUILD is not influenced by
;; $GUILE_LOAD_PATH & co.
@@ -442,30 +458,45 @@ files."
(if (file-port? port)
(number->string
(logior major minor))
- "none"))))))
- (str (get-string-all pipe))
- (status (close-pipe pipe)))
- (match str
- ((? eof-object?)
- (error "build program failed" (list build status)))
- ((? derivation-path? drv)
- (mbegin %store-monad
- (return (newline (current-error-port)))
- ((store-lift add-temp-root) drv)
- (return (read-derivation-from-file drv))))
- ("#f"
- ;; Unsupported PULL-VERSION.
- (return #f))
- ((? string? str)
- (raise (condition
- (&message
- (message (format #f "You found a bug: the program '~a'
+ "none")
+ node))))))
+ (format (current-error-port) "Computing Guix derivation for '~a'... "
+ system)
+
+ ;; Wait for a connection on SOCK and proxy build output so it can be
+ ;; processed according to the settings currently in effect (build
+ ;; traces, verbosity level, and so on).
+ (match (accept sock)
+ ((port . _)
+ (close-port sock)
+ (delete-file node)
+ (proxy port (current-build-output-port))))
+
+ ;; Now that the build output connection was closed, read the result, a
+ ;; derivation file name, from PIPE.
+ (let ((str (get-string-all pipe))
+ (status (close-pipe pipe)))
+ (match str
+ ((? eof-object?)
+ (error "build program failed" (list build status)))
+ ((? derivation-path? drv)
+ (mbegin %store-monad
+ (return (newline (current-error-port)))
+ ((store-lift add-temp-root) drv)
+ (return (read-derivation-from-file drv))))
+ ("#f"
+ ;; Unsupported PULL-VERSION.
+ (return #f))
+ ((? string? str)
+ (raise (condition
+ (&message
+ (message (format #f "You found a bug: the program '~a'
failed to compute the derivation for Guix (version: ~s; system: ~s;
host version: ~s; pull-version: ~s).
Please report it by email to <~a>.~%"
- (derivation->output-path build)
- version system %guix-version pull-version
- %guix-bug-report-address)))))))))))
+ (derivation->output-path build)
+ version system %guix-version pull-version
+ %guix-bug-report-address))))))))))))
;; This file is loaded by 'guix pull'; return it the build procedure.
build
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 58c4dafb9b..9a09de93e6 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -126,10 +126,10 @@ Store}, for information about this), usually @file{/var}. Note that you
will probably not run @command{make install} at the end (you don't have
to) but it's still important to pass the right @code{localstatedir}.
-Finally, you have to invoke @code{make check} to run tests
-(@pxref{Running the Test Suite}). If anything
-fails, take a look at installation instructions (@pxref{Installation})
-or send a message to the @email{guix-devel@@gnu.org, mailing list}.
+Finally, you have to invoke @code{make && make check} to build Guix and
+run the tests (@pxref{Running the Test Suite}). If anything fails, take
+a look at installation instructions (@pxref{Installation}) or send a
+message to the @email{guix-devel@@gnu.org, mailing list}.
From there on, you can authenticate all the commits included in your
checkout by running:
@@ -445,6 +445,14 @@ the project name chosen upstream, with underscores replaced with
hyphens. For instance, GNUnet is available as @code{gnunet}, and
SDL_net as @code{sdl-net}.
+A noteworthy exception to this rule is when the project name is only a
+single character, or if an older maintained project with the same name
+already exists---regardless of whether it has already been packaged for
+Guix. Use common sense to make such names unambiguous and meaningful.
+For example, Guix's package for the shell called ``s'' upstream is
+@code{s-shell} and @emph{not} @code{s}. Feel free to ask your fellow
+hackers for inspiration.
+
We do not add @code{lib} prefixes for library packages, unless these are
already part of the official project name. But @pxref{Python
Modules} and @ref{Perl Modules} for special rules concerning modules for
diff --git a/doc/guix.texi b/doc/guix.texi
index 94ecd2c247..218ff35ce9 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31,14 +31,14 @@ Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
Copyright @copyright{} 2015, 2016, 2017, 2019, 2020, 2021 Leo Famulari@*
Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@*
Copyright @copyright{} 2016 Ben Woodcroft@*
-Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*
+Copyright @copyright{} 2016, 2017, 2018, 2021 Chris Marusich@*
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner@*
Copyright @copyright{} 2016 John Darrington@*
Copyright @copyright{} 2016, 2017 Nikita Gillmann@*
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@*
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@*
Copyright @copyright{} 2016 Alex ter Weele@*
-Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*
+Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@*
Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@*
Copyright @copyright{} 2017, 2018, 2020, 2021 Mathieu Othacehe@*
Copyright @copyright{} 2017 Federico Beffa@*
@@ -49,7 +49,7 @@ Copyright @copyright{} 2017, 2021 Christopher Lemmer Webber@*
Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@*
Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*
Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@*
-Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@*
+Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice@*
Copyright @copyright{} 2017 George Clemmer@*
Copyright @copyright{} 2017 Andy Wingo@*
Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@*
@@ -240,13 +240,13 @@ Channels
* Using a Custom Guix Channel:: Using a customized Guix.
* Replicating Guix:: Running the @emph{exact same} Guix.
* Channel Authentication:: How Guix verifies what it fetches.
+* Channels with Substitutes:: Using channels with available substitutes.
* Creating a Channel:: How to write your custom channel.
* Package Modules in a Sub-directory:: Specifying the channel's package modules location.
* Declaring Channel Dependencies:: How to depend on other channels.
* Specifying Channel Authorizations:: Defining channel authors authorizations.
* Primary URL:: Distinguishing mirror to original.
* Writing Channel News:: Communicating information to channel's users.
-* Channels with Substitutes:: Using channels with available substitutes.
Development
@@ -342,7 +342,7 @@ Services
* DNS Services:: DNS daemons.
* VPN Services:: VPN daemons.
* Network File System:: NFS related services.
-* Continuous Integration:: The Cuirass service.
+* Continuous Integration:: Cuirass and Laminar services.
* Power Management Services:: Extending battery life.
* Audio Services:: The MPD.
* Virtualization Services:: Virtualization services.
@@ -523,6 +523,17 @@ supported; in particular, there is no ongoing work to ensure that this
architecture still works. Should someone decide they wish to revive this
architecture then the code is still available.
+@item powerpc64le-linux
+little-endian 64-bit Power ISA processors, Linux-Libre kernel. This
+includes POWER9 systems such as the
+@uref{https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom,
+RYF Talos II mainboard}. This platform is available as a "technology
+preview": although it is supported, substitutes are not yet available
+from the build farm (@pxref{Substitutes}), and some packages may fail to
+build (@pxref{Tracking Bugs and Patches}). That said, the Guix
+community is actively working on improving this support, and now is a
+great time to try it and get involved!
+
@end table
With Guix@tie{}System, you @emph{declare} all aspects of the operating system
@@ -534,7 +545,7 @@ Manual}), the well-known GNU utilities and tool chain, as well as the
graphical environment or system services of your choice.
Guix System is available on all the above platforms except
-@code{mips64el-linux}.
+@code{mips64el-linux} and @code{powerpc64le-linux}.
@noindent
For information on porting to other architectures or kernels,
@@ -641,7 +652,7 @@ If that command fails because you do not have the required public key,
then run this command to import it:
@example
-$ wget @value{OPENPGP-SIGNING-KEY-URL} \
+$ wget '@value{OPENPGP-SIGNING-KEY-URL}' \
-qO - | gpg --import -
@end example
@@ -1043,10 +1054,10 @@ Bash syntax and the @code{shadow} commands):
@c for why `-G' is needed.
@example
# groupadd --system guixbuild
-# for i in `seq -w 1 10`;
+# for i in $(seq -w 1 10);
do
useradd -g guixbuild -G guixbuild \
- -d /var/empty -s `which nologin` \
+ -d /var/empty -s $(which nologin) \
-c "Guix build user $i" --system \
guixbuilder$i;
done
@@ -1417,7 +1428,7 @@ the Guix daemon.
@code{guix_daemon_socket_t} isn’t actually used. None of the socket
operations involve contexts that have anything to do with
@code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label,
-but it would be preferrable to define socket rules for only this label.
+but it would be preferable to define socket rules for only this label.
@item
@code{guix gc} cannot access arbitrary links to profiles. By design,
@@ -4211,7 +4222,7 @@ Return the derivation(s) leading to the given store items
For example, this command:
@example
-guix gc --derivers `guix package -I ^emacs$ | cut -f4`
+guix gc --derivers $(guix package -I ^emacs$ | cut -f4)
@end example
@noindent
@@ -4692,7 +4703,7 @@ these procedures.
Inferior packages can be used transparently like any other package or
file-like object in G-expressions (@pxref{G-Expressions}). They are also
transparently handled by the @code{packages->manifest} procedure, which is
-commonly use in manifests (@pxref{Invoking guix package, the
+commonly used in manifests (@pxref{Invoking guix package, the
@option{--manifest} option of @command{guix package}}). Thus you can insert
an inferior package pretty much anywhere you would insert a regular package:
in manifests, in the @code{packages} field of your @code{operating-system}
@@ -5007,13 +5018,13 @@ updates.
* Using a Custom Guix Channel:: Using a customized Guix.
* Replicating Guix:: Running the @emph{exact same} Guix.
* Channel Authentication:: How Guix verifies what it fetches.
+* Channels with Substitutes:: Using channels with available substitutes.
* Creating a Channel:: How to write your custom channel.
* Package Modules in a Sub-directory:: Specifying the channel's package modules location.
* Declaring Channel Dependencies:: How to depend on other channels.
* Specifying Channel Authorizations:: Defining channel authors authorizations.
* Primary URL:: Distinguishing mirror to original.
* Writing Channel News:: Communicating information to channel's users.
-* Channels with Substitutes:: Using channels with available substitutes.
@end menu
@node Specifying Additional Channels
@@ -5169,6 +5180,31 @@ introduction from a trusted source since that is the root of your trust.
If you're curious about the authentication mechanics, read on!
+@node Channels with Substitutes
+@section Channels with Substitutes
+
+When running @command{guix pull}, Guix will first compile the
+definitions of every available package. This is an expensive operation
+for which substitutes (@pxref{Substitutes}) may be available. The
+following snippet in @file{channels.scm} will ensure that @command{guix
+pull} uses the latest commit with available substitutes for the package
+definitions: this is done by querying the continuous integration
+server at @url{https://ci.guix.gnu.org}.
+
+@lisp
+(use-modules (guix ci))
+
+(list (channel-with-substitutes-available
+ %default-guix-channel
+ "https://ci.guix.gnu.org"))
+@end lisp
+
+Note that this does not mean that all the packages that you will
+install after running @command{guix pull} will have available
+substitutes. It only ensures that @command{guix pull} will not try to
+compile package definitions. This is particularly useful when using
+machines with limited resources.
+
@node Creating a Channel
@section Creating a Channel
@@ -5485,31 +5521,6 @@ xgettext -o news.po -l scheme -ken etc/news.txt
To sum up, yes, you could use your channel as a blog. But beware, this
is @emph{not quite} what your users might expect.
-@node Channels with Substitutes
-@section Channels with Substitutes
-
-When running @command{guix pull}, Guix will first compile the
-definitions of every available package. This is an expensive operation
-for which substitutes (@pxref{Substitutes}) may be available. The
-following snippet in @file{channels.scm} will ensure that @command{guix
-pull} uses the latest commit with available substitutes for the package
-definitions: this is done by querying the continuous integration
-server at @url{https://ci.guix.gnu.org}.
-
-@lisp
-(use-modules (guix ci))
-
-(list (channel-with-substitutes-available
- %default-guix-channel
- "https://ci.guix.gnu.org"))
-@end lisp
-
-Note that this does not mean that all the packages that you will
-install after running @command{guix pull} will have available
-substitutes. It only ensures that @command{guix pull} will not try to
-compile package definitions. This is particularly useful when using
-machines with limited resources.
-
@c *********************************************************************
@node Development
@chapter Development
@@ -7752,13 +7763,13 @@ The Julia package name is read from the file @file{Project.toml}. This
value can be overridden by passing the argument @code{#:julia-package-name}
(which must be correctly capitalized).
-Julia packages usually manage they binary dependencies via
+Julia packages usually manage their binary dependencies via
@code{JLLWrappers.jl}, a Julia package that creates a module (named
after the wrapped library followed by @code{_jll.jl}.
To add the binary path @code{_jll.jl} packages, you need to patch the
files under @file{src/wrappers/}, replacing the call to the macro
-@code{JLLWrappers.@@generate_wrapper_header}, adding as a secound
+@code{JLLWrappers.@@generate_wrapper_header}, adding as a second
argument containing the store path the binary.
As an example, in the MbedTLS Julia package, we add a build phase
@@ -10120,7 +10131,7 @@ Similarly, the following command builds all the available packages:
@example
guix build --quiet --keep-going \
- `guix package -A | cut -f1,2 --output-delimiter=@@`
+ $(guix package -A | cut -f1,2 --output-delimiter=@@)
@end example
@var{package-or-derivation} may be either the name of a package found in
@@ -10253,9 +10264,10 @@ guix-daemon, @option{--timeout}}).
@cindex build logs, verbosity
@item -v @var{level}
@itemx --verbosity=@var{level}
-Use the given verbosity @var{level}, an integer. Choosing 0 means that no
-output is produced, 1 is for quiet output, and 2 shows all the build log
-output on standard error.
+Use the given verbosity @var{level}, an integer. Choosing 0 means that
+no output is produced, 1 is for quiet output; 2 is similar to 1 but it
+additionally displays download URLs; 3 shows all the build log output on
+standard error.
@item --cores=@var{n}
@itemx -c @var{n}
@@ -10825,8 +10837,8 @@ This works regardless of how packages or derivations are specified. For
instance, the following invocations are equivalent:
@example
-guix build --log-file `guix build -d guile`
-guix build --log-file `guix build guile`
+guix build --log-file $(guix build -d guile)
+guix build --log-file $(guix build guile)
guix build --log-file guile
guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
@end example
@@ -11541,13 +11553,13 @@ Select the given repository (a repository name). Possible values include:
Import metadata for a Go module using
@uref{https://proxy.golang.org, proxy.golang.org}.
-This importer is highly experimental. See the source code for more info
-about the current state.
-
@example
guix import go gopkg.in/yaml.v2
@end example
+It is possible to use a package specification with a @code{@@VERSION}
+suffix to import a specific version.
+
Additional options include:
@table @code
@@ -11556,6 +11568,14 @@ Additional options include:
Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet
in Guix.
+@item --pin-versions
+When using this option, the importer preserves the exact versions of the
+Go modules dependencies instead of using their latest available
+versions. This can be useful when attempting to import packages that
+recursively depend on former versions of themselves to build. When
+using this mode, the symbol of the package is made by appending the
+version to its name, so that multiple versions of the same package can
+coexist.
@end table
@end table
@@ -11567,10 +11587,13 @@ is welcome here (@pxref{Contributing}).
@section Invoking @command{guix refresh}
@cindex @command {guix refresh}
-The primary audience of the @command{guix refresh} command is developers
-of the GNU software distribution. By default, it reports any packages
-provided by the distribution that are outdated compared to the latest
-upstream version, like this:
+The primary audience of the @command{guix refresh} command is packagers.
+As a user, you may be interested in the @option{--with-latest} option,
+which can bring you package update superpowers built upon @command{guix
+refresh} (@pxref{Package Transformation Options,
+@option{--with-latest}}). By default, @command{guix refresh} reports
+any packages provided by the distribution that are outdated compared to
+the latest upstream version, like this:
@example
$ guix refresh
@@ -11698,6 +11721,8 @@ list of updaters). Currently, @var{updater} may be one of:
the updater for GNU packages;
@item savannah
the updater for packages hosted at @uref{https://savannah.gnu.org, Savannah};
+@item sourceforge
+the updater for packages hosted at @uref{https://sourceforge.net, SourceForge};
@item gnome
the updater for GNOME packages;
@item kde
@@ -11742,6 +11767,12 @@ gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to
gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9
@end example
+@item --list-updaters
+@itemx -L
+List available updaters and exit (see @option{--type} above).
+
+For each updater, display the fraction of packages it covers; at the
+end, display the fraction of packages covered by all these updaters.
@end table
In addition, @command{guix refresh} can be passed one or more package
@@ -11754,7 +11785,13 @@ $ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8
@noindent
The command above specifically updates the @code{emacs} and
@code{idutils} packages. The @option{--select} option would have no
-effect in this case.
+effect in this case. You might also want to update definitions that
+correspond to the packages installed in your profile:
+
+@example
+$ ./pre-inst-env guix refresh -u \
+ $(guix package --list-installed | cut -f1)
+@end example
When considering whether to upgrade a package, it is sometimes
convenient to know which packages would be affected by the upgrade and
@@ -11763,13 +11800,6 @@ be used when passing @command{guix refresh} one or more package names:
@table @code
-@item --list-updaters
-@itemx -L
-List available updaters and exit (see @option{--type} above).
-
-For each updater, display the fraction of packages it covers; at the
-end, display the fraction of packages covered by all these updaters.
-
@item --list-dependent
@itemx -l
List top-level dependent packages that would need to be rebuilt as a
@@ -12326,7 +12356,7 @@ For this type of graph, it is also possible to pass a @file{.drv} file
name instead of a package name, as in:
@example
-guix graph -t derivation `guix system build -d my-config.scm`
+guix graph -t derivation $(guix system build -d my-config.scm)
@end example
@item module
@@ -12355,7 +12385,7 @@ example, the command below produces the reference graph of your profile
(which can be big!):
@example
-guix graph -t references `readlink -f ~/.guix-profile`
+guix graph -t references $(readlink -f ~/.guix-profile)
@end example
@item referrers
@@ -12927,7 +12957,7 @@ their dependencies over to @var{host}, logged in as @var{user}:
@example
guix copy --to=@var{user}@@@var{host} \
- coreutils `readlink -f ~/.guix-profile`
+ coreutils $(readlink -f ~/.guix-profile)
@end example
If some of the items to be copied are already present on @var{host},
@@ -14798,7 +14828,7 @@ declaration.
* DNS Services:: DNS daemons.
* VPN Services:: VPN daemons.
* Network File System:: NFS related services.
-* Continuous Integration:: The Cuirass service.
+* Continuous Integration:: Cuirass and Laminar services.
* Power Management Services:: Extending battery life.
* Audio Services:: The MPD.
* Virtualization Services:: Virtualization services.
@@ -15170,6 +15200,12 @@ in automatically without prompting for their login name or password.
@item @code{hardware-acceleration?} (default: #f)
Whether to use hardware acceleration.
+@item @code{font-engine} (default: @code{"pango"})
+Font engine used in Kmscon.
+
+@item @code{font-size} (default: @code{12})
+Font size used in Kmscon.
+
@item @code{kmscon} (default: @var{kmscon})
The Kmscon package to use.
@@ -15620,7 +15656,7 @@ This allows neighboring Guix devices with discovery on (see
@code{guix-configuration} above) to discover this @command{guix publish}
instance and to automatically download substitutes from it.
-@item @code{compression} (default: @code{'(("gzip" 3))})
+@item @code{compression} (default: @code{'(("gzip" 3) ("zstd" 3))})
This is a list of compression method/level tuple used when compressing
substitutes. For example, to compress all substitutes with @emph{both} lzip
at level 7 and gzip at level 9, write:
@@ -16389,7 +16425,7 @@ netfilter project that aims to replace the existing iptables, ip6tables,
arptables and ebtables framework. It provides a new packet filtering
framework, a new user-space utility @command{nft}, and a compatibility layer
for iptables. This service comes with a default ruleset
-@code{%default-nftables-ruleset} that rejecting all incomming connections
+@code{%default-nftables-ruleset} that rejecting all incoming connections
except those to the ssh port 22. To use it, simply write:
@lisp
@@ -16792,7 +16828,7 @@ Data type representing the configuration for @code{syncthing-service-type}.
List of command-line arguments passing to @code{syncthing} binary.
@item @code{logflags} (default: @var{0})
-Sum of loging flags, see
+Sum of logging flags, see
@uref{https://docs.syncthing.net/users/syncthing.html#cmdoption-logflags, Syncthing documentation logflags}.
@item @code{user} (default: @var{#f})
@@ -25877,7 +25913,7 @@ this amount of time. After this period, resolvers will invalidate their cache
and check again that it still exists.
@item @code{nx} (default: @code{3600})
-Default TTL of inexistant records. This delay is usually short because you want
+Default TTL of inexistent records. This delay is usually short because you want
your new domains to reach everyone quickly.
@end table
@@ -27085,9 +27121,9 @@ The verbosity level of the daemon.
@subsection Continuous Integration
@cindex continuous integration
-@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} is a
-continuous integration tool for Guix. It can be used both for development and
-for providing substitutes to others (@pxref{Substitutes}).
+@uref{https://guix.gnu.org/cuirass/, Cuirass} is a continuous
+integration tool for Guix. It can be used both for development and for
+providing substitutes to others (@pxref{Substitutes}).
The @code{(gnu services cuirass)} module provides the following service.
@@ -27096,45 +27132,44 @@ The type of the Cuirass service. Its value must be a
@code{cuirass-configuration} object, as described below.
@end defvr
-To add build jobs, you have to set the @code{specifications} field of the
-configuration. Here is an example of a service that polls the Guix repository
-and builds the packages from a manifest. Some of the packages are defined in
-the @code{"custom-packages"} input, which is the equivalent of
-@env{GUIX_PACKAGE_PATH}.
+To add build jobs, you have to set the @code{specifications} field of
+the configuration. For instance, the following example will build all
+the packages provided by the @code{my-channel} channel.
@lisp
(define %cuirass-specs
- #~(list
- '((#:name . "my-manifest")
- (#:load-path-inputs . ("guix"))
- (#:package-path-inputs . ("custom-packages"))
- (#:proc-input . "guix")
- (#:proc-file . "build-aux/cuirass/gnu-system.scm")
- (#:proc . cuirass-jobs)
- (#:proc-args . ((subset . "manifests")
- (systems . ("x86_64-linux"))
- (manifests . (("config" . "guix/manifest.scm")))))
- (#:inputs . (((#:name . "guix")
- (#:url . "git://git.savannah.gnu.org/guix.git")
- (#:load-path . ".")
- (#:branch . "master")
- (#:no-compile? . #t))
- ((#:name . "config")
- (#:url . "https://git.example.org/config.git")
- (#:load-path . ".")
- (#:branch . "master")
- (#:no-compile? . #t))
- ((#:name . "custom-packages")
- (#:url . "https://git.example.org/custom-packages.git")
- (#:load-path . ".")
- (#:branch . "master")
- (#:no-compile? . #t)))))))
+ #~(list (specification
+ (name "my-channel")
+ (build '(channels my-channel))
+ (channels
+ (cons (channel
+ (name 'my-channel)
+ (url "https://my-channel.git"))
+ %default-channels)))))
(service cuirass-service-type
(cuirass-configuration
(specifications %cuirass-specs)))
@end lisp
+To build the @code{linux-libre} package defined by the default Guix
+channel, one can use the following configuration.
+
+@lisp
+(define %cuirass-specs
+ #~(list (specification
+ (name "my-linux")
+ (build '(packages "linux-libre")))))
+
+(service cuirass-service-type
+ (cuirass-configuration
+ (specifications %cuirass-specs)))
+@end lisp
+
+The other configuration possibilities, as well as the specification
+record itself are described in the Cuirass manual
+(@pxref{Specifications,,, cuirass, Cuirass}).
+
While information related to build jobs is located directly in the
specifications, global settings for the @command{cuirass} process are
accessible in other @code{cuirass-configuration} fields.
@@ -27143,20 +27178,15 @@ accessible in other @code{cuirass-configuration} fields.
Data type representing the configuration of Cuirass.
@table @asis
+@item @code{cuirass} (default: @code{cuirass})
+The Cuirass package to use.
+
@item @code{log-file} (default: @code{"/var/log/cuirass.log"})
Location of the log file.
@item @code{web-log-file} (default: @code{"/var/log/cuirass-web.log"})
Location of the log file used by the web interface.
-@item @code{queries-log-file} (default: @code{#f})
-Location of the SQL queries log file. By default, SQL queries logging is
-disabled.
-
-@item @code{web-queries-log-file} (default: @code{#f})
-Location of the web SQL queries log file. By default, web SQL queries
-logging is disabled.
-
@item @code{cache-directory} (default: @code{"/var/cache/cuirass"})
Location of the repository cache.
@@ -27170,17 +27200,19 @@ Owner's group of the @code{cuirass} process.
Number of seconds between the poll of the repositories followed by the
Cuirass jobs.
-@item @code{queue-size} (default: @code{1})
-Size of the database writer queue.
+@item @code{parameters} (default: @code{#f})
+Read parameters from the given @var{parameters} file. The supported
+parameters are described here (@pxref{Parameters,,, cuirass, Cuirass}).
-@item @code{database} (default: @code{"/var/lib/cuirass/cuirass.db"})
-Location of sqlite database which contains the build results and previously
-added specifications.
+@item @code{remote-server} (default: @code{#f})
+A @code{cuirass-remote-server-configuration} record to use the build
+remote mechanism or @code{#f} to use the default build mechanism.
-@item @code{ttl} (default: @code{(* 30 24 3600)})
-Specifies the time-to-live (TTL) in seconds of garbage collector roots that
-are registered for build results. This means that build results are protected
-from garbage collection for at least @var{ttl} seconds.
+@item @code{database} (default: @code{"dbname=cuirass host=/var/run/postgresql"})
+Use @var{database} as the database containing the jobs and the past
+build results. Since Cuirass uses PostgreSQL as a database engine,
+@var{database} must be a string such as @code{"dbname=cuirass
+host=localhost"}.
@item @code{port} (default: @code{8081})
Port number used by the HTTP server.
@@ -27190,11 +27222,9 @@ Listen on the network interface for @var{host}. The default is to
accept connections from localhost.
@item @code{specifications} (default: @code{#~'()})
-A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications,
-where a specification is an association list
-(@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) whose
-keys are keywords (@code{#:keyword-example}) as shown in the example
-above.
+A gexp (@pxref{G-Expressions}) that evaluates to a list of
+specifications records. The specification record is described in the
+Cuirass manual (@pxref{Specifications,,, cuirass, Cuirass}).
@item @code{use-substitutes?} (default: @code{#f})
This allows using substitutes to avoid building every dependencies of a job
@@ -27210,122 +27240,160 @@ packages locally.
@item @code{extra-options} (default: @code{'()})
Extra options to pass when running the Cuirass processes.
-@item @code{cuirass} (default: @code{cuirass})
-The Cuirass package to use.
@end table
@end deftp
-@cindex simple cuirass
-@subsubheading Simple Cuirass
+@cindex remote build
+@subsubheading Cuirass remote building
-The Cuirass service configuration described above can be a little
-intimidating. In particular, getting the right @code{specifications}
-can prove difficult. The @code{simple-cuirass-configuration->specs}
-procedure offers a way to generate those @code{specifications} and thus
-setup a continuous integration server more readily.
+Cuirass supports two mechanisms to build derivations.
-@deffn {Scheme Procedure} simple-cuirass-configuration->specs @var{configuration}
-This procedure takes a @code{simple-cuirass-configuration} record as
-argument and returns the corresponding Cuirass specifications gexp.
-@end deffn
+@itemize
+@item Using the local Guix daemon.
+This is the default build mechanism. Once the build jobs are
+evaluated, they are sent to the local Guix daemon. Cuirass then
+listens to the Guix daemon output to detect the various build events.
-@deftp {Data Type} simple-cuirass-configuration
-Data type representing the configuration of a simple Cuirass instance.
+@item Using the remote build mechanism.
+The build jobs are not submitted to the local Guix daemon. Instead, a
+remote server dispatches build requests to the connect remote workers,
+according to the build priorities.
-@table @asis
-@item @code{build} (default: @code{all})
-The packages to be built by Cuirass. It defaults to @code{all}, which
-means that all the discovered packages in the subsequent @code{channels}
-field are to be selected.
+@end itemize
-It is also possible to set this field to a list of @code{build-manifest}
-records, so that only the packages that are part of the declared
-manifests are built. This record is described below.
+To enable this build mode a @code{cuirass-remote-server-configuration}
+record must be passed as @code{remote-server} argument of the
+@code{cuirass-configuration} record. The
+@code{cuirass-remote-server-configuration} record is described below.
+
+This build mode scales way better than the default build mode. This is
+the build mode that is used on the GNU Guix build farm at
+@url{https://ci.guix.gnu.org}. It should be preferred when using
+Cuirass to build large amount of packages.
+
+@deftp {Data Type} cuirass-remote-server-configuration
+Data type representing the configuration of the Cuirass remote-server.
-@deftp {Data Type} build-manifest
@table @asis
-@item @code{channel-name}
-The name of the channel where the manifest is located.
+@item @code{backend-port} (default: @code{5555})
+The TCP port for communicating with @code{remote-worker} processes
+using ZMQ. It defaults to @code{5555}.
+
+@item @code{log-port} (default: @code{5556})
+The TCP port of the log server. It defaults to @code{5556}.
+
+@item @code{publish-port} (default: @code{5557})
+The TCP port of the publish server. It defaults to @code{5557}.
-@item @code{manifest}
-The manifest path inside the channel.
+@item @code{log-file} (default: @code{"/var/log/cuirass-remote-server.log"})
+Location of the log file.
+
+@item @code{cache} (default: @code{"/var/cache/cuirass/remote"})
+Use @var{cache} directory to cache build log files.
+
+@item @code{trigger-url} (default: @code{#f})
+Once a substitute is successfully fetched, trigger substitute baking at
+@var{trigger-url}.
+
+@item @code{public-key}
+@item @code{private-key}
+Use the specific @var{file}s as the public/private key pair used to sign
+the store items being published.
@end table
@end deftp
-@item @code{channels} (default: @code{%default-channels})
-The channels to be fetched by Cuirass (@pxref{Channels}).
+At least one remote worker must also be started on any machine of the
+local network to actually perform the builds and report their status.
-@item @code{non-package-channels} (default: @code{'()})
-List the channel names that must not be searched for packages. That is
-often the case for the channel containing the manifest.
+@deftp {Data Type} cuirass-remote-worker-configuration
+Data type representing the configuration of the Cuirass remote-worker.
+
+@table @asis
+@item @code{cuirass} (default: @code{cuirass})
+The Cuirass package to use.
+
+@item @code{workers} (default: @code{1})
+Start @var{workers} parallel workers.
+
+@item @code{server} (default: @code{#f})
+Do not use Avahi discovery and connect to the given @code{server} IP
+address instead.
@item @code{systems} (default: @code{(list (%current-system))})
-Build every discovered package for each system in this list. By default
-only the current system is selected.
+Only request builds for the given @var{systems}.
+
+@item @code{log-file} (default: @code{"/var/log/cuirass-remote-worker.log"})
+Location of the log file.
+
+@item @code{publish-port} (default: @code{5558})
+The TCP port of the publish server. It defaults to @code{5558}.
+
+@item @code{public-key}
+@item @code{private-key}
+Use the specific @var{file}s as the public/private key pair used to sign
+the store items being published.
@end table
@end deftp
-Here is an example of how to setup a Cuirass instance that builds all
-the packages declared by Guix and a user repository. The package list
-is re-evaluated each time a commit is pushed in one of the declared
-channels.
+@subsubheading Laminar
-@lisp
-(service cuirass-service-type
- (cuirass-configuration
- (specifications
- (simple-cuirass-configuration->specs
- (simple-cuirass-configuration
- (build 'all)
- (channels (cons (channel
- (name 'my-guix)
- (url "https://my-git-repo/guix.git"))
- %default-channels)))))))
-@end lisp
+@uref{https://laminar.ohwg.net/, Laminar} is a lightweight and modular
+Continuous Integration service. It doesn't have a configuration web UI
+instead uses version-controllable configuration files and scripts.
-In the same spirit, this builds all the packages that are part of the
-@code{guix} or @code{my-guix} channels and declared in the manifest
-located in the @code{conf} channel.
+Laminar encourages the use of existing tools such as bash and cron
+instead of reinventing them.
+
+@defvr {Scheme Procedure} laminar-service-type
+The type of the Laminar service. Its value must be a
+@code{laminar-configuration} object, as described below.
+
+All configuration values have defaults, a minimal configuration to get
+Laminar running is shown below. By default, the web interface is
+available on port 8080.
@lisp
-(service cuirass-service-type
- (cuirass-configuration
- (specifications
- (simple-cuirass-configuration->specs
- (simple-cuirass-configuration
- (build (list
- (build-manifest
- (channel-name 'conf)
- (manifest "guix/manifest.scm"))))
- (channels (cons* (channel
- (name 'my-guix)
- (url "https://my-git-repo/guix.git"))
- (channel
- (name 'conf)
- (url "https://my-git-repo/conf.git"))
- %default-channels))
- (non-package-channels '(conf)))))))
-@end lisp
-
-Finally, @code{simple-cuirass-services} takes as a second optional
-argument a @code{cuirass-configuration} record. It can be used to
-customize the configuration of the Cuirass instance.
-
-@lisp
-(simple-cuirass-services
- (simple-cuirass-configuration
- (build 'all)
- (channels (cons (channel
- (name 'my-guix)
- (url "https://my-git-repo/guix.git"))
- %default-channels))
- (non-package-channels '(conf)))
- (cuirass-configuration
- (inherit %default-cuirass-config)
- (host "0.0.0.0"))) ;listen on all interfaces.
+(service laminar-service-type)
@end lisp
+@end defvr
+
+@deftp {Data Type} laminar-configuration
+Data type representing the configuration of Laminar.
+
+@table @asis
+@item @code{laminar} (default: @code{laminar})
+The Laminar package to use.
+
+@item @code{home-directory} (default: @code{"/var/lib/laminar"})
+The directory for job configurations and run directories.
+
+@item @code{bind-http} (default: @code{"*:8080"})
+The interface/port or unix socket on which laminard should listen for
+incoming connections to the web frontend.
+
+@item @code{bind-rpc} (default: @code{"unix-abstract:laminar"})
+The interface/port or unix socket on which laminard should listen for
+incoming commands such as build triggers.
+
+@item @code{title} (default: @code{"Laminar"})
+The page title to show in the web frontend.
+
+@item @code{keep-rundirs} (default: @code{0})
+Set to an integer defining how many rundirs to keep per job. The
+lowest-numbered ones will be deleted. The default is 0, meaning all run
+dirs will be immediately deleted.
+
+@item @code{archive-url} (default: @code{#f})
+The web frontend served by laminard will use this URL to form links to
+artefacts archived jobs.
+
+@item @code{base-url} (default: @code{#f})
+Base URL to use for links to laminar itself.
+
+@end table
+@end deftp
@node Power Management Services
@subsection Power Management Services
@@ -28735,7 +28803,7 @@ service:
@lisp
(service qemu-binfmt-service-type
(qemu-binfmt-configuration
- (platforms (lookup-qemu-platforms "arm"))
+ (platforms (lookup-qemu-platforms "arm"))))
@end lisp
You can run:
@@ -31046,7 +31114,7 @@ coordinator.
@deftp {Data Type} guix-build-coordinator-agent-dynamic-auth
Data type representing an agent authenticating with a coordinator via a
-dyanmic auth token and agent name.
+dynamic auth token and agent name.
@table @asis
@item @code{agent-name}
@@ -31063,7 +31131,7 @@ database, and is used by the agent to authenticate.
@deftp {Data Type} guix-build-coordinator-agent-dynamic-auth-with-file
Data type representing an agent authenticating with a coordinator via a
-dyanmic auth token read from a file and agent name.
+dynamic auth token read from a file and agent name.
@table @asis
@item @code{agent-name}
@@ -32915,8 +32983,8 @@ system configuration file. You can then load the image and launch a
Docker container using commands like the following:
@example
-image_id="`docker load < guix-system-docker-image.tar.gz`"
-container_id="`docker create $image_id`"
+image_id="$(docker load < guix-system-docker-image.tar.gz)"
+container_id="$(docker create $image_id)"
docker start $container_id
@end example
@@ -33440,7 +33508,7 @@ The default @command{run-vm.sh} script that is returned by an invocation of
@command{guix system vm} does not add a @command{-nic user} flag by default.
To get network access from within the vm add the @code{(dhcp-client-service)}
to your system definition and start the VM using
-@command{`guix system vm config.scm` -nic user}. An important caveat of using
+@command{$(guix system vm config.scm) -nic user}. An important caveat of using
@command{-nic user} for networking is that @command{ping} will not work, because
it uses the ICMP protocol. You'll have to use a different command to check for
network connectivity, for example @command{guix download}.
@@ -33455,7 +33523,7 @@ To enable SSH inside a VM you need to add an SSH server like
22 by default, to the host. You can do this with
@example
-`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22
+$(guix system vm config.scm) -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22
@end example
To connect to the VM you can run
@@ -34217,7 +34285,7 @@ This service represents PID@tie{}1.
@cindex man pages
@cindex manual pages
In most cases packages installed with Guix come with documentation.
-There are two main documentation formats: ``Info'', a browseable
+There are two main documentation formats: ``Info'', a browsable
hypertext format used for GNU software, and ``manual pages'' (or ``man
pages''), the linear documentation format traditionally found on Unix.
Info manuals are accessed with the @command{info} command or with Emacs,
@@ -34509,7 +34577,7 @@ To verify which Bash your whole profile refers to, you can run
(@pxref{Invoking guix gc}):
@example
-guix gc -R `readlink -f ~/.guix-profile` | grep bash
+guix gc -R $(readlink -f ~/.guix-profile) | grep bash
@end example
@noindent
@@ -34517,7 +34585,7 @@ guix gc -R `readlink -f ~/.guix-profile` | grep bash
Likewise for a complete Guix system generation:
@example
-guix gc -R `guix system build my-config.scm` | grep bash
+guix gc -R $(guix system build my-config.scm) | grep bash
@end example
Lastly, to check which Bash running processes are using, you can use the
@@ -34627,7 +34695,7 @@ traditional bootstrap of the rest of the Guix System.
The only significant binary bootstrap seeds that remain@footnote{
Ignoring the 68KB @code{mescc-tools}; that will be removed later,
-together with @code{mes}.} are a Scheme intepreter and a Scheme
+together with @code{mes}.} are a Scheme interpreter and a Scheme
compiler: GNU Mes and GNU Guile@footnote{Not shown in this graph are the
static binaries for @file{bash}, @code{tar}, and @code{xz} that are used
to get Guile running.}.
diff --git a/etc/committer.scm.in b/etc/committer.scm.in
index ebe6b96bcc..801b5d195e 100755
--- a/etc/committer.scm.in
+++ b/etc/committer.scm.in
@@ -3,7 +3,7 @@
!#
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,7 +28,10 @@
(import (sxml xpath)
(srfi srfi-1)
+ (srfi srfi-2)
(srfi srfi-9)
+ (srfi srfi-11)
+ (srfi srfi-26)
(ice-9 format)
(ice-9 popen)
(ice-9 match)
@@ -63,7 +66,8 @@ LINE-NO in PORT."
(make-hunk file-name
old-line-number
new-line-number
- diff)
+ diff-lines
+ definition?)
hunk?
(file-name hunk-file-name)
;; Line number before the change
@@ -71,38 +75,46 @@ LINE-NO in PORT."
;; Line number after the change
(new-line-number hunk-new-line-number)
;; The full diff to be used with "git apply --cached"
- (diff hunk-diff))
+ (diff-lines hunk-diff-lines)
+ ;; Does this hunk add a definition?
+ (definition? hunk-definition?))
(define* (hunk->patch hunk #:optional (port (current-output-port)))
(let ((file-name (hunk-file-name hunk)))
(format port
"diff --git a/~a b/~a~%--- a/~a~%+++ b/~a~%~a"
file-name file-name file-name file-name
- (hunk-diff hunk))))
+ (string-join (hunk-diff-lines hunk) ""))))
(define (diff-info)
"Read the diff and return a list of <hunk> values."
(let ((port (open-pipe* OPEN_READ
"git" "diff"
+ "--no-color"
"--no-prefix"
- ;; Do not include any context lines. This makes it
- ;; easier to find the S-expression surrounding the
- ;; change.
- "--unified=0")))
+ ;; Only include one context line to avoid lumping in
+ ;; new definitions with changes to existing
+ ;; definitions.
+ "--unified=1"
+ "gnu")))
(define (extract-line-number line-tag)
(abs (string->number
(car (string-split line-tag #\,)))))
(define (read-hunk)
- (reverse
- (let loop ((lines '()))
- (let ((line (read-line port 'concat)))
- (cond
- ((eof-object? line) lines)
- ((or (string-prefix? "@@ " line)
- (string-prefix? "diff --git" line))
- (unget-string port line)
- lines)
- (else (loop (cons line lines))))))))
+ (let loop ((lines '())
+ (definition? #false))
+ (let ((line (read-line port 'concat)))
+ (cond
+ ((eof-object? line)
+ (values (reverse lines) definition?))
+ ((or (string-prefix? "@@ " line)
+ (string-prefix? "diff --git" line))
+ (unget-string port line)
+ (values (reverse lines) definition?))
+ (else
+ (loop (cons line lines)
+ (or definition?
+ (string-prefix? "+(define" line))))))))
(define info
(let loop ((acc '())
(file-name #f))
@@ -116,17 +128,27 @@ LINE-NO in PORT."
((string-prefix? "@@ " line)
(match (string-split line #\space)
((_ old-start new-start . _)
- (loop (cons (make-hunk file-name
- (extract-line-number old-start)
- (extract-line-number new-start)
- (string-join (cons* line "\n"
- (read-hunk)) ""))
- acc)
- file-name))))
+ (let-values
+ (((diff-lines definition?) (read-hunk)))
+ (loop (cons (make-hunk file-name
+ (extract-line-number old-start)
+ (extract-line-number new-start)
+ (cons (string-append line "\n")
+ diff-lines)
+ definition?) acc)
+ file-name)))))
(else (loop acc file-name))))))
(close-pipe port)
info))
+(define (lines-to-first-change hunk)
+ "Return the number of diff lines until the first change."
+ (1- (count (lambda (line)
+ ((negate char-set-contains?)
+ (char-set #\+ #\-)
+ (string-ref line 0)))
+ (hunk-diff-lines hunk))))
+
(define (old-sexp hunk)
"Using the diff information in HUNK return the unmodified S-expression
corresponding to the top-level definition containing the staged changes."
@@ -138,7 +160,9 @@ corresponding to the top-level definition containing the staged changes."
(close-pipe port)
(call-with-input-string contents
(lambda (port)
- (surrounding-sexp port (hunk-old-line-number hunk))))))
+ (surrounding-sexp port
+ (+ (lines-to-first-change hunk)
+ (hunk-old-line-number hunk)))))))
(define (new-sexp hunk)
"Using the diff information in HUNK return the modified S-expression
@@ -146,9 +170,10 @@ corresponding to the top-level definition containing the staged changes."
(call-with-input-file (hunk-file-name hunk)
(lambda (port)
(surrounding-sexp port
- (hunk-new-line-number hunk)))))
+ (+ (lines-to-first-change hunk)
+ (hunk-new-line-number hunk))))))
-(define* (commit-message file-name old new #:optional (port (current-output-port)))
+(define* (change-commit-message file-name old new #:optional (port (current-output-port)))
"Print ChangeLog commit message for changes between OLD and NEW."
(define (get-values expr field)
(match ((sxpath `(// ,field quasiquote *)) expr)
@@ -193,6 +218,12 @@ corresponding to the top-level definition containing the staged changes."
(listify added)))))))))
'(inputs propagated-inputs native-inputs)))
+(define* (add-commit-message file-name variable-name #:optional (port (current-output-port)))
+ "Print ChangeLog commit message for a change to FILE-NAME adding a definition."
+ (format port
+ "gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
+ variable-name file-name variable-name))
+
(define (group-hunks-by-sexp hunks)
"Return a list of pairs associating all hunks with the S-expression they are
modifying."
@@ -218,14 +249,45 @@ modifying."
(cons* new (old-sexp (first hunks)) hunks)))
(group-hunks-by-sexp hunks)))
+(define %delay 1000)
+
(define (main . args)
(match (diff-info)
(()
(display "Nothing to be done." (current-error-port)))
(hunks
- (for-each (match-lambda
- ((new old . hunks)
- (for-each (lambda (hunk)
+ (let-values
+ (((definitions changes)
+ (partition hunk-definition? hunks)))
+
+ ;; Additions.
+ (for-each (lambda (hunk)
+ (and-let*
+ ((define-line (find (cut string-prefix? "+(define" <>)
+ (hunk-diff-lines hunk)))
+ (variable-name (and=> (string-tokenize define-line) second)))
+ (add-commit-message (hunk-file-name hunk) variable-name)
+ (let ((port (open-pipe* OPEN_WRITE
+ "git" "apply"
+ "--cached"
+ "--unidiff-zero")))
+ (hunk->patch hunk port)
+ (unless (eqv? 0 (status:exit-val (close-pipe port)))
+ (error "Cannot apply")))
+
+ (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
+ (add-commit-message (hunk-file-name hunk)
+ variable-name port)
+ (usleep %delay)
+ (unless (eqv? 0 (status:exit-val (close-pipe port)))
+ (error "Cannot commit"))))
+ (usleep %delay))
+ definitions)
+
+ ;; Changes.
+ (for-each (match-lambda
+ ((new old . hunks)
+ (for-each (lambda (hunk)
(let ((port (open-pipe* OPEN_WRITE
"git" "apply"
"--cached"
@@ -233,18 +295,20 @@ modifying."
(hunk->patch hunk port)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot apply")))
- (sleep 1))
+ (usleep %delay))
hunks)
- (commit-message (hunk-file-name (first hunks))
- old new
- (current-output-port))
+ (change-commit-message (hunk-file-name (first hunks))
+ old new
+ (current-output-port))
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
- (commit-message (hunk-file-name (first hunks))
- old new
- port)
- (sleep 1)
+ (change-commit-message (hunk-file-name (first hunks))
+ old new
+ port)
+ (usleep %delay)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot commit")))))
- (new+old+hunks hunks)))))
+ ;; XXX: we recompute the hunks here because previous
+ ;; insertions lead to offsets.
+ (new+old+hunks (diff-info)))))))
(main)
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 94c04aa646..c84e7b7577 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -8,6 +8,7 @@
# Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
# Copyright © 2020 Daniel Brooks <db48x@db48x.net>
# Copyright © 2021 Jakub Kądziołka <kuba@kadziolka.net>
+# Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
#
# This file is part of GNU Guix.
#
@@ -187,6 +188,9 @@ chk_sys_arch()
armv7l)
local arch=armhf
;;
+ ppc64le | powerpc64le)
+ local arch=powerpc64le
+ ;;
*)
_err "${ERR}Unsupported CPU type: ${arch}"
exit 1
diff --git a/etc/news.scm b/etc/news.scm
index deedc69f6e..65d83061df 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -12,6 +12,8 @@
;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
+;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
+;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;
;; Copying and distribution of this file, with or without modification, are
;; permitted in any medium without royalty provided the copyright notice and
@@ -20,6 +22,98 @@
(channel-news
(version 0)
+ (entry (commit "2161820ebbbab62a5ce76c9101ebaec54dc61586")
+ (title
+ (en "Risk of local privilege escalation during user account creation")
+ (de "Risiko lokaler Rechteausweitung während der Erstellung von Benutzerkonten"))
+ (body
+ (en "A security vulnerability that can lead to local privilege
+escalation has been found in the code that creates user accounts on Guix
+System---Guix on other distros is unaffected. The system is only vulnerable
+during the activation of user accounts that do not already exist.
+
+This bug is fixed and Guix System users are advised to upgrade their system,
+with a command along the lines of:
+
+@example
+guix system reconfigure /run/current-system/configuration.scm
+@end example
+
+The attack can happen when @command{guix system reconfigure} is running.
+Running @command{guix system reconfigure} can trigger the creation of new user
+accounts if the configuration specifies new accounts. If a user whose account
+is being created manages to log in after the account has been created but
+before ``skeleton files'' copied to its home directory have the right
+ownership, they may, by creating an appropriately-named symbolic link in the
+home directory pointing to a sensitive file, such as @file{/etc/shadow}, get
+root privileges.
+
+See @uref{https://issues.guix.gnu.org/47584} for more information on this
+bug.")
+ (de "Eine Sicherheitslücke, die eine lokale Rechteausweitung zur
+Folge haben kann, wurde in dem Code gefunden, mit dem Benutzerkonten auf Guix
+System angelegt werden — Guix auf anderen Distributionen ist nicht betroffen.
+Das System kann nur während der Aktivierung noch nicht existierender
+Benutzerkonten angegriffen werden.
+
+Der Fehler wurde behoben und wir empfehlen Nutzern von Guix System, ihre
+Systeme zu aktualisieren, mit einem Befehl wie:
+
+@example
+guix system reconfigure /run/current-system/configuration.scm
+@end example
+
+Der Angriff kann erfolgen, während @command{guix system reconfigure} läuft.
+Wenn @command{guix system reconfigure} ausgeführt wird, kann das die Erzeugung
+neuer Benutzerkonten auslösen, wenn in der Konfiguration neue Konten angegeben
+wurden. Wenn ein Benutzer, dessen Konto gerade angelegt wird, es
+fertigbringt, sich anzumelden, bevor „Skeleton-Dateien“ in seinem Persönlichen
+Verzeichnis den richtigen Besitzer haben, kann er durch Anlegen einer gezielt
+benannten symbolischen Verknüpfung in seinem Persönlichen Verzeichnis auf eine
+sensible Datei wie @file{/etc/shadow} Administratorrechte erlangen.
+
+Siehe @uref{https://issues.guix.gnu.org/47584} für mehr Informationen zu
+diesem Fehler.")))
+
+ (entry (commit "e52ec6c64a17a99ae4bb6ff02309067499915b06")
+ (title
+ (en "New supported platform: powerpc64le-linux")
+ (de "Neue Plattform wird unterstützt: powerpc64le-linux")
+ (fr "Nouvelle plate-forme prise en charge : powerpc64le-linux"))
+ (body
+ (en "A new platform, powerpc64le-linux, has been added for
+little-endian 64-bit Power ISA processors using the Linux-Libre kernel. This
+includes POWER9 systems such as the
+@uref{https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom,
+RYF Talos II mainboard}. This platform is available as a \"technology
+preview\": although it is supported, substitutes are not yet available from
+the build farm, and some packages may fail to build. In addition, Guix System
+is not yet available on this platform. That said, the Guix community is
+actively working on improving this support, and now is a great time to try it
+and get involved!")
+ (de "Eine neue Plattform, powerpc64le-linux, wurde hinzugefügt. Mit
+ihr können Prozessoren mit 64-Bit-Power-Befehlssatz, little-endian, mit dem
+Linux-Libre-Kernel betrieben werden. Dazu gehören POWER9-Systeme wie die
+@uref{https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom,
+RYF-zertifizierte Talos-II-Hauptplatine}. Bei der Plattform handelt es sich
+um eine „Technologievorschau“; obwohl sie unterstützt wird, gibt es noch keine
+Substitute von der Erstellungsfarm und bei manchen Paketen könnte die
+Erstellung fehlschlagen. Des Weiteren ist Guix System auf dieser Plattform
+noch nicht verfügbar. Dennoch arbeitet die Guix-Gemeinde aktiv daran, diese
+Unterstützung auszubauen, und jetzt ist eine gute Gelegenheit, sie
+auszuprobieren und mitzumachen!")
+ (fr "Une nouvelle plate-forme, powerpc64le-linux, a été ajoutée pour
+les processeurs POWER 64-bits utilisant le noyau Linux-libre. Ça inclut les
+systèmes POWER9 tels que les
+@uref{https://www.fsf.org/news/talos-ii-mainboard-and-talos-ii-lite-mainboard-now-fsf-certified-to-respect-your-freedom,
+cartes Talos II RYF}. Il s'agit pour le moment d'un « avant-goût » de la
+technologie : bien que la plate-forme soit prise en charge, la ferme de
+compilation ne fournit pas encore de substituts et certains paquets risquent
+de ne pas compiler. En outre, Guix System n'est pas encore disponible sur
+cette plate-forme. Ceci dit, la communauté Guix travaille activement pour
+améliorer cette prise en charge et c'est maintenant un bon moment pour
+l'essayer et pour s'impliquer !")))
+
(entry (commit "9ade2b720af91acecf76278b4d9b99ace406781e")
(title
(en "Update on previous @command{guix-daemon} local privilege escalation")
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 13ee695909..ce146aba3c 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -666,7 +666,7 @@ relatively form MOUNT-POINT/TARGET/SUBDIR/grub.cfg to
MOUNT-POINT/boot/grub/grub.cfg, and the second symlink points relatively from
MOUNT-POINT/TARGET/%store-prefix to MOUNT-POINT/%store-prefix.
-It is important to note that these symlinks need to be relativ, as the absolute
+It is important to note that these symlinks need to be relative, as the absolute
paths on the TFTP server side are unknown.
It is also important to note that both symlinks will point outside the TFTP root
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm
index 6cb6f8819b..2af1d44b5f 100644
--- a/gnu/build/activation.scm
+++ b/gnu/build/activation.scm
@@ -107,7 +107,8 @@ Warning: this is currently suspect to a TOCTTOU race!"
(directory %skeleton-directory)
uid gid)
"Copy the account skeletons from DIRECTORY to HOME. When UID is an integer,
-make it the owner of all the files created; likewise for GID."
+make it the owner of all the files created except the home directory; likewise
+for GID."
(define (set-owner file)
(when (or uid gid)
(chown file (or uid -1) (or gid -1))))
@@ -115,7 +116,6 @@ make it the owner of all the files created; likewise for GID."
(let ((files (scandir directory (negate dot-or-dot-dot?)
string<?)))
(mkdir-p home)
- (set-owner home)
(for-each (lambda (file)
(let ((target (string-append home "/" file)))
(copy-recursively (string-append directory "/" file)
@@ -215,10 +215,15 @@ they already exist."
(uid (passwd:uid pw))
(gid (passwd:gid pw)))
(mkdir-p home)
- (chown home uid gid)
(chmod home #o700)
(copy-account-skeletons home
- #:uid uid #:gid gid))))))
+ #:uid uid #:gid gid)
+
+ ;; It is important 'chown' be called after
+ ;; 'copy-account-skeletons'. Otherwise, a malicious user with
+ ;; good timing could create a symlink in HOME that would be
+ ;; dereferenced by 'copy-account-skeletons'.
+ (chown home uid gid))))))
(for-each ensure-user-home users))
diff --git a/gnu/ci.scm b/gnu/ci.scm
index acd05a18b4..ff76ffde57 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -79,12 +79,9 @@
(define* (derivation->job name drv
#:key
- period
(max-silent-time 3600)
(timeout 3600))
- "Return a Cuirass job called NAME and describing DRV. PERIOD is the minimal
-duration that must separate two evaluations of the same job. If PERIOD is
-false, then the job will be evaluated as soon as possible.
+ "Return a Cuirass job called NAME and describing DRV.
MAX-SILENT-TIME and TIMEOUT are build options passed to the daemon when
building the derivation."
@@ -98,7 +95,6 @@ building the derivation."
(derivation->output-paths drv)))
(#:nix-name . ,(derivation-name drv))
(#:system . ,(derivation-system drv))
- (#:period . ,period)
(#:max-silent-time . ,max-silent-time)
(#:timeout . ,timeout)))
@@ -156,6 +152,7 @@ SYSTEM."
"arm-linux-gnueabihf"
"aarch64-linux-gnu"
"powerpc-linux-gnu"
+ "powerpc64le-linux-gnu"
"riscv64-linux-gnu"
"i586-pc-gnu" ;aka. GNU/Hurd
"i686-w64-mingw32"
@@ -236,14 +233,11 @@ SYSTEM."
(* 3600 hours))
(define (image-jobs store system)
- "Return a list of jobs that build images for SYSTEM. Those jobs are
-expensive in storage and I/O operations, hence their periodicity is limited by
-passing the PERIOD argument."
+ "Return a list of jobs that build images for SYSTEM."
(define (->job name drv)
(let ((name (string-append name "." system)))
(parameterize ((%graft? #f))
- (derivation->job name drv
- #:period (hours 48)))))
+ (derivation->job name drv))))
(define (build-image image)
(run-with-store store
@@ -334,11 +328,7 @@ passing the PERIOD argument."
(set-guile-for-build (default-guile))
(system-test-value test)))))
- ;; Those tests are extremely expensive in I/O operations and storage
- ;; size, use the "period" attribute to run them with a period of at
- ;; least 48 hours.
- (derivation->job name drv
- #:period (hours 24)))))
+ (derivation->job name drv))))
(if (member system %guix-system-supported-systems)
;; Override the value of 'current-guix' used by system tests. Using a
@@ -353,8 +343,7 @@ passing the PERIOD argument."
(define (->job name drv)
(let ((name (string-append name "." system)))
(parameterize ((%graft? #f))
- (derivation->job name drv
- #:period (hours 24)))))
+ (derivation->job name drv))))
;; XXX: Add a job for the stable Guix?
(list
@@ -423,16 +412,12 @@ valid."
(define (arguments->manifests arguments channels)
"Return the list of manifests extracted from ARGUMENTS."
- (define (channel-name->checkout name)
- (let ((channel (find (lambda (channel)
- (eq? (channel-name channel) name))
- channels)))
- (channel-url channel)))
-
- (map (match-lambda
- ((name . path)
- (let ((checkout (channel-name->checkout name)))
- (in-vicinity checkout path))))
+ (map (lambda (manifest)
+ (any (lambda (checkout)
+ (let ((path (in-vicinity checkout manifest)))
+ (and (file-exists? path)
+ path)))
+ (map channel-url channels)))
arguments))
(define (manifests->packages store manifests)
@@ -498,11 +483,6 @@ valid."
(package->job store package system))))
(append
(filter-map job all)
- (image-jobs store system)
- (system-test-jobs store system
- #:source source
- #:commit commit)
- (tarball-jobs store system)
(cross-jobs store system))))
('core
;; Build core packages only.
@@ -522,6 +502,17 @@ valid."
(let ((hello (specification->package "hello")))
(list (package-job store (job-name hello)
hello system))))
+ ('images
+ ;; Build Guix System images only.
+ (image-jobs store system))
+ ('system-tests
+ ;; Build Guix System tests only.
+ (system-test-jobs store system
+ #:source source
+ #:commit commit))
+ ('tarball
+ ;; Build Guix tarball only.
+ (tarball-jobs store system))
(('channels . channels)
;; Build only the packages from CHANNELS.
(let ((all (all-packages)))
diff --git a/gnu/local.mk b/gnu/local.mk
index 44f1efc3b4..23632e9b0f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -34,7 +34,7 @@
# Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
-# Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+# Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
# Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
# Copyright © 2020 Martin Becze <mjbecze@riseup.net>
# Copyright © 2020 Malte Frank Gerdes <mate.f.gerdes@gmail.com>
@@ -687,12 +687,12 @@ GNU_SYSTEM_MODULES = \
%D%/tests.scm \
%D%/tests/audio.scm \
%D%/tests/base.scm \
- %D%/tests/cuirass.scm \
%D%/tests/cups.scm \
%D%/tests/databases.scm \
%D%/tests/desktop.scm \
%D%/tests/dict.scm \
%D%/tests/docker.scm \
+ %D%/tests/file-sharing.scm \
%D%/tests/ganeti.scm \
%D%/tests/guix.scm \
%D%/tests/monitoring.scm \
@@ -887,7 +887,7 @@ dist_patch_DATA = \
%D%/packages/patches/cdparanoia-fpic.patch \
%D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \
%D%/packages/patches/ceph-disable-cpu-optimizations.patch \
- %D%/packages/patches/cgal-security-pr-5371.patch \
+ %D%/packages/patches/chez-scheme-build-util-paths-backport.patch \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/cl-asdf-config-directories.patch \
%D%/packages/patches/clamav-config-llvm-libs.patch \
@@ -913,7 +913,6 @@ dist_patch_DATA = \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
%D%/packages/patches/combinatorial-blas-awpm.patch \
%D%/packages/patches/combinatorial-blas-io-fix.patch \
- %D%/packages/patches/containerd-test-with-go1.13.patch \
%D%/packages/patches/coreutils-ls.patch \
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \
@@ -921,6 +920,7 @@ dist_patch_DATA = \
%D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/curl-use-ssl-cert-env.patch \
+ %D%/packages/patches/curl-7.76-use-ssl-cert-env.patch \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-CVE-2017-12836.patch \
%D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch \
@@ -956,6 +956,7 @@ dist_patch_DATA = \
%D%/packages/patches/ecl-16-format-directive-limit.patch \
%D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \
%D%/packages/patches/ecl-16-libffi.patch \
+ %D%/packages/patches/efibootmgr-remove-extra-decl.patch \
%D%/packages/patches/eigen-remove-openmp-error-counting.patch \
%D%/packages/patches/eigen-stabilise-sparseqr-test.patch \
%D%/packages/patches/einstein-build.patch \
@@ -1082,6 +1083,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
+ %D%/packages/patches/gimp-make-gegl-introspect-optional.patch \
%D%/packages/patches/glib-appinfo-watch.patch \
%D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glib-CVE-2021-27218.patch \
@@ -1122,6 +1124,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-hurd-mach-print.patch \
%D%/packages/patches/glibc-hurd-magic-pid.patch \
%D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch \
+ %D%/packages/patches/glibc-ldd-powerpc.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \
%D%/packages/patches/glibc-locales-2.28.patch \
@@ -1220,6 +1223,10 @@ dist_patch_DATA = \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
%D%/packages/patches/idris-disable-test.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
+ %D%/packages/patches/imagemagick-CVE-2020-27829.patch \
+ %D%/packages/patches/imagemagick-ReadDCMImage-fix.patch \
+ %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch \
+ %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \
%D%/packages/patches/inetutils-hurd.patch \
%D%/packages/patches/inkscape-poppler-0.76.patch \
%D%/packages/patches/intel-xed-fix-nondeterminism.patch \
@@ -1257,7 +1264,7 @@ dist_patch_DATA = \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/libffi-3.3-powerpc-fixes.patch \
%D%/packages/patches/libffi-float128-powerpc64le.patch \
- %D%/packages/patches/libvirt-create-machine-cgroup.patch \
+ %D%/packages/patches/libvirt-add-install-prefix.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/localed-xorg-keyboard.patch \
%D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \
@@ -1357,7 +1364,7 @@ dist_patch_DATA = \
%D%/packages/patches/lierolibre-try-building-other-arch.patch \
%D%/packages/patches/linbox-fix-pkgconfig.patch \
%D%/packages/patches/linkchecker-tests-require-network.patch \
- %D%/packages/patches/linphoneqt-tabbutton.patch \
+ %D%/packages/patches/linphone-desktop-without-sdk.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
%D%/packages/patches/linux-libre-pinebook-pro-01-soc-rockchip-Add-rockchip-suspend-mode-driver.patch \
%D%/packages/patches/linux-libre-pinebook-pro-02-firmware-Add-Rockchip-SIP-driver.patch \
@@ -1384,6 +1391,7 @@ dist_patch_DATA = \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
+ %D%/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch \
%D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \
%D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \
@@ -1402,6 +1410,7 @@ dist_patch_DATA = \
%D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/mailutils-fix-uninitialized-variable.patch \
%D%/packages/patches/make-impure-dirs.patch \
+ %D%/packages/patches/mariadb-CVE-2021-27928.patch \
%D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \
@@ -1413,7 +1422,6 @@ dist_patch_DATA = \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
%D%/packages/patches/libmemcached-build-with-gcc7.patch \
%D%/packages/patches/libmhash-hmac-fix-uaf.patch \
- %D%/packages/patches/mediastreamer2-srtp2.patch \
%D%/packages/patches/mesa-skip-tests.patch \
%D%/packages/patches/mescc-tools-boot.patch \
%D%/packages/patches/meson-for-build-rpath.patch \
@@ -1486,7 +1494,6 @@ dist_patch_DATA = \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \
%D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \
- %D%/packages/patches/opendht-fix-jami.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \
@@ -1540,7 +1547,6 @@ dist_patch_DATA = \
%D%/packages/patches/picard-fix-id3-rename-test.patch \
%D%/packages/patches/picprog-non-intel-support.patch \
%D%/packages/patches/pidgin-add-search-path.patch \
- %D%/packages/patches/pidgin-vv-gst.patch \
%D%/packages/patches/pinball-const-fix.patch \
%D%/packages/patches/pinball-cstddef.patch \
%D%/packages/patches/pinball-missing-separators.patch \
@@ -1575,7 +1581,6 @@ dist_patch_DATA = \
%D%/packages/patches/pybugz-stty.patch \
%D%/packages/patches/pygpgme-disable-problematic-tests.patch \
%D%/packages/patches/pyqt-configure.patch \
- %D%/packages/patches/pyqt-public-sip.patch \
%D%/packages/patches/python-2-deterministic-build-info.patch \
%D%/packages/patches/python-2.7-adjust-tests.patch \
%D%/packages/patches/python-2.7-search-paths.patch \
@@ -1626,6 +1631,7 @@ dist_patch_DATA = \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-CVE-2021-20203.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \
+ %D%/packages/patches/qemu-glibc-2.30.patch \
%D%/packages/patches/qpdfview-qt515-compat.patch \
%D%/packages/patches/qrcodegen-cpp-make-install.patch \
%D%/packages/patches/qt4-ldflags.patch \
@@ -1661,7 +1667,6 @@ dist_patch_DATA = \
%D%/packages/patches/rnp-disable-ruby-rnp-tests.patch \
%D%/packages/patches/rnp-unbundle-googletest.patch \
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
- %D%/packages/patches/runc-CVE-2019-5736.patch \
%D%/packages/patches/rust-1.19-mrustc.patch \
%D%/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch \
%D%/packages/patches/rust-1.45-linker-locale.patch \
@@ -1786,6 +1791,7 @@ dist_patch_DATA = \
%D%/packages/patches/unzip-zipbomb-part2.patch \
%D%/packages/patches/unzip-zipbomb-part3.patch \
%D%/packages/patches/unzip-32bit-zipbomb-fix.patch \
+ %D%/packages/patches/upx-CVE-2021-20285.patch \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.patch \
@@ -1817,6 +1823,7 @@ dist_patch_DATA = \
%D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \
%D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \
%D%/packages/patches/wpa-supplicant-CVE-2021-27803.patch \
+ %D%/packages/patches/wpa-supplicant-CVE-2021-30004.patch \
%D%/packages/patches/x265-arm-flags.patch \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
%D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \
@@ -1840,6 +1847,7 @@ dist_patch_DATA = \
%D%/packages/patches/yggdrasil-extra-config.patch \
%D%/packages/patches/ytnef-CVE-2021-3403.patch \
%D%/packages/patches/ytnef-CVE-2021-3404.patch \
+ %D%/packages/patches/zstd-CVE-2021-24031_CVE-2021-24032.patch \
%D%/packages/patches/zziplib-CVE-2018-16548.patch
MISC_DISTRO_FILES = \
diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm
index be4b079b04..abeafeef88 100644
--- a/gnu/packages/acl.scm
+++ b/gnu/packages/acl.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,13 +27,15 @@
#:use-module (guix licenses)
#:use-module (gnu packages attr)
#:use-module (gnu packages base)
+ #:use-module (gnu packages check)
#:use-module (gnu packages hurd)
#:use-module (gnu packages gettext)
#:use-module (gnu packages perl)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (gnu packages)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system python))
(define-public acl
(package
@@ -93,3 +96,41 @@
(description
"Library and tools for manipulating access control lists.")
(license (list gpl2+ lgpl2.1+))))
+
+(define-public python-pylibacl
+ (package
+ (name "python-pylibacl")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pylibacl" version))
+ (sha256
+ (base32
+ "1zyrk2m20p5b6bdwxhrwib273i6i71zyr5hzssbxfqis5qra9848"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-tests
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ ;; These tests operate on real files, but our tempfs does not support
+ ;; ACLs
+ (substitute* "tests/test_acls.py"
+ (("( *)def test_applyto(_extended(_mixed)?)?" match indent)
+ (string-append indent "@pytest.mark.skip(reason=\"guix\")\n" match)))
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "tests"))
+ #t)))))
+ (inputs `(("acl" ,acl)))
+ (native-inputs `(("python-pytest" ,python-pytest)))
+ (home-page "https://pylibacl.k1024.org/")
+ (synopsis "POSIX.1e ACLs for python")
+ (description "Python 3.4+ extension module that allows you to manipulate
+the POSIX.1e Access Control Lists present in some OS/file-systems
+combinations.")
+ (license lgpl2.1+)))
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index d5cb9bf8e5..06fc6baa46 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -329,6 +329,38 @@ interface and is based on GNU Guile.")
#t)))
,@(package-arguments shepherd)))))
+(define-public cfm
+ (package
+ (name "cfm")
+ (version "0.6.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/WillEccles/cfm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14gapia902f29wa4dlrrj8jcwcff9bfvyhjccw9ddy2gxx2g8wmr"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ ;; Keeping xdg-open optional avoids a size increase of 293%.
+ (delete 'configure)))) ; no configure script
+ (home-page "https://eccles.dev/cfm/")
+ (synopsis
+ "Simple terminal file manager with @command{vi}-inspired key bindings")
+ (description
+ "The Cactus File Manager (@command{cfm}) helps you manage your files
+visually from a text terminal. It aims to be simple and fast, with key bindings
+inspired by @command{vi}.")
+ (license license:mpl2.0)))
+
(define-public cloud-utils
(package
(name "cloud-utils")
@@ -462,7 +494,7 @@ graphs and can export its output to different formats.")
(define-public facter
(package
(name "facter")
- (version "4.0.51")
+ (version "4.0.52")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -471,7 +503,7 @@ graphs and can export its output to different formats.")
(file-name (git-file-name name version))
(sha256
(base32
- "1s98rq2wjmh8bqdfdibvfp9j2ynd97k0c4hairryrzl9nna3j542"))))
+ "05j4q87sak1f1isj7ngzr59h3j3xskfwjjwfv0xd7lhwcaxg3a3c"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -1658,7 +1690,8 @@ features of sudo with a fraction of the codebase.")
(string-append "#" line)))
#t))
(patches
- (search-patches "wpa-supplicant-CVE-2021-27803.patch"))))
+ (search-patches "wpa-supplicant-CVE-2021-27803.patch"
+ "wpa-supplicant-CVE-2021-30004.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -1824,7 +1857,8 @@ command.")
(base32
"1mrbvg4v7vm7mknf0n29mf88k3s4a4qj6r4d51wq8hmjj1m7s7c8"))
(patches
- (search-patches "wpa-supplicant-CVE-2021-27803.patch"))))
+ (search-patches "wpa-supplicant-CVE-2021-27803.patch"
+ "wpa-supplicant-CVE-2021-30004.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -2923,13 +2957,13 @@ a new command using the matched rule, and runs it.")
(define-public di
(package
(name "di")
- (version "4.49")
+ (version "4.50")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/diskinfo-di/di-" version ".tar.gz"))
(sha256
- (base32 "1y38jhp2bpwbwzdzjlhgfqc7bxxz9cwapxd61799zjf54jkslkf0"))))
+ (base32 "0aj9ldkvmj8fmrk685vd2gagz0q8lwsn2nfbx6r6mza94mn8pw42"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; obscure test failures
@@ -3501,14 +3535,14 @@ information tool.")
(define-public nnn
(package
(name "nnn")
- (version "3.5")
+ (version "3.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/jarun/nnn/releases/download/v"
version "/nnn-v" version ".tar.gz"))
(sha256
- (base32 "1ww18vvfjkvi36rcamw8kpix4bhk71w5bw9kmnh158crah1x8dp6"))))
+ (base32 "1dbq16cdipij5ws59ab3alfmxli7n4wx28ip7gsyq8ncxg598l47"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)
@@ -3743,7 +3777,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
- (version "3.3.01-1")
+ (version "3.3.03-1")
(source
(origin
(method git-fetch)
@@ -3752,7 +3786,7 @@ Python loading in HPC environments.")
(commit version)))
(file-name (git-file-name real-name version))
(sha256
- (base32 "06r5iq78ldrvr5fmmb5mchaaji49195fsgx9ysr1mjs122rp13y1"))))
+ (base32 "1pahns10i5farw47v9v8cykrk5arq8218vpsa8c0bmaia0rf2n1q"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash-minimal)
@@ -3761,10 +3795,7 @@ Python loading in HPC environments.")
(native-inputs
`(("gzip" ,gzip)))
(arguments
- `(#:modules
- ((guix build utils)
- (ice-9 match)
- (srfi srfi-26))
+ `(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
@@ -4104,14 +4135,14 @@ tcpdump and snoop.")
(define-public pam-mount
(package
(name "pam-mount")
- (version "2.17")
+ (version "2.18")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pam-mount/pam_mount/"
"pam_mount-" version ".tar.xz"))
(sha256
- (base32 "1q2n6a2ah6nghdn8i6ad2wj247njwb5nx48cggxknaa6lqxylidy"))))
+ (base32 "0832nh2qf9pisgwnbgx6hkylx5d7i416l19y3ly4ifv7k1p7mxqa"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)
@@ -4123,7 +4154,7 @@ tcpdump and snoop.")
("linux-pam" ,linux-pam)
("lvm2" ,lvm2)
("openssl" ,openssl)
- ("pcre" ,pcre)
+ ("pcre2" ,pcre2)
("libmount" ,util-linux "lib")
("util-linux" ,util-linux)))
(arguments
@@ -4287,7 +4318,7 @@ entries, providing commands to add, remove, comment, and search.")
(define-public nmrpflash
(package
(name "nmrpflash")
- (version "0.9.14")
+ (version "0.9.15")
(source
(origin
(method git-fetch)
@@ -4296,7 +4327,7 @@ entries, providing commands to add, remove, comment, and search.")
(url "https://github.com/jclehner/nmrpflash")
(commit (string-append "v" version))))
(sha256
- (base32 "1fdjrxhjs96rdclbkld57xarf592slhkp79h46z833npxpn12ck1"))
+ (base32 "0ssfls1sfh8w748qsnkfgndlpw395100x2yynzbk5jd56scxvp20"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
@@ -4502,7 +4533,7 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
(define-public nq
(package
(name "nq")
- (version "0.3.1")
+ (version "0.4")
(source
(origin
(method git-fetch)
@@ -4511,7 +4542,7 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1db96ykz35r273jyhf7cdknqk4p2jj9l8gbz7pjy1hq4pb6ffk99"))))
+ (base32 "0sdamjzvmf6cxhjmd1rjvn7zm6k10fp5n6vabyxd3yl30cgrxw2i"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 6628a8ead3..d1b63de736 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darringon <jmd@gnu.org>
-;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
@@ -108,16 +108,25 @@ formats.")
(define-public qrencode
(package
(name "qrencode")
- (version "4.0.2")
+ (version "4.1.1")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://fukuchi.org/works/qrencode/qrencode-" version
- ".tar.bz2"))
+ (uri (string-append "https://fukuchi.org/works/qrencode/"
+ "qrencode-" version ".tar.bz2"))
(sha256
(base32
- "1d2q5d3v8g3hsi3h5jq4n177bjhf3kawms09immw7p187f6jgjy9"))))
+ "08v9d8jn26bva2a8x4hghq3mgl8zcid393iqkidwyhc05xrxjmg4"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--with-tests")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "tests"
+ (invoke "./test_basic.sh")))
+ #t)))))
(inputs `(("libpng" ,libpng)))
(native-inputs `(("pkg-config" ,pkg-config)))
(synopsis "Encode data into a QR Code symbol")
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 129d922751..d92e963af4 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -341,7 +341,7 @@ precision.")
(define-public giac
(package
(name "giac")
- (version "1.6.0-47")
+ (version "1.7.0-1")
(source
(origin
(method url-fetch)
@@ -353,7 +353,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz"))
(sha256
- (base32 "15sgsr8l6njp5spagbqclqkdy3x7ra23wi6wvpc8vzlbivy3v43k"))))
+ (base32 "0s926aza2larfz02hrhdlpxn77yjlrhjg844b3fhwz11yj942p9q"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
@@ -563,14 +563,14 @@ these types and other mathematical functions.")
(define-public ntl
(package
(name "ntl")
- (version "11.4.3")
+ (version "11.4.4")
(source (origin
(method url-fetch)
(uri (string-append "https://shoup.net/ntl/ntl-"
version ".tar.gz"))
(sha256
(base32
- "1lisp3064rch3jaa2wrhy1s9kll7i3ka3d0y6lj6l3l4ckfcrhdp"))
+ "1nr1h27j2gdz6badzz9lk2pknxhdijqdxqhd3haryh0sw616wzwx"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index 29763f3452..9bcfe52126 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -44,14 +44,14 @@
(define-public clamav
(package
(name "clamav")
- (version "0.103.1")
+ (version "0.103.2")
(source (origin
(method url-fetch)
(uri (string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz"))
(sha256
(base32
- "0mz2aq8dh4i7mh59r71scczgyjbsj8l0a51nkwxsys5ji5xw823k"))
+ "1lhv4xw89sszi519agvc9mi6jz5aiivm9yr6lciy8qk2csnd1dfl"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 9db1834d27..dbed33bb3d 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -342,7 +342,7 @@ package for the Game Boy and Game Boy Color. It consists of:
(define-public wla-dx
(package
(name "wla-dx")
- (version "9.11")
+ (version "9.12")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -351,7 +351,7 @@ package for the Game Boy and Game Boy Color. It consists of:
(file-name (git-file-name name version))
(sha256
(base32
- "0i8pxvyaih79pqnyvqyqd9rwdid91pna76cap0k1n5zhg8xswf2f"))))
+ "1wlbqv2rgk9q6m9an1mi0i29250zl8lw7zipki2bbi9mczpyczli"))))
(build-system cmake-build-system)
(native-inputs
`(("sphinx" ,python-sphinx))) ; to generate man pages
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index f623274136..9efb12dc01 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -118,7 +118,7 @@ for reading and writing.")
(define-public erfa
(package
(name "erfa")
- (version "1.7.2")
+ (version "1.7.3")
(source
(origin
(method git-fetch)
@@ -127,7 +127,7 @@ for reading and writing.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1vsqwvzlk7r8q7nwyb7i710blcfdl5kwcm2va9km07a820nsp84a"))))
+ (base32 "0nh12dr7gk4ki55lz95pkm4fpf7kazirra3zax9pab6v4qql4hlw"))))
(build-system gnu-build-system)
(native-inputs
`(("automake" ,automake)
@@ -137,8 +137,10 @@ for reading and writing.")
(home-page "https://github.com/liberfa/erfa")
(synopsis "Essential Routines for Fundamental Astronomy")
(description
- "ERFA is a C library containing key algorithms for astronomy, and is based
-on the SOFA library published by the International Astronomical Union (IAU).")
+ "The @acronym{ERFA, Essential Routines for Fundamental Astronomy} C library
+contains key algorithms for astronomy, and is based on the @acronym{SOFA,
+Standards of Fundamental Astronomy} library published by the @acronym{IAU,
+International Astronomical Union}.")
(license license:bsd-3)))
(define-public eye
@@ -167,7 +169,7 @@ feature detection and cosmetic corrections.")
(define-public wcslib
(package
(name "wcslib")
- (version "7.4")
+ (version "7.5")
(source
(origin
(method url-fetch)
@@ -175,7 +177,7 @@ feature detection and cosmetic corrections.")
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-" version
".tar.bz2"))
(sha256
- (base32 "072i1id4zk08mwi2c1zpy8zxrabl8dqyklx9ikbd2nh56r0rc752"))))
+ (base32 "1536gmcpm6pckn9xrb6j8s4pm1vryjhzvhfaj9wx3jwxcpbdy0dw"))))
(inputs
`(("cfitsio" ,cfitsio)))
(build-system gnu-build-system)
@@ -399,7 +401,7 @@ deconvolution). Such post-processing is not performed by Stackistry.")
(define-public stellarium
(package
(name "stellarium")
- (version "0.20.4")
+ (version "0.21.0")
(source
(origin
(method url-fetch)
@@ -407,7 +409,7 @@ deconvolution). Such post-processing is not performed by Stackistry.")
"/releases/download/v" version
"/stellarium-" version ".tar.gz"))
(sha256
- (base32 "1253zlr0mi4kdbj119spxk7spg4rkahb4rlpd0hz1d81mnv3n0v3"))))
+ (base32 "04vg2asj9gygwnrs32scqc8192ln2lyqa9v7cjqk8zd4frkwszwp"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8b23f04fe5..c9a9ebf32d 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
-;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
@@ -78,6 +78,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnunet) ; libmicrohttpd
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages icu4c)
@@ -197,7 +198,7 @@ promoting the market for advanced audio.")
(define-public wildmidi
(package
(name "wildmidi")
- (version "0.4.3")
+ (version "0.4.4")
(source
(origin
(method git-fetch)
@@ -207,7 +208,7 @@ promoting the market for advanced audio.")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
+ (base32 "08fbbsvw6pkwwqarjwcvdp8mq4zn5sgahf025hynwc6rvf4sp167"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No target
@@ -567,11 +568,11 @@ streams from live audio.")
(define-public ardour
(package
(name "ardour")
- (version "5.12")
+ (version "6.6")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://git.ardour.org/ardour/ardour.git")
+ (url "git://git.ardour.org/ardour/ardour.git")
(commit version)))
(snippet
;; Ardour expects this file to exist at build time. The revision
@@ -581,15 +582,16 @@ streams from live audio.")
"libs/ardour/revision.cc"
(lambda (port)
(format port ,(string-append "#include \"ardour/revision.h\"
-namespace ARDOUR { const char* revision = \"" version "\" ; }"))
+namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \"\"; }"))
#t)))
(sha256
(base32
- "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"))
+ "0k5rxh8b3d8si3lj01gfqj0pmd448d8sj4asnb205mwhwbfgn0cp"))
(file-name (string-append name "-" version))))
(build-system waf-build-system)
(arguments
`(#:configure-flags '("--cxx11" ; required by gtkmm
+ "--optimize"
"--no-phone-home" ; don't contact ardour.org
"--freedesktop" ; build .desktop file
"--test") ; build unit tests
@@ -619,8 +621,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; }"))
ver ".appdata.xml")
(string-append share "/appdata/")))
#t)))
- #:test-target "test"
- #:python ,python-2))
+ #:test-target "test"))
(inputs
`(("alsa-lib" ,alsa-lib)
("atkmm" ,atkmm)
@@ -628,6 +629,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; }"))
("boost" ,boost)
("cairomm" ,cairomm)
("curl" ,curl)
+ ("dbus" ,dbus)
("eudev" ,eudev)
("fftw" ,fftw)
("fftwf" ,fftwf)
@@ -644,17 +646,21 @@ namespace ARDOUR { const char* revision = \"" version "\" ; }"))
("libsndfile" ,libsndfile)
("libusb" ,libusb)
("libvorbis" ,libvorbis)
+ ("libwebsockets" ,libwebsockets)
("libxml2" ,libxml2)
("lilv" ,lilv)
("lrdf" ,lrdf)
("lv2" ,lv2)
+ ("openssl" ,openssl) ; Required by libwebsockets.
("pangomm" ,pangomm)
("python-rdflib" ,python-rdflib)
+ ("pulseaudio" ,pulseaudio)
("readline" ,readline)
("redland" ,redland)
("rubberband" ,rubberband)
("serd" ,serd)
("sord" ,sord)
+ ("soundtouch" ,soundtouch)
("sratom" ,sratom)
("suil" ,suil)
("taglib" ,taglib)
@@ -1052,6 +1058,40 @@ performances. The plugins include a cellular automaton synthesizer, an
envelope follower, distortion effects, tape effects and more.")
(license license:gpl2+)))
+(define-public snapcast
+ (package
+ (name "snapcast")
+ (version "0.24.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/badaix/snapcast")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; no included tests
+ (inputs
+ `(("boost" ,boost)
+ ("libvorbis" ,libvorbis)
+ ("soxr" ,soxr)
+ ("alsa-lib" ,alsa-lib)
+ ("avahi" ,avahi)
+ ("pulseaudio" ,pulseaudio)
+ ("flac" ,flac)
+ ("opus" ,opus)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/badaix/snapcast")
+ (synopsis "Synchronous multiroom audio player")
+ (description
+ "Snapcast is a multi-room client-server audio player. Clients are time
+synchronized with the server to play synced audio.")
+ (license license:gpl3+)))
+
(define-public swh-plugins
(package
(name "swh-plugins")
@@ -1622,7 +1662,7 @@ follower.")
(define-public fluidsynth
(package
(name "fluidsynth")
- (version "2.1.5")
+ (version "2.1.8")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1631,7 +1671,7 @@ follower.")
(file-name (git-file-name name version))
(sha256
(base32
- "0ccpq4p1h1g53ng3961g3lh590qnwvpzwdzpl6ai4j6iazq0bh73"))))
+ "0r944ndn138ak9s3ivgd1wgkwkh6zp7jjnxd30hryczc6kbhkpmr"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no check target
@@ -3225,31 +3265,26 @@ stretching and pitch scaling of audio. This package contains the library.")
(define-public wavpack
(package
(name "wavpack")
- (version "5.3.2")
+ (version "5.4.0")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/dbry/WavPack")
- (commit "e4e8d191e8dd74cbdbeaef3232c16a7ef517e68d")))
+ (method url-fetch)
+ (uri (string-append "https://github.com/dbry/WavPack/releases/download/"
+ version "/wavpack-" version ".tar.xz"))
(sha256
- (base32 "1zj8svk6giy1abq3940sz32ygz7zldppxl47852zgn5wfm3l2spx"))
- (file-name (git-file-name name version))))
+ (base32 "0ycbqarw25x7208jilh86vwwiqklr7f617jps9mllqc659mnmpjb"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
- (list "--disable-static")
+ (list "--disable-static"
+ "--enable-tests")
#:phases
(modify-phases %standard-phases
- (replace 'bootstrap
- ;; Running ./autogen.sh would cause premature configuration.
- (lambda _
- (invoke "autoreconf" "-vif")
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "./cli/wvtest" "--default" "--short"))
#t)))))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)))
(home-page "https://www.wavpack.com/")
(synopsis "Hybrid lossless audio codec")
(description
@@ -4059,7 +4094,7 @@ kbps at 24 bit/96 kHz.")
(home-page "https://github.com/Arkq/bluez-alsa")
(synopsis "Bluetooth ALSA backend")
(description "This project is a rebirth of a direct integration between
-Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed
+Bluez and ALSA. Since Bluez >= 5, the built-in integration has been removed
in favor of 3rd party audio applications. From now on, Bluez acts as a
middleware between an audio application, which implements Bluetooth audio
profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
@@ -4226,7 +4261,7 @@ the following features:
(home-page "https://github.com/werman/noise-suppression-for-voice")
(synopsis "Speech denoise LV2 plugin based on Xiph's RNNoise library")
(description "RNNoise is a library that uses deep learning to apply
-noise supression to audio sources with voice presence. This package provides
+noise suppression to audio sources with voice presence. This package provides
an LV2 audio plugin.")
(license license:lgpl3+))))
@@ -4431,7 +4466,7 @@ library.")
(define-public faudio
(package
(name "faudio")
- (version "19.11")
+ (version "21.04")
(source
(origin
(method git-fetch)
@@ -4440,19 +4475,24 @@ library.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0ckpr6ffz8ssfh1y850dhip5s5jv0j6n90qz5yx1v9d6gpwf08rp"))))
+ (base32 "1g3zp7igh4ns31sqnxddxqhgibijngkbcqqsj23i9d1lah6k4747"))))
(arguments
'(#:tests? #f ; No tests.
- #:configure-flags '("-DFFMPEG=ON")))
+ #:configure-flags '("-DGSTREAMER=ON")))
(build-system cmake-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
- (inputs `(("ffmpeg" ,ffmpeg)
+ (inputs `(("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)
("sdl2" ,sdl2)))
(home-page "https://github.com/FNA-XNA/FAudio")
(synopsis "XAudio reimplementation")
(description "FAudio is an XAudio reimplementation that focuses solely on
developing fully accurate DirectX Audio runtime libraries.")
- (license license:zlib)))
+ (license
+ (list license:zlib
+ ;; stb & utils/{ui,wav}common are dual-licenced under either of:
+ license:expat
+ license:public-domain))))
(define-public gnaural
(package
@@ -4888,7 +4928,7 @@ minimum.")
(define-public libinstpatch
(package
(name "libinstpatch")
- (version "1.1.5")
+ (version "1.1.6")
(source
(origin
(method git-fetch)
@@ -4897,7 +4937,7 @@ minimum.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb"))))
+ (base32 "1w3nk0vvd1cxic70n45zjip0bdsrja969myvyvkhq3ngbarbykir"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;there are no tests
@@ -5100,14 +5140,14 @@ while still staying in time.")
(define-public butt
(package
(name "butt")
- (version "0.1.28")
+ (version "0.1.29")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/butt/butt/butt-"
version "/butt-" version ".tar.gz"))
(sha256
(base32
- "1rbp4v6dlyapld6y4aqbpfmcaiafa06f2zqd1rhk4r3ld3bndafm"))))
+ "0nbz0z4d7krvhmnwn10594gwc61gn2dlb5fazmynjfisrfdswqlg"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -5144,7 +5184,7 @@ while still staying in time.")
version "_manual.pdf"))
(sha256
(base32
- "04wz2sqhk22h9gymwh5r6kp6sxc994mia8rg9lwpmy1r18w4pvsl"))))))
+ "1hhgdhdg5s86hjcbwh856gcd3kcch0i5xgi3i3v02zz3xmzl7gg3"))))))
(home-page "https://danielnoethen.de/butt/")
(synopsis "Audio streaming tool")
(description "Butt is a tool to stream audio to a ShoutCast or
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 12a36a4709..33e1905a25 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -537,7 +537,7 @@ complexity of working with shared libraries across platforms.")
(native-inputs
`(("help2man" ,help2man)))
(home-page "https://savannah.gnu.org/projects/config")
- (synopsis "Ubiquitious config.guess and config.sub scripts")
+ (synopsis "Ubiquitous config.guess and config.sub scripts")
(description "The `config.guess' script tries to guess a canonical system triple,
and `config.sub' validates and canonicalizes. These are used as part of
configuration in nearly all GNU packages (and many others).")
diff --git a/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
index 4836307163..189e4e16b4 100644
--- a/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.10-x86_64.conf
@@ -8146,7 +8146,7 @@ CONFIG_HYPERV_BALLOON=m
#
CONFIG_XEN_BALLOON=y
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
-CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512
+CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
diff --git a/gnu/packages/aux-files/linux-libre/5.11-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.11-x86_64.conf
index 178bb220d7..99d3cf74e2 100644
--- a/gnu/packages/aux-files/linux-libre/5.11-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.11-x86_64.conf
@@ -8212,7 +8212,7 @@ CONFIG_HYPERV_BALLOON=m
#
CONFIG_XEN_BALLOON=y
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
-CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512
+CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
diff --git a/gnu/packages/axoloti.scm b/gnu/packages/axoloti.scm
index 3049051486..0b12e4fe29 100644
--- a/gnu/packages/axoloti.scm
+++ b/gnu/packages/axoloti.scm
@@ -147,18 +147,7 @@
(delete 'configure)
(replace 'build
;; Build Axoloti firmware with cross-compiler
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((toolchain (assoc-ref inputs "cross-toolchain"))
- (headers (string-append
- toolchain
- "/arm-none-eabi/include:"
- toolchain
- "/arm-none-eabi/include/arm-none-eabi/armv7e-m")))
- (setenv "CROSS_CPATH" headers)
- (setenv "CROSS_CPLUS_INCLUDE_PATH" headers)
- (setenv "CROSS_LIBRARY_PATH"
- (string-append toolchain
- "/arm-none-eabi/lib")))
+ (lambda _
(with-directory-excursion "platform_linux"
(invoke "sh" "compile_firmware.sh"))))
(replace 'install
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 78c5b31bb5..c8382536b0 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -62,6 +63,7 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages guile-xyz)
#:use-module (gnu packages linux)
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages ncurses)
@@ -570,13 +572,13 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
- (version "1.1.15")
+ (version "1.1.16")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
- (base32 "1g62sdzcw3zx4ccky125ciwnzx6z9kwyvskvp7ijmqxqk3nrxjs9"))
+ (base32 "0l1dqfwrd9l34rg30cmzmq5bs6yha6kg4vy313jq611jsqj94mmw"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -586,6 +588,8 @@ detection, and lossless compression.")
;; generate the wrong list.
(for-each delete-file
'("src/borg/algorithms/checksums.c"
+ "src/borg/algorithms/msgpack/_packer.cpp"
+ "src/borg/algorithms/msgpack/_unpacker.cpp"
"src/borg/chunker.c"
"src/borg/compress.c"
"src/borg/crypto/low_level.c"
@@ -1083,3 +1087,35 @@ interactive mode.")
to reduce network traffic and the amount of space that is used by each
backup.")
(license license:agpl3)))
+
+(define-public disarchive
+ (package
+ (name "disarchive")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://files.ngyro.com/disarchive/"
+ "disarchive-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12d4r4i7vi8fxilr2aww6kzq56jax5ymhjfm3cpgx26vj4c70kb6"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)
+ ("guile-quickcheck" ,guile-quickcheck)))
+ (inputs
+ `(("guile" ,guile-3.0)
+ ("zlib" ,zlib)))
+ (propagated-inputs
+ `(("guile-gcrypt" ,guile-gcrypt)))
+ (home-page "https://ngyro.com/software/disarchive.html")
+ (synopsis "Software archive disassembler")
+ (description "Disarchive can disassemble software archives into data
+and metadata. The goal is to create a small amount of metadata that
+can be used to recreate a software archive bit-for-bit from the
+original files. For example, a software archive made using tar and
+Gzip will need to describe the order of files in the tarball and the
+compression parameters used by Gzip.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 9aa69cfe77..ea2e102c15 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
@@ -15,6 +15,8 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
+;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -146,6 +148,22 @@ including, for example, recursive directory searching.")
(base32
"0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk"))))
(build-system gnu-build-system)
+ (arguments
+ ;; TODO: When merging this into core-updates, keep the version of
+ ;; this code (with comment!) applied as a snippet.
+ `(,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
+ (%current-system)))
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'allow-building-on-selinux-systems
+ (lambda _
+ (substitute* "Makefile.in"
+ (("^ abs_srcdir='\\$\\(abs_srcdir\\)'.*" previous-line)
+ (string-append
+ previous-line
+ " CONFIG_HEADER='$(CONFIG_HEADER)'\t\t\\\n")))
+ #t))))
+ '())))
(synopsis "Stream editor")
(native-inputs
`(("perl" ,perl))) ;for tests
@@ -890,6 +908,14 @@ the store.")
files)))
#t)))
+ ,@(if (target-powerpc?)
+ '((add-after 'unpack 'apply-patch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((patch (assoc-ref inputs
+ "powerpc64le-patch")))
+ (invoke "patch" "--force" "-p1"
+ "-i" patch)))))
+ '())
,@(if (hurd-target?)
'((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
@@ -911,6 +937,10 @@ the store.")
("gettext" ,gettext-minimal)
("python" ,python-minimal)
+ ,@(if (target-powerpc?)
+ `(("powerpc64le-patch" ,@(search-patches
+ "glibc-ldd-powerpc.patch")))
+ '())
,@(if (hurd-target?)
`(("mig" ,mig)
("perl" ,perl))
@@ -1244,7 +1274,9 @@ command.")
(define-public tzdata
(package
(name "tzdata")
- (version "2020f")
+ ;; This package should be kept in sync with python-pytz in (gnu packages
+ ;; time).
+ (version "2021a")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1252,7 +1284,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
- "10b8cr55x6ji14n3kqkn3avj1s9b79b8gszh81fxrrisij8k248j"))))
+ "022fn6gkmp7pamlgab04x0dm5hnyn2m2fcnyr3pvm36612xd5rrr"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
@@ -1312,7 +1344,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
- "1i998crd9fxdfhv4jd241j1arx0ng7j7cvczpmj4y5j5fwmfmvng"))))))
+ "1l02b0jiwp3fl0xd6227i69d26rmx3yrnq0ssq9vvdmm4jhvyipb"))))))
(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)
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index d611f3a491..6b5c0a0391 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com>
;;; Copyright © 2020, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2021 Hong Li <hli@mdc-berlin.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -927,6 +928,26 @@ All datasets are restricted to protein coding genes.")
from Illumina 450k methylation arrays.")
(license license:artistic2.0)))
+(define-public r-chromstardata
+ (package
+ (name "r-chromstardata")
+ (version "1.16.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "chromstaRData" version 'experiment))
+ (sha256
+ (base32
+ "0ph80d53598635bb8g61acg5rqwnj8644a0gh297r4hgbvwlflab"))))
+ (properties `((upstream-name . "chromstaRData")))
+ (build-system r-build-system)
+ (home-page "https://bioconductor.org/packages/chromstaRData/")
+ (synopsis "ChIP-seq data for demonstration purposes")
+ (description
+ "This package provides ChIP-seq data for demonstration purposes in the
+chromstaR package.")
+ (license license:gpl3)))
+
(define-public r-genelendatabase
(package
(name "r-genelendatabase")
@@ -1066,7 +1087,7 @@ package @code{affy}.")
(properties `((upstream-name . "gageData")))
(build-system r-build-system)
(home-page "https://bioconductor.org/packages/gageData")
- (synopsis "Auxillary data for gage package")
+ (synopsis "Auxiliary data for the gage package")
(description
"This is a supportive data package for the software package @code{gage}.
However, the data supplied here are also useful for gene set or pathway
@@ -1212,6 +1233,39 @@ data. In addition, provides numerous plotting functions for commonly
used visualizations.")
(license license:artistic2.0)))
+(define-public r-delayedarray
+ (package
+ (name "r-delayedarray")
+ (version "0.16.3")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "DelayedArray" version))
+ (sha256
+ (base32
+ "0w1wppy6m2iv41852dscg3y19sq84ahdx3m7c2p2pxjcznmv6hys"))))
+ (properties
+ `((upstream-name . "DelayedArray")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-iranges" ,r-iranges)
+ ("r-matrix" ,r-matrix)
+ ("r-matrixgenerics" ,r-matrixgenerics)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://bioconductor.org/packages/DelayedArray")
+ (synopsis "Delayed operations on array-like objects")
+ (description
+ "Wrapping an array-like object (typically an on-disk object) in a
+@code{DelayedArray} object allows one to perform common array operations on it
+without loading the object in memory. In order to reduce memory usage and
+optimize performance, operations on the object are either delayed or executed
+using a block processing mechanism. Note that this also works on in-memory
+array-like objects like @code{DataFrame} objects (typically with Rle columns),
+@code{Matrix} objects, and ordinary arrays and data frames.")
+ (license license:artistic2.0)))
+
(define-public r-bluster
(package
(name "r-bluster")
@@ -1294,6 +1348,60 @@ naming and share the same rich and consistent \"Vector API\" as much as
possible.")
(license license:artistic2.0)))
+;; This is a CRAN package, but it depends on r-biobase and r-limma from Bioconductor.
+(define-public r-absfiltergsea
+ (package
+ (name "r-absfiltergsea")
+ (version "1.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "AbsFilterGSEA" version))
+ (sha256
+ (base32 "15srxkxsvn38kd5frdrwfdf0ad8gskrd0h01wmdf9hglq8fjrp7w"))))
+ (properties `((upstream-name . "AbsFilterGSEA")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biobase" ,r-biobase)
+ ("r-deseq" ,r-deseq)
+ ("r-limma" ,r-limma)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcpparmadillo" ,r-rcpparmadillo)))
+ (home-page "https://cran.r-project.org/web/packages/AbsFilterGSEA/")
+ (synopsis "Improved false positive control of gene-permuting with absolute filtering")
+ (description
+ "This package provides a function that performs gene-permuting of a gene-set
+enrichment analysis (GSEA) calculation with or without the absolute filtering.
+ Without filtering, users can perform (original) two-tailed or one-tailed
+absolute GSEA.")
+ (license license:gpl2)))
+
+;; This is a CRAN package, but it depends on r-biobase from Bioconductor.
+(define-public r-bisquerna
+ (package
+ (name "r-bisquerna")
+ (version "1.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "BisqueRNA" version))
+ (sha256
+ (base32
+ "01g34n87ml7n3pck77497ddgbv3rr5p4153ac8ninpgjijlm3jw2"))))
+ (properties `((upstream-name . "BisqueRNA")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biobase" ,r-biobase)
+ ("r-limsolve" ,r-limsolve)))
+ (home-page "https://www.biorxiv.org/content/10.1101/669911v1")
+ (synopsis "Decomposition of bulk expression with single-cell sequencing")
+ (description "This package provides tools to accurately estimate cell type
+abundances from heterogeneous bulk expression. A reference-based method
+utilizes single-cell information to generate a signature matrix and
+transformation of bulk expression for accurate regression based estimates.
+A marker-based method utilizes known cell-specific marker genes to measure
+relative abundances across samples.")
+ (license license:gpl3)))
+
;; This is a CRAN package, but it depends on r-bsgenome-hsapiens-ucsc-hg19
;; from Bioconductor.
(define-public r-deconstructsigs
@@ -1538,6 +1646,35 @@ structure.")
microarrays.")
(license license:artistic2.0)))
+(define-public r-annotationdbi
+ (package
+ (name "r-annotationdbi")
+ (version "1.52.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "AnnotationDbi" version))
+ (sha256
+ (base32
+ "0zqxgh3nx6y8ry12s2vss2f4axz5vpqxha1y4ifhhcx4zhpzsglr"))))
+ (properties
+ `((upstream-name . "AnnotationDbi")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biobase" ,r-biobase)
+ ("r-biocgenerics" ,r-biocgenerics)
+ ("r-dbi" ,r-dbi)
+ ("r-iranges" ,r-iranges)
+ ("r-rsqlite" ,r-rsqlite)
+ ("r-s4vectors" ,r-s4vectors)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://bioconductor.org/packages/AnnotationDbi")
+ (synopsis "Annotation database interface")
+ (description
+ "This package provides user interface and database connection code for
+annotation data packages using SQLite data storage.")
+ (license license:artistic2.0)))
+
(define-public r-annotationforge
(package
(name "r-annotationforge")
@@ -1570,6 +1707,148 @@ microarrays.")
databases. Packages produced are intended to be used with AnnotationDbi.")
(license license:artistic2.0)))
+(define-public r-biobase
+ (package
+ (name "r-biobase")
+ (version "2.50.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "Biobase" version))
+ (sha256
+ (base32
+ "11kgc4flywlm3i18603558l8ksv91c24vkc5fnnbcd375i2dhhd4"))))
+ (properties
+ `((upstream-name . "Biobase")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)))
+ (home-page "https://bioconductor.org/packages/Biobase")
+ (synopsis "Base functions for Bioconductor")
+ (description
+ "This package provides functions that are needed by many other packages
+on Bioconductor or which replace R functions.")
+ (license license:artistic2.0)))
+
+(define-public r-biomart
+ (package
+ (name "r-biomart")
+ (version "2.46.3")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "biomaRt" version))
+ (sha256
+ (base32
+ "0gwmd0ykpv0gyh34c56g5m12lil20fvig49f3ih1jxrxf3q4wmq7"))))
+ (properties
+ `((upstream-name . "biomaRt")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-annotationdbi" ,r-annotationdbi)
+ ("r-biocfilecache" ,r-biocfilecache)
+ ("r-httr" ,r-httr)
+ ("r-openssl" ,r-openssl)
+ ("r-progress" ,r-progress)
+ ("r-rappdirs" ,r-rappdirs)
+ ("r-stringr" ,r-stringr)
+ ("r-xml" ,r-xml)
+ ("r-xml2" ,r-xml2)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://bioconductor.org/packages/biomaRt")
+ (synopsis "Interface to BioMart databases")
+ (description
+ "biomaRt provides an interface to a growing collection of databases
+implementing the @url{BioMart software suite, http://www.biomart.org}. The
+package enables retrieval of large amounts of data in a uniform way without
+the need to know the underlying database schemas or write complex SQL queries.
+Examples of BioMart databases are Ensembl, COSMIC, Uniprot, HGNC, Gramene,
+Wormbase and dbSNP mapped to Ensembl. These major databases give biomaRt
+users direct access to a diverse set of data and enable a wide range of
+powerful online queries from gene annotation to database mining.")
+ (license license:artistic2.0)))
+
+(define-public r-biocparallel
+ (package
+ (name "r-biocparallel")
+ (version "1.24.1")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "BiocParallel" version))
+ (sha256
+ (base32
+ "1iryicvmcagcrj29kp49mqhiq2kn72j4idj380hi9illmdrg9ism"))))
+ (properties
+ `((upstream-name . "BiocParallel")))
+ (build-system r-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'make-reproducible
+ (lambda _
+ ;; Remove generated documentation.
+ (for-each delete-file
+ '("inst/doc/BiocParallel_BatchtoolsParam.pdf"
+ "inst/doc/Introduction_To_BiocParallel.pdf"
+ "inst/doc/Errors_Logs_And_Debugging.pdf"
+ "inst/doc/BiocParallel_BatchtoolsParam.R"
+ "inst/doc/Introduction_To_BiocParallel.R"
+ "inst/doc/Errors_Logs_And_Debugging.R"))
+
+ ;; Remove time-dependent macro
+ (substitute* '("inst/doc/BiocParallel_BatchtoolsParam.Rnw"
+ "inst/doc/Introduction_To_BiocParallel.Rnw"
+ "inst/doc/Errors_Logs_And_Debugging.Rnw"
+ "vignettes/BiocParallel_BatchtoolsParam.Rnw"
+ "vignettes/Introduction_To_BiocParallel.Rnw"
+ "vignettes/Errors_Logs_And_Debugging.Rnw")
+ (("\\today") "later"))
+
+ ;; Initialize the random number generator seed when building.
+ (substitute* "R/internal_rng_stream.R"
+ (("\"L'Ecuyer-CMRG\"\\)" m)
+ (string-append
+ m "; if (!is.na(Sys.getenv(\"SOURCE_DATE_EPOCH\"))) {set.seed(100)}\n"))))))))
+ (propagated-inputs
+ `(("r-futile-logger" ,r-futile-logger)
+ ("r-snow" ,r-snow)
+ ("r-bh" ,r-bh)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://bioconductor.org/packages/BiocParallel")
+ (synopsis "Bioconductor facilities for parallel evaluation")
+ (description
+ "This package provides modified versions and novel implementation of
+functions for parallel evaluation, tailored to use with Bioconductor
+objects.")
+ (license (list license:gpl2+ license:gpl3+))))
+
+(define-public r-biostrings
+ (package
+ (name "r-biostrings")
+ (version "2.58.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "Biostrings" version))
+ (sha256
+ (base32
+ "1rbqhs73mhfr1gi0rx28jiyan7i3hb45ai3jpl1656fnrhgjfxq5"))))
+ (properties
+ `((upstream-name . "Biostrings")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-crayon" ,r-crayon)
+ ("r-iranges" ,r-iranges)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-xvector" ,r-xvector)))
+ (home-page "https://bioconductor.org/packages/Biostrings")
+ (synopsis "String objects and algorithms for biological sequences")
+ (description
+ "This package provides memory efficient string containers, string
+matching algorithms, and other utilities, for fast manipulation of large
+biological sequences or sets of sequences.")
+ (license license:artistic2.0)))
+
(define-public r-category
(package
(name "r-category")
@@ -1743,13 +2022,13 @@ high-throughput sequencing experiments.")
(define-public r-genomeinfodb
(package
(name "r-genomeinfodb")
- (version "1.26.4")
+ (version "1.26.6")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version))
(sha256
(base32
- "1sbhdpgabqbi749ixih8nlmq5id7sg8y6kkfj46r00642rc293ys"))))
+ "1wy4dwiv0pgim975var802z565py4a0nakx6zdvbhry4c0dfczd1"))))
(properties
`((upstream-name . "GenomeInfoDb")))
(build-system r-build-system)
@@ -1770,6 +2049,37 @@ translation between different chromosome sequence naming conventions (e.g.,
names in their natural, rather than lexicographic, order.")
(license license:artistic2.0)))
+(define-public r-genomicranges
+ (package
+ (name "r-genomicranges")
+ (version "1.42.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "GenomicRanges" version))
+ (sha256
+ (base32
+ "0j4py5g6pdj35xhlaqhxxhg55j9l4mcdk3yck4dgyavv5f2dh24i"))))
+ (properties
+ `((upstream-name . "GenomicRanges")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-iranges" ,r-iranges)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-xvector" ,r-xvector)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://bioconductor.org/packages/GenomicRanges")
+ (synopsis "Representation and manipulation of genomic intervals")
+ (description
+ "This package provides tools to efficiently represent and manipulate
+genomic annotations and alignments is playing a central role when it comes to
+analyzing high-throughput sequencing data (a.k.a. NGS data). The
+GenomicRanges package defines general purpose containers for storing and
+manipulating genomic intervals and variables defined along a genome.")
+ (license license:artistic2.0)))
+
(define-public r-gostats
(package
(name "r-gostats")
@@ -1850,6 +2160,25 @@ Enrichment Analysis} (GSEA).")
the Human Protein Atlas project.")
(license license:artistic2.0)))
+(define-public r-limma
+ (package
+ (name "r-limma")
+ (version "3.46.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "limma" version))
+ (sha256
+ (base32
+ "1xxv493q1kip9bjfv7v7k5dnq7hz7gvl80i983v4mvwavhgnbxfz"))))
+ (build-system r-build-system)
+ (home-page "http://bioinf.wehi.edu.au/limma")
+ (synopsis "Package for linear models for microarray and RNA-seq data")
+ (description "This package can be used for the analysis of gene expression
+studies, especially the use of linear models for analysing designed experiments
+and the assessment of differential expression. The analysis methods apply to
+different technologies, including microarrays, RNA-seq, and quantitative PCR.")
+ (license license:gpl2+)))
+
(define-public r-rbgl
(package
(name "r-rbgl")
@@ -1954,6 +2283,49 @@ reports together for a particular project that can be viewed in a web
browser.")
(license license:artistic2.0)))
+(define-public r-rsamtools
+ (package
+ (name "r-rsamtools")
+ (version "2.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "Rsamtools" version))
+ (sha256
+ (base32
+ "040pggkwglc6wy90qnc7xcdnaj0v3iqlykvvsl74241409qly554"))))
+ (properties
+ `((upstream-name . "Rsamtools")))
+ (build-system r-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'use-system-zlib
+ (lambda _
+ (substitute* "DESCRIPTION"
+ (("zlibbioc, ") ""))
+ (substitute* "NAMESPACE"
+ (("import\\(zlibbioc\\)") ""))
+ #t)))))
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-biocparallel" ,r-biocparallel)
+ ("r-biostrings" ,r-biostrings)
+ ("r-bitops" ,r-bitops)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-iranges" ,r-iranges)
+ ("r-rhtslib" ,r-rhtslib)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-xvector" ,r-xvector)))
+ (home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
+ (synopsis "Interface to samtools, bcftools, and tabix")
+ (description
+ "This package provides an interface to the @code{samtools},
+@code{bcftools}, and @code{tabix} utilities for manipulating SAM (Sequence
+Alignment / Map), FASTA, binary variant call (BCF) and compressed indexed
+tab-delimited (tabix) files.")
+ (license license:expat)))
+
(define-public r-shortread
(package
(name "r-shortread")
@@ -2089,6 +2461,42 @@ annotation infrastructure.")
coding changes and predict coding outcomes.")
(license license:artistic2.0)))
+(define-public r-xvector
+ (package
+ (name "r-xvector")
+ (version "0.30.0")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "XVector" version))
+ (sha256
+ (base32
+ "1pqljikg4f6jb7wgm5537zwgq5b013nyz1agjrwfq2cljb0ym6lq"))))
+ (properties
+ `((upstream-name . "XVector")))
+ (build-system r-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'use-system-zlib
+ (lambda _
+ (substitute* "DESCRIPTION"
+ (("zlibbioc, ") ""))
+ (substitute* "NAMESPACE"
+ (("import\\(zlibbioc\\)") ""))
+ #t)))))
+ (inputs
+ `(("zlib" ,zlib)))
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-iranges" ,r-iranges)
+ ("r-s4vectors" ,r-s4vectors)))
+ (home-page "https://bioconductor.org/packages/XVector")
+ (synopsis "Representation and manpulation of external sequences")
+ (description
+ "This package provides memory efficient S4 classes for storing sequences
+\"externally\" (behind an R external pointer, or on disk).")
+ (license license:artistic2.0)))
+
(define-public r-geneplotter
(package
(name "r-geneplotter")
@@ -2297,14 +2705,14 @@ signal in the input, that lead to spurious peaks during peak calling.")
(define-public r-diffbind
(package
(name "r-diffbind")
- (version "3.0.14")
+ (version "3.0.15")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "DiffBind" version))
(sha256
(base32
- "1siabhjd0w7bb6v2gfhsm9j7c7c86z8m6lfsyl8p84h0zhjs2vrw"))))
+ "06f613s8d9z51njyf839g22gwybx9zs5n6xghwr5j1ad2n4m6qwi"))))
(properties `((upstream-name . "DiffBind")))
(build-system r-build-system)
(propagated-inputs
@@ -2511,14 +2919,14 @@ determining dependencies between variables, code improvement suggestions.")
(define-public r-chippeakanno
(package
(name "r-chippeakanno")
- (version "3.24.1")
+ (version "3.24.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ChIPpeakAnno" version))
(sha256
(base32
- "0qdkwjv8s46d1kmgg2chijv7yzy9sv49kiks18w8x2z89prn15gj"))))
+ "0l417aygs89wf1j9fjpfjhahzskbpbgcrm8xpx3qm4s0307vfzkw"))))
(properties `((upstream-name . "ChIPpeakAnno")))
(build-system r-build-system)
(propagated-inputs
@@ -2527,6 +2935,7 @@ determining dependencies between variables, code improvement suggestions.")
("r-biomart" ,r-biomart)
("r-biostrings" ,r-biostrings)
("r-dbi" ,r-dbi)
+ ("r-dplyr" ,r-dplyr)
("r-ensembldb" ,r-ensembldb)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicalignments" ,r-genomicalignments)
@@ -6500,14 +6909,14 @@ annotations.")
(define-public r-rsubread
(package
(name "r-rsubread")
- (version "2.4.2")
+ (version "2.4.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rsubread" version))
(sha256
(base32
- "1wczrw5jb69x45hd3rdqqs9vkysdqwlxn9h3kjzn57r4x5q7jrra"))))
+ "0c4akc89p5467n5rzq9bi7h0h15rbpqpvh7fw42qcj7g2vc41wba"))))
(properties `((upstream-name . "Rsubread")))
(build-system r-build-system)
(inputs `(("zlib" ,zlib)))
@@ -7966,14 +8375,14 @@ data.")
(define-public r-universalmotif
(package
(name "r-universalmotif")
- (version "1.8.3")
+ (version "1.8.4")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "universalmotif" version))
(sha256
(base32
- "1ys2kbayc1rzv8nzi60208yfslm4kzynndfg7vw2n0c30dvzycrc"))))
+ "0pmi5mp5v0srr482vlkfmkp28bywq969fvv9g5kjl5rxki963zmr"))))
(properties
`((upstream-name . "universalmotif")))
(build-system r-build-system)
@@ -10119,8 +10528,8 @@ experiments, and visualize de influence of the involved factors.")
by spectral counts, to discover differentially expressed proteins between two
biological conditions. Three tests are available: Poisson GLM regression,
quasi-likelihood GLM regression, and the negative binomial of the edgeR
-package.The three models admit blocking factors to control for nuissance
-variables.To assure a good level of reproducibility a post-test filter is
+package. The three models admit blocking factors to control for nuisance
+variables. To assure a good level of reproducibility a post-test filter is
available, where we may set the minimum effect size considered biologicaly
relevant, and the minimum expression of the most abundant condition.")
(license license:gpl2)))
@@ -10394,14 +10803,14 @@ family of feature/genome hypotheses.")
(define-public r-gviz
(package
(name "r-gviz")
- (version "1.34.0")
+ (version "1.34.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Gviz" version))
(sha256
(base32
- "0v7bz46b91dnrr55ah42ljj1i2xs3090s4w0lw8098pag00p4vh2"))))
+ "0bmlfz9ri1gkwyl605a2hqi5b8jdpvynrxwghwmrsd657ip6c7n1"))))
(properties `((upstream-name . "Gviz")))
(build-system r-build-system)
(propagated-inputs
@@ -10622,6 +11031,44 @@ large-scale and fully automated analysis.")
the earlier snpMatrix package, allowing for uncertainty in genotypes.")
(license license:gpl3)))
+(define-public r-chromstar
+ (package
+ (name "r-chromstar")
+ (version "1.16.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "chromstaR" version))
+ (sha256
+ (base32
+ "0vgpb7g2cncdn82hia2yzzachyns2zbd7906662g990qjnp2xlm1"))))
+ (properties `((upstream-name . "chromstaR")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-bamsignals" ,r-bamsignals)
+ ("r-biocgenerics" ,r-biocgenerics)
+ ("r-chromstardata" ,r-chromstardata)
+ ("r-doparallel" ,r-doparallel)
+ ("r-foreach" ,r-foreach)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicalignments" ,r-genomicalignments)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-iranges" ,r-iranges)
+ ("r-mvtnorm" ,r-mvtnorm)
+ ("r-reshape2" ,r-reshape2)
+ ("r-rsamtools" ,r-rsamtools)
+ ("r-s4vectors" ,r-s4vectors)))
+ (native-inputs `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/ataudt/chromstaR")
+ (synopsis "Chromatin state analysis for ChIP-Seq data")
+ (description
+ "This package implements functions for combinatorial and differential
+analysis of ChIP-seq data. It includes uni- and multivariate peak-calling,
+export to genome browser viewable files, and functions for enrichment
+analyses.")
+ (license license:artistic2.0)))
+
(define-public r-sushi
(package
(name "r-sushi")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index eb466868d1..475aa019d0 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
;;; Copyright © 2021 Tim Howes <timhowes@lavabit.com>
+;;; Copyright © 2021 Hong Li <hli@mdc-berlin.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -6289,7 +6290,7 @@ subsequent visualization, annotation and storage of results.")
(define-public plink-ng
(package (inherit plink)
(name "plink-ng")
- (version "1.90b4")
+ (version "2.00a2.3")
(source
(origin
(method git-fetch)
@@ -6298,29 +6299,26 @@ subsequent visualization, annotation and storage of results.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "02npdwgkpfkdnhw819rhj5kw02a5k5m90b14zq9zzya4hyg929c0"))))
+ (base32 "1p88lz9agzjlspjhciz61qjc36cfniv4nkxszyy0njqyc5rzc0cd"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ;no "check" target
+ `(#:tests? #f ;no "check" target
#:make-flags (list "BLASFLAGS=-llapack -lopenblas"
"CFLAGS=-Wall -O2 -DDYNAMIC_ZLIB=1"
"ZLIB=-lz"
- "-f" "Makefile.std")
+ "BIN=plink prettify"
+ (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ "DESTDIR=")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "1.9") #t))
- (delete 'configure) ; no "configure" script
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out")
- "/bin/")))
- (install-file "plink" bin)
- #t))))))
+ (delete 'configure)))) ; no "configure" script
(inputs
- `(("zlib" ,zlib)
- ("lapack" ,lapack)
- ("openblas" ,openblas)))
+ `(("lapack" ,lapack)
+ ("openblas" ,openblas)
+ ("zlib" ,zlib)))
(home-page "https://www.cog-genomics.org/plink/")
(license license:gpl3+)))
@@ -6801,9 +6799,9 @@ of these reads to align data quickly through a hash-based indexing scheme.")
(synopsis "Biological sequence analysis tool for NGS reads")
(description
"SortMeRNA is a biological sequence analysis tool for filtering, mapping
-and operational taxonomic unit (OTU) picking of next generation
-sequencing (NGS) reads. The core algorithm is based on approximate seeds and
-allows for fast and sensitive analyses of nucleotide sequences. The main
+and @acronym{OTU, operational taxonomic unit} picking of @acronym{NGS, next
+generation sequencing} reads. The core algorithm is based on approximate seeds
+and allows for fast and sensitive analyses of nucleotide sequences. The main
application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
;; The source includes x86 specific code
(supported-systems '("x86_64-linux" "i686-linux"))
@@ -7695,311 +7693,6 @@ including VCF header and contents in RDF and JSON.")
(home-page "https://github.com/vcflib/bio-vcf")
(license license:expat)))
-(define-public r-limma
- (package
- (name "r-limma")
- (version "3.46.0")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "limma" version))
- (sha256
- (base32
- "1xxv493q1kip9bjfv7v7k5dnq7hz7gvl80i983v4mvwavhgnbxfz"))))
- (build-system r-build-system)
- (home-page "http://bioinf.wehi.edu.au/limma")
- (synopsis "Package for linear models for microarray and RNA-seq data")
- (description "This package can be used for the analysis of gene expression
-studies, especially the use of linear models for analysing designed experiments
-and the assessment of differential expression. The analysis methods apply to
-different technologies, including microarrays, RNA-seq, and quantitative PCR.")
- (license license:gpl2+)))
-
-(define-public r-xvector
- (package
- (name "r-xvector")
- (version "0.30.0")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "XVector" version))
- (sha256
- (base32
- "1pqljikg4f6jb7wgm5537zwgq5b013nyz1agjrwfq2cljb0ym6lq"))))
- (properties
- `((upstream-name . "XVector")))
- (build-system r-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'use-system-zlib
- (lambda _
- (substitute* "DESCRIPTION"
- (("zlibbioc, ") ""))
- (substitute* "NAMESPACE"
- (("import\\(zlibbioc\\)") ""))
- #t)))))
- (inputs
- `(("zlib" ,zlib)))
- (propagated-inputs
- `(("r-biocgenerics" ,r-biocgenerics)
- ("r-iranges" ,r-iranges)
- ("r-s4vectors" ,r-s4vectors)))
- (home-page "https://bioconductor.org/packages/XVector")
- (synopsis "Representation and manpulation of external sequences")
- (description
- "This package provides memory efficient S4 classes for storing sequences
-\"externally\" (behind an R external pointer, or on disk).")
- (license license:artistic2.0)))
-
-(define-public r-genomicranges
- (package
- (name "r-genomicranges")
- (version "1.42.0")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "GenomicRanges" version))
- (sha256
- (base32
- "0j4py5g6pdj35xhlaqhxxhg55j9l4mcdk3yck4dgyavv5f2dh24i"))))
- (properties
- `((upstream-name . "GenomicRanges")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biocgenerics" ,r-biocgenerics)
- ("r-genomeinfodb" ,r-genomeinfodb)
- ("r-iranges" ,r-iranges)
- ("r-s4vectors" ,r-s4vectors)
- ("r-xvector" ,r-xvector)))
- (native-inputs
- `(("r-knitr" ,r-knitr)))
- (home-page "https://bioconductor.org/packages/GenomicRanges")
- (synopsis "Representation and manipulation of genomic intervals")
- (description
- "This package provides tools to efficiently represent and manipulate
-genomic annotations and alignments is playing a central role when it comes to
-analyzing high-throughput sequencing data (a.k.a. NGS data). The
-GenomicRanges package defines general purpose containers for storing and
-manipulating genomic intervals and variables defined along a genome.")
- (license license:artistic2.0)))
-
-(define-public r-biobase
- (package
- (name "r-biobase")
- (version "2.50.0")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "Biobase" version))
- (sha256
- (base32
- "11kgc4flywlm3i18603558l8ksv91c24vkc5fnnbcd375i2dhhd4"))))
- (properties
- `((upstream-name . "Biobase")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biocgenerics" ,r-biocgenerics)))
- (home-page "https://bioconductor.org/packages/Biobase")
- (synopsis "Base functions for Bioconductor")
- (description
- "This package provides functions that are needed by many other packages
-on Bioconductor or which replace R functions.")
- (license license:artistic2.0)))
-
-(define-public r-annotationdbi
- (package
- (name "r-annotationdbi")
- (version "1.52.0")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "AnnotationDbi" version))
- (sha256
- (base32
- "0zqxgh3nx6y8ry12s2vss2f4axz5vpqxha1y4ifhhcx4zhpzsglr"))))
- (properties
- `((upstream-name . "AnnotationDbi")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biobase" ,r-biobase)
- ("r-biocgenerics" ,r-biocgenerics)
- ("r-dbi" ,r-dbi)
- ("r-iranges" ,r-iranges)
- ("r-rsqlite" ,r-rsqlite)
- ("r-s4vectors" ,r-s4vectors)))
- (native-inputs
- `(("r-knitr" ,r-knitr)))
- (home-page "https://bioconductor.org/packages/AnnotationDbi")
- (synopsis "Annotation database interface")
- (description
- "This package provides user interface and database connection code for
-annotation data packages using SQLite data storage.")
- (license license:artistic2.0)))
-
-(define-public r-biomart
- (package
- (name "r-biomart")
- (version "2.46.3")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "biomaRt" version))
- (sha256
- (base32
- "0gwmd0ykpv0gyh34c56g5m12lil20fvig49f3ih1jxrxf3q4wmq7"))))
- (properties
- `((upstream-name . "biomaRt")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-annotationdbi" ,r-annotationdbi)
- ("r-biocfilecache" ,r-biocfilecache)
- ("r-httr" ,r-httr)
- ("r-openssl" ,r-openssl)
- ("r-progress" ,r-progress)
- ("r-rappdirs" ,r-rappdirs)
- ("r-stringr" ,r-stringr)
- ("r-xml" ,r-xml)
- ("r-xml2" ,r-xml2)))
- (native-inputs
- `(("r-knitr" ,r-knitr)))
- (home-page "https://bioconductor.org/packages/biomaRt")
- (synopsis "Interface to BioMart databases")
- (description
- "biomaRt provides an interface to a growing collection of databases
-implementing the @url{BioMart software suite, http://www.biomart.org}. The
-package enables retrieval of large amounts of data in a uniform way without
-the need to know the underlying database schemas or write complex SQL queries.
-Examples of BioMart databases are Ensembl, COSMIC, Uniprot, HGNC, Gramene,
-Wormbase and dbSNP mapped to Ensembl. These major databases give biomaRt
-users direct access to a diverse set of data and enable a wide range of
-powerful online queries from gene annotation to database mining.")
- (license license:artistic2.0)))
-
-(define-public r-biocparallel
- (package
- (name "r-biocparallel")
- (version "1.24.1")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "BiocParallel" version))
- (sha256
- (base32
- "1iryicvmcagcrj29kp49mqhiq2kn72j4idj380hi9illmdrg9ism"))))
- (properties
- `((upstream-name . "BiocParallel")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-futile-logger" ,r-futile-logger)
- ("r-snow" ,r-snow)
- ("r-bh" ,r-bh)))
- (native-inputs
- `(("r-knitr" ,r-knitr)))
- (home-page "https://bioconductor.org/packages/BiocParallel")
- (synopsis "Bioconductor facilities for parallel evaluation")
- (description
- "This package provides modified versions and novel implementation of
-functions for parallel evaluation, tailored to use with Bioconductor
-objects.")
- (license (list license:gpl2+ license:gpl3+))))
-
-(define-public r-biostrings
- (package
- (name "r-biostrings")
- (version "2.58.0")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "Biostrings" version))
- (sha256
- (base32
- "1rbqhs73mhfr1gi0rx28jiyan7i3hb45ai3jpl1656fnrhgjfxq5"))))
- (properties
- `((upstream-name . "Biostrings")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biocgenerics" ,r-biocgenerics)
- ("r-crayon" ,r-crayon)
- ("r-iranges" ,r-iranges)
- ("r-s4vectors" ,r-s4vectors)
- ("r-xvector" ,r-xvector)))
- (home-page "https://bioconductor.org/packages/Biostrings")
- (synopsis "String objects and algorithms for biological sequences")
- (description
- "This package provides memory efficient string containers, string
-matching algorithms, and other utilities, for fast manipulation of large
-biological sequences or sets of sequences.")
- (license license:artistic2.0)))
-
-(define-public r-rsamtools
- (package
- (name "r-rsamtools")
- (version "2.6.0")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "Rsamtools" version))
- (sha256
- (base32
- "040pggkwglc6wy90qnc7xcdnaj0v3iqlykvvsl74241409qly554"))))
- (properties
- `((upstream-name . "Rsamtools")))
- (build-system r-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'use-system-zlib
- (lambda _
- (substitute* "DESCRIPTION"
- (("zlibbioc, ") ""))
- (substitute* "NAMESPACE"
- (("import\\(zlibbioc\\)") ""))
- #t)))))
- (propagated-inputs
- `(("r-biocgenerics" ,r-biocgenerics)
- ("r-biocparallel" ,r-biocparallel)
- ("r-biostrings" ,r-biostrings)
- ("r-bitops" ,r-bitops)
- ("r-genomeinfodb" ,r-genomeinfodb)
- ("r-genomicranges" ,r-genomicranges)
- ("r-iranges" ,r-iranges)
- ("r-rhtslib" ,r-rhtslib)
- ("r-s4vectors" ,r-s4vectors)
- ("r-xvector" ,r-xvector)))
- (home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
- (synopsis "Interface to samtools, bcftools, and tabix")
- (description
- "This package provides an interface to the @code{samtools},
-@code{bcftools}, and @code{tabix} utilities for manipulating SAM (Sequence
-Alignment / Map), FASTA, binary variant call (BCF) and compressed indexed
-tab-delimited (tabix) files.")
- (license license:expat)))
-
-(define-public r-delayedarray
- (package
- (name "r-delayedarray")
- (version "0.16.2")
- (source (origin
- (method url-fetch)
- (uri (bioconductor-uri "DelayedArray" version))
- (sha256
- (base32
- "09lpj951v1afxkrnjvnhzp4qgklq23ykdwlny7k1lyfcdy9q6wm0"))))
- (properties
- `((upstream-name . "DelayedArray")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biocgenerics" ,r-biocgenerics)
- ("r-s4vectors" ,r-s4vectors)
- ("r-iranges" ,r-iranges)
- ("r-matrix" ,r-matrix)
- ("r-matrixgenerics" ,r-matrixgenerics)))
- (native-inputs
- `(("r-knitr" ,r-knitr)))
- (home-page "https://bioconductor.org/packages/DelayedArray")
- (synopsis "Delayed operations on array-like objects")
- (description
- "Wrapping an array-like object (typically an on-disk object) in a
-@code{DelayedArray} object allows one to perform common array operations on it
-without loading the object in memory. In order to reduce memory usage and
-optimize performance, operations on the object are either delayed or executed
-using a block processing mechanism. Note that this also works on in-memory
-array-like objects like @code{DataFrame} objects (typically with Rle columns),
-@code{Matrix} objects, and ordinary arrays and data frames.")
- (license license:artistic2.0)))
-
(define-public r-summarizedexperiment
(package
(name "r-summarizedexperiment")
@@ -8118,13 +7811,13 @@ as well as query and modify the browser state, such as the current viewport.")
(define-public r-genomicfeatures
(package
(name "r-genomicfeatures")
- (version "1.42.2")
+ (version "1.42.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version))
(sha256
(base32
- "17ns5hvx5q8mrmkgb6linspwml62mi34i6al5bxlib5xi9d9f04s"))))
+ "168cf261vmcqffbzassavkjyz9a2af0l6zbv9cagkx6b1qrk3siz"))))
(properties
`((upstream-name . "GenomicFeatures")))
(build-system r-build-system)
@@ -15353,3 +15046,64 @@ biological processes. SBML is useful for models of metabolism, cell
signaling, and more. It continues to be evolved and expanded by an
international community.")
(license license:lgpl2.1+)))
+
+(define-public r-signac
+ (let ((commit "e0512d348adeda4a3f23a2e8f56d1fe09840e03c")
+ (revision "1"))
+ (package
+ (name "r-signac")
+ (version (git-version "1.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/timoast/signac/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1yihhrv7zs87ax61la1nb4y12lg3knraw4b20k5digbcwm8488lb"))))
+ (properties `((upstream-name . "Signac")))
+ (build-system r-build-system)
+ (inputs `(("zlib" ,zlib)))
+ (propagated-inputs
+ `(("r-annotationfilter" ,r-annotationfilter)
+ ("r-biocgenerics" ,r-biocgenerics)
+ ("r-biostrings" ,r-biostrings)
+ ("r-biovizbase" ,r-biovizbase)
+ ("r-data-table" ,r-data-table)
+ ("r-dplyr" ,r-dplyr)
+ ("r-fastmatch" ,r-fastmatch)
+ ("r-future" ,r-future)
+ ("r-future-apply" ,r-future-apply)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-ggbio" ,r-ggbio)
+ ("r-ggforce" ,r-ggforce)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-ggrepel" ,r-ggrepel)
+ ("r-ggseqlogo" ,r-ggseqlogo)
+ ("r-iranges" ,r-iranges)
+ ("r-irlba" ,r-irlba)
+ ("r-lsa" ,r-lsa)
+ ("r-matrix" ,r-matrix)
+ ("r-patchwork" ,r-patchwork)
+ ("r-pbapply" ,r-pbapply)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcpproll" ,r-rcpproll)
+ ("r-rsamtools" ,r-rsamtools)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-scales" ,r-scales)
+ ("r-seurat" ,r-seurat)
+ ("r-seuratobject" ,r-seuratobject)
+ ("r-stringi" ,r-stringi)
+ ("r-tidyr" ,r-tidyr)))
+ (home-page "https://github.com/timoast/signac/")
+ (synopsis "Analysis of single-cell chromatin data")
+ (description
+ "This package provides a framework for the analysis and exploration of
+single-cell chromatin data. The Signac package contains functions for
+quantifying single-cell chromatin data, computing per-cell quality control
+metrics, dimension reduction and normalization, visualization, and DNA
+sequence motif analysis.")
+ (license license:expat))))
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 1323e28278..a59bb01f3d 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +46,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages shells)
+ #:use-module (gnu packages mpi)
#:use-module (srfi srfi-1))
(define (version-with-underscores version)
@@ -347,6 +349,30 @@ Boost.Thread.")
signals and slots system.")
(license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
+
+(define-public boost-mpi
+ (package
+ (inherit boost)
+ (name "boost-mpi")
+ (native-inputs
+ `(("perl" ,perl)
+ ,@(if (%current-target-system)
+ '()
+ `(("python" ,python-wrapper)))
+ ("openmpi" , openmpi)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments boost)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'configure 'update-jam
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((output-port (open-file "project-config.jam" "a")))
+ (display "using mpi ;" output-port)
+ (newline output-port)
+ (close output-port))))))))
+ (home-page "https://www.boost.org")
+ (synopsis "Message Passing Interface (MPI) library for C++")))
+
(define-public mdds
(package
(name "mdds")
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index c39e60ec8b..c598cedc0a 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -5,6 +5,8 @@
;;; Copyright © 2018, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
;;; Copyright © 2019 Léo Le Bouter <lle-bout@zaclys.net>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -122,16 +124,27 @@
("tar"
,(base32 "06gmqdjq3rl8lr47b9fyx4ifnm5x56ymc8lyryp1ax1j2s4y5jb4"))
("xz"
- ,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))))
+ ,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))
+ ("powerpc64le-linux"
+ ("bash"
+ ,(base32 "1kiw7n6mkdy2x9in97646nb7aiayxr090ws1hbrlazah3fjqi6nj"))
+ ("mkdir"
+ ,(base32 "04dpvi231zcl40ig048vqqnyvmnkw1byrm1q1qqvs1f0g16yhrrk"))
+ ("tar"
+ ,(base32 "150c8948cz8r208g6qgn2dn4f4zs5kpgbpbg6bwag6yw42rapw2l"))
+ ("xz"
+ ,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))))
(define %bootstrap-executable-base-urls
;; This is where the bootstrap executables come from.
'("https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
+ "https://alpha.gnu.org/gnu/guix/bootstrap/"
"http://lilypond.org/janneke/guix/"))
(define (bootstrap-executable-file-name system program)
"Return the FILE-NAME part of url where PROGRAM can be found for SYSTEM."
(match system
+ ("powerpc64le-linux" (string-append system "/20210106/" program))
("i586-gnu" (string-append system "/20200326/" program))
(_ (string-append system "/" program
"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
@@ -332,6 +345,8 @@ or false to signal an error."
"/20150101/guile-2.0.11.tar.xz")
("i586-gnu"
"/20200326/guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz")
+ ("powerpc64le-linux"
+ "/20210106/guile-static-stripped-2.0.14-powerpc64le-linux-gnu.tar.xz")
(_
"/20131110/guile-2.0.9.tar.xz"))))
@@ -346,6 +361,8 @@ or false to signal an error."
(base32 "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))
("armhf-linux"
(base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))
+ ("powerpc64le-linux"
+ (base32 "1rnyfz5q38jyvxddj617443bnnzql4vw0mxzqpj8wz48wx4bhbq0"))
("aarch64-linux"
(base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))
("i586-gnu"
@@ -479,6 +496,8 @@ $out/bin/guile --version~%"
"/20150101/static-binaries.tar.xz")
("aarch64-linux"
"/20170217/static-binaries.tar.xz")
+ ("powerpc64le-linux"
+ "/20210106/static-binaries-0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/static-binaries-0-i586-pc-gnu.tar.xz")
(_
@@ -498,6 +517,9 @@ $out/bin/guile --version~%"
("aarch64-linux"
(base32
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
+ ("powerpc64le-linux"
+ (base32
+ "0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v"))
("i586-gnu"
(base32
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
@@ -547,6 +569,8 @@ $out/bin/guile --version~%"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
+ ("powerpc64le-linux"
+ "/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
(_
@@ -566,6 +590,9 @@ $out/bin/guile --version~%"
("aarch64-linux"
(base32
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
+ ("powerpc64le-linux"
+ (base32
+ "1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
("i586-gnu"
(base32
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
@@ -622,6 +649,8 @@ $out/bin/guile --version~%"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
+ ("powerpc64le-linux"
+ "/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/glibc-stripped-2.31-i586-pc-gnu.tar.xz")
(_
@@ -641,6 +670,9 @@ $out/bin/guile --version~%"
("aarch64-linux"
(base32
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
+ ("powerpc64le-linux"
+ (base32
+ "1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
("i586-gnu"
(base32
"14ddm10lpbas8bankmn5bcrlqvz1v5dnn1qjzxb19r57vd2w5952"))
@@ -713,6 +745,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
+ ("powerpc64le-linux"
+ "/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
(_
@@ -732,6 +766,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
("aarch64-linux"
(base32
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
+ ("powerpc64le-linux"
+ (base32
+ "151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
("i586-gnu"
(base32
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 3e453cca82..b5cebf0f9b 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -547,3 +547,43 @@ besides executing the make build command, updates the JSON compilation
database file corresponding to that build, resulting in a command-line
interface similar to Bear.")
(license license:gpl3)))
+
+(define-public build
+ (package
+ (name "build")
+ (version "0.3.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.codesynthesis.com/download/"
+ "build/" (version-major+minor version)
+ "/build-" version ".tar.bz2"))
+ (sha256
+ (base32 "1lx5rpnmsbip43zpp0a57sl5rm7pjb0y6i2si6rfglfp4p9d3z76"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list (string-append "install_prefix=" %output))
+ #:tests? #f
+ #:phases (modify-phases %standard-phases
+ (delete 'build)
+ (delete 'configure))))
+ (home-page "https://www.codesynthesis.com/projects/build/")
+ (synopsis "Massively-parallel build system implemented on top of GNU make")
+ (description "Build is a massively-parallel software build system
+implemented on top of GNU Make, designed with the following tasks in mind:
+@itemize
+@item configuration
+@item building
+@item testing
+@item installation
+@end itemize
+Build has features such as:
+@itemize
+@item Position-independent makefiles.
+@item Non-recursive multi-makefile include-based structure.
+@item Leaf makefiles are full-fledged GNU makefiles, not just variable definitions.
+@item Complete dependency graph.
+@item Inter-project dependency tracking.
+@item Extensible language/compiler framework.
+@end itemize")
+ (license license:gpl2+)))
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 429ff94070..36a9366554 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -546,7 +546,7 @@ portability.")
(define-public aws-c-common
(package
(name "aws-c-common")
- (version "0.5.2")
+ (version "0.5.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -555,7 +555,7 @@ portability.")
(file-name (git-file-name name version))
(sha256
(base32
- "0rd2qzaa9mmn5f6f2bl1wgv54f17pqx3vwyy9f8ylh59qfnilpmg"))))
+ "03fcvh3l1l6fkzkcbaprk10qmy8l77zhmh60h1px2ik09sqd9p72"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 4e1e4f05b6..d473900ac5 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -156,7 +156,7 @@ the <tz.h> library for handling time zones and leap seconds.")
(native-inputs
`(("docbook-xml" ,docbook-xml-4.3)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("perl" ,perl)
("pkg-config" ,pkg-config)
("vala" ,vala)))
diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm
index c5b9790f27..112f613c88 100644
--- a/gnu/packages/ccache.scm
+++ b/gnu/packages/ccache.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,7 +23,7 @@
#:use-module (guix packages)
#:use-module ((guix licenses) #:select (gpl3+))
#:use-module (guix download)
- #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (gnu packages compression))
@@ -30,25 +31,32 @@
(define-public ccache
(package
(name "ccache")
- (version "3.7.12")
+ (version "4.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/ccache/ccache/releases/download/v"
version "/ccache-" version ".tar.xz"))
(sha256
- (base32 "005liq8csgxdn7m9hj2ah07hishww855p8sc96y1hrnwc21lwbx0"))))
- (build-system gnu-build-system)
+ (base32 "0kx9ggbbm899zwyyxvm4dgzn1b95zi1niz0l734pi5y3i0cb251g"))))
+ (build-system cmake-build-system)
(native-inputs `(("perl" ,perl) ; for test/run
("which" ,(@ (gnu packages base) which))))
- (inputs `(("zlib" ,zlib)))
+ (inputs `(("zlib" ,zlib)
+ ("zstd" ,zstd "lib")))
(arguments
- '(#:phases (modify-phases %standard-phases
- (add-before 'check 'setup-tests
- (lambda _
- (substitute* '("unittest/test_hashutil.c" "test/suites/base.bash")
- (("#!/bin/sh") (string-append "#!" (which "sh"))))
- #t)))))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'setup-tests
+ (lambda _
+ (substitute* '("unittest/test_hashutil.cpp" "test/suites/base.bash")
+ (("#!/bin/sh") (string-append "#!" (which "sh"))))
+ #t))
+ ;; tests require a writable HOME
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" (getenv "TMPDIR"))
+ #t)))))
(home-page "https://ccache.dev/")
(synopsis "Compiler cache")
(description
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 21514d1bc4..7c95ea6950 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -561,7 +561,7 @@ and it supports a very flexible form of test discovery.")
(define-public doctest
(package
(name "doctest")
- (version "2.4.5")
+ (version "2.4.6")
(home-page "https://github.com/onqtam/doctest")
(source (origin
(method git-fetch)
@@ -569,7 +569,7 @@ and it supports a very flexible form of test discovery.")
(file-name (git-file-name name version))
(sha256
(base32
- "1pc34dvpgdzx3paqdf0khgs87kvjncx27yn434f5ic33r1lwr9r4"))))
+ "14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx"))))
(build-system cmake-build-system)
(synopsis "C++ test framework")
(description
@@ -2732,7 +2732,7 @@ provides a simple way to achieve this.")
(native-inputs
`(("vala" ,vala)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
;; For tests.
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index eac556c4d0..1cd2cde71b 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,6 +30,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
+ #:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (gnu packages compression)
#:use-module (gnu packages ncurses)
@@ -43,23 +45,27 @@
#:use-module (srfi srfi-1))
(define nanopass
- (let ((version "1.9.1"))
+ (let ((version "1.9.2"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nanopass/nanopass-framework-scheme")
(commit (string-append "v" version))))
- (sha256 (base32 "1synadgaycca39jfx525975ss9y0lkl516sdrc62wrrllamm8n21"))
+ (sha256 (base32 "16vjsik9rrzbabbhbxbaha51ppi3f9n8rk59pc6zdyffs0vziy4i"))
(file-name (git-file-name "nanopass" version)))))
(define stex
- (let ((version "1.2.2"))
+ ;; This commit includes a fix, which we would otherwise want to use as
+ ;; patch. Let's revert to tagged releases as soon as one becomes available.
+ (let* ((commit "54051494434a197772bf6ca5b4e6cf6be55f39a5")
+ (version "1.2.2")
+ (version (git-version version "1" commit)))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dybvig/stex")
- (commit (string-append "v" version))))
- (sha256 (base32 "1q5i8pf4cdfjsj6r2k1rih7ljbfggyxdng2p2fvsgarzihpsin2i"))
+ (commit commit)))
+ (sha256 (base32 "01jnvw8qw33gnpzwrakwhsr05h6b609lm180jnspcrb7lds2p23d"))
(file-name (git-file-name "stex" version)))))
(define-public chez-scheme
@@ -74,21 +80,41 @@
(commit (string-append "v" version))))
(sha256
(base32 "0prgn2z9l888j93ydxaf04ph424g0fi3a8w7f8m0b2r7fr1v7388"))
- (file-name (git-file-name name version))))
+ (file-name (git-file-name name version))
+ (patches
+ (search-patches
+ ;; backported from upstream: remove on next release
+ "chez-scheme-build-util-paths-backport.patch"))
+ (snippet
+ ;; remove bundled libraries
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (for-each (lambda (dir)
+ (when (directory-exists? dir)
+ (delete-file-recursively dir)))
+ '("stex"
+ "nanopass"
+ "lz4"
+ "zlib")))))))
(build-system gnu-build-system)
(inputs
- `(("ncurses" ,ncurses)
- ("libuuid" ,util-linux "lib")
- ("libx11" ,libx11)
- ("lz4" ,lz4)
- ("lz4:static" ,lz4 "static")
- ("xorg-rgb" ,xorg-rgb)
- ("nanopass" ,nanopass)
+ `(("libuuid" ,util-linux "lib")
("zlib" ,zlib)
("zlib:static" ,zlib "static")
- ("stex" ,stex)))
+ ("lz4" ,lz4)
+ ("lz4:static" ,lz4 "static")
+ ;; for expeditor:
+ ("ncurses" ,ncurses)
+ ;; for X11 clipboard support in expeditor:
+ ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232
+ ("libx11" ,libx11)))
(native-inputs
- `(("texlive" ,(texlive-union (list texlive-latex-oberdiek
+ `(("nanopass" ,nanopass) ; source only
+ ;; for docs
+ ("stex" ,stex)
+ ("xorg-rgb" ,xorg-rgb)
+ ("texlive" ,(texlive-union (list texlive-latex-oberdiek
texlive-generic-epsf)))
("ghostscript" ,ghostscript)
("netpbm" ,netpbm)))
@@ -98,96 +124,54 @@
(files (list (string-append "lib/csv" version "-site"))))))
(outputs '("out" "doc"))
(arguments
- `(#:modules ((guix build gnu-build-system)
- (guix build utils)
- (ice-9 match))
+ `(#:modules
+ ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 ftw)
+ (ice-9 match))
#:test-target "test"
#:configure-flags
- (list ,(match (or (%current-target-system) (%current-system))
- ("x86_64-linux" '(list "--machine=ta6le"))
- ("i686-linux" '(list "--machine=ti3le"))
- ;; Let autodetection have its attempt on other architectures.
- (_
- '())))
+ '("--threads") ;; TODO when we fix armhf, it doesn't support --threads
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch-processor-detection
- (lambda _ (substitute* "configure"
- (("uname -a") "uname -m"))
- #t))
- ;; Adapt the custom 'configure' script.
+ ;; put these where configure expects them to be
+ (add-after 'unpack 'unpack-nanopass+stex
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (for-each (lambda (dep)
+ (define src
+ (assoc-ref (or native-inputs inputs) dep))
+ (copy-recursively src dep
+ #:keep-mtime? #t))
+ '("nanopass" "stex"))
+ #t))
+ ;; NOTE: the custom Chez 'configure' script doesn't allow
+ ;; unrecognized flags, such as those automatically added
+ ;; by `gnu-build-system`.
(replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (nanopass (assoc-ref inputs "nanopass"))
- (stex (assoc-ref inputs "stex"))
- (lz4-static (assoc-ref inputs "lz4:static"))
- (zlib-static (assoc-ref inputs "zlib:static"))
- (unpack (assoc-ref %standard-phases 'unpack))
- (patch-source-shebangs
- (assoc-ref %standard-phases 'patch-source-shebangs)))
- (map (match-lambda
- ((src orig-name new-name)
- (with-directory-excursion "."
- (apply unpack (list #:source src))
- (apply patch-source-shebangs (list #:source src)))
- (delete-file-recursively new-name)
- (invoke "mv" orig-name new-name)))
- `((,nanopass "source" "nanopass")
- (,stex "source" "stex")))
- ;; The configure step wants to CURL all submodules as it
- ;; detects a checkout without submodules. Disable curling,
- ;; and manually patch the needed modules for compilation.
- (substitute* "configure"
- (("! -f '") "-d '")) ; working around CURL.
- (substitute* (find-files "mats" "Mf-.*")
- (("^[[:space:]]+(cc ) *") "\tgcc "))
- (substitute*
- (find-files "." (string-append
- "("
- "Mf-[a-zA-Z0-9.]+"
- "|Makefile[a-zA-Z0-9.]*"
- "|checkin"
- "|stex\\.stex"
- "|newrelease"
- "|workarea"
- "|unix\\.ms"
- "|^6\\.ms"
- ;;"|[a-zA-Z0-9.]+\\.ms" ; guile can't read
- ")"))
- (("/bin/rm") (which "rm"))
- (("/bin/ln") (which "ln"))
- (("/bin/cp") (which "cp"))
- (("/bin/echo") (which "echo")))
- (substitute* "makefiles/installsh"
- (("/bin/true") (which "true")))
- (substitute* "stex/Makefile"
- (("PREFIX=/usr") (string-append "PREFIX=" out)))
- (invoke "./configure" "--threads"
- (string-append "ZLIB=" zlib-static "/lib/libz.a")
- (string-append "LZ4=" lz4-static "/lib/liblz4.a")
- (string-append "--installprefix=" out)))))
- ;; Installation of the documentation requires a running "chez".
- (add-after 'install 'install-doc
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((doc (string-append (assoc-ref outputs "doc")
- "/share/doc/" ,name "-" ,version)))
- (invoke "make" "docs")
- (with-directory-excursion "csug"
- (substitute* "Makefile"
- ;; The ‘installdir=’ can't be overruled on the command line.
- (("/tmp/csug9") doc)
- ;; $m is the ‘machine type’, e.g. ‘ta6le’ on x86_64, but is
- ;; set incorrectly for some reason, e.g. to ‘a6le’ on x86_64.
- ;; Avoid the whole mess by running the (machine-independent)
- ;; ‘installsh’ script at its original location.
- (("\\$m/installsh") "makefiles/installsh"))
- (invoke "make" "install")
- (install-file "csug.pdf" doc))
- (with-directory-excursion "release_notes"
- (install-file "release_notes.pdf" doc))
+ (lambda* (#:key inputs outputs
+ (configure-flags '())
+ #:allow-other-keys)
+ (let* ((zlib-static (assoc-ref inputs "zlib:static"))
+ (lz4-static (assoc-ref inputs "lz4:static"))
+ (out (assoc-ref outputs "out"))
+ ;; add flags which are always required:
+ (flags (cons*
+ (string-append "--installprefix=" out)
+ (string-append "ZLIB=" zlib-static "/lib/libz.a")
+ (string-append "LZ4=" lz4-static "/lib/liblz4.a")
+ ;; Guix will do compress man pages,
+ ;; and letting Chez try causes an error
+ "--nogzip-man-pages"
+ configure-flags)))
+ (format #t "configure flags: ~s~%" flags)
+ ;; Some makefiles (for tests) don't seem to propagate CC
+ ;; properly, so we take it out of their hands:
+ (setenv "CC" ,(cc-for-target))
+ (apply invoke
+ "./configure"
+ flags)
#t)))
- ;; The binary file name is called "scheme" as the one from MIT/GNU
+ ;; The binary file name is called "scheme" as is the one from MIT/GNU
;; Scheme. We add a symlink to use in case both are installed.
(add-after 'install 'install-symlink
(lambda* (#:key outputs #:allow-other-keys)
@@ -202,16 +186,75 @@
"/" name ".boot")))
(find-files lib "scheme.boot"))
#t)))
- (add-before 'reset-gzip-timestamps 'make-manpages-writable
- (lambda* (#:key outputs #:allow-other-keys)
- (map (lambda (file)
- (make-file-writable file))
- (find-files (string-append (assoc-ref outputs "out")
- "/share/man")
- ".*\\.gz$"))
- #t)))))
- ;; According to the documentation MIPS is not supported.
- ;; Cross-compiling for the Raspberry Pi is supported, but not native ARM.
+ ;; Building explicitly lets us avoid using substitute*
+ ;; to re-write makefiles.
+ (add-after 'install-symlink 'prepare-stex
+ (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
+ (let* ((stex+version
+ (strip-store-file-name
+ (assoc-ref (or native-inputs inputs) "stex")))
+ ;; Eventually we want to install stex as a real
+ ;; package so it's reusable. For now:
+ (stex-output "/tmp")
+ (doc-dir (string-append stex-output
+ "/share/doc/"
+ stex+version)))
+ (with-directory-excursion "stex"
+ (invoke "make"
+ "install"
+ (string-append "LIB="
+ stex-output
+ "/lib/"
+ stex+version)
+ (string-append "Scheme="
+ (assoc-ref outputs "out")
+ "/bin/scheme"))
+ (for-each (lambda (pth)
+ (install-file pth doc-dir))
+ '("ReadMe" ; includes the license
+ "doc/stex.html"
+ "doc/stex.css"
+ "doc/stex.pdf"))
+ #t))))
+ ;; Building the documentation requires stex and a running scheme.
+ ;; FIXME: this is probably wrong for cross-compilation
+ (add-after 'prepare-stex 'install-doc
+ (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
+ (let* ((chez+version (strip-store-file-name
+ (assoc-ref outputs "out")))
+ (stex+version
+ (strip-store-file-name
+ (assoc-ref (or native-inputs inputs) "stex")))
+ (scheme (string-append (assoc-ref outputs "out")
+ "/bin/scheme"))
+ ;; see note on stex-output in phase build-stex, above:
+ (stexlib (string-append "/tmp"
+ "/lib/"
+ stex+version))
+ (doc-dir (string-append (assoc-ref outputs "doc")
+ "/share/doc/"
+ chez+version)))
+ (define* (stex-make #:optional (suffix ""))
+ (invoke "make"
+ "install"
+ (string-append "Scheme=" scheme)
+ (string-append "STEXLIB=" stexlib)
+ (string-append "installdir=" doc-dir suffix)))
+ (with-directory-excursion "csug"
+ (stex-make "/csug"))
+ (with-directory-excursion "release_notes"
+ (stex-make "/release_notes"))
+ (with-directory-excursion doc-dir
+ (symlink "release_notes/release_notes.pdf"
+ "release_notes.pdf")
+ (symlink "csug/csug9_5.pdf"
+ "csug.pdf"))
+ #t))))))
+ ;; Chez Scheme does not have a MIPS backend.
+ ;; FIXME: Debian backports patches to get armhf working.
+ ;; We should too. It is the Chez machine type arm32le
+ ;; (no threaded version upstream yet, though there is in
+ ;; Racket's fork), more specifically (per the release notes) ARMv6.
(supported-systems (fold delete %supported-systems
'("mips64el-linux" "armhf-linux")))
(home-page "https://cisco.github.io/ChezScheme/")
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index de7c887061..835e9e2050 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -21,8 +21,6 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix gexp)
- #:use-module (guix store)
- #:use-module (guix monads)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
@@ -305,7 +303,7 @@
(string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash))))
-(define %ungoogled-revision "89.0.4389.90-1")
+(define %ungoogled-revision "89.0.4389.114-1")
(define %debian-revision "debian/84.0.4147.105-1")
(define %debian-patches
@@ -325,7 +323,7 @@
%ungoogled-revision)))
(sha256
(base32
- "0pr756d1b4wc67d61b21yszi7mx1hsjy14i44j0kvcwm05pgnf79"))))
+ "0cr2i51gxhgl55c8f9w0ra3m5q2dk03sf7p2qn4bqq1l1l72hw6s"))))
(define %guix-patches
(list (local-file
@@ -466,7 +464,7 @@
".tar.xz"))
(sha256
(base32
- "16i7bgk2jbcqs2p28nk5mlf0k6wah594pcsfm8b154nxbyf0iihi"))
+ "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 8b1bb2986f..030fc73ef9 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -25,52 +25,41 @@
#:use-module ((guix licenses) #:prefix l:)
#:use-module (gnu packages)
#:use-module (guix packages)
+ #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages check)
#:use-module (gnu packages docbook)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages mail)
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
-(define-public guile-mastodon-dev
- (let ((commit "88115d85221876b1baea4accb7c76995da32f479")
- (revision "1"))
- (package
- (inherit guile-mastodon)
- (name "guile-mastodon")
- (version (git-version "0.0.1" revision commit))
- (home-page "https://framagit.org/mothacehe/guile-mastodon.git")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit commit)))
- (sha256
- (base32
- "04dgxliz9bmhn0f7h1n0dj0r5h0fzhg80nxl1rpbxh4zs1yw9qvj"))
- (file-name (string-append name "-" version "-checkout")))))))
-
(define-public cuirass
- (let ((commit "88f3cf65e0b5974c6525d498ebffc607bc62baf0")
- (revision "77"))
+ (let ((commit "d601fe0e4c85ab7b37f0571e898448c9fadde715")
+ (revision "9"))
(package
(name "cuirass")
- (version (git-version "0.0.1" revision commit))
+ (version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
@@ -80,22 +69,41 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1mwi6i400kjdkfccvbc49fka18dhkcl0rbiqylgpb7lh0pzss9j7"))))
+ "09d05bqy7wqz9175b4nv3sqasibx4175kmiz75id05ipr0vn0j12"))))
(build-system gnu-build-system)
(arguments
- '(#:modules ((guix build utils)
+ `(#:modules ((guix build utils)
(guix build gnu-build-system)
(ice-9 rdelim)
(ice-9 popen))
#:configure-flags '("--localstatedir=/var") ;for /var/log/cuirass
+ ;; XXX: HTTP tests fail on aarch64 due to Fibers errors, disable them
+ ;; on that architecture for now.
+ #:tests? ,(let ((s (or (%current-target-system)
+ (%current-system))))
+ (not (string-prefix? "aarch64" s)))
+ #:parallel-tests? #f
#:phases
(modify-phases %standard-phases
+ (add-before 'bootstrap 'fix-version-gen
+ (lambda _
+ (patch-shebang "build-aux/git-version-gen")
+
+ (call-with-output-file ".tarball-version"
+ (lambda (port)
+ (display ,version port)))))
(add-before 'check 'set-PATH-for-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((pg (assoc-ref inputs "ephemeralpg"))
(path (getenv "PATH")))
(setenv "PATH" (string-append pg "/bin:" path))
#t)))
+ ;; Disable the remote tests that require a Guix daemon connection.
+ (add-before 'check 'disable-remote-tests
+ (lambda _
+ (substitute* "Makefile.am"
+ (("tests/remote.scm") ""))
+ #t))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'cuirass' command to refer to the right modules.
@@ -135,15 +143,11 @@
"/site-ccache:")
'suffix)
1)))
- ;; Make sure 'cuirass' can find the 'evaluate' command, as
- ;; well as the relevant Guile modules.
- (for-each
- (lambda (name)
- (wrap-program (string-append out "/bin/" name)
- `("PATH" ":" prefix (,(string-append out "/bin")))
- `("GUILE_LOAD_PATH" ":" prefix (,mods))
- `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs))))
- '("cuirass" "remote-server" "remote-worker"))
+ ;; Make sure 'cuirass' can find the relevant Guile modules.
+ (wrap-program (string-append out "/bin/cuirass")
+ `("PATH" ":" prefix (,(string-append out "/bin")))
+ `("GUILE_LOAD_PATH" ":" prefix (,mods))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
#t))))))
(inputs
`(("guile" ,guile-3.0/libgc-7)
@@ -155,7 +159,7 @@
("guile-squee" ,guile-squee)
("guile-git" ,guile-git)
("guile-zlib" ,guile-zlib)
- ("guile-mastodon" ,guile-mastodon-dev)
+ ("guile-mastodon" ,guile-mastodon)
("gnutls" ,gnutls)
("mailutils" ,mailutils)
;; FIXME: this is propagated by "guile-git", but it needs to be among
@@ -183,5 +187,120 @@
(description
"Cuirass is a continuous integration tool using GNU Guix. It is
intended as a replacement for Hydra.")
- (home-page "https://www.gnu.org/software/guix/")
+ (home-page "https://guix.gnu.org/cuirass/")
(license l:gpl3+))))
+
+(define-public laminar
+ (package
+ (name "laminar")
+ (version "1.0")
+ (source
+ (origin (method url-fetch)
+ (uri (string-append "https://github.com/ohwgiles/laminar/archive/"
+ version
+ ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11m6h3rdmj2rsmsryy7r40gqccj4gg1cnqwy6blscs87gx4s423g"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; TODO Can't build tests
+ #:configure-flags
+ (list "-DCMAKE_CXX_STANDARD=17"
+ ;; "-DBUILD_TESTS=true" TODO: objcopy: js/stPskyUS: can't add
+ ;; section '.note.GNU-stack': file format not recognized
+ (string-append "-DLAMINAR_VERSION=" ,version))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-CMakeLists.txt
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("file\\(DOWNLOAD.*\n$")
+ "# file download removed by Guix --")
+ (("install\\(FILES etc/laminar.service DESTINATION \\$\\{SYSTEMD\\_UNITDIR\\}\\)")
+ "")
+ (("install\\(FILES \\$\\{CMAKE\\_CURRENT\\_BINARY\\_DIR\\}\\/laminar\\.service DESTINATION \\$\\{SYSTEMD\\_UNITDIR\\}\\)")
+ "")
+ (("install\\(FILES etc/laminar\\.conf DESTINATION \\/etc\\)") "")
+ (("\\/usr\\/") ""))
+ #t))
+ (add-after 'configure 'copy-in-javascript-and-css
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (use-modules (ice-9 popen))
+
+ (mkdir-p "../build/js")
+ (for-each (lambda (name)
+ (let* ((file
+ (assoc-ref inputs (string-append name ".js")))
+ (port
+ (open-pipe* OPEN_READ "uglify-js" file))
+ (destination
+ (string-append
+ "../build/js/" name ".min.js")))
+
+ (call-with-output-file destination
+ (lambda (output-port)
+ (dump-port port output-port)))
+
+ (let ((exit (close-pipe port)))
+ (unless (zero? exit)
+ (error "uglify-js failed" exit)))))
+
+ '("vue"
+ "vue-router"
+ "Chart"))
+
+ ;; ansi_up.js isn't minified
+ (copy-file (assoc-ref inputs "ansi_up.js")
+ "../build/js/ansi_up.js")
+
+ #t)))))
+ (inputs
+ `(("capnproto" ,capnproto)
+ ("rapidjson" ,rapidjson)
+ ("sqlite" ,sqlite)
+ ("boost" ,boost)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("googletest" ,googletest)
+ ("uglify-js" ,uglify-js)
+
+ ("vue.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://raw.githubusercontent.com/"
+ "vuejs/vue/v2.6.12/dist/vue.js"))
+ (sha256
+ (base32
+ "1mq2dn6yqbmzar77xf4x2bvvanf9xc9nwfq06sksl5zmr300m7qm"))))
+ ("vue-router.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://raw.githubusercontent.com/"
+ "vuejs/vue-router/v3.4.8/dist/vue-router.js"))
+ (sha256
+ (base32
+ "1hkrbgzhpnrsb4zdafslqagy1vkac6bkdj7kh49js2lhkp9z4nj5"))))
+ ("ansi_up.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://raw.githubusercontent.com/"
+ "drudru/ansi_up/v1.3.0/ansi_up.js"))
+ (sha256
+ (base32
+ "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r"))))
+ ("Chart.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://github.com/chartjs/Chart.js/"
+ "releases/download/v2.7.2/Chart.js"))
+ (sha256
+ (base32
+ "05m3gk6hqjx92j20drnk7q075qpjraywqaf25lnglmsgsgpiqsr7"))))))
+ (synopsis "Lightweight continuous integration service")
+ (description
+ "Laminar is a lightweight and modular continuous integration service. It
+doesn't have a configuration web UI instead uses version-controllable
+configuration files and scripts.
+
+Laminar encourages the use of existing tools such as bash and cron instead of
+reinventing them.")
+ (home-page "https://laminar.ohwg.net/")
+ (license l:gpl3+)))
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 4e30dacdf4..a79d8b4a2b 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2015, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -180,7 +180,7 @@ around in a large, deeply nested project.")
(version "2.26")
(source (origin
(method url-fetch)
- (uri (string-append "http://www.dwheeler.com/sloccount/sloccount-"
+ (uri (string-append "https://dwheeler.com/sloccount/sloccount-"
version ".tar.gz"))
(sha256
(base32
@@ -221,7 +221,7 @@ around in a large, deeply nested project.")
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")))))
(inputs `(("perl" ,perl)))
- (home-page "http://www.dwheeler.com/sloccount/")
+ (home-page "https://dwheeler.com/sloccount/")
(synopsis "Count physical source lines of code (SLOC)")
(description
"SLOCCount is a set of the programs for counting source lines of
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 432910d7a3..d4511ed914 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
+;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2818,7 +2819,8 @@ exec " gcc "/bin/" program
"--disable-shared"
"--enable-languages=c,c++"
- ,@(if (equal? "powerpc64le-linux-gnu" (boot-triplet))
+ ;; boot-triplet inserts "guix" in the triplet.
+ ,@(if (equal? "powerpc64le-guix-linux-gnu" (boot-triplet))
;; On POWER9 (little endian) glibc needs the
;; 128-bit long double type.
'("--with-long-double-128")
@@ -3313,7 +3315,11 @@ memoized as a function of '%current-system'."
`(("bison" ,bison-boot0)
("texinfo" ,texinfo-boot0)
("perl" ,perl-boot0)
- ("python" ,python-boot0)))
+ ("python" ,python-boot0)
+ ,@(if (target-powerpc?)
+ `(("powerpc64le-patch" ,@(search-patches
+ "glibc-ldd-powerpc.patch")))
+ '())))
(inputs
`( ;; The boot inputs. That includes the bootstrap libc. We don't want
;; it in $CPATH, hence the 'pre-configure' phase above.
@@ -3464,6 +3470,10 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
;; This time we need 'msgfmt' to install all the libc.mo files.
(native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
+ ,@(if (target-powerpc?)
+ `(("powerpc64le-patch" ,@(search-patches
+ "glibc-ldd-powerpc.patch")))
+ '())
("gettext" ,gettext-boot0)))
(propagated-inputs
@@ -3504,9 +3514,19 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(arguments
`(#:guile ,%bootstrap-guile
#:implicit-inputs? #f
- #:allowed-references ("out" ,glibc-final)
+ #:allowed-references
+ ,@(match (%current-system)
+ ((? target-powerpc?)
+ `(("out" ,glibc-final ,static-bash-for-glibc)))
+ (_
+ `(("out" ,glibc-final))))
,@(package-arguments binutils)))
- (inputs (%boot2-inputs))))
+ (inputs
+ (match (%current-system)
+ ((? target-powerpc?)
+ `(("bash" ,static-bash-for-glibc)
+ ,@(%boot2-inputs)))
+ (_ (%boot2-inputs))))))
(define libstdc++
;; Intermediate libstdc++ that will allow us to build the final GCC
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 2d065046ee..37a7d230fe 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -1409,7 +1409,7 @@ or junctions, and always follows hard links.")
"v" version "/zstd-" version ".tar.gz"))
(sha256
(base32 "05ckxap00qvc0j51d3ci38150cxsw82w7s9zgd5fgzspnzmp1vsr"))))
- (replacement zstd-1.4.9)
+ (replacement zstd/fixed)
(build-system gnu-build-system)
(outputs '("out" ;1.2MiB executables and documentation
"lib" ;1.2MiB shared library and headers
@@ -1469,21 +1469,16 @@ speed.")
license:public-domain ; zlibWrapper/examples/fitblk*
license:zlib)))) ; zlibWrapper/{gz*.c,gzguts.h}
-(define-public zstd-1.4.9
+(define zstd/fixed
(package
(inherit zstd)
- (name "zstd")
- (version "1.4.9")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/facebook/zstd/releases/download/"
- "v" version "/zstd-" version ".tar.gz"))
- (sha256
- (base32 "14yj7309gsvg39rki4xqnd6w5idmqi0655v1fc0mk1m2kvhp9b19"))))
- (arguments
- (substitute-keyword-arguments (package-arguments zstd)
- ((#:tests? _ #t) #f)))))
+ (inherit (package-source zstd))
+ (patches
+ (search-patches
+ ;; From Ubuntu focal-security
+ "zstd-CVE-2021-24031_CVE-2021-24032.patch"))))))
(define-public pzstd
(package/inherit zstd
@@ -1791,7 +1786,20 @@ timestamps in the file header with a fixed time (1 January 2008).
(sha256
(base32
"0i6bpa2b13z19alm6ig80364dnin1w28cvif18k6wkkb0w3dzp8y"))))
- (arguments `())
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-compatibility-symlinks
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion
+ (string-append (assoc-ref outputs "out") "/lib")
+ (map (lambda (lib new-symlink)
+ (symlink lib new-symlink))
+ (list "libzzip.so.13" "libzzipfseeko.so.13"
+ "libzzipmmapped.so.13" "libzzipwrap.so.13")
+ (list "libzzip-0.so.13" "libzzipfseeko-0.so.13"
+ "libzzipmmapped-0.so.13" "libzzipwrap-0.so.13")))
+ #t)))))
(native-inputs
`(("python" ,python)
,@(alist-delete "python"
@@ -2100,7 +2108,8 @@ decompression is a little bit slower.")
version "/upx-" version "-src.tar.xz"))
(sha256
(base32
- "051pk5jk8fcfg5mpgzj43z5p4cn7jy5jbyshyn78dwjqr7slsxs7"))))
+ "051pk5jk8fcfg5mpgzj43z5p4cn7jy5jbyshyn78dwjqr7slsxs7"))
+ (patches (search-patches "upx-CVE-2021-20285.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 2233d2e993..58345e7c33 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -17,6 +17,8 @@
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,6 +39,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
@@ -45,6 +48,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
@@ -59,12 +63,14 @@
#:use-module (gnu packages llvm)
#:use-module (gnu packages logging)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages tls)
- #:use-module (gnu packages web))
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xml))
(define-public range-v3
(package
@@ -267,7 +273,7 @@ combination of these streams.")
(define-public xsimd
(package
(name "xsimd")
- (version "7.4.9")
+ (version "7.4.10")
(source
(origin
(method git-fetch)
@@ -275,7 +281,7 @@ combination of these streams.")
(url "https://github.com/QuantStack/xsimd")
(commit version)))
(sha256
- (base32 "11by8gbshm4vv6flqp0ihff8c6nmbaqq7ms93b38rrq68bigcply"))
+ (base32 "097yvxrxdldi5s5m4nsxv8f4gwv9xj42mqig98a1z3hkjj1j2gn5"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -482,7 +488,7 @@ tools (containers, algorithms) used by other QuantStack packages.")
(define-public ccls
(package
(name "ccls")
- (version "0.20201025")
+ (version "0.20201219")
(source
(origin
(method git-fetch)
@@ -490,8 +496,7 @@ tools (containers, algorithms) used by other QuantStack packages.")
(url "https://github.com/MaskRay/ccls")
(commit version)))
(sha256
- (base32
- "13v00q1bz8g0ckw1sv0zyicbc44irc00vhwxdv3vvwlvylm7s21p"))
+ (base32 "0nkg92rgb1x6scpiwdamfrd1ag87j7ajxyn5qi861r916m5mh9m8"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -1015,3 +1020,194 @@ Linear Congruential Generator (LCG) with a permutation function to increase
output randomness while retaining speed, simplicity, and conciseness.")
(home-page "https://www.pcg-random.org")
(license (list license:expat license:asl2.0))))) ; dual licensed
+
+(define-public libcutl
+ (package
+ (name "libcutl")
+ (version "1.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.codesynthesis.com/download/libcutl/"
+ (version-major+minor version)
+ "/libcutl-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "070j2x02m4gm1fn7gnymrkbdxflgzxwl7m96aryv8wp3f3366l8j"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled sources.
+ (with-directory-excursion "cutl/details"
+ (for-each delete-file-recursively
+ ;; FIXME: Boost_RegEx isn't being detected.
+ (list
+ ;;"boost"
+ "expat")))))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list "--disable-static"
+ ;;"--with-external-boost"
+ "--with-external-expat")))
+ (inputs
+ `(;;("boost ,boost)
+ ("expat" ,expat)))
+ (home-page "https://www.codesynthesis.com/projects/libcutl/")
+ (synopsis "C++ utility library with generic and independent components")
+ (description "libcutl is a C++ utility library. It contains a collection
+of generic and independent components such as meta-programming tests, smart
+pointers, containers, compiler building blocks, etc.")
+ (license (list license:expat ;everything except...
+ license:boost1.0)))) ;...the files under cutl/details/boost
+
+(define-public libxsd-frontend
+ (package
+ (name "libxsd-frontend")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.codesynthesis.com/download/"
+ "libxsd-frontend/" (version-major+minor version)
+ "/libxsd-frontend-" version ".tar.bz2"))
+ (sha256
+ (base32 "1nmzchsvwvn66jpmcx18anzyl1a3l309x1ld4zllrg37ijc31fim"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:imported-modules ((guix build copy-build-system)
+ ,@%gnu-build-system-modules)
+ #:modules (((guix build copy-build-system) #:prefix copy:)
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:make-flags (list (string-append "--include-dir="
+ (assoc-ref %build-inputs "build")
+ "/include/"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda args
+ (apply (assoc-ref copy:%standard-phases 'install)
+ #:install-plan
+ '(("xsd-frontend" "include/xsd-frontend"
+ #:include-regexp ("\\.?xx$"))
+ ("xsd-frontend" "lib"
+ #:include-regexp ("\\.so$")))
+ args))))))
+ (native-inputs
+ `(("build" ,build)))
+ (inputs
+ `(("libcutl" ,libcutl)
+ ("libxerces-c" ,xerces-c)))
+ (synopsis "XSD Front-end")
+ (description "@code{libxsd-frontend} is a compiler frontend for the W3C
+XML Schema definition language. It includes a parser, semantic graph types
+and a traversal mechanism.")
+ (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
+ (license license:gpl2+)))
+
+(define-public cli
+ (package
+ (name "cli")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.codesynthesis.com/download/"
+ "cli/" (version-major+minor version)
+ "/cli-" version ".tar.bz2"))
+ (sha256
+ (base32 "0bg0nsai2q4h3mldpnj0jz4iy4svs0bcfvmq0v0c9cdyknny606g"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:make-flags (list (string-append "--include-dir="
+ (assoc-ref %build-inputs "build")
+ "/include")
+ (string-append "install_prefix="
+ (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* (find-files "." "\\.make$")
+ (("build-0\\.3")
+ (string-append (assoc-ref %build-inputs "build")
+ "/include/build-0.3")))
+ ;; Add the namespace prefix, to avoid errors such as "error:
+ ;; ‘iterate_and_dispatch’ was not declared in this scope".
+ (substitute* (find-files "." "\\.?xx$")
+ (("add \\(typeid \\(type\\), \\*this\\);" all)
+ (string-append "traverser_map<B>::" all))
+ (("iterate_and_dispatch \\(s\\.names_begin.*;" all)
+ (string-append "edge_dispatcher::" all)))))
+ (delete 'configure))))
+ (native-inputs
+ `(("build" ,build)))
+ (inputs
+ `(("libcutl" ,libcutl)))
+ (synopsis "C++ Command Line Interface (CLI) definition language")
+ (description "@code{cli} is a domain-specific language (DSL) for defining
+command line interfaces of C++ programs. It allows you to describe the
+options that your program supports, their types, default values, and
+documentation.")
+ (home-page "https://codesynthesis.com/projects/cli/")
+ (license license:expat)))
+
+(define-public xsd
+ (package
+ (name "xsd")
+ (version "4.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.codesynthesis.com/download/"
+ "xsd/" (version-major+minor version)
+ "/xsd-" version ".tar.bz2"))
+ (sha256
+ (base32 "1hi9ppxd34np8ydv1h0vgc2qpdmgcd1cdzgk30aidv670xjg91fx"))))
+ (build-system gnu-build-system)
+ (outputs '("out" "doc")) ;3.8 MiB of doc and examples
+ (arguments
+ `(#:test-target "test"
+ #:make-flags (list (string-append "--include-dir="
+ (assoc-ref %build-inputs "build")
+ "/include/")
+ (string-append "install_prefix="
+ (assoc-ref %outputs "out")))
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share/doc"))
+ (rename-file (string-append out "/share/doc/xsd")
+ (string-append doc "/share/doc/xsd-"
+ ,version)))))
+ (delete 'configure))))
+ (native-inputs
+ `(("build" ,build)
+ ("cli" ,cli)))
+ (inputs
+ `(("libcutl" ,libcutl)
+ ("libnsl" ,libnsl)
+ ("libxsd-frontend" ,libxsd-frontend)))
+ (propagated-inputs
+ ;; The code XSD generates requires the following library at run time;
+ ;; propagate it for convenience.
+ `(("xerces-c" ,xerces-c)))
+ (synopsis "XML Data Binding for C++")
+ (description "CodeSynthesis XSD (also known as libxsd or xsdcxx) is an XML
+Schema to C++ data binding compiler. Provided with an XML instance
+specification (XML Schema), it generates C++ classes that represent the given
+vocabulary as well as XML parsing and serialization code. The data stored in
+XML can then be accessed using types and functions that semantically
+correspond to an application domain rather than dealing with the intricacies
+of reading and writing XML.")
+ (home-page "https://codesynthesis.com/projects/xsd/")
+ ;; Exceptions are made to allow using the generated source files as well
+ ;; as the libxsd library in free software projects whose license is
+ ;; incompatible with the GPL v2. Refer to the file named FLOSSE for the
+ ;; details.
+ (license license:gpl2+)))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 5617383cbc..0917c0bcaf 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -33,6 +33,7 @@
;;; Copyright © 2020 Magali Lemes <magalilemes00@gmail.com>
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2020 Aniket Patil <aniket112.patil@gmail.com>
+;;; Copyright © 2021 Tim Howes <timhowes@lavabit.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -155,14 +156,14 @@ automatically pruning objects to maintain the constraints.")
(define-public r-diffobj
(package
(name "r-diffobj")
- (version "0.3.3")
+ (version "0.3.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "diffobj" version))
(sha256
(base32
- "1x3d5sk8mk0s2d7dq8wxi1zv6krlx33n22ls2jwnb58b8xrmakj1"))))
+ "1z4yhfasjpi9rxl1lh9bny7yvs947a6hhc768azc1wwad748mk9q"))))
(properties `((upstream-name . "diffobj")))
(build-system r-build-system)
(propagated-inputs `(("r-crayon" ,r-crayon)))
@@ -392,13 +393,13 @@ variables.")
(define-public r-ggpmisc
(package
(name "r-ggpmisc")
- (version "0.3.8-1")
+ (version "0.3.9")
(source (origin
(method url-fetch)
(uri (cran-uri "ggpmisc" version))
(sha256
(base32
- "0kcrh73nwha52vl6z35wafmqs5lsdh2p4nqvi2ir70cv1k5y46zf"))))
+ "0nb0lpwqph9334s9sq77mk3nd22icy9d9hywz4awhf6nvp5rcc2v"))))
(build-system r-build-system)
(propagated-inputs
`(("r-dplyr" ,r-dplyr)
@@ -500,14 +501,14 @@ higher.")
(define-public r-oenb
(package
(name "r-oenb")
- (version "0.0.1")
+ (version "0.0.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "oenb" version))
(sha256
(base32
- "1x1jlqp6r27c4gb7wafzpmh5rq6yq61a2d395r5lsmv2g5jb4biz"))))
+ "1jgxw7ycx2lcdzglg9nix8k08fs4r6i5jdsjzrd6w1dg6smsinl5"))))
(properties `((upstream-name . "oenb")))
(build-system r-build-system)
(propagated-inputs
@@ -926,14 +927,14 @@ package is a port of the Python package @code{cssselect}.")
(define-public r-reprex
(package
(name "r-reprex")
- (version "1.0.0")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "reprex" version))
(sha256
(base32
- "07nzx0fdl48jw95ipx17ql0l13q60yl3rjrkj1m375wrc7h1v5nx"))))
+ "1lcnxczy28n4g3rvph09va7svcznfyqa7zdggklqb924qvy7flwh"))))
(build-system r-build-system)
(propagated-inputs
`(("r-callr" ,r-callr)
@@ -944,6 +945,7 @@ package is a port of the Python package @code{cssselect}.")
("r-knitr" ,r-knitr)
("r-rlang" ,r-rlang)
("r-rmarkdown" ,r-rmarkdown)
+ ("r-rstudioapi" ,r-rstudioapi)
("r-withr" ,r-withr)))
(native-inputs
`(("r-knitr" ,r-knitr)))
@@ -982,14 +984,14 @@ same time tries to group instances from the same class together.")
(define-public r-callr
(package
(name "r-callr")
- (version "3.5.1")
+ (version "3.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "callr" version))
(sha256
(base32
- "15l6ppsxdadlnl4fk0f8bvf327n8izk96px5d08m1ay9iij8qcyf"))))
+ "050s7l1ipi6snbj6xnk052l6acycnxjyzv84026adw5x8kki0yz6"))))
(build-system r-build-system)
(propagated-inputs
`(("r-r6" ,r-r6)
@@ -2838,31 +2840,6 @@ where the bound function accepts additional arguments.")
bindings that call a C++ function.")
(license license:expat)))
-(define-public r-bisquerna
- (package
- (name "r-bisquerna")
- (version "1.0.4")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "BisqueRNA" version))
- (sha256
- (base32
- "01g34n87ml7n3pck77497ddgbv3rr5p4153ac8ninpgjijlm3jw2"))))
- (properties `((upstream-name . "BisqueRNA")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biobase" ,r-biobase)
- ("r-limsolve" ,r-limsolve)))
- (home-page "https://www.biorxiv.org/content/10.1101/669911v1")
- (synopsis "Decomposition of bulk expression with single-cell sequencing")
- (description "This package provides tools to accurately estimate cell type
-abundances from heterogeneous bulk expression. A reference-based method
-utilizes single-cell information to generate a signature matrix and
-transformation of bulk expression for accurate regression based estimates.
-A marker-based method utilizes known cell-specific marker genes to measure
-relative abundances across samples.")
- (license license:gpl3)))
-
(define-public r-auc
(package
(name "r-auc")
@@ -3792,7 +3769,7 @@ statistics/methods are implemented.")
(uri (cran-uri "SuppDists" version))
(sha256
(base32
- "01j6p94m1g363nph2158fq2rmd6z3h5dvcv6aidh2d6syw131xak"))))
+ "1i3iq12a5x5k49ac01mikzcrrq9gc148xq3m08h4xm07bha6f2v8"))))
(properties `((upstream-name . "SuppDists")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/SuppDists")
@@ -4246,19 +4223,21 @@ problems as well as resampling based estimators of prediction error.")
(define-public r-psych
(package
(name "r-psych")
- (version "2.0.12")
+ (version "2.1.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "psych" version))
(sha256
(base32
- "0k5dw5nb7kx7f21b0z01dry99qcpnk7iaicv7xq9d35wv2hx8wca"))))
+ "1ibh1ivr280wpmk3qjgm715dk79wx0ikjl9jjjcqs03q6vz4wmdx"))))
(build-system r-build-system)
(propagated-inputs
`(("r-lattice" ,r-lattice)
("r-mnormt" ,r-mnormt)
("r-nlme" ,r-nlme)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "https://cran.r-project.org/web/packages/psych/")
(synopsis "Procedures for psychological, psychometric, and personality research")
(description
@@ -4299,14 +4278,14 @@ by base R methods related to model fitting.")
(define-public r-broom
(package
(name "r-broom")
- (version "0.7.5")
+ (version "0.7.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "broom" version))
(sha256
(base32
- "1qjyl5b100bsakm48w1vi3819lkpys7vb86n1sv9h4y2wr1c4jmw"))))
+ "1ljcl8mh0yqxw3qxzar482qwbxbcaim1x6y1wm82ws12pfdw0j8n"))))
(build-system r-build-system)
(propagated-inputs
`(("r-backports" ,r-backports)
@@ -4789,14 +4768,14 @@ structure.")
(define-public r-vioplot
(package
(name "r-vioplot")
- (version "0.3.5")
+ (version "0.3.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "vioplot" version))
(sha256
(base32
- "0aiy615kn9lpr2cs757g3pklg81n01yhqh0wrwv111fn3cy86r0v"))))
+ "15vmrm9gwdhfg8mnq8rsg7m59kzc9h53cv96am4ds1dkm56w4n6p"))))
(build-system r-build-system)
(propagated-inputs
`(("r-sm" ,r-sm)
@@ -5072,18 +5051,17 @@ plots in @code{ggplot2}.")
(define-public r-cli
(package
(name "r-cli")
- (version "2.3.1")
+ (version "2.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "cli" version))
(sha256
(base32
- "1jh64ixn6mg2ap1sx4azrxkjnlsyjbfxyc9zjkx8m9dlakgf4v2i"))))
+ "0l1s9yv23bc7mm0hfdlamgz4wjfrisv8aylr65ihjs98jsynrkg3"))))
(build-system r-build-system)
(propagated-inputs
- `(("r-assertthat" ,r-assertthat)
- ("r-glue" ,r-glue)))
+ `(("r-glue" ,r-glue)))
(home-page "https://github.com/r-lib/cli#readme")
(synopsis "Helpers for developing command line interfaces")
(description "This package provides a suite of tools designed to build
@@ -5135,13 +5113,13 @@ constants, and control debugging of packages via environment variables.")
(define-public r-processx
(package
(name "r-processx")
- (version "3.4.5")
+ (version "3.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "processx" version))
(sha256
- (base32 "055v2gdrgqsfy8s672wsq79bqr44b4jjmcbqivx4p2d6lqx10s73"))))
+ (base32 "1z7zag7g041xlhzhkdfl33y2phc877h1pwj9k69p69b967qi6p6k"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ps" ,r-ps)
@@ -5347,18 +5325,17 @@ to variables on the left-hand side of the assignment.")
(define-public r-vctrs
(package
(name "r-vctrs")
- (version "0.3.6")
+ (version "0.3.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "vctrs" version))
(sha256
(base32
- "09ddxgzyah7lw42hn6n8fynsixf43s10jamsf94d2aidky63czfz"))))
+ "03hyxk3x635xfdn2x707gygdb2xk0cayl1nl44zib9bwqyyb7nas"))))
(build-system r-build-system)
(propagated-inputs
- `(("r-digest" ,r-digest)
- ("r-ellipsis" ,r-ellipsis)
+ `(("r-ellipsis" ,r-ellipsis)
("r-glue" ,r-glue)
("r-rlang" ,r-rlang)))
(native-inputs
@@ -5436,14 +5413,14 @@ terminals.")
(define-public r-tinytex
(package
(name "r-tinytex")
- (version "0.30")
+ (version "0.31")
(source
(origin
(method url-fetch)
(uri (cran-uri "tinytex" version))
(sha256
(base32
- "0dk6mpszwh1m65b0wfwjlcvpzywmasf6p31niqiq53wnd92my0gw"))))
+ "04a3ncaxix30n9m73slpsn1idxv7j1f7fy3nhxpvkk514x9rgg0p"))))
(build-system r-build-system)
(propagated-inputs
`(("r-xfun" ,r-xfun)))
@@ -5751,14 +5728,14 @@ sapa R packages.")
(define-public r-sapa
(package
(name "r-sapa")
- (version "2.0-2")
+ (version "2.0-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "sapa" version))
(sha256
(base32
- "056xlh14dnzq4x7sbp7ff2k61jxy7110a742b502vz549qfrr5ds"))))
+ "0kj681rd4c2lvqr926lb6f4qwp281x5274dg6vbk8pf5y7s0qlpc"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ifultools" ,r-ifultools)
@@ -6730,14 +6707,14 @@ evaluated by the @dfn{Akaike Information Criterion} (AIC).")
(define-public r-arules
(package
(name "r-arules")
- (version "1.6-6")
+ (version "1.6-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "arules" version))
(sha256
(base32
- "1pk3jjizn2m5rwi7qkdkbq9f07acgpy0qdzzqmx0agg47cwahlkm"))))
+ "0m80kndfbannw8h53nqdd5wl8h33q2z259aa1cp1nwadaxf9fc1q"))))
(build-system r-build-system)
(propagated-inputs
`(("r-matrix" ,r-matrix)))
@@ -7255,14 +7232,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
(define-public r-rastervis
(package
(name "r-rastervis")
- (version "0.50")
+ (version "0.50.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "rasterVis" version))
(sha256
(base32
- "0m7fjd53apxim0d0rjnyzc28vmfcg4spcrn0zbnk8llillxji1hi"))))
+ "1fkmyllydnmk3j2cmgf86r91wyxf2kh573x8bkck7wgkfniw4h7w"))))
(properties `((upstream-name . "rasterVis")))
(build-system r-build-system)
(propagated-inputs
@@ -7314,14 +7291,14 @@ those searches and pull data into their R sessions.")
(define-public r-renv
(package
(name "r-renv")
- (version "0.13.0")
+ (version "0.13.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "renv" version))
(sha256
(base32
- "16n2dz9jibc03f7q1wrzxss6l5jmaks7m2lnli9dz9anvcmxbdia"))))
+ "0jlsf6vfvqhr4i35xy3xf1ixkfillivzy3wbpl6ca9vyjpnhiwj1"))))
(properties `((upstream-name . "renv")))
(build-system r-build-system)
(native-inputs
@@ -7885,14 +7862,14 @@ hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.")
(define-public r-rbibutils
(package
(name "r-rbibutils")
- (version "2.0")
+ (version "2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "rbibutils" version))
(sha256
(base32
- "1vfg2188i4dyhrmvnwpsh2la8qkd4wkryz2fpj4cppi1wfz3ml83"))))
+ "13phw0dk3p3s1z45ff7dbqnn27zws1209mp3d4763zh7xnsdsl44"))))
(properties `((upstream-name . "rbibutils")))
(build-system r-build-system)
(home-page "https://geobosh.github.io/rbibutils/")
@@ -7933,14 +7910,14 @@ references and Rd files.")
(define-public r-officer
(package
(name "r-officer")
- (version "0.3.17")
+ (version "0.3.18")
(source
(origin
(method url-fetch)
(uri (cran-uri "officer" version))
(sha256
(base32
- "1apg0dh1zfhrqcbbmm8318l40gyjbqc2l9sdvwxx7qi8mzc1mqvw"))))
+ "1j3bv4j8x5ijj0j447vpdsk4p8pl3ncwdwnns6n3plfrqgsf3vsg"))))
(build-system r-build-system)
(propagated-inputs
`(("r-r6" ,r-r6)
@@ -8194,14 +8171,14 @@ other add-on packages.")
(define-public r-insight
(package
(name "r-insight")
- (version "0.13.1")
+ (version "0.13.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "insight" version))
(sha256
(base32
- "1la4yxzfl9fnknamnaziil6gvpdzl78z16lfzis9jgzg8r9q0y5l"))))
+ "03b7kd17h25mi1si40ibcp3jpasyqpj51mr8js0ywywyfw7909j1"))))
(build-system r-build-system)
(native-inputs
`(("r-knitr" ,r-knitr)))
@@ -9561,10 +9538,10 @@ singular or ill-conditioned Jacobian.")
`((upstream-name . "PhysicalActivity")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/PhysicalActivity/")
- (synopsis "Procesing accelerometer data for physical activity measurement")
+ (synopsis "Processing accelerometer data for physical activity measurement")
(description
"This @code{r-physicalactivity} package provides a function @code{wearingMarking}
-for classification of monitor wear and nonwear time intervals in accelerometer
+for classification of monitored wear and nonwear time intervals in accelerometer
data collected to assess physical activity. The package also contains functions
for making plots of accelerometer data and obtaining the summary of various
information including daily monitor wear time and the mean monitor wear time
@@ -9691,14 +9668,14 @@ samples is large and the number of mixture components is not too large.")
(define-public r-magick
(package
(name "r-magick")
- (version "2.7.0")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "magick" version))
(sha256
(base32
- "0m1kij6pp7dmsrhl80h60iyccjqmbbb3zdnqdc9sgy1kj1x3pscp"))))
+ "16svy84dq25g69axqgympsrh8dzssa1w3zz08zc8m6nprr3jqwqf"))))
(build-system r-build-system)
(inputs
`(("imagemagick" ,imagemagick)
@@ -10133,14 +10110,14 @@ Hothorn, Westfall, 2010, CRC Press).")
(define-public r-emmeans
(package
(name "r-emmeans")
- (version "1.5.4")
+ (version "1.5.5-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "emmeans" version))
(sha256
(base32
- "1rbh3ls23fazrwpsam5llk3kqdzz2zvsms3i4f1cgn34ky3w8361"))))
+ "0l5dd71ihhs7zy6ygniy07iisgy7a1ai1w41hqf84swb0j3cl6iz"))))
(build-system r-build-system)
(propagated-inputs
`(("r-estimability" ,r-estimability)
@@ -10423,14 +10400,14 @@ effects models and Bayesian models.")
(define-public r-ggeffects
(package
(name "r-ggeffects")
- (version "1.0.1")
+ (version "1.0.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggeffects" version))
(sha256
(base32
- "1c5rvycaqp7zp1j6j17c84v8nlpi0w7bhfxmcha4n37m0snk1kgy"))))
+ "0qh8x8yi8gkb5x7zfxmb1c689k7bhc1f5947yymny34j7xdsb9s8"))))
(build-system r-build-system)
(propagated-inputs
`(("r-insight" ,r-insight)
@@ -10453,14 +10430,14 @@ results using @code{ggplot2}.")
(define-public r-effectsize
(package
(name "r-effectsize")
- (version "0.4.4")
+ (version "0.4.4-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "effectsize" version))
(sha256
(base32
- "0mgkq12ym72ncakkjpkzkjglhksyhj3iw8v4a8fjgpf7prvn191g"))))
+ "02rwf3lxnzgc8yh0wridsc6lqr9s6v0cqzbk4biwnr494rvs46zb"))))
(properties `((upstream-name . "effectsize")))
(build-system r-build-system)
(propagated-inputs
@@ -10570,14 +10547,14 @@ repositories.")
(define-public r-gh
(package
(name "r-gh")
- (version "1.2.0")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "gh" version))
(sha256
(base32
- "1zvy3ylxvni10lhvmbm9h14mg4wlsbdbzbzviwf28jxss8749219"))))
+ "16xa1qb1r28f8yc6ybjrxiq2zigxj886dp9k29jpsn5091xbzkq0"))))
(build-system r-build-system)
(propagated-inputs
`(("r-cli" ,r-cli)
@@ -10681,14 +10658,14 @@ user credentials.")
(define-public r-gert
(package
(name "r-gert")
- (version "1.2.0")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "gert" version))
(sha256
(base32
- "0ag2ia6cfb5drf3517lg5nhik1w0nv09a75wdy5jdciws1qra3d6"))))
+ "1fh72p92wj83yv1ch77jms6k1gjqfji8cmgw23vpxd0p8l9jj4h7"))))
(properties `((upstream-name . "gert")))
(build-system r-build-system)
(inputs
@@ -10781,14 +10758,14 @@ more information about packages, and where they were installed from.")
(define-public r-remotes
(package
(name "r-remotes")
- (version "2.2.0")
+ (version "2.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "remotes" version))
(sha256
(base32
- "1f1kdw9j1wald3fs8b3n68x1kljy07j60g3aw1aarx26ikyk9whj"))))
+ "0f35648bdxhvplcfj80r4hfj5w21f1s01kcz6b29d098c1mnfzb7"))))
(build-system r-build-system)
(native-inputs
`(("r-knitr" ,r-knitr)))
@@ -10907,14 +10884,14 @@ ways.")
(define-public r-summarytools
(package
(name "r-summarytools")
- (version "0.9.8")
+ (version "0.9.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "summarytools" version))
(sha256
(base32
- "0n7rad6bkfn9cb99wbfzbwl5qzch48r0gafhddfcqvyh4fbn2k0j"))))
+ "0ig7vgjvldbndwhky1bsi38zifr9ji8xvvfqbfffplac08llvrbr"))))
(build-system r-build-system)
(propagated-inputs
`(("r-base64enc" ,r-base64enc)
@@ -11298,15 +11275,17 @@ netCDF files.")
(define-public r-biocmanager
(package
(name "r-biocmanager")
- (version "1.30.10")
+ (version "1.30.12")
(source
(origin
(method url-fetch)
(uri (cran-uri "BiocManager" version))
(sha256
- (base32 "03n9s2vf7vgpgb5alpxwamf9xfkn32cbzngwyn6spq1bnh9a9dzk"))))
+ (base32 "0c2anza01pc36manj3cvycbq8p57qpq18dsimk3y3gpks70hhqf3"))))
(properties `((upstream-name . "BiocManager")))
(build-system r-build-system)
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "https://cran.r-project.org/web/packages/BiocManager/")
(synopsis "Access the Bioconductor project package repository")
(description
@@ -11723,19 +11702,21 @@ redundant complex conjugate when the input is real data.")
(define-public r-tiff
(package
(name "r-tiff")
- (version "0.1-7")
+ (version "0.1-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "tiff" version))
(sha256
(base32
- "101n6x70fr1dhcwx53g3s8q1j4wh93y0388v1s1316f8558rxqxh"))))
+ "18m17g5q3nz4v4wrqxnb129b1j02873g2vknddczkklf1pvq4x2b"))))
(build-system r-build-system)
(inputs
`(("libtiff" ,libtiff)
("libjpeg" ,libjpeg-turbo)
("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(home-page "https://www.rforge.net/tiff/")
(synopsis "Read and write TIFF images")
(description
@@ -12637,21 +12618,24 @@ and manipulating sets of ontological terms.")
(define-public r-gargle
(package
(name "r-gargle")
- (version "1.0.0")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "gargle" version))
(sha256
(base32
- "0hsqn4hf935wn6vk2pwym7la4sdvy271y4cashp38pg4hkpg9zph"))))
+ "03y29dzz54bw9px5k8a72vmc000lcyrkc5l0izkqcciyi9ijkr3w"))))
(build-system r-build-system)
(propagated-inputs
- `(("r-fs" ,r-fs)
+ `(("r-cli" ,r-cli)
+ ("r-fs" ,r-fs)
("r-glue" ,r-glue)
("r-httr" ,r-httr)
("r-jsonlite" ,r-jsonlite)
+ ("r-rappdirs" ,r-rappdirs)
("r-rlang" ,r-rlang)
+ ("r-rstudioapi" ,r-rstudioapi)
("r-withr" ,r-withr)))
(native-inputs
`(("r-knitr" ,r-knitr)))
@@ -12726,14 +12710,14 @@ limitations\" using the GNU Multiple Precision library.")
(define-public r-rmpfr
(package
(name "r-rmpfr")
- (version "0.8-2")
+ (version "0.8-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "Rmpfr" version))
(sha256
(base32
- "007pc7fpzl2mcg3qxa2vfjip6m2dr314qjsnybkj3kdj70bszxkl"))))
+ "1m9wwwch9wg886147brr2zfih65yfdfs3vmfvim1w6jykycasc9a"))))
(properties `((upstream-name . "Rmpfr")))
(build-system r-build-system)
(inputs
@@ -15151,14 +15135,14 @@ utilities for sequence data management under the ACNUC system.")
(define-public r-units
(package
(name "r-units")
- (version "0.7-0")
+ (version "0.7-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "units" version))
(sha256
(base32
- "0kwfcrrbcwl7s50n1wp33vswqzmprh91clvakbd1jpznqpg5m3js"))))
+ "0wwndzjjgqj795xvx1jwa86nwd8adfiwj0pn15yyzzk9baky2axw"))))
(build-system r-build-system)
(inputs
`(("udunits" ,udunits)))
@@ -15304,14 +15288,14 @@ tessellation.")
(define-public r-sf
(package
(name "r-sf")
- (version "0.9-7")
+ (version "0.9-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "sf" version))
(sha256
(base32
- "175fmnnw11fjhfgjv9sn9b0jfjcqbybpgwsvv99d5yddigvw5jja"))))
+ "096gg2hbynn6mv3w8n69x987fklg5rrgd0d4nbqaw7vhg1jhlmqi"))))
(build-system r-build-system)
(inputs
`(("gdal" ,gdal)
@@ -15341,14 +15325,14 @@ datum transformations.")
(define-public r-spdep
(package
(name "r-spdep")
- (version "1.1-5")
+ (version "1.1-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "spdep" version))
(sha256
(base32
- "0pbd7wrg5v44p2yxsjp774lpyzap3madir5mn5p3ix7ibk7ldjs7"))))
+ "0sg417d95paww625663lgmk6jwhs88djqzc96gbs1hxazlf77qb1"))))
(build-system r-build-system)
(propagated-inputs
`(("r-boot" ,r-boot)
@@ -15544,13 +15528,13 @@ lspec, polyclass, and polymars.")
(define-public r-rms
(package
(name "r-rms")
- (version "6.1-1")
+ (version "6.2-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "rms" version))
(sha256
- (base32 "1zgfd60lzbakcv7x0i5k3lkw3s0xx5bzssjgangna5lq2j17cdli"))))
+ (base32 "1di4xvsx0rwkr77nfqiysbg4qf699199xqil70i39d4zwfzqrm8h"))))
(build-system r-build-system)
(propagated-inputs
`(("r-cluster" ,r-cluster)
@@ -16288,14 +16272,14 @@ packages with Rcpp.")
(define-public r-tweenr
(package
(name "r-tweenr")
- (version "1.0.1")
+ (version "1.0.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "tweenr" version))
(sha256
(base32
- "0sq90pbln6lkc2q3zflhkxxwpqdw5dd7igrxhdnlynkdrmi83mpg"))))
+ "17znizh4yabh2zs9mzyr0sl6p0pw49961i61br7cl1b7v9sza18q"))))
(build-system r-build-system)
(propagated-inputs
`(("r-farver" ,r-farver)
@@ -16392,7 +16376,7 @@ sets of URLs.")
(description
"The aim of the ggplot2 package is to aid in visual data investigations.
This focus has led to a lack of facilities for composing specialized plots.
-Thi package aims to be a collection of mainly new statistics and geometries
+This package aims to be a collection of mainly new statistics and geometries
that fills this gap.")
(license license:expat)))
@@ -17202,14 +17186,14 @@ batch correction, and data correction.")
(define-public r-styler
(package
(name "r-styler")
- (version "1.3.2")
+ (version "1.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "styler" version))
(sha256
(base32
- "1waglhsy2c53qjgd2qhlzda3z0lbzbwx9fkrfhac41y6h91mgkrz"))))
+ "10fj4cnazicb2z9djbv5pszcmrf7wbzagbjvksffqpdc5vbbbw5x"))))
(build-system r-build-system)
(propagated-inputs
`(("r-backports" ,r-backports)
@@ -17223,6 +17207,8 @@ batch correction, and data correction.")
("r-tibble" ,r-tibble)
("r-withr" ,r-withr)
("r-xfun" ,r-xfun)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "https://github.com/r-lib/styler")
(synopsis "Non-invasive pretty printing of R code")
(description
@@ -17476,14 +17462,14 @@ classification and regression models.")
(define-public r-dae
(package
(name "r-dae")
- (version "3.1-32")
+ (version "3.1-37")
(source
(origin
(method url-fetch)
(uri (cran-uri "dae" version))
(sha256
(base32
- "126w1lb9pz8mb2ajl2vz5dj798nbifp0dypnzfgcwixif5g5bpqi"))))
+ "102fgbdpn7yvm1zj180cv4sr1096sz35d4gndsv7w9kriqyi1c1l"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
@@ -17515,14 +17501,14 @@ been used in the call to @code{aov}.")
(define-public r-dalex
(package
(name "r-dalex")
- (version "2.1.1")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "DALEX" version))
(sha256
(base32
- "1dnqsml94s648w8swsrq8spddnd4mj5pl3q6xxr917w6a1jxgyfz"))))
+ "1qnjbhilv4jfmwqxfi9xc5ysrh8gr84a2a5imjfci7d1n3zcnryn"))))
(properties `((upstream-name . "DALEX")))
(build-system r-build-system)
(propagated-inputs
@@ -19595,14 +19581,14 @@ discussed in Reisen et al. (2017) @url{doi:10.1016/j.jspi.2017.02.008}.")
(define-public r-gamlss-data
(package
(name "r-gamlss-data")
- (version "5.1-4")
+ (version "6.0-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "gamlss.data" version))
(sha256
(base32
- "1dgfspbmps6ipzcmw681wjdp320nm50dwsxafgrcwxndqgc7fdqd"))))
+ "1cjb2n5i5mnhmb5qbqycdbfg65j7nxb9s74yihqs9kpa39byrzcq"))))
(properties `((upstream-name . "gamlss.data")))
(build-system r-build-system)
(home-page "http://www.gamlss.org/")
@@ -19616,14 +19602,14 @@ models.")
(define-public r-gamlss
(package
(name "r-gamlss")
- (version "5.3-1")
+ (version "5.3-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "gamlss" version))
(sha256
(base32
- "1ngf6g4zixwm6ni5r0fs0f6132xd2f2a6mlski9hlqnvvwb46iwr"))))
+ "06mh00jjxnqwknbv777hawjk0zm81ixrp35fg59mrlqz8y3p2w3j"))))
(properties `((upstream-name . "gamlss")))
(build-system r-build-system)
(propagated-inputs
@@ -20827,14 +20813,14 @@ API; see the package vignette for details.")
(define-public r-actuar
(package
(name "r-actuar")
- (version "3.1-1")
+ (version "3.1-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "actuar" version))
(sha256
(base32
- "0sxn1mskh7x164f1vbrqnadgxnq7y2p3a9mlmqc0sp6cqkw9lhp9"))))
+ "0gaqm8bkjly2b1jkr1nqnxlp5vqvfpj0a4jd70jv4f9ndlif676y"))))
(properties `((upstream-name . "actuar")))
(build-system r-build-system)
(propagated-inputs `(("r-expint" ,r-expint)))
@@ -20904,14 +20890,14 @@ number embedded in the file rather than the file extension.")
(define-public r-imager
(package
(name "r-imager")
- (version "0.42.7")
+ (version "0.42.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "imager" version))
(sha256
(base32
- "1dq0rblnrmnk689bcdmml179gk9lff8x92s2npkjllgjq5q2vfpd"))))
+ "1kzl93l6k9i4528bbycbqxdn28mj7hnx0fbxisva859xl1wys5c5"))))
(properties `((upstream-name . "imager")))
(build-system r-build-system)
(inputs
@@ -21053,14 +21039,14 @@ functions.")
(define-public r-univoutl
(package
(name "r-univoutl")
- (version "0.2")
+ (version "0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "univOutl" version))
(sha256
(base32
- "0rlc3w7cx2hfxacpjs9kmjzv5p8v9wxnlpxi3rh276wiy5zdr91v"))))
+ "1hhpxrpmp2wbrynx9xjndnp2sccirgky2x6ksd6yk6phmk0rbzjp"))))
(properties `((upstream-name . "univOutl")))
(build-system r-build-system)
(propagated-inputs
@@ -21268,14 +21254,14 @@ different conceptual parts of the algorithm.")
(define-public r-shapes
(package
(name "r-shapes")
- (version "1.2.5")
+ (version "1.2.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "shapes" version))
(sha256
(base32
- "0gfpdydfysp5mwg7qmkn73s67gvh2szb40mzqrx97h41ijgcgd8s"))))
+ "1p9fr95zk3q2v277c5ksb0nh26mcpzwjzjb2lmag51z6hck8cb66"))))
(properties `((upstream-name . "shapes")))
(build-system r-build-system)
(propagated-inputs
@@ -22068,32 +22054,23 @@ Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish and Turkish.")
(define-public r-quanteda
(package
(name "r-quanteda")
- (version "2.1.2")
+ (version "3.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "quanteda" version))
(sha256
(base32
- "13rjwgmg5v1dbryrs9ifyy76s5ib6wrbrm2y5af44vhf1h6p9cvy"))))
+ "0b1jfkdhpsg5jhjz4p0nf4cmi9p8w40wv3i2f17jf2x1n1y2hjj8"))))
(properties `((upstream-name . "quanteda")))
(build-system r-build-system)
(propagated-inputs
- `(("r-data-table" ,r-data-table)
- ("r-digest" ,r-digest)
- ("r-extrafont" ,r-extrafont)
- ("r-fastmatch" ,r-fastmatch)
- ("r-ggplot2" ,r-ggplot2)
- ("r-ggrepel" ,r-ggrepel)
- ("r-jsonlite" ,r-jsonlite)
+ `(("r-fastmatch" ,r-fastmatch)
("r-magrittr" ,r-magrittr)
("r-matrix" ,r-matrix)
- ("r-network" ,r-network)
- ("r-proxyc" ,r-proxyc)
("r-rcpp" ,r-rcpp)
("r-rcpparmadillo" ,r-rcpparmadillo)
("r-rcppparallel" ,r-rcppparallel)
- ("r-sna" ,r-sna)
("r-snowballc" ,r-snowballc)
("r-stopwords" ,r-stopwords)
("r-stringi" ,r-stringi)
@@ -22862,14 +22839,14 @@ interesting features. iheatmapr uses the plotly library for interactivity.")
(define-public r-packrat
(package
(name "r-packrat")
- (version "0.5.0")
+ (version "0.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "packrat" version))
(sha256
(base32
- "1xy5dd2hrpqa07jfl4s7dsrya05mf36ms74j833scdz0zf89586n"))))
+ "01cn2vf95nc8bh0hh8imkn030yra3hx64q1fb8jwsr52p9s397fr"))))
(properties `((upstream-name . "packrat")))
(build-system r-build-system)
(home-page "https://github.com/rstudio/packrat/")
@@ -23538,17 +23515,19 @@ appropriate dog and cat images for many status codes.")
(define-public r-latex2exp
(package
(name "r-latex2exp")
- (version "0.4.0")
+ (version "0.5.0")
(source (origin
(method url-fetch)
(uri (cran-uri "latex2exp" version))
(sha256
(base32
- "12nbcgfmv13k6sc6m326ras9bcvy380b7rxcxphn06r3cfkby0zw"))))
+ "0qknpw7zwwbzsbry94j8fn48mq7kq5rc5448g9hybbisain3wfvg"))))
(build-system r-build-system)
(propagated-inputs
`(("r-stringr" ,r-stringr)
("r-magrittr" ,r-magrittr)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "https://github.com/stefano-meschiari/latex2exp/")
(synopsis "Use LaTeX expressions in plots")
(description "@code{latex2exp} parses and converts LaTeX math formulas to
@@ -24408,14 +24387,14 @@ input.")
(define-public r-lightgbm
(package
(name "r-lightgbm")
- (version "3.1.1")
+ (version "3.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "lightgbm" version))
(sha256
(base32
- "1pwsh6j9ksahh58b15j5ij56bsc6syy3z4k4a5zhy5n7829rz555"))))
+ "0aw1zcrg7nhddfaif9544hn8g8qcylv6vzpkf8d3kl07nzvgxkvj"))))
(properties `((upstream-name . "lightgbm")))
(build-system r-build-system)
(propagated-inputs
@@ -24444,14 +24423,14 @@ designed to be distributed and efficient with the following goals:
(define-public r-shapforxgboost
(package
(name "r-shapforxgboost")
- (version "0.1.0")
+ (version "0.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "SHAPforxgboost" version))
(sha256
(base32
- "0jgyss9bawl7sf4dwa75sn7ld3mvrrr0z2074lbkq3f5qb9gwsly"))))
+ "106nsf02b1w3yshb55lwnyw1rl1a60162v2wk8znjz3b4ln3mqj5"))))
(properties
`((upstream-name . "SHAPforxgboost")))
(build-system r-build-system)
@@ -24462,9 +24441,10 @@ designed to be distributed and efficient with the following goals:
("r-ggforce" ,r-ggforce)
("r-ggplot2" ,r-ggplot2)
("r-ggpubr" ,r-ggpubr)
- ("r-lightgbm" ,r-lightgbm)
("r-rcolorbrewer" ,r-rcolorbrewer)
("r-xgboost" ,r-xgboost)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "https://github.com/liuyanguu/SHAPforxgboost")
(synopsis "SHAP Plots for XGBoost")
(description
@@ -24796,14 +24776,14 @@ diagonals. This package allows you to compute the tensor product of arrays.")
(define-public r-spatstat-utils
(package
(name "r-spatstat-utils")
- (version "2.0-0")
+ (version "2.1-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.utils" version))
(sha256
(base32
- "1li0vksxpkvgyx3j2wi40kj5687vwakkfdix6icm6g01a0lb2m5d"))))
+ "18gqsc1a85pk69aifi10wprv1c0lci3zxp4wqjb27dlmlbz6jdgd"))))
(properties
`((upstream-name . "spatstat.utils")))
(build-system r-build-system)
@@ -24817,14 +24797,14 @@ which may also be useful for other purposes.")
(define-public r-spatstat-sparse
(package
(name "r-spatstat-sparse")
- (version "1.2-1")
+ (version "2.0-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.sparse" version))
(sha256
(base32
- "1w312q7gxzchigxxzk9akscdsz66j5085lgjryamschjgp4f8yk2"))))
+ "1iqrpazb88s4w208adf2qgm4ajwz3kwqck65k9g5l28zw9jcxyr7"))))
(properties
`((upstream-name . "spatstat.sparse")))
(build-system r-build-system)
@@ -24844,14 +24824,14 @@ matrix calculations that are common in statistics, such as quadratic forms.")
(define-public r-spatstat-data
(package
(name "r-spatstat-data")
- (version "2.0-0")
+ (version "2.1-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.data" version))
(sha256
(base32
- "1z1jb1yzb7qhfg55dhzcrdvn5x8hpg9xif0hpnapddbmhxd1hbb7"))))
+ "0csmz5vjaxnznkbsfah8qd3v8p0y56jvis01ialxzvf71snl160v"))))
(properties `((upstream-name . "spatstat.data")))
(build-system r-build-system)
(propagated-inputs
@@ -24867,21 +24847,20 @@ package.")
(define-public r-spatstat-geom
(package
(name "r-spatstat-geom")
- (version "1.65-5")
+ (version "2.0-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.geom" version))
(sha256
(base32
- "0g0m5b3nbzpyblbp77n56k6aiw3fn23jkk72h9fhqlg1ydn2fzpk"))))
+ "1r7nlgh62apchidg28fxq1a22iv1b29y5xmsg1kjwfvkbq8zxsvh"))))
(properties `((upstream-name . "spatstat.geom")))
(build-system r-build-system)
(propagated-inputs
`(("r-deldir" ,r-deldir)
("r-polyclip" ,r-polyclip)
("r-spatstat-data" ,r-spatstat-data)
- ("r-spatstat-sparse" ,r-spatstat-sparse)
("r-spatstat-utils" ,r-spatstat-utils)))
(home-page "http://spatstat.org/")
(synopsis "Geometrical functionality of the spatstat package")
@@ -24894,14 +24873,14 @@ for the geometry of linear networks.")
(define-public r-spatstat-core
(package
(name "r-spatstat-core")
- (version "1.65-5")
+ (version "2.0-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.core" version))
(sha256
(base32
- "0wq61sd53hwyk3fzjdc2prrr66n67zbwb5i3ii7kvyhfwx0xikm3"))))
+ "19wv27nfx48xkqa1amys4jf93k0d8xns20p84n5kqyibscdsksgx"))))
(properties `((upstream-name . "spatstat.core")))
(build-system r-build-system)
(propagated-inputs
@@ -24926,14 +24905,14 @@ user-level code from spatstat, except for the code for linear networks.")
(define-public r-spatstat-linnet
(package
(name "r-spatstat-linnet")
- (version "1.65-3")
+ (version "2.1-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.linnet" version))
(sha256
(base32
- "1y088r26h5yv006ydgcb4iwpvnc7ql857gky0hbi7xqqciqr8wdv"))))
+ "1ia0qgggddiwhhyd3q516f3p6by0p4xnq26wqz7410n2ja60bbb4"))))
(properties
`((upstream-name . "spatstat.linnet")))
(build-system r-build-system)
@@ -24953,14 +24932,14 @@ for spatial data on a linear network.")
(define-public r-spatstat
(package
(name "r-spatstat")
- (version "2.0-1")
+ (version "2.1-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat" version))
(sha256
(base32
- "1xq11ijc0d0lbixxb3wnvyr4gplfj2d2i64ynsa089xd525zzzbw"))))
+ "0vr5md53247v6crvjvg9m82vc6h914zzvkzfkga8x79hv35ii4as"))))
(properties `((upstream-name . "spatstat")))
(build-system r-build-system)
(propagated-inputs
@@ -25014,14 +24993,14 @@ for linear mixed models (AIREML).")
(define-public r-cpp11
(package
(name "r-cpp11")
- (version "0.2.6")
+ (version "0.2.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "cpp11" version))
(sha256
(base32
- "118i8s7978vl9xyhnb47wcbd6rcc6b958mq2w8s3rdsd4pxv62gz"))))
+ "1m31yq3kn5wqvm0ahj08kb4bszbbhfybx3l2x975cjzgv3058h8x"))))
(properties `((upstream-name . "cpp11")))
(build-system r-build-system)
(native-inputs `(("r-knitr" ,r-knitr)))
@@ -25199,14 +25178,14 @@ to speed up repeated queries of the same set of target points.")
(define-public r-muhaz
(package
(name "r-muhaz")
- (version "1.2.6.1")
+ (version "1.2.6.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "muhaz" version))
(sha256
(base32
- "08qh43zx6h3yby44q2vxphfvmfdmqxpgyp0734yn341sy9n8pkkk"))))
+ "1lzc8arbpcxgfap3dfsgq8crpp1cxd9qlbrhvyvl79zgpxjqx4q2"))))
(properties `((upstream-name . "muhaz")))
(build-system r-build-system)
(propagated-inputs
@@ -25671,14 +25650,14 @@ workflow. The advantages are:
(define-public r-yardstick
(package
(name "r-yardstick")
- (version "0.0.7")
+ (version "0.0.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "yardstick" version))
(sha256
(base32
- "1yrvlhn4gxyn9f20z5yv3xam0j0a8z362jwa32r33r0g0jk5z2fq"))))
+ "13b0lyj2k0r568mwlyz9yvp9156rzlj4jqnjazaffh9vwqh4whir"))))
(properties `((upstream-name . "yardstick")))
(build-system r-build-system)
(propagated-inputs
@@ -25686,7 +25665,8 @@ workflow. The advantages are:
("r-generics" ,r-generics)
("r-proc" ,r-proc)
("r-rlang" ,r-rlang)
- ("r-tidyselect" ,r-tidyselect)))
+ ("r-tidyselect" ,r-tidyselect)
+ ("r-vctrs" ,r-vctrs)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/tidymodels/yardstick")
@@ -25725,18 +25705,19 @@ observations.")
(define-public r-slider
(package
(name "r-slider")
- (version "0.1.5")
+ (version "0.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "slider" version))
(sha256
(base32
- "1x4jwfxam4czfkb1s5qds5krfw1h2p5a4rh6f5z4yvhsv0d81xck"))))
+ "1jijh8f3qcn8fa677sqvgl2fb4r5vca1cw4l2vbcqscxb2hr4bqw"))))
(properties `((upstream-name . "slider")))
(build-system r-build-system)
(propagated-inputs
- `(("r-glue" ,r-glue)
+ `(("r-ellipsis" ,r-ellipsis)
+ ("r-glue" ,r-glue)
("r-rlang" ,r-rlang)
("r-vctrs" ,r-vctrs)
("r-warp" ,r-warp)))
@@ -25877,31 +25858,71 @@ for finding reasonable values of hyper-parameters in models, pre-processing
methods, and post-processing steps.")
(license license:expat)))
+(define-public r-workflowsets
+ (package
+ (name "r-workflowsets")
+ (version "0.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "workflowsets" version))
+ (sha256
+ (base32
+ "1q41isvj7hhbkx3y8k6kazpiygig92xannsz8dpklh0k3j9l3c2p"))))
+ (properties `((upstream-name . "workflowsets")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-cli" ,r-cli)
+ ("r-dplyr" ,r-dplyr)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-prettyunits" ,r-prettyunits)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-rsample" ,r-rsample)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)
+ ("r-tune" ,r-tune)
+ ("r-vctrs" ,r-vctrs)
+ ("r-withr" ,r-withr)
+ ("r-workflows" ,r-workflows)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/tidymodels/workflowsets")
+ (synopsis "Create a collection of tidymodels workflows")
+ (description
+ "A workflow is a combination of a model and preprocessors (e.g, a
+formula, recipe, etc.). In order to try different combinations of these, an
+object can be created that contains many workflows. There are functions to
+create workflows en masse as well as training them and visualizing the
+results.")
+ (license license:expat)))
+
(define-public r-tidyposterior
(package
(name "r-tidyposterior")
- (version "0.0.3")
+ (version "0.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "tidyposterior" version))
(sha256
(base32
- "0wsv800w056ziqbnwal7ncmdy4li8cn5yrdx07w35b7j8kl4mwhg"))))
+ "1h1664sjrg6akph6nrk8ynn2kjiswv6gshy35gamam1h4axf6wah"))))
(properties `((upstream-name . "tidyposterior")))
(build-system r-build-system)
(propagated-inputs
`(("r-dplyr" ,r-dplyr)
("r-generics" ,r-generics)
("r-ggplot2" ,r-ggplot2)
- ("r-lifecycle" ,r-lifecycle)
("r-purrr" ,r-purrr)
("r-rlang" ,r-rlang)
("r-rsample" ,r-rsample)
("r-rstanarm" ,r-rstanarm)
("r-tibble" ,r-tibble)
("r-tidyr" ,r-tidyr)
- ("r-vctrs" ,r-vctrs)))
+ ("r-tune" ,r-tune)
+ ("r-vctrs" ,r-vctrs)
+ ("r-workflowsets" ,r-workflowsets)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://tidyposterior.tidymodels.org")
@@ -26204,6 +26225,32 @@ statistical analysis that share the underlying design philosophy, grammar, and
data structures of the tidyverse.")
(license license:gpl3)))
+(define-public r-lsa
+ (package
+ (name "r-lsa")
+ (version "0.73.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "lsa" version))
+ (sha256
+ (base32
+ "1a33irqa6qvbc02z12rgbgv8kxq2gmahy7j5bg8b23lvvaxif06b"))))
+ (properties `((upstream-name . "lsa")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-snowballc" ,r-snowballc)))
+ (home-page "https://cran.r-project.org/package=lsa")
+ (synopsis "Latent semantic analysis")
+ (description
+ "The basic idea of latent semantic analysis (LSA) is, that text do have a
+higher order (=latent semantic) structure which, however, is obscured by word
+usage (e.g. through the use of synonyms or polysemy). By using conceptual
+indices that are derived statistically via a truncated singular value
+decomposition (a two-mode factor analysis) over a given document-term matrix,
+this variability problem can be overcome.")
+ (license license:gpl2+)))
+
(define-public r-mlecens
(package
(name "r-mlecens")
@@ -26271,14 +26318,14 @@ phylogenetic relatedness) can also be conducted.")
(define-public r-altmeta
(package
(name "r-altmeta")
- (version "3.2")
+ (version "3.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "altmeta" version))
(sha256
(base32
- "0z252lbsknqp33i0b0xf5r7spr535iq47bv40vgip6nsqhgrl7b0"))))
+ "1xq12hnzxh7kgv2i36xprg4lkvqfmxwz3sq4a1jlq2d5g3narvcm"))))
(properties `((upstream-name . "altmeta")))
(build-system r-build-system)
(propagated-inputs
@@ -26333,14 +26380,14 @@ covariate (usually group indicator) and the scores.")
(define-public r-qtl
(package
(name "r-qtl")
- (version "1.47-9")
+ (version "1.48-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "qtl" version))
(sha256
(base32
- "0hffirsvw9j82cdx6l7vhqn3a7ab52claqjlinv3lswl1nsfg93b"))))
+ "098mgmfj8ndi8yipr9b3f6gbbh78cgp9j7y561nlnhrnyc8bsih9"))))
(build-system r-build-system)
(home-page "https://rqtl.org/")
(synopsis "R package for analyzing QTL experiments in genetics")
@@ -26482,27 +26529,15 @@ other R users.")
(define-public r-seurat
(package
(name "r-seurat")
- (version "4.0.0")
+ (version "4.0.1")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
- "1mp3py00bmzj4541d8ry5sfzkpfzvnl9dpa8n4qhakd13dl30xdn"))))
+ "17cmp9mimvykb8ny796dn1zwmvg0pwwjw1zcixyamc5q1lwnxi3p"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
- ;; This is needed because r-spatstat has been split up and there has
- ;; been no new release of Seurat since then.
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-spatstat-import
- (lambda _
- (substitute* "NAMESPACE"
- (("importFrom\\(spatstat,markvario\\)")
- "importFrom(spatstat.core,markvario)")
- (("importFrom\\(spatstat,ppp\\)")
- "importFrom(spatstat.geom,ppp)")))))))
(propagated-inputs
`(("r-cluster" ,r-cluster)
("r-cowplot" ,r-cowplot)
@@ -26543,7 +26578,8 @@ other R users.")
("r-sctransform" ,r-sctransform)
("r-seuratobject" ,r-seuratobject)
("r-shiny" ,r-shiny)
- ("r-spatstat" ,r-spatstat)
+ ("r-spatstat-core" ,r-spatstat-core)
+ ("r-spatstat-geom" ,r-spatstat-geom)
("r-tibble" ,r-tibble)
("r-uwot" ,r-uwot)))
(home-page "http://www.satijalab.org/seurat")
@@ -26560,14 +26596,14 @@ discovery of differentially expressed genes and markers.")
(define-public r-phangorn
(package
(name "r-phangorn")
- (version "2.5.5")
+ (version "2.6.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "phangorn" version))
(sha256
(base32
- "0ihkaykqjmf80d8wrk3saphxvnv58zma6pd13633bd3cwanc33f5"))))
+ "08yqz8qlw960x4b52wzrm22f242xnpc8695pjkhy7bi1nzm303ga"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ape" ,r-ape)
@@ -26577,6 +26613,8 @@ discovery of differentially expressed genes and markers.")
("r-matrix" ,r-matrix)
("r-quadprog" ,r-quadprog)
("r-rcpp" ,r-rcpp)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "https://github.com/KlausVigo/phangorn")
(synopsis "Phylogenetic analysis in R")
(description
@@ -26616,33 +26654,6 @@ include Markov models of discrete and continuous trait evolution and constant
rate speciation and extinction.")
(license license:gpl2+)))
-(define-public r-absfiltergsea
- (package
- (name "r-absfiltergsea")
- (version "1.5.1")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "AbsFilterGSEA" version))
- (sha256
- (base32 "15srxkxsvn38kd5frdrwfdf0ad8gskrd0h01wmdf9hglq8fjrp7w"))))
- (properties `((upstream-name . "AbsFilterGSEA")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biobase" ,r-biobase)
- ("r-deseq" ,r-deseq)
- ("r-limma" ,r-limma)
- ("r-rcpp" ,r-rcpp)
- ("r-rcpparmadillo" ,r-rcpparmadillo)))
- (home-page "https://cran.r-project.org/web/packages/AbsFilterGSEA/")
- (synopsis "Improved false positive control of gene-permuting with absolute filtering")
- (description
- "This package provides a function that performs gene-permuting of a gene-set
-enrichment analysis (GSEA) calculation with or without the absolute filtering.
- Without filtering, users can perform (original) two-tailed or one-tailed
-absolute GSEA.")
- (license license:gpl2)))
-
(define-public r-calculus
(package
(name "r-calculus")
@@ -26863,13 +26874,13 @@ are.")
(define-public r-mlr3misc
(package
(name "r-mlr3misc")
- (version "0.7.0")
+ (version "0.8.0")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3misc" version))
(sha256
(base32
- "19k3l2d6wnqvdng0m7p54rrlvwl5457lcy7bg82m2bbpqxi8qch3"))))
+ "0mzicqs8rhzppyd7v3ljqs35k8pp7p2jg5cs7hx21mxr831bwsys"))))
(build-system r-build-system)
(propagated-inputs
`(("r-backports" ,r-backports)
@@ -26949,13 +26960,13 @@ computational operations, add-on packages provide additional functionality.")
(define-public r-mlr3learners
(package
(name "r-mlr3learners")
- (version "0.4.3")
+ (version "0.4.5")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3learners" version))
(sha256
(base32
- "1wxlpzz3hpkn77n4ag1v868dmp140j1pmrhynsv5xfgk9fg0w7ri"))))
+ "02v4y32yn1m0akkqzhfg65ib21rgy9iz8db4kdcrvi949clkxnfk"))))
(build-system r-build-system)
(propagated-inputs
`(("r-data-table" ,r-data-table)
@@ -26975,14 +26986,14 @@ vector machines, and gradient boosting.")
(define-public r-bbotk
(package
(name "r-bbotk")
- (version "0.3.1")
+ (version "0.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "bbotk" version))
(sha256
(base32
- "1f29wxnxr73c4yp5afk05jqggpm7k1z8wiak8xsyw68h7xflq550"))))
+ "0bd9nxfgsj4ixpgky1mj6knb8l8nivvxpqpyw8vgpkj0za7gp4gr"))))
(properties `((upstream-name . "bbotk")))
(build-system r-build-system)
(propagated-inputs
@@ -27304,14 +27315,14 @@ clusterings as resolution increases.")
(define-public r-textshaping
(package
(name "r-textshaping")
- (version "0.3.2")
+ (version "0.3.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "textshaping" version))
(sha256
(base32
- "0fqh4z505b2qriqcj70g2hhdgiawd3w2rs9rqxdwizz5vk8jjygx"))))
+ "0yl3cv6r8k27h4lzbrsikjydhz94skdjmxx4zqzihvb7h3jfnlpn"))))
(properties `((upstream-name . "textshaping")))
(build-system r-build-system)
(inputs
@@ -27337,14 +27348,14 @@ the font tool-set provided by the @code{systemfonts} package.")
(define-public r-ragg
(package
(name "r-ragg")
- (version "1.1.1")
+ (version "1.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ragg" version))
(sha256
(base32
- "0nh1xxrxgdbq9anzkc6k3n519czp9hqyiizakm3m2gl4l4w0vp0q"))))
+ "0q28bwjdxpxm1wlkd8sxdf1m1q8wp4mmzp83d3m09nyy90ydkd8w"))))
(properties `((upstream-name . "ragg")))
(build-system r-build-system)
(inputs
@@ -27574,7 +27585,7 @@ in same length matches).")
`(("r-data-table" ,r-data-table)
("r-slam" ,r-slam)
("r-stringi" ,r-stringi)))
- (home-page "http://github.com/trinker/textshape")
+ (home-page "https://github.com/trinker/textshape")
(synopsis "Tools for Reshaping Text")
(description
"Tools that can be used to reshape and restructure text data.")
@@ -28005,28 +28016,30 @@ and formatted text files with additional meta-data, such including @code{.csv},
(define-public r-lwgeom
(package
(name "r-lwgeom")
- (version "0.2-5")
+ (version "0.2-6")
(source
- (origin
- (method url-fetch)
- (uri (cran-uri "lwgeom" version))
- (sha256
- (base32
- "0byhjqa2acns8mznl1ngnfygxxxyszvnq66qfg0smhhhdkwr67aa"))))
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "lwgeom" version))
+ (sha256
+ (base32
+ "1733iwinn426bcmgjxp4j0scvbz35rvqkanmw7g7f47l6j7w14vn"))))
(properties `((upstream-name . "lwgeom")))
(build-system r-build-system)
- (inputs `(("geos" ,geos) ("proj" ,proj) ("sqlite" ,sqlite)))
+ (inputs
+ `(("geos" ,geos)
+ ("proj" ,proj)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
(propagated-inputs
- `(("r-rcpp" ,r-rcpp)
- ("r-sf" ,r-sf)
- ("r-units" ,r-units)))
+ `(("r-rcpp" ,r-rcpp)
+ ("r-sf" ,r-sf)
+ ("r-units" ,r-units)))
(native-inputs `(("pkg-config" ,pkg-config)))
- (home-page
- "https://github.com/r-spatial/lwgeom/")
- (synopsis
- "Bindings to Selected 'liblwgeom' Functions for Simple Features")
+ (home-page "https://github.com/r-spatial/lwgeom/")
+ (synopsis "Bindings to Selected 'liblwgeom' Functions for Simple Features")
(description
- "Access to selected functions found in
+ "Access to selected functions found in
@url{https://github.com/postgis/postgis/tree/master/liblwgeom,liblwgeom}, the
light-weight geometry library used by @url{http://postgis.net/,PostGIS}.")
(license license:gpl2)))
@@ -28034,14 +28047,14 @@ light-weight geometry library used by @url{http://postgis.net/,PostGIS}.")
(define-public r-stars
(package
(name "r-stars")
- (version "0.5-1")
+ (version "0.5-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "stars" version))
(sha256
(base32
- "0ybk899rc0rpf2cv5kwk78fvis5xnr255hfcy5khdxsxdqgl0m9j"))))
+ "0w2svw02ywvclq0nsnjns1n0rfr54q7x30y64y14n7zfr969ly1n"))))
(properties `((upstream-name . "stars")))
(build-system r-build-system)
(propagated-inputs
@@ -28254,3 +28267,53 @@ functionalities for displaying text co-occurrence networks, text correlation
networks, dependency relationships as well as text clustering. Feel free to
join the effort of providing interesting text visualisations.")
(license license:gpl2)))
+
+(define-public r-gsa
+ (package
+ (name "r-gsa")
+ (version "1.03.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "GSA" version))
+ (sha256
+ (base32
+ "05x9wspah1cdznjpncqam1iawsxdiigyl8v2anyhss2k7wwd94p1"))))
+ (properties `((upstream-name . "GSA")))
+ (build-system r-build-system)
+ (home-page "https://statweb.stanford.edu/~tibs/GSA/")
+ (synopsis "Gene set analysis")
+ (description "This package lets you determine the significance of
+pre-defined sets of genes with respect to an outcome variable, such as a group
+indicator, a quantitative variable or a survival time.")
+ ;; Any version of the LGPL
+ (license license:lgpl3+)))
+
+(define-public r-samr
+ (package
+ (name "r-samr")
+ (version "3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "samr" version))
+ (sha256
+ (base32
+ "01km0f7qgm73x19vbvsxl083hs1dq4dj8qm5h64cxbf20b08my15"))))
+ (properties `((upstream-name . "samr")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-gsa" ,r-gsa)
+ ("r-impute" ,r-impute)
+ ("r-matrixstats" ,r-matrixstats)
+ ("r-openxlsx" ,r-openxlsx)
+ ("r-shiny" ,r-shiny)
+ ("r-shinyfiles" ,r-shinyfiles)))
+ (native-inputs `(("gfortran" ,gfortran)))
+ (home-page "https://statweb.stanford.edu/~tibs/SAM/")
+ (synopsis "Significance analysis of Microarrays")
+ (description
+ "This is a package for significance analysis of Microarrays for
+differential expression analysis, RNAseq data and related problems.")
+ ;; Any version of the LGPL
+ (license license:lgpl3+)))
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 3485e53938..cd1712dc13 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -1934,6 +1934,7 @@ interactive applications.")
("rust-arbitrary" ,rust-arbitrary-0.4)
("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3)
("rust-arrayvec" ,rust-arrayvec-0.5)
+ ("rust-assert-cmd" ,rust-assert-cmd-1)
("rust-av-metrics" ,rust-av-metrics-0.6)
("rust-backtrace" ,rust-backtrace-0.3)
("rust-bitstream-io" ,rust-bitstream-io-1)
@@ -1942,6 +1943,7 @@ interactive applications.")
("rust-cfg-if" ,rust-cfg-if-1)
("rust-clap" ,rust-clap-2)
("rust-console" ,rust-console-0.14)
+ ("rust-criterion" ,rust-criterion-0.3)
("rust-crossbeam" ,rust-crossbeam-0.8)
("rust-dav1d-sys" ,rust-dav1d-sys-0.3)
("rust-fern" ,rust-fern-0.6)
@@ -1957,6 +1959,7 @@ interactive applications.")
("rust-num-derive" ,rust-num-derive-0.3)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-paste" ,rust-paste-1)
+ ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
("rust-rand" ,rust-rand-0.8)
("rust-rand-chacha" ,rust-rand-chacha-0.3)
("rust-rayon" ,rust-rayon-1)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 299a2d1443..9d9781683b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm>
-;;; Copyright @ 2021 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;;
;;; This file is part of GNU Guix.
@@ -3873,17 +3873,17 @@ c6e7d37. However, this package works only up to 128 bytes.")
(description "This library provides for encoding and decoding any base.")
(license license:expat)))
-(define-public rust-beef-0.4
+(define-public rust-beef-0.5
(package
(name "rust-beef")
- (version "0.4.4")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "beef" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0hva1rmbx2a54q4ncs8i5lbr26669wyvnya1sh3x22r0cxm64jj7"))))
+ (base32 "02blba0j192l0374kqwn8rjsc8aifj43xi26v142ijpjim1f4dk7"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -6288,18 +6288,37 @@ spreadsheet file.")
(base32 "1bx2pj0ysmyd1ryd5s43m3c7n5k067x1aciqiiyg4kjswlcs6xjf"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-futures" ,rust-futures-0.1)
- ("rust-quickcheck" ,rust-quickcheck-0.2))
+ `(#:cargo-inputs
+ (("rust-quickcheck" ,rust-quickcheck-0.9))
#:cargo-development-inputs
- (("rust-quickcheck" ,rust-quickcheck-0.2))))
+ (("rust-quickcheck" ,rust-quickcheck-0.9))))
(home-page "https://github.com/capnproto/capnproto-rust")
(synopsis "Runtime library for Cap'n Proto data encoding")
(description "This package provides a runtime library for Cap'n Proto data
encoding.")
(license license:expat)))
+(define-public rust-capnp-0.10
+ (package
+ (inherit rust-capnp-0.13)
+ (name "rust-capnp")
+ (version "0.10.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "capnp" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17hsnmlcrzksjjpwpz51y8g36xzq8042i2cwns0lsg7rixfw2rxq"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-futures" ,rust-futures-0.1)
+ ("rust-quickcheck" ,rust-quickcheck-0.2))
+ #:cargo-development-inputs
+ (("rust-quickcheck" ,rust-quickcheck-0.2))))))
+
(define-public rust-capnp-futures-0.13
(package
(name "rust-capnp-futures")
@@ -6313,19 +6332,40 @@ encoding.")
(base32 "18q93ncbfcnjq7zhvy9idnifypmi2qcp775q7454y3r4lvvdcyyw"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-capnp" ,rust-capnp-0.13)
- ("rust-futures" ,rust-futures-0.1))
+ ("rust-futures" ,rust-futures-0.3))
#:cargo-development-inputs
(("rust-capnp" ,rust-capnp-0.13)
- ("rust-quickcheck" ,rust-quickcheck-0.2))))
+ ("rust-quickcheck" ,rust-quickcheck-0.9))))
(home-page "https://github.com/capnproto/capnproto-rust")
(synopsis "Async serialization for Cap'n Proto messages")
(description "This package provides async serialization for Cap'n Proto
messages.")
(license license:expat)))
+(define-public rust-capnp-futures-0.10
+ (package
+ (inherit rust-capnp-futures-0.13)
+ (name "rust-capnp-futures")
+ (version "0.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "capnp-futures" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0qdiqkp9mh4acpa0dqhpzv2gwf949rj3m85mgwl1rih6gvgbh1zs"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-capnp" ,rust-capnp-0.10)
+ ("rust-futures" ,rust-futures-0.1))
+ #:cargo-development-inputs
+ (("rust-capnp" ,rust-capnp-0.10)
+ ("rust-quickcheck" ,rust-quickcheck-0.2))))))
+
(define-public rust-capnp-rpc-0.13
(package
(name "rust-capnp-rpc")
@@ -6341,11 +6381,10 @@ messages.")
(native-inputs
`(("capnproto" ,capnproto)))
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-capnp" ,rust-capnp-0.13)
("rust-capnp-futures" ,rust-capnp-futures-0.13)
- ("rust-futures" ,rust-futures-0.1))
+ ("rust-futures" ,rust-futures-0.3))
#:cargo-development-inputs
(("rust-capnpc" ,rust-capnpc-0.13))))
(home-page "https://github.com/capnproto/capnproto-rust")
@@ -6354,6 +6393,27 @@ messages.")
remote procedure call protocol")
(license license:expat)))
+(define-public rust-capnp-rpc-0.10
+ (package
+ (inherit rust-capnp-rpc-0.13)
+ (name "rust-capnp-rpc")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "capnp-rpc" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1j6xg7yays1hlm1045wviyn1642yvvi2p4kba26yk07a0kafr3jn"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-capnp" ,rust-capnp-0.10)
+ ("rust-capnp-futures" ,rust-capnp-futures-0.10)
+ ("rust-capnpc" ,rust-capnpc-0.10)
+ ("rust-futures" ,rust-futures-0.1))))))
+
(define-public rust-capnpc-0.13
(package
(name "rust-capnpc")
@@ -6374,6 +6434,24 @@ remote procedure call protocol")
(description "Cap'n Proto code generation")
(license license:expat)))
+(define-public rust-capnpc-0.10
+ (package
+ (inherit rust-capnpc-0.13)
+ (name "rust-capnpc")
+ (version "0.10.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "capnpc" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1zxbmdkr0xfzkfq9p8zn7pp9jjq275qhr8fh9a0cc0ab37yfvbyj"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-capnp" ,rust-capnp-0.10))))))
+
(define-public rust-caps-0.3
(package
(name "rust-caps")
@@ -12899,6 +12977,26 @@ Standard.")
"Streaming transcoding for encoding_rs.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-endian-type-0.1
+ (package
+ (name "rust-endian-type")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "endian-type" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0bbh88zaig1jfqrm7w3gx0pz81kw2jakk3055vbgapw3dmk08ky3"))))
+ (build-system cargo-build-system)
+ (arguments `(#:skip-build? #t))
+ (home-page "https://github.com/Lolirofle/endian-type")
+ (synopsis "Type safe wrappers for types with a defined byte order")
+ (description
+ "This crates provides type safe wrappers for types with a defined byte
+order.")
+ (license license:expat)))
+
(define-public rust-enum-as-inner-0.3
(package
(name "rust-enum-as-inner")
@@ -12993,14 +13091,14 @@ convert enum to u8 slice ref.")
(define-public rust-env-logger-0.8
(package
(name "rust-env-logger")
- (version "0.8.2")
+ (version "0.8.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "env-logger" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "07k6m6igz02g2b1v7nims7vd8azwxrav43xl14a6rjmxnikcnvpj"))))
+ (base32 "0gwx1pvbv99fj9wpicknyv4p2vj997xpva8ac5dg03m35q0jlf8p"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -13871,7 +13969,7 @@ supported in purely NFA-based implementations.")
(synopsis "Find the physical space used by a file")
(description
"@code{filesize} abstracts platform-specific methods of determining the
-real space used by files, taking into account filesystem compression and
+real space used by files, taking into account file system compression and
sparse files.")
(license license:expat)))
@@ -17173,6 +17271,29 @@ highlighting for a large number of languages, git integration, and automatic
paging.")
(license (list license:expat license:asl2.0))))
+(define-public rust-hamcrest2-0.3
+ (package
+ (name "rust-hamcrest2")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "hamcrest2" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0x8hx7jyzz2bl0wf6nir62imd26yhp6qcr7zf76cjpg05p33gy29"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-num" ,rust-num-0.2)
+ ("rust-regex" ,rust-regex-1))))
+ (home-page "https://github.com/Valloric/hamcrest2-rust")
+ (synopsis "Rust port of the Hamcrest testing library")
+ (description
+ "This package provides a port of the Hamcrest testing library.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-handlebars-2
(package
(name "rust-handlebars")
@@ -17959,8 +18080,8 @@ Hash-based Message Authentication Code}.")
(home-page "https://github.com/pantsman0/rust-hmac-sha1")
(synopsis "Minimal implementation of HMAC-SHA1 in Rust")
(description
- "This package is a pure Rust implementation of the Hash-based Message
-Authentication Code Algoritm (HMAC) for SHA1.")
+ "This package is a pure Rust implementation of the @acronym{HMAC,
+Hash-based Message Authentication Code algorithm} for SHA1.")
(license license:bsd-3)))
(define-public rust-hostname-0.3
@@ -22050,11 +22171,16 @@ by inspecting the system for user preference.")
(base32 "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
+ `(#:tests? #f ; Not all test files included in release.
#:cargo-inputs
- (("rust-cfg-if" ,rust-cfg-if-0.1)
+ (("rust-cfg-if" ,rust-cfg-if-1)
("rust-serde" ,rust-serde-1)
("rust-sval" ,rust-sval-1)
+ ("rust-value-bag" ,rust-value-bag-1))
+ #:cargo-development-inputs
+ (("rust-serde" ,rust-serde-1)
+ ("rust-serde-test" ,rust-serde-test-1)
+ ("rust-sval" ,rust-sval-1)
("rust-value-bag" ,rust-value-bag-1))))
(home-page "https://github.com/rust-lang/log")
(synopsis "Lightweight logging facade for Rust")
@@ -22224,10 +22350,10 @@ explosion.")
image together with its neighboring pixels.")
(license license:expat)))
-(define-public rust-lopdf-0.25
+(define-public rust-lopdf-0.26
(package
(name "rust-lopdf")
- (version "0.25.0")
+ (version "0.26.0")
(source
(origin
(method url-fetch)
@@ -22235,8 +22361,7 @@ image together with its neighboring pixels.")
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "1yb4yj1a8a88w78hz9msg65xbkyx5n4d9gm1xb2c67zaj1xvyw1i"))))
+ (base32 "1wqnmibs8qzi6pr3ig4h3sg6bfkkgyv4ngdng81x069725r056ml"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -22252,7 +22377,7 @@ image together with its neighboring pixels.")
("rust-nom" ,rust-nom-5)
("rust-pom" ,rust-pom-3)
("rust-rayon" ,rust-rayon-1)
- ("rust-time" ,rust-time-0.1))))
+ ("rust-time" ,rust-time-0.2))))
(home-page "https://github.com/J-F-Liu/lopdf")
(synopsis "Rust library for PDF document manipulation")
(description
@@ -24759,6 +24884,27 @@ cryptographic library.")
release (fork of debug_unreachable)")
(license license:expat)))
+(define-public rust-nibble-vec-0.1
+ (package
+ (name "rust-nibble-vec")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "nibble_vec" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0hsdp3s724s30hkqz74ky6sqnadhp2xwcj1n1hzy4vzkz4yxi9bp"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-smallvec" ,rust-smallvec-1))))
+ (home-page "https://github.com/michaelsproul/rust_nibble_vec")
+ (synopsis "Vector data-structure for half-byte values")
+ (description "NibbleVec is a data structure for storing a sequence of half-bytes.")
+ (license license:expat)))
+
(define-public rust-nickel-0.11
(package
(name "rust-nickel")
@@ -24824,8 +24970,36 @@ selectors. You can use the jQuery-like syntax to query and manipulate an HTML
document quickly.")
(license (list license:expat license:asl2.0))))
+(define-public rust-nix-0.20
+ (package
+ (name "rust-nix")
+ (version "0.20.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "nix" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "12n1syfd967hblrcrrqk63a4s1h4hsybfqwblh71rihvv8cli6zs"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-bitflags" ,rust-bitflags-1)
+ ("rust-cc" ,rust-cc-1)
+ ("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/nix-rust/nix")
+ (synopsis "Rust friendly bindings to *nix APIs")
+ (description
+ "Nix seeks to provide friendly bindings to various *nix platform APIs.
+The goal is to not provide a 100% unified interface, but to unify what can be
+while still providing platform specific APIs.")
+ (license license:expat)))
+
(define-public rust-nix-0.19
(package
+ (inherit rust-nix-0.20)
(name "rust-nix")
(version "0.19.1")
(source
@@ -24835,7 +25009,6 @@ document quickly.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1wk1pmaf9pv84sc4jf19gm1as2yq3ydwcx0n5nc1bpsgzq6bmk5j"))))
- (build-system cargo-build-system)
(arguments
`(#:tests? #f ; test suite hangs
#:cargo-inputs
@@ -24850,14 +25023,7 @@ document quickly.")
("rust-rand" ,rust-rand-0.6)
("rust-semver" ,rust-semver-0.9)
("rust-sysctl" ,rust-sysctl-0.1)
- ("rust-tempfile" ,rust-tempfile-3))))
- (home-page "https://github.com/nix-rust/nix")
- (synopsis "Rust friendly bindings to *nix APIs")
- (description
- "Nix seeks to provide friendly bindings to various *nix platform APIs.
-The goal is to not provide a 100% unified interface, but to unify what can be
-while still providing platform specific APIs.")
- (license license:expat)))
+ ("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-nix-0.18
(package
@@ -30957,6 +31123,31 @@ that must be shared-mutable, but merely may use atomic instructions to do so.")
radix.")
(license license:asl2.0)))
+(define-public rust-radix-trie-0.2
+ (package
+ (name "rust-radix-trie")
+ (version "0.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "radix_trie" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1zaq3im5ss03w91ij11cj97vvzc5y1f3064d9pi2ysnwziww2sf0"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-endian-type" ,rust-endian-type-0.1)
+ ("rust-nibble-vec" ,rust-nibble-vec-0.1)
+ ("rust-serde" ,rust-serde-1))))
+ (home-page "https://github.com/michaelsproul/rust_radix_trie")
+ (synopsis "Generic radix trie data-structure")
+ (description
+ "This is a Radix Trie implementation in Rust, building on the lessons
+learnt from TrieMap and Sequence Trie.")
+ (license license:expat)))
+
(define-public rust-rand-0.8
(package
(name "rust-rand")
@@ -31177,14 +31368,14 @@ useful types and distributions, and some randomness-related algorithms.")
(define-public rust-rand-core-0.6
(package
(name "rust-rand-core")
- (version "0.6.1")
+ (version "0.6.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "rand_core" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1rfjrcyaj7blz2nawv2pypm5kqc59p80n6f5pg691399iggxf9n0"))))
+ (base32 "1rvas1afjvd2827b8mf2ilg78h3ksl9npkrdds3wbw9x33mndkrl"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -32996,14 +33187,14 @@ MessagePack format.")
(define-public rust-rocket-0.4
(package
(name "rust-rocket")
- (version "0.4.6")
+ (version "0.4.7")
(source
(origin
(method url-fetch)
(uri (crate-uri "rocket" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1sb6i0y65hq4wy4awa14diyv19wcd1sii2mfjdlcwam3mbbfbisg"))))
+ (base32 "04ybnhjw92zaan92lsmx6mkhqc9cpsg3885svb3wzyj39pyzvsvz"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -33033,14 +33224,14 @@ and speed.")
(define-public rust-rocket-codegen-0.4
(package
(name "rust-rocket-codegen")
- (version "0.4.6")
+ (version "0.4.7")
(source
(origin
(method url-fetch)
(uri (crate-uri "rocket_codegen" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0n4k00fwwabvkjvnl62gwdc5v7rsg6bnmmwwiwm5bzpmdnqm94ai"))))
+ (base32 "18s2dll8c4sd26s8cfr6cizj5z55xwnk6r6x7b2wvcf8n9ajrb6f"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -33061,14 +33252,14 @@ and speed.")
(define-public rust-rocket-http-0.4
(package
(name "rust-rocket-http")
- (version "0.4.6")
+ (version "0.4.7")
(source
(origin
(method url-fetch)
(uri (crate-uri "rocket_http" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0msjjclqcgh8kpa54b4kv6zbybambc9kmkfm1q5adiq3fbg8gl59"))))
+ (base32 "0ga98nbcga8amg4xhrfkn1wljnqx9h0vv7mnay9g66vsxl042dnf"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -33544,6 +33735,44 @@ please consider using @code{async-std} or @code{tokio}.")
(native-inputs
`(("pkg-config" ,pkg-config)))))
+(define-public rust-rusqlite-0.19
+ (package
+ (inherit rust-rusqlite-0.23)
+ (name "rust-rusqlite")
+ (version "0.19.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rusqlite" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "19xq7s0kzhlljm3hqx0vidr91ia8hl49r4m5gwdj9dyywgks5g3f"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-bitflags" ,rust-bitflags-1)
+ ("rust-byteorder" ,rust-byteorder-1)
+ ("rust-chrono" ,rust-chrono-0.4)
+ ("rust-csv" ,rust-csv-1)
+ ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+ ("rust-fallible-streaming-iterator"
+ ,rust-fallible-streaming-iterator-0.1)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.15)
+ ("rust-lru-cache" ,rust-lru-cache-0.1)
+ ("rust-memchr" ,rust-memchr-2)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-time" ,rust-time-0.1)
+ ("rust-url" ,rust-url-1)
+ ("rust-uuid" ,rust-uuid-0.7))
+ #:cargo-development-inputs
+ (("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-tempdir" ,rust-tempdir-0.3)
+ ("rust-unicase" ,rust-unicase-2)
+ ("rust-uuid" ,rust-uuid-0.7))))
+ (inputs
+ `(("sqlite" ,sqlite)))))
+
(define-public rust-rust-argon2-0.7
(package
(name "rust-rust-argon2")
@@ -35020,17 +35249,17 @@ sub-processes using a fork-like interface.")
("rust-tempfile" ,rust-tempfile-3)
("rust-wait-timeout" ,rust-wait-timeout-0.2))))))
-(define-public rust-rustyline-7
+(define-public rust-rustyline-8
(package
(name "rust-rustyline")
- (version "7.1.0")
+ (version "8.0.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "rustyline" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1v1czmy3ir7d06xldp8bg94l97hrm15hcgdxxkq3cwbizhdk09w2"))))
+ (base32 "14z8hyx33ygyhm5ihcl9n2g646dawlw3ajavnbbb3vnizjbvbqdr"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -35042,19 +35271,51 @@ sub-processes using a fork-like interface.")
("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-memchr" ,rust-memchr-2)
- ("rust-nix" ,rust-nix-0.19)
+ ("rust-nix" ,rust-nix-0.20)
+ ("rust-radix-trie" ,rust-radix-trie-0.2)
("rust-scopeguard" ,rust-scopeguard-1)
+ ("rust-smallvec" ,rust-smallvec-1)
("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-utf8parse" ,rust-utf8parse-0.2)
("rust-winapi" ,rust-winapi-0.3)
- ("skim" ,skim-0.7))))
+ ("skim" ,skim))))
(home-page "https://github.com/kkawakam/rustyline")
(synopsis "Readline implementation in Rust")
(description
- "Rustyline, a readline implementation based on the linenoise package.")
+ "Rustyline is a readline implementation based on the linenoise package.")
(license license:expat)))
+(define-public rust-rustyline-7
+ (package
+ (inherit rust-rustyline-8)
+ (name "rust-rustyline")
+ (version "7.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rustyline" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1v1czmy3ir7d06xldp8bg94l97hrm15hcgdxxkq3cwbizhdk09w2"))))
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-bitflags" ,rust-bitflags-1)
+ ("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-dirs-next" ,rust-dirs-next-2)
+ ("rust-fs2" ,rust-fs2-0.4)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-memchr" ,rust-memchr-2)
+ ("rust-nix" ,rust-nix-0.19)
+ ("rust-scopeguard" ,rust-scopeguard-1)
+ ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-utf8parse" ,rust-utf8parse-0.2)
+ ("rust-winapi" ,rust-winapi-0.3)
+ ("skim" ,skim-0.7))))))
+
(define-public rust-rustyline-6
(package
(inherit rust-rustyline-7)
@@ -35541,8 +35802,9 @@ with one of the implemented strategies.")
(("rust-fs2" ,rust-fs2-0.4))))
(home-page "https://github.com/dtolnay/scratch")
(synopsis "Compile-time temporary directory")
- (description "This crate exposes a compile-time temporary directory sharable
-by multiple crates in a build graph and erased by @code{cargo clean}.")
+ (description "This crate exposes a compile-time temporary directory
+shareable by multiple crates in a build graph and erased by @code{cargo
+clean}.")
(license (list license:expat license:asl2.0))))
(define-public rust-scrypt-0.3
@@ -38758,7 +39020,7 @@ I/O programming.")
(define-public rust-smallvec-1
(package
(name "rust-smallvec")
- (version "1.4.1")
+ (version "1.6.1")
(source
(origin
(method url-fetch)
@@ -38767,7 +39029,7 @@ I/O programming.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0gqgmbfj8228lc55xxg331flizzwq6hfyy6gw4j2y6hni6fwnmrp"))))
+ "0kk08axr0ybfbjzk65a41k84mb6sfhyajmfndaka9igkx34kf3zy"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -40468,14 +40730,14 @@ browsers.")
(define-public rust-syn-1
(package
(name "rust-syn")
- (version "1.0.60")
+ (version "1.0.64")
(source
(origin
(method url-fetch)
(uri (crate-uri "syn" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1080gw6mlja7yl26crya3k403wjdp7v3wx9mxcmpcnlar9z5j067"))))
+ (base32 "0vsx3448kyym7s5kybrl0qixgya33gzjxaidahya00k1jzlx3n9z"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -42185,15 +42447,14 @@ fixed set of worker threads.")
(define-public rust-time-0.2
(package
(name "rust-time")
- (version "0.2.19")
+ (version "0.2.23")
(source
(origin
(method url-fetch)
(uri (crate-uri "time" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "18bhl0nmfyd8drksskw830ybw9pr47pisfn4245wabqijgys3hc0"))))
+ (base32 "12z95k0005rmyn9pf9v4hq80khsns7y5wfydnjr5jpci2yiyxnmw"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -45709,14 +45970,14 @@ or dashboards.")
(define-public rust-tuikit-0.4
(package
(name "rust-tuikit")
- (version "0.4.3")
+ (version "0.4.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "tuikit" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1hf6pgclb2lj08jzb45q0mpjq2a9zw27h7kwyi5cibjz5skd054b"))))
+ (base32 "07x5218f9da6cbvmwpfyfymqyl7nksvkxxycxcrll9ajazy8qqlc"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -47453,6 +47714,20 @@ updated when the crate version changes.")
"This package provides a parser for implementing terminal emulators.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-vte-0.9
+ (package
+ (inherit rust-vte-0.10)
+ (name "rust-vte")
+ (version "0.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "vte" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0yjl1jzlrk617kwk445mg9zmc71nxvwghhgsxfqhmm9401hlaxvf"))))))
+
(define-public rust-vte-0.3
(package
(inherit rust-vte-0.10)
@@ -49852,7 +50127,7 @@ configuration file and/or environment variables.")
(define-public skim
(package
(name "skim")
- (version "0.9.3")
+ (version "0.9.4")
(source
(origin
(method url-fetch)
@@ -49861,30 +50136,31 @@ configuration file and/or environment variables.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0qir6m4cpd63bnp0lqq4si1ccgd6rbv4m1662v771fkyynrdrj0s"))))
+ "1d5v9vq8frkdjm7bnw3455h6xf3c277d51il2qasn7r20kwik7ab"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
- (("rust-beef" ,rust-beef-0.4)
+ (("rust-atty-0.2" ,rust-atty-0.2)
+ ("rust-beef" ,rust-beef-0.5)
("rust-bitflags" ,rust-bitflags-1)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-2)
- ("rust-crossbeam" ,rust-crossbeam-0.7)
+ ("rust-crossbeam" ,rust-crossbeam-0.8)
("rust-defer-drop" ,rust-defer-drop-1)
("rust-derive-builder" ,rust-derive-builder-0.9)
- ("rust-env-logger" ,rust-env-logger-0.6)
+ ("rust-env-logger" ,rust-env-logger-0.8)
("rust-fuzzy-matcher" ,rust-fuzzy-matcher-0.3)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
- ("rust-nix" ,rust-nix-0.14)
+ ("rust-nix" ,rust-nix-0.19)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-shlex" ,rust-shlex-0.1)
- ("rust-time" ,rust-time-0.1)
+ ("rust-time" ,rust-time-0.2)
("rust-timer" ,rust-timer-0.2)
("rust-tuikit" ,rust-tuikit-0.4)
("rust-unicode-width" ,rust-unicode-width-0.1)
- ("rust-vte" ,rust-vte-0.3))
+ ("rust-vte" ,rust-vte-0.9))
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-extras
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index bea2d69876..180594509b 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -153,7 +153,7 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
"--disable-decimal-float" ;would need libc
"--disable-libcilkrts"
- ,@(if (equal? "powerpc64le-linux-gnu" target)
+ ,@(if (string-prefix? "powerpc64le-" target)
;; On POWER9 (little endian) glibc needs
;; the 128-bit long double type.
'("--with-long-double-128")
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 0000e7fbf2..57d417de80 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -47,9 +47,11 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages cryptsetup)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages image)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libbsd)
@@ -88,6 +90,57 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+(define-public libdecaf
+ (package
+ (name "libdecaf")
+ (version "1.0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.code.sf.net/p/ed448goldilocks/code")
+ (commit
+ (string-append "v" version))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "1ajgmyvc6a4m1h2hg1g4wz7ibx10x1xys9m6ancnmmf1f2srlfly"))))
+ (build-system cmake-build-system)
+ (outputs '("out" "python" "doc"))
+ (arguments
+ `(#:configure-flags '("-DENABLE_STATIC=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-python-binding
+ (lambda _
+ (substitute* "python/setup.py"
+ (("gmake")
+ "make")
+ (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
+ "'..', '..', 'build', 'src', 'libdecaf.so'"))))
+ (add-after 'install 'install-python-binding
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion "../source/python"
+ (invoke "python" "setup.py" "install"
+ (string-append "--prefix=" (assoc-ref outputs "python"))
+ "--root=/"))))
+ (add-after 'install-python-binding 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "make" "doc")
+ (let* ((doc (assoc-ref outputs "doc"))
+ (dest (string-append doc "/share/doc")))
+ (copy-recursively "doc" dest)))))))
+ (native-inputs
+ `(("dot" ,graphviz)
+ ("doxygen" ,doxygen)
+ ("python" ,python-wrapper)))
+ (synopsis "Decaf Elliptic Curve Library")
+ (description "The libdecaf library is an implementation of elliptic curve
+cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
+Ed448-Goldilocks and Curve448, using the Decaf encoding.")
+ (home-page "http://ed448goldilocks.sourceforge.net/")
+ (license (list license:expat ;library
+ license:bsd-2)))) ;python bindings
+
(define-public libsodium
(package
(name "libsodium")
@@ -720,15 +773,18 @@ data on your platform, so the seed itself will be as random as possible.
(define-public crypto++
(package
(name "crypto++")
- (version "8.4.0")
+ (version "8.5.0")
(source (origin
- (method url-fetch/zipbomb)
- (uri (string-append "https://cryptopp.com/cryptopp"
- (string-join (string-split version #\.) "")
- ".zip"))
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/weidai11/cryptopp")
+ (commit
+ (string-append "CRYPTOPP_"
+ (string-replace-substring version "." "_")))))
(sha256
(base32
- "16kvfm11xv7j9a3yykzysjgw38a9b7lnc5n5x5h82g395k6ybxf0"))))
+ "0in7rlazq91vfi519g9wr7bh87hii47cimxv7fmj0f88vhjaidq3"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm
index a12ac93b25..1b3da5389c 100644
--- a/gnu/packages/cryptsetup.scm
+++ b/gnu/packages/cryptsetup.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,7 +35,7 @@
(define-public cryptsetup
(package
(name "cryptsetup")
- (version "2.3.4")
+ (version "2.3.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/cryptsetup/v"
@@ -43,7 +43,7 @@
"/cryptsetup-" version ".tar.xz"))
(sha256
(base32
- "0wrpz2fzbsszmsgxxbssxjgylpyiindh24z8g13m2fxmjsxyw5lx"))))
+ "1hbhzlv4vbib1da20vnrqaikhxi7ljnchbzrv8v2a4sd8ipr9nff"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index b18273109e..5213563a6a 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -749,14 +749,15 @@ printer/driver specific, but spooler-independent PPD file.")
(define-public foo2zjs
(package
(name "foo2zjs")
- (version "20200610")
- (source (origin
- (method url-fetch)
- ;; XXX: This is an unversioned URL!
- (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
- (sha256
- (base32
- "11ddx6wf8b5ksl4fqw6fnyz9m3y470lryyrskkya2bsch2bvj9lg"))))
+ (version "20200610.1")
+ (source
+ (origin
+ (method url-fetch)
+ ;; The upstream tarball is unversioned: use a stable snapshot.
+ (uri (string-append "https://web.archive.org/web/20210224094943if_/"
+ "http://foo2zjs.rkkda.com/foo2zjs.tar.gz"))
+ (sha256
+ (base32 "03ncif50n7ck7drggqxbc7w0kgzdb90ha0dbvqk98ky8lw3k76xd"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 730676875c..94dc51cfc5 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -62,6 +62,7 @@
(base32
"12w7gskrglg6qrmp822j37fmbr0icrcxv7rib1fy5xiw80n5z7cr"))
(patches (search-patches "curl-use-ssl-cert-env.patch"))))
+ (replacement curl/fixed)
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;1.2 MiB of man3 pages
@@ -151,6 +152,20 @@ tunneling, and so on.")
(name "curl-minimal")
(inputs (alist-delete "openldap" (package-inputs curl))))))
+(define-public curl/fixed
+ (package
+ (inherit curl)
+ (version "7.76.0")
+ (source
+ (origin
+ (inherit (package-source curl))
+ (uri (string-append "https://curl.haxx.se/download/curl-"
+ version ".tar.xz"))
+ (patches (search-patches "curl-7.76-use-ssl-cert-env.patch"))
+ (sha256
+ (base32
+ "1j2g04m6als6hmqzvddv84c31m0x90bfgyz3bjrwdkarbkby40k3"))))))
+
(define-public kurly
(package
(name "kurly")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 8be83f5cbe..8c657e4113 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -48,6 +48,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -734,6 +735,7 @@ Language.")
(append (find-files "extra/wolfssl")
(find-files "zlib")))
#t))))
+ (replacement mariadb/fixed)
(build-system cmake-build-system)
(outputs '("out" "lib" "dev"))
(arguments
@@ -969,6 +971,13 @@ Language.")
as a drop-in replacement of MySQL.")
(license license:gpl2)))
+(define mariadb/fixed
+ (package
+ (inherit mariadb)
+ (source (origin
+ (inherit (package-source mariadb))
+ (patches (search-patches "mariadb-CVE-2021-27928.patch"))))))
+
(define-public mariadb-connector-c
(package
(name "mariadb-connector-c")
@@ -994,6 +1003,31 @@ as a drop-in replacement of MySQL.")
developed in C/C++ to MariaDB and MySQL databases.")
(license license:lgpl2.1+)))
+(define-public galera
+ (package
+ (name "galera")
+ (version "26.4.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (commit "bac8171266cb982fe013ce496d78085438c6f23e")
+ (url "https://github.com/codership/galera")
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0h7s670pcasq8wzprhyxqfca2cghi62b8xz2kikb2a86wd453qil"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("check" ,check)
+ ("boost" ,boost)
+ ("openssl" ,openssl)))
+ (home-page "https://github.com/codership/galera/")
+ (synopsis "Extension to the MariaDB database server")
+ (description
+ "Galera is a wsrep-provider that is used with MariaDB for load-balancing
+and high-availability (HA).")
+ (license license:gpl2))) ;'COPYING' says "version 2" only
+
;; Don't forget to update the other postgresql packages when upgrading this one.
(define-public postgresql-13
(package
@@ -2461,7 +2495,10 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
(lambda _
(substitute* "setup.py"
(("pypika>=0\\.44\\.0,<0\\.45\\.0") "pypika")
- (("aiosqlite>=0.16.0,<0.17.0") "aiosqlite"))
+ (("aiosqlite>=0.16.0,<0.17.0") "aiosqlite")
+ (("pytz>=2020\\.4,<2021\\.0") "pytz")
+ ;; Not required, since ciso8601 is used.
+ (("'iso8601>=0\\.1\\.13,<0\\.2\\.0',") ""))
#t)))))
(native-inputs
`(("python-asynctest" ,python-asynctest)
@@ -2470,6 +2507,7 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
`(("python-aiosqlite" ,python-aiosqlite)
("python-pypika" ,python-pypika)
("python-ciso8601" ,python-ciso8601)
+ ("python-pytz" ,python-pytz)
("python-typing-extensions"
,python-typing-extensions)))
(home-page
@@ -3353,9 +3391,6 @@ processing them in the background with workers. It is backed by Redis and it
is designed to have a low barrier to entry.")
(license license:bsd-2)))
-(define-public python2-rq
- (package-with-python2 python-rq))
-
(define-public python-rq-scheduler
(package
(name "python-rq-scheduler")
@@ -3777,7 +3812,8 @@ The drivers officially supported by @code{libdbi} are:
(base32
"14x2gjblkgpflv75wl144cyjp1sis5rbxnr9r2gj3yw16v2av0bp"))))
(build-system cmake-build-system)
- (inputs
+ (propagated-inputs
+ ;; Headers of soci has include-references to headers of these inputs.
`(("firebird" ,firebird)
("postgresql" ,postgresql)
("sqlite" ,sqlite)
diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
index 82647c0c28..2dd51efb8c 100644
--- a/gnu/packages/dbm.scm
+++ b/gnu/packages/dbm.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -74,6 +75,11 @@
'("--build=aarch64-unknown-linux-gnu")
'())
+ ;; Bdb doesn't recognize powerpc64le as an architecture.
+ ,@(if (string=? "powerpc64le-linux" (%current-system))
+ '("--build=powerpc64le-unknown-linux-gnu")
+ '())
+
,@(if (%current-target-system) ; cross building
'((string-append "--host=" target))
'())
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index b3a000e6e3..3a29886b0e 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
-;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
@@ -179,12 +179,13 @@ tools that process C/C++ code.")
("aarch64-linux" "aarch64")
("armhf-linux" "arm")
("mips64el-linux" "mips64el")
+ ("powerpc-linux" "ppc")
;; Prevent errors when querying this package on unsupported
;; platforms, e.g. when running "guix package --search="
(_ "UNSUPPORTED"))))
(package
(name "american-fuzzy-lop")
- (version "2.56b") ;It seems all releases have the 'b' suffix
+ (version "2.57b") ;It seems all releases have the 'b' suffix
(source
(origin
(method git-fetch)
@@ -192,7 +193,7 @@ tools that process C/C++ code.")
(url "https://github.com/google/AFL")
(commit (string-append "v" version))))
(sha256
- (base32 "1q1g59gkm48aa4cg9h70jx4i2gapmypgp5rzs156b2avd95vwkn1"))
+ (base32 "0ks0s8iizp7mpc9mlpv126rsny0dkljfsw68689g9jiisjz2z530"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
@@ -254,6 +255,7 @@ down the road.")
("aarch64-linux" "aarch64")
("armhf-linux" "arm")
("mips64el-linux" "mips64el")
+ ("powerpc-linux" "ppc")
;; Prevent errors when querying this package on unsupported
;; platforms, e.g. when running "guix package --search="
(_ "UNSUPPORTED"))))
@@ -269,7 +271,8 @@ down the road.")
(base32
"17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw"))
(patches
- (search-patches "qemu-glibc-2.27.patch"))))
+ (search-patches "qemu-glibc-2.27.patch"
+ "qemu-glibc-2.30.patch"))))
(build-system gnu-build-system)
(arguments
`(;; Running tests in parallel can occasionally lead to failures, like:
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index a2490330e0..d5f782e68d 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -72,7 +72,7 @@
(define-public diffoscope
(package
(name "diffoscope")
- (version "168")
+ (version "172")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -81,7 +81,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "18rs4jfx50d7vkaqcc46r7pccgizp0is56267sq13vbfvz758dhh"))))
+ "1lglxn9h8s7kvmfd2rsyhrcv3y8a4bppbxr9nf2sgnlbdln1vwqq"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -121,13 +121,6 @@
;; This requires /sbin to be in $PATH.
(delete-file "tests/test_tools.py")
#t))
- (add-before 'check 'skip-dex-test-with-missing-procyon
- (lambda _
- ;; This test actually requires procyon decompiler
- (substitute* "tests/comparators/test_dex.py"
- (("skip_unless_tools_exist.\"enjarify\", \"zipinfo\", \"javap\"")
- "skip_unless_tools_exist(\"enjarify\", \"zipinfo\", \"javap\", \"procyon\""))
- #t))
(add-after 'install 'install-man-page
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index ed112f2ec2..bf0897b083 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
@@ -302,17 +302,69 @@ fdisk. fdisk is used for the creation and manipulation of disk partition
tables, and it understands a variety of different formats.")
(license license:gpl3+)))
+(define-public gpart
+ ;; The latest (0.3) release is from 2015 and is missing a crash fix.
+ (let ((commit "ec03350a01ad69708b5a3e2d47b8e002b0eba6c9")
+ (revision "0"))
+ (package
+ (name "gpart")
+ (version (git-version "0.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/baruch/gpart")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1dassswliaiwhhmx7yz540yyxgk53fvg672dbvgc5q0v6cqrh5jx"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/"
+ ,name "-" ,version))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-premature-configuration
+ (lambda _
+ (substitute* "autogen.sh"
+ (("\\./configure") "")))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (home-page "https://github.com/baruch/gpart")
+ (synopsis "Guess and recover PC-style partition tables")
+ (description
+ "Gpart tries to guess the partitions on a PC-style, MBR-partitioned disk
+after they have been inadvertently deleted or the primary partition table at
+sector 0 damaged. In both cases, the contents of these partitions still exist
+on the disk but the operating system cannot access them.
+
+Gpart ignores the partition table and scans each sector of the device or image
+file for several known file system and partition types. Only partitions which
+have been formatted in some way can be recognized. Several file system guessing
+modules are built in; more can be written and loaded at run time.
+
+The guessed table can be restored manually, for example with @command{fdisk},
+written to a file, or---if you firmly believe it's entirely correct---directly
+to disk.
+
+It should be stressed that gpart does a very heuristic job. It can easily be
+right in its guesswork but it can also be terribly wrong. Never believe its
+output without any plausibility checks.")
+ (license license:gpl2+))))
+
(define-public gptfdisk
(package
(name "gptfdisk")
- (version "1.0.6")
+ (version "1.0.7")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gptfdisk/gptfdisk/"
version "/gptfdisk-" version ".tar.gz"))
(sha256
- (base32 "1a4c2ss6n2s6x8v11h79jykh96y46apd6i838ka0ngx58gb53ifx"))))
+ (base32 "1h1871gwlq05gdc2wym98ghfmq6pn5lh8g5cqy3r49svz2vh8h3m"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gettext-minimal)
@@ -363,6 +415,8 @@ scheme.")
(sha256
(base32 "0qqh38izl5ppap9a5izf3hijh94k65s3zbfkczd4b7x04syqwlyf"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list (string-append "CXX=" ,(cxx-for-target)))))
(home-page "https://www.gnu.org/software/ddrescue/ddrescue.html")
(synopsis "Data recovery utility")
(native-inputs `(("lzip" ,lzip)))
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 66287599f1..dfc3d314ad 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
@@ -47,13 +47,13 @@
(define-public python-django
(package
(name "python-django")
- (version "3.1.7")
+ (version "3.1.8")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
- "19v5lfijnjx18y9ax962z3gnbxy9k8i3w4j0qfzcp85nx4p7kkij"))))
+ "1b0ymqv09b523k3c2jnpb2gjy2fsy6irbfyc2g9x5hjyw41k2fgq"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -132,13 +132,13 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
(define-public python-django-2.2
(package
(inherit python-django)
- (version "2.2.19")
+ (version "2.2.20")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
- "0hysjf8bz4g8xrn2cdx6pmawimpyr6ag2fg3jxsnc1byr3g3bhih"))))
+ "0r3a6gbhwngxl172yy6n0sq5knibl2vxc0wbk1g8licfbzfgjs95"))))
(native-inputs
`(;; XXX: In 2.2 and 3.0, selenium is required for the test suite.
("python-selenium" ,python-selenium)
@@ -346,7 +346,7 @@ size and quality.")
;; For tests.
("python-pytest-xdist" ,python-pytest-xdist)))
(propagated-inputs
- `(("python-pytest" ,python-pytest)))
+ `(("python-pytest" ,python-pytest-6)))
(home-page "https://pytest-django.readthedocs.org/")
(synopsis "Django plugin for py.test")
(description "Pytest-django is a plugin for py.test that provides a set of
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 5d0d9f8396..3cf88febae 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Simon South <simon@simonsouth.net>
+;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -277,7 +278,7 @@ prompt the user with the option to go with insecure DNS only.")
(define-public dnsmasq
(package
(name "dnsmasq")
- (version "2.84")
+ (version "2.85")
(source (origin
(method url-fetch)
(uri (string-append
@@ -285,7 +286,7 @@ prompt the user with the option to go with insecure DNS only.")
version ".tar.xz"))
(sha256
(base32
- "0305a0c3snwqcv77sipyynr55xip1fp2843yn04pc4vk9g39acb0"))))
+ "1yhjwgz8g5qrqvxh6bbmg3443zi8qqjks3q872wyb1zn7n0d765d"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -538,14 +539,14 @@ asynchronous fashion.")
(define-public nsd
(package
(name "nsd")
- (version "4.3.5")
+ (version "4.3.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz"))
(sha256
- (base32 "0wj490rxqs86z8s4lxjwk06ry5pvkdqqyq1cf83z7mxk60zb98kx"))))
+ (base32 "062zwx4k5rgpg2c0b4721ldj36aj8clrxv79mlfw9b15ap7w1rmy"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -812,7 +813,7 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
- (version "3.0.4")
+ (version "3.0.5")
(source
(origin
(method git-fetch)
@@ -821,7 +822,7 @@ Extensions} (DNSSEC).")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1mbjl18zi8yxs7pa3395lqjwdw0agjbfpl32x42i6d9zb8fsblzs"))
+ (base32 "16rgcmgj21w2niyz45d3zjlci9i22gxcvfzqw7g5zwsjdy9610nx"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -942,14 +943,14 @@ synthesis, and on-the-fly re-configuration.")
(define-public knot-resolver
(package
(name "knot-resolver")
- (version "5.3.0")
+ (version "5.3.1")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz"))
(sha256
(base32
- "0gp3ivv3zccz4b6s1wxbsvvlrc837lw2g089l3cbvzsg7z0b4v7v"))))
+ "1j99sz6r1hdvvd8rffx1917r9cyb7z46ivp5934sq57irmxnnkcx"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
@@ -1049,9 +1050,7 @@ LuaJIT, both a resolver library and a daemon.")
("perl-digest-sha1" ,perl-digest-sha1)
("perl-io-socket-ssl" ,perl-io-socket-ssl)))
(arguments
- `(#:modules ((guix build utils)
- (ice-9 match)
- (srfi srfi-26))
+ `(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
@@ -1111,20 +1110,17 @@ attempts the update when it has changed.")
(license license:gpl2+)))
(define-public hnsd
- ;; There have been no releases yet, hence this commit.
- (let ((revision "0")
- (commit "895d89c25d316d18df9d374fe78aae3902bc89fb"))
(package
(name "hnsd")
- (version (git-version "0.0" revision commit))
+ (version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/handshake-org/hnsd")
- (commit commit)))
+ (commit (string-append "v" version))))
(sha256
(base32
- "0704y73sddn24jga9csw4gxyfb3pnrfnk0vdcph84n1h38490l16"))
+ "1kdgff8rf8gmvwz2p758ilbjxpvz4xm6z41pa5353asg6xb853bb"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
@@ -1161,7 +1157,7 @@ attempts the update when it has changed.")
(description
"@command{hnsd} is a @dfn{host name resolver} for the Handshake Naming
System (HNS) peer-to-peer network.")
- (license license:expat))))
+ (license license:expat)))
(define-public libmicrodns
(package
@@ -1287,14 +1283,14 @@ and TCP-capable recursive DNS server for finding domains on the internet.")
(define-public openresolv
(package
(name "openresolv")
- (version "3.10.0")
+ (version "3.12.0")
(source (origin
(method url-fetch)
(uri (string-append "https://roy.marples.name/downloads/openresolv/"
"openresolv-" version ".tar.xz"))
(sha256
(base32
- "01ms6c087la4hk0f0w6n2vpsb7dg4kklah2rqyhz88p0vr9bqy20"))
+ "15qvp5va2yrqpz0ba54clvn8cbc66v4sl7k3bi9ji8jpx040bcs2"))
(patches
(search-patches "openresolv-restartcmd-guix.patch"))))
(build-system gnu-build-system)
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 012e86f6a5..e348fb1a5b 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -33,6 +34,7 @@
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix build-system trivial)
#:use-module (guix build-system python))
@@ -460,3 +462,14 @@ process. MathML 2.0 markups are supported too. It started as a clone of
DB2LaTeX.")
;; lib/contrib/which is under an X11 license
(license gpl2+)))
+
+;; This is a variant of the 'dblatex' package that is not updated often. It
+;; is intended to be used as a native-input at build-time only, e.g. by
+;; 'gtk-doc' for generating package documentation. This allows the main
+;; 'dblatex' and 'imagemagick' packages to be freely updated on the 'master'
+;; branch without triggering an excessive number of rebuilds.
+(define-public dblatex/stable
+ (hidden-package
+ (package/inherit dblatex
+ (inputs (alist-replace "imagemagick" `(,imagemagick/stable)
+ (package-inputs dblatex))))))
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 5c6292c122..6083ed780b 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
@@ -177,7 +177,7 @@ Python without keeping their credentials in a Docker configuration file.")
(define-public containerd
(package
(name "containerd")
- (version "1.3.10")
+ (version "1.4.4")
(source
(origin
(method git-fetch)
@@ -186,49 +186,55 @@ Python without keeping their credentials in a Docker configuration file.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "10fz7359aydbz0yb01qkrsq2diypayfal618lvvb1x0gvgkp526i"))))
+ (base32 "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb"))))
(build-system go-build-system)
(arguments
- `(#:import-path "github.com/containerd/containerd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'chdir 'patch-paths
- (lambda* (#:key inputs import-path outputs #:allow-other-keys)
- ;; TODO: Patch "socat", "unpigz".
- (with-directory-excursion (string-append "src/" import-path)
- (substitute* "./runtime/v1/linux/runtime.go"
- (("defaultRuntime[ \t]*=.*")
- (string-append "defaultRuntime = \""
- (assoc-ref inputs "runc")
- "/sbin/runc\"\n"))
- (("defaultShim[ \t]*=.*")
- (string-append "defaultShim = \""
- (assoc-ref outputs "out")
- "/bin/containerd-shim\"\n")))
- (substitute* "./vendor/github.com/containerd/go-runc/runc.go"
- (("DefaultCommand[ \t]*=.*")
- (string-append "DefaultCommand = \""
- (assoc-ref inputs "runc")
- "/sbin/runc\"\n")))
- (substitute* "vendor/github.com/containerd/continuity/testutil/loopback/loopback_linux.go"
- (("exec\\.Command\\(\"losetup\"") ; )
- (string-append "exec.Command(\""
- (assoc-ref inputs "util-linux")
- "/sbin/losetup\""))) ;)
- #t)))
- (replace 'build
- (lambda* (#:key import-path (make-flags '()) #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- (apply invoke "make" make-flags))))
- (replace 'install
- (lambda* (#:key import-path outputs (make-flags '()) #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- (let* ((out (assoc-ref outputs "out")))
- (apply invoke "make" (string-append "DESTDIR=" out) "install"
- make-flags))))))))
+ (let ((make-flags (list (string-append "VERSION=" version)
+ "REVISION=0")))
+ `(#:import-path "github.com/containerd/containerd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'chdir 'patch-paths
+ (lambda* (#:key inputs import-path outputs #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (substitute* "runtime/v1/linux/runtime.go"
+ (("defaultRuntime[ \t]*=.*")
+ (string-append "defaultRuntime = \""
+ (assoc-ref inputs "runc")
+ "/sbin/runc\"\n"))
+ (("defaultShim[ \t]*=.*")
+ (string-append "defaultShim = \""
+ (assoc-ref outputs "out")
+ "/bin/containerd-shim\"\n")))
+ (substitute* "vendor/github.com/containerd/go-runc/runc.go"
+ (("DefaultCommand[ \t]*=.*")
+ (string-append "DefaultCommand = \""
+ (assoc-ref inputs "runc")
+ "/sbin/runc\"\n")))
+ (substitute* "vendor/github.com/containerd/continuity/testutil\
+/loopback/loopback_linux.go"
+ (("exec\\.Command\\(\"losetup\"")
+ (string-append "exec.Command(\""
+ (assoc-ref inputs "util-linux")
+ "/sbin/losetup\"")))
+ (substitute* "archive/compression/compression.go"
+ (("exec\\.LookPath\\(\"unpigz\"\\)")
+ (string-append "\"" (assoc-ref inputs "pigz")
+ "/bin/unpigz\", error(nil)"))))))
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (apply invoke "make" ',make-flags))))
+ (replace 'install
+ (lambda* (#:key import-path outputs #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (let* ((out (assoc-ref outputs "out")))
+ (apply invoke "make" (string-append "DESTDIR=" out) "install"
+ ',make-flags)))))))))
(inputs
`(("btrfs-progs" ,btrfs-progs)
("libseccomp" ,libseccomp)
+ ("pigz" ,pigz)
("runc" ,runc)
("util-linux" ,util-linux)))
(native-inputs
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 47bbd1a789..504171ca8b 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -2,9 +2,9 @@
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2017, 2019, 2020 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2019, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
@@ -58,10 +58,14 @@
#:use-module (gnu packages pdf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-compression)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages speech)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
@@ -88,10 +92,30 @@
(description "CHMLIB is a library for dealing with ITSS/CHM format files.")
(license license:lgpl2.1+)))
+(define-public python-pychm
+ (package
+ (name "python-pychm")
+ (version "0.8.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pychm" version))
+ (sha256
+ (base32
+ "0wpn9ijlsmrpyiwg3drmgz4dms1i1i347adgqw37bkrh3vn6yq16"))))
+ (build-system python-build-system)
+ (inputs
+ `(("chmlib" ,chmlib)))
+ (home-page "https://github.com/dottedmag/pychm")
+ (synopsis "Handle CHM files")
+ (description "This package provides a Python module for interacting
+with Microsoft Compiled HTML (CHM) files")
+ (license license:gpl2+)))
+
(define-public calibre
(package
(name "calibre")
- (version "4.18.0")
+ (version "5.14.0")
(source
(origin
(method url-fetch)
@@ -100,7 +124,7 @@
version ".tar.xz"))
(sha256
(base32
- "0w9pcfvskjh4v00vjw3i6hzrafy863pgsmmqdx4lffip3p856brw"))
+ "0w8j9r9qa56r8gm9b10dwh8zrzqlv79s2br82jqg02lrnrbwwv0q"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -112,8 +136,6 @@
""))
;; Remove unneeded resources.
- (delete-file "resources/viewer.js")
- (delete-file "resources/viewer.html")
(delete-file "resources/mozilla-ca-certs.pem")
(delete-file "resources/calibre-portable.bat")
(delete-file "resources/calibre-portable.sh")
@@ -125,57 +147,60 @@
(native-inputs
`(("pkg-config" ,pkg-config)
("qtbase" ,qtbase) ; for qmake
- ("python2-flake8" ,python2-flake8)
+ ("python-flake8" ,python-flake8)
+ ("python-pyqt-builder" ,python-pyqt-builder)
("xdg-utils" ,xdg-utils)))
(inputs
- `(("chmlib" ,chmlib)
- ("fontconfig" ,fontconfig)
+ `(("fontconfig" ,fontconfig)
("font-liberation" ,font-liberation)
("glib" ,glib)
("hunspell" ,hunspell)
("hyphen" ,hyphen)
("icu4c" ,icu4c)
- ("js-mathjax" ,js-mathjax)
("libmtp" ,libmtp)
("libpng" ,libpng)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libjxr" ,libjxr)
("libusb" ,libusb)
("openssl" ,openssl)
("optipng" ,optipng)
("podofo" ,podofo)
("poppler" ,poppler)
- ("python" ,python-2)
- ("python2-apsw" ,python2-apsw)
- ("python2-beautifulsoup4" ,python2-beautifulsoup4)
- ("python2-chardet" ,python2-chardet)
- ("python2-cssselect" ,python2-cssselect)
- ("python2-css-parser" ,python2-css-parser)
- ("python2-dateutil" ,python2-dateutil)
- ("python2-dbus" ,python2-dbus)
- ("python2-dnspython" ,python2-dnspython-1.16)
- ("python2-dukpy" ,python2-dukpy)
- ("python2-feedparser" ,python2-feedparser)
- ("python2-html2text" ,python2-html2text)
- ("python2-html5-parser" ,python2-html5-parser)
- ("python2-html5lib" ,python2-html5lib)
- ("python2-lxml" ,python2-lxml)
- ("python2-markdown" ,python2-markdown)
- ("python2-mechanize" ,python2-mechanize)
- ;; python2-msgpack is needed for the network content server to work.
- ("python2-msgpack" ,python2-msgpack)
- ("python2-netifaces" ,python2-netifaces)
- ("python2-odfpy" ,python2-odfpy)
- ("python2-pillow" ,python2-pillow)
- ("python2-psutil" ,python2-psutil)
- ("python2-pygments" ,python2-pygments)
- ("python2-pyqtwebengine" ,python2-pyqtwebengine)
- ("python2-pyqt" ,python2-pyqt)
- ("python2-sip" ,python2-sip)
- ("python2-regex" ,python2-regex)
+ ("python-apsw" ,python-apsw)
+ ("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-cchardet" ,python-cchardet)
+ ("python-css-parser" ,python-css-parser)
+ ("python-cssselect" ,python-cssselect)
+ ("python-dateutil" ,python-dateutil)
+ ("python-dbus" ,python-dbus)
+ ("python-dnspython" ,python-dnspython-1.16)
+ ("python-dukpy" ,python-dukpy)
+ ("python-feedparser" ,python-feedparser)
+ ("python-html2text" ,python-html2text)
+ ("python-html5-parser" ,python-html5-parser)
+ ("python-html5lib" ,python-html5lib)
+ ("python-lxml" ,python-lxml)
+ ("python-markdown" ,python-markdown)
+ ("python-mechanize" ,python-mechanize)
+ ;; python-msgpack is needed for the network content server to work.
+ ("python-msgpack" ,python-msgpack)
+ ("python-netifaces" ,python-netifaces)
+ ("python-odfpy" ,python-odfpy)
+ ("python-pillow" ,python-pillow)
+ ("python-psutil" ,python-psutil)
+ ("python-py7zr" ,python-py7zr)
+ ("python-pychm" ,python-pychm)
+ ("python-pycryptodome" ,python-pycryptodome)
+ ("python-pygments" ,python-pygments)
+ ("python-pyqt" ,python-pyqt)
+ ("python-pyqtwebengine" ,python-pyqtwebengine)
+ ("python-regex" ,python-regex)
+ ("python-speechd" ,speech-dispatcher)
+ ("python-zeroconf" ,python-zeroconf)
("qtwebengine" ,qtwebengine)
("sqlite" ,sqlite)))
(arguments
- `(#:python ,python-2
- ;; Calibre is using setuptools by itself, but the setup.py is not
+ `(;; Calibre is using setuptools by itself, but the setup.py is not
;; compatible with the shim wrapper (taken from pip) we are using.
#:use-setuptools? #f
#:phases
@@ -207,18 +232,27 @@
(add-before 'build 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((podofo (assoc-ref inputs "podofo"))
- (pyqt (assoc-ref inputs "python2-pyqt"))
- (python-sip (assoc-ref inputs "python2-sip"))
+ (pyqt (assoc-ref inputs "python-pyqt"))
+ (python-sip (assoc-ref inputs "python-sip"))
(out (assoc-ref outputs "out")))
- (substitute* "setup/build_environment.py"
- (("= get_sip_dir\\(\\)")
- (string-append "= '" pyqt "/share/sip'")))
-
+ (substitute* "setup/build.py"
+ (("\\[tool.sip.bindings.pictureflow\\]")
+ "[tool.sip.bindings.pictureflow]
+tags = [\"WS_X11\"]")
+ (("\\[tool.sip.project\\]")
+ (string-append "[tool.sip.project]
+sip-include-dirs = [\"" pyqt "/share/sip" "\"]")))
(substitute* "src/calibre/ebooks/pdf/pdftohtml.py"
(("PDFTOHTML = 'pdftohtml'")
(string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler")
"/bin/pdftohtml\"")))
-
+ ;; get_exe_path looks in poppler's output for these binaries. Make
+ ;; it not do that.
+ (substitute* "src/calibre/utils/img.py"
+ (("get_exe_path..jpegtran..") (string-append "'" (which "jpegtran") "'"))
+ (("get_exe_path..cjpeg..") (string-append "'" (which "cjpeg") "'"))
+ (("get_exe_path..optipng..") (string-append "'" (which "optipng") "'"))
+ (("get_exe_path..JxrDecApp..") (string-append "'" (which "JxrDecApp") "'")))
;; Calibre thinks we are installing desktop files into a home
;; directory, but here we butcher the script in to installing
;; to calibres /share directory.
@@ -237,7 +271,6 @@
"/share/fonts")
"/tmp/.fonts")
- (setenv "SIP_BIN" (string-append python-sip "/bin/sip"))
(setenv "PODOFO_INC_DIR" (string-append podofo "/include/podofo"))
(setenv "PODOFO_LIB_DIR" (string-append podofo "/lib"))
;; This informs the tests we are a continuous integration
@@ -248,13 +281,11 @@
;; fix it, so I'm not sure how to fix it. TODO: Fix test and remove this.
(setenv "SKIP_QT_BUILD_TEST" "true")
#t)))
- (add-after 'build 'build-extra
+ (add-after 'install 'install-rapydscript
(lambda* (#:key inputs #:allow-other-keys)
- (invoke "python2" "setup.py" "mathjax""--system-mathjax"
- "--path-to-mathjax" (string-append
- (assoc-ref inputs "js-mathjax")
- "/share/javascript/mathjax"))
- (invoke "python2" "setup.py" "rapydscript")
+ ;; Unset so QtWebengine doesn't dump temporary files here.
+ (unsetenv "XDG_DATA_HOME")
+ (invoke "python" "setup.py" "rapydscript")
#t))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
@@ -542,7 +573,7 @@ Some of the current features:
(define-public xchm
(package
(name "xchm")
- (version "1.31")
+ (version "1.32")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rzvncj/xCHM"
@@ -550,7 +581,7 @@ Some of the current features:
version "/xchm-" version ".tar.gz"))
(sha256
(base32
- "0aw6bysqiwbw75n3ad229ihlmh7chqs1wlxm0398z3lfp2y6n7qf"))))
+ "0b12ym7cn65wy268kbksyhakicwb053c8xfn76q2dawrvbras9dj"))))
(build-system gnu-build-system)
(inputs
`(("wxwidgets" ,wxwidgets)
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 365bb9864f..589c32838c 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -614,14 +614,14 @@ Portuguese, Spanish and Italian.")
(define-public fet
(package
(name "fet")
- (version "5.49.0")
+ (version "5.49.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
"fet-" version ".tar.bz2"))
(sha256
- (base32 "011bgr46bfi41hah1gr54va6arvr5zsvkk9zq2gfgavynwfnmny4"))))
+ (base32 "1aa8xnhwvbhvp7yigcdk7qdwqh59yyfknqbpn3ybgjljc22m8w5n"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -689,17 +689,6 @@ language and very flexible regarding to new or unknown keyboard layouts.")
(sha256
(base32 "10lm2p8w26c9n6lhvw3301myfss0dq7hl7rawzb3hsy1lqvmvdib"))))
(build-system qt-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'configure 'patch-makefiles
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((qtdec (assoc-ref inputs "qtdeclarative")))
- (substitute* '("src/CMakeFiles/ktouch_autogen.dir/build.make"
- "src/CMakeFiles/ktouch.dir/build.make")
- (("/gnu/store/.*qmlcachegen")
- (string-append qtdec "/bin/qmlcachegen"))))
- #t)))))
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("kdoctools" ,kdoctools)
diff --git a/gnu/packages/efi.scm b/gnu/packages/efi.scm
index 11cfe586ac..8bbd873435 100644
--- a/gnu/packages/efi.scm
+++ b/gnu/packages/efi.scm
@@ -38,14 +38,14 @@
(define-public gnu-efi
(package
(name "gnu-efi")
- (version "3.0.12")
+ (version "3.0.13")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnu-efi/"
"gnu-efi-" version ".tar.bz2"))
(sha256
- (base32 "0sbn6am3k5lqafycggh1g964fcwjwnh0i9hhwrk4ncrwzphz55h1"))))
+ (base32 "0z9v5pl5pmlw8pjpd66iyh9pml2hh6pqd4c5qilywilw4wazgk1g"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; none exist
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 2e21cab48d..aab912648b 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Mark Wielaard <mark@klomp.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -211,6 +212,10 @@ static analysis of the ELF binaries at hand.")
(setenv "CONFIG_SHELL" (which "bash"))
(invoke "./configure"
(string-append "--prefix=" out)
+ ,@(if (string=? "powerpc64le-linux"
+ (%current-system))
+ '("--host=powerpc64le-unknown-linux-gnu")
+ '())
,@(if (string=? "aarch64-linux"
(%current-system))
'("--host=aarch64-unknown-linux-gnu")
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 28400c0573..a71b1c4cf7 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -90,11 +90,12 @@
;;; Copyright © 2020 Jonathan Rostran <rostranjj@gmail.com>
;;; Copyright © 2020, 2021 Noah Evans <noah@nevans.me>
;;; Copyright © 2020 Brit Butler <brit@kingcons.io>
-;;; Copyright © 2021 Alexandr Vityazev <avityazew@gmail.com>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2021 Yurii Kholodkov <urist.mckorobochka@gmail.com>
;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1525,6 +1526,46 @@ reformat the current buffer using a command-line program, together with an
optional minor mode which can apply this command automatically on save.")
(license license:gpl3+)))
+(define-public emacs-relative-buffers
+ (let ((release "0.0.1")
+ (revision "0")
+ (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
+ (package
+ (name "emacs-relative-buffers")
+ (version (git-version release revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emacsattic/relative-buffers")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
+ (snippet
+ '(begin
+ ;; Delete the Cask test runners.
+ (for-each delete-file '("Cask" "test/test-helper.el"))
+ #t))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:tests? #t
+ #:test-command '("ert-runner")))
+ (native-inputs
+ `(("ert-runner" ,emacs-ert-runner)))
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-f" ,emacs-f)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/emacsattic/relative-buffers")
+ (synopsis "Minor mode to rename buffers by project structure")
+ (description
+ "This package provides a minor mode for renaming buffers according to
+project structure. For Python buffers, that will be the whole module name.
+For temporary files and directories, that will be the relative path from the
+project root.")
+ (license license:gpl3+))))
+
(define-public emacs-relint
(package
(name "emacs-relint")
@@ -1742,14 +1783,14 @@ incrementally confined in Isearch manner.")
(define emacs-emms-print-metadata
(package
(name "emacs-emms-print-metadata")
- (version "6.3")
+ (version "7.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"emms-" version ".tar"))
(sha256
- (base32 "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf"))))
+ (base32 "1hryagy2mkx9zgc33mb773ckp5p9bisnny0r78l0h2vc43wanmhz"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("emms-print-metadata")
@@ -2210,14 +2251,14 @@ as a library for other Emacs packages.")
(define-public emacs-auctex
(package
(name "emacs-auctex")
- (version "13.0.4")
+ (version "13.0.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"auctex-" version ".tar"))
(sha256
- (base32 "1362dqb8mcaddda9849gqsj6rzlfq18xprddb74j02884xl7hq65"))))
+ (base32 "00wp388rh2nnk8fam53kilykg90jylps31qxv9ijy1lsp1hqdjys"))))
(build-system emacs-build-system)
;; We use 'emacs' because AUCTeX requires dbus at compile time
;; ('emacs-minimal' does not provide dbus).
@@ -2522,15 +2563,15 @@ into mode hooks and is intended to be used that way.")
(define-public emacs-ggtags
(package
(name "emacs-ggtags")
- (version "0.8.13")
+ (version "0.9.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/ggtags-"
- version ".el"))
+ version ".tar"))
(sha256
(base32
- "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
+ "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
(build-system emacs-build-system)
(inputs
`(("global" ,global)))
@@ -2675,9 +2716,9 @@ using the DOT syntax, and use Graphviz to convert these files to diagrams.")
(license license:gpl2+)))
(define-public emacs-imenu-list
- (let ((commit "46008738f8fef578a763c308cf6695e5b4d4aa77")
- (revision "0")
- (version "0.8"))
+ (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
+ (revision "1")
+ (version "0.9"))
(package
(name "emacs-imenu-list")
(version (git-version version revision commit))
@@ -2690,7 +2731,7 @@ using the DOT syntax, and use Graphviz to convert these files to diagrams.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "14l3yw9y1nk103s7z5i1fmd6kvlb2p6ayi6sf9l1x1ydg9glrpl8"))))
+ (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
(build-system emacs-build-system)
(home-page "https://github.com/bmag/imenu-list")
(synopsis
@@ -3535,7 +3576,7 @@ representation.")
(define-public emacs-git-gutter
(package
(name "emacs-git-gutter")
- (version "0.90")
+ (version "0.91")
(source
(origin
(method git-fetch)
@@ -3544,7 +3585,7 @@ representation.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
+ (base32 "0zc9f73app1d7j4yb10sy4xidh5252ncyxlvr5kh0kiqk88ck6j9"))))
(build-system emacs-build-system)
(home-page "https://github.com/syohex/emacs-git-gutter")
(synopsis "See and manage hunks of text in a version control system")
@@ -8696,6 +8737,69 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
programming language.")
(license license:expat)))
+(define-public emacs-julia-repl
+ (package
+ (name "emacs-julia-repl")
+ (version "1.3.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpapp/julia-repl")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/tpapp/julia-repl")
+ (synopsis "Minor mode for interacting with a Julia REPL")
+ (description "This package provides a minor mode for interacting with a
+Julia REPL running inside Emacs. The julia process is started in an ANSI
+terminal (term), which allows text formatting and colors, and interaction with
+the help system and the debugger. It is recommended that you use this minor
+mode with the package emacs-julia-mode.")
+ (license license:expat)))
+
+(define-public emacs-julia-snail
+ (package
+ (name "emacs-julia-snail")
+ (version "1.0.0rc4") ;rc5 requires CSTParser (julia package)
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gcv/julia-snail")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'JuliaSnail-jl
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "JuliaSnail.jl"
+ (string-append out "/share/emacs/site-lisp/")))
+ #t)))))
+ (inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-s" ,emacs-s)
+ ("emacs-spinner" ,emacs-spinner)
+ ("emacs-xref" ,emacs-xref)))
+ (propagated-inputs
+ `(("libvterm" ,libvterm)
+ ("emacs-julia-mode" ,emacs-julia-mode) ;required by parser
+ ("emacs-parsec" ,emacs-parsec) ;required by parser
+ ("emacs-vterm" ,emacs-vterm)))
+ (home-page "https://github.com/gcv/julia-snail")
+ (synopsis "Development environment and REPL interaction package for Julia")
+ (description "This package provides a development environment and REPL
+interaction package for Julia in the spirit of Common Lisp’s SLIME and
+Clojure’s CIDER. It enables convenient and dynamic REPL-driven development.")
+ (license license:gpl3)))
+
(define-public emacs-smex
(package
(name "emacs-smex")
@@ -10297,7 +10401,7 @@ Lua programming language}.")
(define-public emacs-ebuild-mode
(package
(name "emacs-ebuild-mode")
- (version "1.51")
+ (version "1.52")
(source
(origin
(method url-fetch)
@@ -10306,7 +10410,7 @@ Lua programming language}.")
"ebuild-mode-" version ".tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
- (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
+ (base32 "10nikbbwh612qlnms2i31963a0h3ccyg85vrxlizdpsqs4cjpg6h"))))
(build-system emacs-build-system)
(arguments
'(#:phases
@@ -10905,13 +11009,13 @@ passive voice.")
(name "emacs-org")
;; emacs-org-contrib inherits from this package. Please update it as
;; well.
- (version "9.4.4")
+ (version "9.4.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
(sha256
- (base32 "05ma8n6hr10323d85ay8ai0xrpc9q2m93n8avqh7j9fmmb3bhr0b"))))
+ (base32 "0h5qhrd984vf17qc227wz68191xfgbpq32dyhw0lcz2d9i0pl3xk"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -10932,7 +11036,7 @@ passive voice.")
(doc-dir (string-append share "/doc/" ,name "-" ,version)))
(install-file "org.info" info-dir)
(install-file "orgguide.info" info-dir)
- ;; XXX: "orgcard.pdf" is not built in Org 9.4.4.
+ ;; XXX: "orgcard.pdf" is not built in Org 9.4.5.
;; (install-file "orgcard.pdf" doc-dir)
)
#t)))))
@@ -10948,14 +11052,14 @@ programming and reproducible research.")
(package
(inherit emacs-org)
(name "emacs-org-contrib")
- (version "20201222")
+ (version "20210329")
(source
(origin
(method url-fetch)
(uri (string-append "https://orgmode.org/elpa/"
"org-plus-contrib-" version ".tar"))
(sha256
- (base32 "1pa8h5dpi5yj3j7v0aaby8sjwxvmgnbip2ilyl5pac1rlbz0jn40"))
+ (base32 "1l0ycz77hwmjb4sffhabb0d0hg1c9ypxbpbyv8xj5ib4nbi87f2h"))
;; ob-sclang.el is packaged separately to avoid the dependency on
;; SuperCollider and qtwebengine.
(modules '((guix build utils)))
@@ -12382,13 +12486,11 @@ using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
(base32 "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"))))
(build-system emacs-build-system)
(arguments
- `(#:include (cons "^lisp/" %default-include)
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- (add-after 'add-source-to-load-path 'add-lisp-dir-to-emacs-load-path
+ (add-after 'unpack 'enter-source-directory
(lambda _
- (setenv "EMACSLOADPATH"
- (string-append (getcwd) "/lisp:" (getenv "EMACSLOADPATH"))))))))
+ (chdir "lisp"))))))
(propagated-inputs `(("emacs-projectile" ,emacs-projectile)))
(home-page "https://github.com/ejmr/php-mode")
(synopsis "Major mode for editing PHP code")
@@ -12473,14 +12575,14 @@ shuangpin, wubi and cangjie.")
(define-public emacs-posframe
(package
(name "emacs-posframe")
- (version "0.8.8")
+ (version "0.9.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"posframe-" version ".tar"))
(sha256
- (base32 "1ij6brzcxv9viz37qafcinlfx5l20w8x8s6786r1rsda5n1xsmvd"))))
+ (base32 "14x63713lbvmp24733j7pqkwvcnhpcgv7pprr8sykan3jnjnnzh3"))))
(build-system emacs-build-system)
;; emacs-minimal does not include the function font-info.
(arguments
@@ -15164,6 +15266,32 @@ close, copy, cut, paste, undo, redo.")
standard Unix password manager\").")
(license license:gpl2+))))
+(define-public emacs-password-store-otp
+ (package
+ (name "emacs-password-store-otp")
+ (version "0.1.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/volrath/password-store-otp.el")
+ (commit version)))
+ (sha256
+ (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-password-store" ,emacs-password-store)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/volrath/password-store-otp.el")
+ (synopsis
+ "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
+ (description "This package provides Emacs functions to interact with the
+@code{pass-otp} extension for @code{pass}. It includes functions to import
+OTP URIs from screenshots of QR codes, and to export them back to QR codes if
+needed.")
+ (license license:gpl3+)))
+
(define-public emacs-auth-source-pass
(let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
(revision "2"))
@@ -19150,7 +19278,7 @@ try completing. See @code{fish-completion-fallback-on-bash-p}.")
(define-public emacs-gif-screencast
(package
(name "emacs-gif-screencast")
- (version "1.1")
+ (version "1.2")
(source
(origin
(method git-fetch)
@@ -19160,7 +19288,7 @@ try completing. See @code{fish-completion-fallback-on-bash-p}.")
(file-name (git-file-name name version))
(sha256
(base32
- "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
+ "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
(build-system emacs-build-system)
(inputs
`(("scrot" ,scrot)
@@ -19512,6 +19640,8 @@ image, rotate it, save modified images, and more.")
(sha256
(base32
"1zifiqmpj9j14fnrm3jxapady25m1nlm514nfry0jfrhhikvj6i8"))))
+ (arguments
+ '(#:include (cons "^data/" %default-include)))
(build-system emacs-build-system)
(home-page "https://github.com/purcell/package-lint")
(synopsis "Linting library for elisp package authors")
@@ -21307,6 +21437,33 @@ DBI, and provides DB-accessing API and the simple management UI.")
to open SQLite databases.")
(license license:gpl3+))))
+(define-public emacs-nice-citation
+ (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
+ (revision "0"))
+ (package
+ (name "emacs-nice-citation")
+ (version (git-version "0.0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/damiencollard/nice-citation")
+ (commit commit)))
+ (sha256
+ (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/damiencollard/nice-citation")
+ (synopsis "Depth-colored citations for Gnus")
+ (description
+ "This package replaces the traditional chevron citation marks @samp{>}
+with a Unicode vertical bar with the same color as the text it is quoting.
+
+It is purely presentation: the underlying text is unchanged. In particular,
+if you send a message containing a citation, it will contain the traditional
+chevron marks.")
+ (license license:gpl3+))))
+
(define-public emacs-nix-mode
(package
(name "emacs-nix-mode")
@@ -21442,6 +21599,31 @@ stored playlists.")
display a terminal in an Emacs buffer.")
(license license:gpl3+))))
+(define-public emacs-vterm-toggle
+ ;; There have been no releases.
+ (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
+ (revision "1"))
+ (package
+ (name "emacs-vterm-toggle")
+ (version (git-version "0.0.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jixiuf/vterm-toggle")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-vterm" ,emacs-vterm)))
+ (home-page "https://github.com/jixiuf/vterm-toggle")
+ (synopsis "Toggle between a vterm buffer and other buffers")
+ (description
+ "This package provides a DWIM way to switch from an Emacs buffer to
+a vterm buffer and back again.")
+ (license license:gpl3+))))
+
(define-public emacs-simple-mpc
;; There have been no releases.
(let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
@@ -22780,9 +22962,9 @@ based on diff output.")
(license license:gpl3+))))
(define-public emacs-all-the-icons-dired
- (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
+ (let ((commit "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")
(version "1.0")
- (revision "1"))
+ (revision "2"))
(package
(name "emacs-all-the-icons-dired")
(version (git-version version revision commit))
@@ -22795,7 +22977,7 @@ based on diff output.")
(file-name (git-file-name name version))
(sha256
(base32
- "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
+ "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-all-the-icons" ,emacs-all-the-icons)))
@@ -23271,6 +23453,39 @@ Dash docsets.")
through Dash docsets.")
(license license:expat))))
+(define-public emacs-cascading-dir-locals
+ (let ((release "0.1")
+ (revision "0")
+ (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
+ (package
+ (name "emacs-cascading-dir-locals")
+ (version (git-version release revision commit))
+ (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
+ (build-system emacs-build-system)
+ (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
+ (description
+ "This package provides a global minor mode that changes how Emacs
+handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
+instead of starting at the directory of the visited file and moving up the
+directory tree only until a first dir-locals file is found, collect and apply
+all (!) dir-locals files found from the current directory up to the root one.
+
+Values specified in files nearer to the current directory take precedence over
+values in files farther away from it.
+
+You might want to use this to globally set dir-local variables that apply to
+all of your projects, then override or add variables on a per-project basis.")
+ (license license:gpl3+))))
+
(define-public emacs-calibredb
(package
(name "emacs-calibredb")
@@ -23410,14 +23625,14 @@ well as an option for visually flashing evaluated s-expressions.")
(define-public emacs-tramp
(package
(name "emacs-tramp")
- (version "2.5.0.2")
+ (version "2.5.0.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"tramp-" version ".tar"))
(sha256
- (base32 "16f782rjkmxxs5sz3wv4d46i7hbl483ashmrkvljf7lpnrl91s93"))))
+ (base32 "0c77d1ihn17lzk9jb7ss346ryprnbii1zmijl6zj0kk4lm8fpfl3"))))
(build-system emacs-build-system)
(arguments
`(#:emacs ,emacs ;need D-Bus
@@ -25381,6 +25596,56 @@ can specify how popup-displaying functions occupy the screen.")
(home-page "https://github.com/wasamasa/shackle")
(license license:gpl3+))))
+(define-public emacs-showtip
+ (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
+ (revision "0"))
+ (package
+ (name "emacs-showtip")
+ (version (git-version "0.01" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emacsorphanage/showtip")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/emacsorphanage/showtip")
+ (synopsis "Show tip at cursor")
+ (description
+ "This library provide one function to show tooltip near the cursor.")
+ (license license:gpl2+))))
+
+(define-public emacs-sdcv
+ ;; No tagged version upstream.
+ (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
+ (revision "0"))
+ (package
+ (name "emacs-sdcv")
+ (version (git-version "1.5.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stardiviner/sdcv.el")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-popup" ,emacs-popup)
+ ("emacs-pos-tip" ,emacs-pos-tip)
+ ("emacs-showtip" ,emacs-showtip)))
+ (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
+ (synopsis "Emacs interface for @code{sdcv}")
+ (description
+ "This plugin translates words with @code{sdcv}, and displays
+translation using a tooltip or in a dedicated buffer.")
+ (license license:gpl3+))))
+
(define-public emacs-helm-lacarte
(let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
(revision "1"))
@@ -26413,34 +26678,36 @@ snippets for Emacs.")
(license license:expat))))
(define-public emacs-org-roam
- (package
- (name "emacs-org-roam")
- (version "1.2.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/org-roam/org-roam")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0n8c0yxqb62i39kn0d5x83s96vwc0nbg0sx5hplffnbkfbj88bba"))))
- (build-system emacs-build-system)
- (propagated-inputs
- `(("emacs-company" ,emacs-company)
- ("emacs-dash" ,emacs-dash)
- ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
- ("emacs-f" ,emacs-f)
- ("emacs-org-ref" ,emacs-org-ref)
- ("emacs-s" ,emacs-s)))
- (home-page "https://github.com/org-roam/org-roam/")
- (synopsis "Non-hierarchical note-taking with Org mode")
- (description "Emacs Org Roam is a solution for taking non-hierarchical
+ (let ((commit "8ad57b121831eda8d226faa14ff2ba7ab652849c")
+ (revision "0")
+ (version "1.2.3"))
+ (package
+ (name "emacs-org-roam")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/org-roam/org-roam")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "162qhb6rkpl1n0l8yhnwgagsx56ykaj9lchsny1id5z1257kgw9w"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
+ ("emacs-f" ,emacs-f)
+ ("emacs-org" ,emacs-org)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/org-roam/org-roam/")
+ (synopsis "Non-hierarchical note-taking with Org mode")
+ (description "Emacs Org Roam is a solution for taking non-hierarchical
notes with Org mode. Notes are captured without hierarchy and are connected
by tags. Notes can be found and created quickly. Org Roam should also work
as a plug-and-play solution for anyone already using Org mode for their
personal wiki.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-org-roam-bibtex
(package
@@ -27212,7 +27479,7 @@ rules about where space should be left to separate words and parentheses.")
(description "This mode allows to paste whole buffers or parts of buffers
to pastebin-like services. It supports more than one service and will
failover if one service fails. More services can easily be added over time
-and prefered services can easily be configured.")
+and preferred services can easily be configured.")
(license license:gpl3+)))
(define-public emacs-keystore-mode
@@ -27251,3 +27518,49 @@ and prefered services can easily be configured.")
"This package provides an Elisp wrapper around the Java
@command{keytool} command and major mode for viewing Java keystores.")
(license license:expat))))
+
+(define-public emacs-ivy-avy
+ (package
+ (name "emacs-ivy-avy")
+ (version "0.13.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://elpa.gnu.org/packages/"
+ "ivy-avy-" version ".tar"))
+ (sha256
+ (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-ivy" ,emacs-ivy)
+ ("emacs-avy" ,emacs-avy)))
+ (home-page "https://github.com/abo-abo/swiper")
+ (synopsis "Avy integration for Ivy")
+ (description
+ "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
+ (license license:gpl3+)))
+
+(define-public emacs-ivy-hydra
+ (package
+ (name "emacs-ivy-hydra")
+ (version "0.13.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://elpa.gnu.org/packages/"
+ "ivy-hydra-" version ".tar"))
+ (sha256
+ (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-ivy" ,emacs-ivy)
+ ("emacs-hydra" ,emacs-hydra)))
+ (home-page "https://github.com/abo-abo/swiper")
+ (synopsis "Additional key bindings for Ivy")
+ (description
+ "This package provides the `hydra-ivy/body' command, which is a
+quasi-prefix map, with many useful bindings. These bindings are
+shorter than usual, using mostly unprefixed keys.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 98061c93ae..7447cfe33a 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Jesse John Gildersleve <jessejohngildersleve@zohomail.eu>
;;; Copyright © 2019 Valentin Ignatev <valentignatev@gmail.com>
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
@@ -76,14 +76,14 @@
(define-public emacs
(package
(name "emacs")
- (version "27.1")
+ (version "27.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/emacs/emacs-"
version ".tar.xz"))
(sha256
(base32
- "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a"))
+ "1ff182gjw9wqsbx1kj5gl2r5pbqhp4ar54g04j33fgz6g17cr9xl"))
(patches (search-patches "emacs-exec-path.patch"
"emacs-fix-scheme-indent-function.patch"
"emacs-ignore-empty-xim-styles.patch"
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 413760ab72..a3f1d85580 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -147,7 +147,9 @@
(files '("arm-none-eabi/include")))
(search-path-specification
(variable "CROSS_CPLUS_INCLUDE_PATH")
- (files '("arm-none-eabi/include")))
+ (files '("arm-none-eabi/include"
+ "arm-none-eabi/include/c++"
+ "arm-none-eabi/include/c++/arm-none-eabi")))
(search-path-specification
(variable "CROSS_LIBRARY_PATH")
(files '("arm-none-eabi/lib"))))))))
@@ -317,7 +319,9 @@ usable on embedded products.")
(files '("arm-none-eabi/include")))
(search-path-specification
(variable "CROSS_CPLUS_INCLUDE_PATH")
- (files '("arm-none-eabi/include")))
+ (files '("arm-none-eabi/include"
+ "arm-none-eabi/include/c++"
+ "arm-none-eabi/include/c++/arm-none-eabi")))
(search-path-specification
(variable "CROSS_LIBRARY_PATH")
(files '("arm-none-eabi/lib"))))))))
@@ -380,7 +384,7 @@ usable on embedded products.")
"--with-newlib"
,(string-append "--with-gxx-include-dir="
(assoc-ref %outputs "out")
- "/arm-none-eabi/include")))))
+ "/arm-none-eabi/include/c++")))))
(native-inputs
`(("newlib" ,newlib)
("xgcc" ,xgcc)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 1cd23c3e6c..8482f679e2 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -540,7 +540,7 @@ The following systems are supported:
(define-public mgba
(package
(name "mgba")
- (version "0.8.4")
+ (version "0.9.0")
(source
(origin
(method git-fetch)
@@ -549,7 +549,7 @@ The following systems are supported:
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0nqj4bnn5c2z1bq4bnbw1wznc0wpmq4sy3w8pipd6n6620b9m4qq"))
+ (base32 "16v08m9irping65d94vb5skp4m6nc63zj6bfajbzhmf944dswmi5"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
@@ -1589,7 +1589,7 @@ This is a part of the TiLP project.")
(define-public mame
(package
(name "mame")
- (version "0.229")
+ (version "0.230")
(source
(origin
(method git-fetch)
@@ -1598,7 +1598,7 @@ This is a part of the TiLP project.")
(commit (apply string-append "mame" (string-split version #\.)))))
(file-name (git-file-name name version))
(sha256
- (base32 "0s5q6fjk739p1bfh72fmh35xi13fwbrgjqrn45i5xzx3v3gadmbg"))
+ (base32 "0dk8q2691pycv9mq77h6sdfwjnwdrfwrblf8nwyykrmdawzi56ks"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@@ -1743,7 +1743,7 @@ This is a part of the TiLP project.")
("texinfo" ,texinfo)))
(inputs
`(("alsa-lib" ,alsa-lib)
- ("asio" ,asio)
+ ("asio" ,asio-1.12) ;the bundled copy is at 1.11
("expat" ,expat)
("flac" ,flac)
("fontconfig" ,fontconfig)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 9358b2fd49..b5568b8563 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
@@ -266,7 +266,7 @@ plans and designs.")
suite grouped together under the gEDA name. gEDA/gaf is a collection of tools
which currently includes: gschem, a schematic capture program; gnetlist, a
netlist generation program; gsymcheck, a syntax checker for schematic symbols;
-gattrib, a spreadsheet programm that manipulates the properties of symbols of
+gattrib, a spreadsheet programme that manipulates the properties of symbols of
a schematic; libgeda, libraries for gschem gnetlist and gsymcheck; gsch2pcb, a
tool to forward annotation from your schematic to layout using PCB; some minor
utilities.")
@@ -1248,7 +1248,7 @@ replacement for the OpenDWG libraries.")
(define-public minicom
(package
(name "minicom")
- (version "2.7.1")
+ (version "2.8")
(source
(origin
(method git-fetch)
@@ -1256,13 +1256,16 @@ replacement for the OpenDWG libraries.")
(url "https://salsa.debian.org/minicom-team/minicom.git")
(commit (string-append "v" version))))
(sha256
- (base32 "0f36wv015zpz1x895qv0z6marlynzyh0d5mfkyd7lfyy2xd1i2w0"))
+ (base32 "0kfihxbh9qkjk9m1932ajyqx384c2aj3d9yaphh3i9i7y1shxlpx"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-lock-dir=/var/lock")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))))
(replace 'bootstrap
;; autogen.sh needlessly hard-codes aclocal-1.14.
(lambda _
@@ -2016,256 +2019,6 @@ parallel computing platforms. It also supports serial execution.")
(license (list license:gpl2+
license:lgpl2.0+)))) ; freehdl's libraries
-(define-public qucs
- ;; Qucs 0.0.19 segfaults when using glibc-2.26. Temporarily build from git.
- ;; TODO: When qucs-0.0.20 is released, revert the commit that introduced this
- ;; comment and update the package.
- (let ((commit "b4f27d9222568066cd59e4c387c51a35056c99d8")
- (revision "0"))
- (package
- (name "qucs")
- (version (git-version "0.0.19" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Qucs/qucs")
- (commit commit)))
- (sha256
- (base32 "10bclay9xhkffmsh4j4l28kj1qpxx0pnxja5vx6305cllnq4r3gb"))
- (file-name (string-append name "-" version "-checkout"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'bootstrap 'patch-bootstrap
- (lambda _
- (for-each patch-shebang
- '("bootstrap"
- "qucs/bootstrap"
- "qucs-doc/bootstrap"
- "qucs-core/bootstrap"))
- #t))
- (add-before 'configure 'patch-configure
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "qucs/configure"
- (("\\$QTDIR") (assoc-ref inputs "qt4")))
- #t))
- (add-after 'patch-configure 'patch-scripts
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* '("qucs/qucs/qucsdigi"
- "qucs/qucs/qucsdigilib"
- "qucs/qucs/qucsveri")
- (("\\$BINDIR")
- (string-append (assoc-ref outputs "out") "/bin"))
- (("freehdl-config")
- (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config"))
- (("freehdl-v2cc")
- (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc"))
- (("cp ")
- (string-append (assoc-ref inputs "coreutils") "/bin/cp "))
- (("glibtool")
- (string-append (assoc-ref inputs "libtool") "/bin/libtool"))
- (("sed")
- (string-append (assoc-ref inputs "sed") "/bin/sed"))
- (("iverilog")
- (string-append (assoc-ref inputs "iverilog") "/bin/iverilog"))
- (("vvp")
- (string-append (assoc-ref inputs "iverilog") "/bin/vvp")))
- #t))
- (add-before 'check 'pre-check
- (lambda _
- ;; The test suite requires a running X server.
- (system "Xvfb :1 &")
- (setenv "DISPLAY" ":1")
- #t))
- (add-after 'install 'make-wrapper
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; 'qucs' directly invokes gcc, hence this wrapping.
- (wrap-program (string-append out "/bin/qucs")
- `("CPLUS_INCLUDE_PATH" ":" prefix
- (,(string-append (assoc-ref inputs "gcc-toolchain")
- "/include")))
- `("PATH" ":" prefix
- (,(string-append (assoc-ref inputs "gcc-toolchain")
- "/bin")))
- `("LIBRARY_PATH" ":" prefix
- (,(string-append (assoc-ref inputs "gcc-toolchain")
- "/lib")))
- `("ADMSXMLBINDIR" ":" prefix
- (,(string-append (assoc-ref inputs "adms") "/bin")))
- `("ASCOBINDIR" ":" prefix
- (,(string-append (assoc-ref inputs "asco") "/bin")))
- `("QUCS_OCTAVE" ":" prefix
- (,(string-append (assoc-ref inputs "octave") "/bin/octave")))))
- #t)))
- #:parallel-build? #f ; race condition
- #:configure-flags '("--disable-doc"))) ; we need octave-epstk
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("bison" ,bison)
- ("flex" ,flex)
- ("gperf" ,gperf)
- ("libtool-native" ,libtool)
- ("pkg-config" ,pkg-config)
- ("python" ,python-2) ; for tests
- ("matplotlib" ,python2-matplotlib) ; for tests
- ("numpy" ,python2-numpy) ; for tests
- ("xorg-server" ,xorg-server-for-tests))) ; for tests
- (inputs
- `(("adms" ,adms)
- ("asco" ,asco)
- ("coreutils" ,coreutils)
- ("freehdl" ,freehdl)
- ("gcc-toolchain" ,gcc-toolchain)
- ("iverilog" ,iverilog)
- ("libtool" ,libtool)
- ("octave" ,octave-cli)
- ("qt4" ,qt-4)
- ("sed" ,sed)))
- (home-page "http://qucs.sourceforge.net/")
- (synopsis "Circuit simulator with graphical user interface")
- (description
- "Qucs is a circuit simulator with graphical user interface. The software
-aims to support all kinds of circuit simulation types---e.g. DC, AC,
-S-parameter, transient, noise and harmonic balance analysis. Pure digital
-simulations are also supported.")
- (license license:gpl2+))))
-
-(define-public qucs-s
- (package
- (name "qucs-s")
- (version "0.0.21")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/ra3xdh/qucs_s/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "12m1jwhb9qwvb141qzyskbxnw3wn1x22d02z4b4862p7xvccl5h7"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'patch-scripts
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* '("qucs/qucsdigi"
- "qucs/qucsdigilib"
- "qucs/qucsveri")
- (("\\$BINDIR")
- (string-append (assoc-ref inputs "qucs") "/bin"))
- (("freehdl-config")
- (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config"))
- (("freehdl-v2cc")
- (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc"))
- (("cp ")
- (string-append (assoc-ref inputs "coreutils") "/bin/cp "))
- (("glibtool")
- (string-append (assoc-ref inputs "libtool") "/bin/libtool"))
- (("sed")
- (string-append (assoc-ref inputs "sed") "/bin/sed"))
- (("iverilog")
- (string-append (assoc-ref inputs "iverilog") "/bin/iverilog"))
- (("vvp")
- (string-append (assoc-ref inputs "iverilog") "/bin/vvp")))
- #t))
- (add-after 'patch-scripts 'patch-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "qucs/main.cpp"
- (((string-append "QucsSettings\\.Qucsator = QucsSettings\\.BinDir "
- "\\+ \"qucsator\" \\+ executableSuffix"))
- (string-append "}{ QucsSettings.Qucsator = \""
- (assoc-ref inputs "qucs") "/bin/qucsator\""))
- (((string-append "QucsSettings\\.XyceExecutable = "
- "\"/usr/local/Xyce-Release-6.8.0-OPENSOURCE/bin/Xyce"))
- (string-append "}{ QucsSettings.XyceExecutable = \""
- (assoc-ref inputs "xyce-serial") "/bin/Xyce"))
- (((string-append "else QucsSettings\\.XyceParExecutable = "
- "\"mpirun -np %p /usr/local"
- "/Xyce-Release-6.8.0-OPENMPI-OPENSOURCE/bin/Xyce"))
- (string-append "QucsSettings.XyceParExecutable = \""
- (assoc-ref inputs "mpi") "/bin/mpirun -np %p "
- (assoc-ref inputs "xyce-parallel") "/bin/Xyce"))
- (("else QucsSettings\\.NgspiceExecutable = \"ngspice\"")
- (string-append "QucsSettings.NgspiceExecutable = " "\""
- (assoc-ref inputs "ngspice") "/bin/ngspice\"")))
- (substitute* "qucs/extsimkernels/ngspice.cpp"
- (("share/qucs/xspice_cmlib") "share/qucs-s/xspice_cmlib"))
- (substitute* "qucs/qucs_actions.cpp"
- (("qucstrans")
- (string-append (assoc-ref inputs "qucs") "/bin/qucstrans"))
- (("qucsattenuator")
- (string-append (assoc-ref inputs "qucs") "/bin/qucsattenuator"))
- (("qucsrescodes")
- (string-append (assoc-ref inputs "qucs") "/bin/qucsrescodes")))
- #t))
- (add-after 'install 'install-scripts
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (for-each
- (lambda (script)
- (let ((file (string-append "../qucs_s-" ,version
- "/qucs/" script))
- (out (assoc-ref outputs "out")))
- (install-file file (string-append out "/bin"))
- (chmod (string-append out "/bin/" script) #o555)))
- '("qucsdigi" "qucsdigilib" "qucsveri"))
- #t))
- (add-after 'install-scripts 'make-wrapper
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (file (string-append out "/bin/qucs-s"))
- (qucs (assoc-ref inputs "qucs"))
- (qucsator (string-append qucs "/bin/qucsator")))
- (wrap-program file
- `("CPLUS_INCLUDE_PATH" ":" prefix
- (,(string-append (assoc-ref inputs "gcc-toolchain")
- "/include")))
- `("PATH" ":" prefix
- (,(string-append (assoc-ref inputs "gcc-toolchain")
- "/bin")))
- `("LIBRARY_PATH" ":" prefix
- (,(string-append (assoc-ref inputs "gcc-toolchain")
- "/lib")))
- `("QUCSATOR" ":" prefix (,qucsator))
- `("QUCSCONV" ":" prefix (,(string-append qucsator "/bin/qucsconv")))
- `("ADMSXMLBINDIR" ":" prefix (,(string-append (assoc-ref inputs "adms")
- "/bin")))
- `("ASCOBINDIR" ":" prefix (,(string-append (assoc-ref inputs "asco")
- "/bin")))
- `("QUCS_OCTAVE" ":" prefix (,(string-append (assoc-ref inputs "octave")
- "/bin/octave"))))
- (symlink qucsator (string-append out "/bin/qucsator"))
- #t))))))
- (native-inputs
- `(("libtool-native" ,libtool)))
- (inputs
- `(("adms" ,adms)
- ("asco" ,asco)
- ("coreutils" ,coreutils)
- ("freehdl" ,freehdl)
- ("gcc-toolchain" ,gcc-toolchain)
- ("iverilog" ,iverilog)
- ("libtool" ,libtool)
- ("mpi" ,openmpi)
- ("ngspice" ,ngspice)
- ("octave" ,octave-cli)
- ("qt4" ,qt-4)
- ("qucs" ,qucs)
- ("sed" ,sed)
- ("xyce-serial" ,xyce-serial)
- ("xyce-parallel" ,xyce-parallel)))
- (home-page "https://ra3xdh.github.io/")
- (synopsis "Circuit simulator with graphical user interface")
- (description
- "Qucs-S is a spin-off of the Qucs cross-platform circuit simulator.
-The S letter indicates SPICE. The purpose of the Qucs-S subproject is to use
-free SPICE circuit simulation kernels with the Qucs GUI. It provides the
-simulator backends @code{Qucsator}, @code{ngspice} and @code{Xyce}.")
- (license license:gpl2+)))
-
(define-public librepcb
(package
(name "librepcb")
@@ -2968,18 +2721,14 @@ GUI.")
(define-public poke
(package
(name "poke")
- (version "1.0")
+ (version "1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/poke/poke-" version
".tar.gz"))
(sha256
(base32
- "02jvla69xd0nnlg2bil2vxxxglqgylswml6h5hy2nxy0023hp4yy"))))
-
- ;; XXX: Version 1.0 only supports 64-bit systems.
- (supported-systems '("x86_64-linux" "aarch64-linux"))
-
+ "1mkaq19a8d951n9l6d3f8rwq45a7gkr05snb285idd21qxixys6d"))))
(build-system gnu-build-system)
;; The GUI, which we elide, requires tcl and tk.
(native-inputs `(;; Requires bison 3.6+ but we currently only have 3.5.
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 17632ed9a6..5b83844a41 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -52,7 +52,7 @@
(define-public xcb-imdkit
(package
(name "xcb-imdkit")
- (version "1.0.2")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
@@ -60,7 +60,7 @@
"https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-"
version ".tar.xz"))
(sha256
- (base32 "16f7jdnrr8lrll7qvnj0gh3gwzgn5idfsc9rwi1gp1n2mnjrs7w0"))
+ (base32 "1s58vjkdrgr8h183jz4b4mjn7pbvdc9cli01cn66mgczl9p65hh9"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -172,14 +172,14 @@ client.")
(define-public libime
(package
(name "libime")
- (version "1.0.4")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
version "_dict.tar.xz"))
(sha256
- (base32 "0bwl12cy7crpf62f669qn99rv4df1sjlggvcn80z64yabs36nhjr"))))
+ (base32 "1w3cxk11kbfmz7snivxq948zfav6dy2245j12ghlxcmdxjshrlhq"))))
(build-system cmake-build-system)
(inputs
`(("fcitx5" ,fcitx5)
@@ -190,7 +190,7 @@ client.")
("python" ,python))) ;needed to run test
(home-page "https://github.com/fcitx/libime")
(synopsis "Library for implementing generic input method")
- (description "Libime is a library for implmenting various input methods
+ (description "Libime is a library for implementing various input methods
editors.")
(license license:lgpl2.1+)))
@@ -250,7 +250,7 @@ for GTK+2/GTK+3 application.")
(define-public fcitx5-qt
(package
(name "fcitx5-qt")
- (version "5.0.2")
+ (version "5.0.5")
(source
(origin
(method url-fetch)
@@ -258,7 +258,7 @@ for GTK+2/GTK+3 application.")
"/fcitx5-qt/fcitx5-qt-"
version ".tar.xz"))
(sha256
- (base32 "15rn111mrp6lcgm0ka3vb6a6qwkv6kqkqn563wsm49n16iy1dhqj"))))
+ (base32 "0vsvrfv0b21pfrz5n0v6p458vfr8k7km50h9bhjp1bnssampjfsb"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 198653c639..d970fe7198 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -80,7 +80,7 @@
(define-public autofs
(package
(name "autofs")
- (version "5.1.6")
+ (version "5.1.7")
(source
(origin
(method url-fetch)
@@ -88,7 +88,7 @@
"v" (version-major version) "/"
"autofs-" version ".tar.xz"))
(sha256
- (base32 "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx"))))
+ (base32 "1myfz6a3wj2c4j9h5g44zj796fdi82jhp1s92w2hg6xp2632csx3"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -112,6 +112,12 @@
(("^searchpath=\".*\"")
"searchpath=\"$PATH\""))
#t))
+ (add-before 'configure 'fix-rpath
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile.rules"
+ (("^AUTOFS_LIB_LINK.*=" match)
+ (string-append match " -Wl,-rpath=" out "/lib"))))))
(add-before 'install 'omit-obsolete-lookup_nis.so-link
;; Building lookup_yp.so depends on $(YPCLNT) but this doesn't,
;; leading to a make error. Since it's broken, comment it out.
@@ -178,7 +184,7 @@ large and/or frequently changing (network) environment.")
(home-page "https://bindfs.org")
(synopsis "Bind mount a directory and alter permission bits")
(description
- "@command{bindfs} is a FUSE filesystem for mounting a directory to
+ "@command{bindfs} is a FUSE file system for mounting a directory to
another location, similar to @command{mount --bind}. It can be used for:
@itemize
@item Making a directory read-only.
@@ -245,9 +251,9 @@ another location, similar to @command{mount --bind}. It can be used for:
(description
"The @acronym{WebDAV, Web Distributed Authoring and Versioning} extension
to the HTTP protocol defines a standard way to author resources on a remote Web
-server. Davfs2 exposes such resources as a typical filesystem which can be used
-by standard applications with no built-in support for WebDAV, such as the GNU
-coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor.
+server. Davfs2 exposes such resources as a typical file system which can be
+used by standard applications with no built-in support for WebDAV, such as the
+GNU coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor.
Davfs2 works with most WebDAV servers with no or little configuration. It
supports TLS (HTTPS), HTTP proxies, HTTP basic and digest authentication, and
@@ -334,8 +340,8 @@ from a mounted file system.")
(license license:gpl2+)))
(define-public bcachefs-tools
- (let ((commit "612f6b9ab73c7f46e0254355b707d494a8ad9270")
- (revision "3"))
+ (let ((commit "bb6eccc2ecd4728871bfc70462d3a4a20daa9d68")
+ (revision "4"))
(package
(name "bcachefs-tools")
(version (git-version "0.1" revision commit))
@@ -347,7 +353,7 @@ from a mounted file system.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1a62wkv1i6pg5k1cjw7fzn933cbz8cp8y40cdpfd8rxjx0wg2szb"))))
+ (base32 "0ziqmcxbrak6bjck6s46hqrqx44zc97yaj0kbk3amsxf18rsfs0n"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -1077,14 +1083,14 @@ compatible directories.")
(define-public python-dropbox
(package
(name "python-dropbox")
- (version "11.2.0")
+ (version "11.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dropbox" version))
(sha256
(base32
- "0ml6z37k6nkhkiy483kvifs8im8z7vabd2g9jl6fkf1fzy3n6bym"))))
+ "16bxx9xqx2s4d9khrw57a0bj4q7nc6kq355wl4pfddn9cqvh9rg2"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; Tests require a network connection.
(native-inputs
@@ -1189,10 +1195,10 @@ local file system using FUSE.")
`(("go-github-com-mattn-go-sqlite3" ,go-github-com-mattn-go-sqlite3)
("go-github-com-hanwen-fuse" ,go-github-com-hanwen-fuse)))
(home-page "https://github.com/oniony/TMSU")
- (synopsis "Tag files and access them through a virtual filesystem")
+ (synopsis "Tag files and access them through a virtual file system")
(description
"TMSU is a tool for tagging your files. It provides a simple
-command-line utility for applying tags and a virtual filesystem to give you a
+command-line utility for applying tags and a virtual file system to give you a
tag-based view of your files from any other program. TMSU does not alter your
files in any way: they remain unchanged on disk, or on the network, wherever
your put them. TMSU maintains its own database and you simply gain an
diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm
index bac951f9c5..3f1145b520 100644
--- a/gnu/packages/file.scm
+++ b/gnu/packages/file.scm
@@ -46,6 +46,8 @@
`(("self" ,this-package))
'()))
+ (properties
+ `((release-monitoring-url . "http://ftp.astron.com/pub/file/")))
(synopsis "File type guesser")
(description
"The file command is a file type guesser, a command-line tool that tells
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index e6df40c168..f18438bc88 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2021 ZmnSCPxj jxPCSnmZ <ZmnSCPxj@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,6 +53,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system go)
#:use-module (guix build-system qt)
+ #:use-module (guix deprecation)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages aidc)
@@ -108,10 +110,10 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages gnuzilla))
-(define-public bitcoin-core
+(define-public bitcoin-core-0.21
(package
(name "bitcoin-core")
- (version "0.20.1")
+ (version "0.21.0")
(source (origin
(method url-fetch)
(uri
@@ -119,7 +121,7 @@
version "/bitcoin-" version ".tar.gz"))
(sha256
(base32
- "0y5rad68b398arh0abr2wgiwybdw0i5a4dxz9s3fk9fgdbyn5gab"))))
+ "0dszcn4r43w0ffsmgwmyzkzr5lqws3bbhlkssmjgnjgfc8n2148s"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -186,6 +188,24 @@ of the bitcoin protocol. This package provides the Bitcoin Core command
line client and a client based on Qt.")
(license license:expat)))
+(define-public bitcoin-core-0.20
+ (package
+ (inherit bitcoin-core-0.21)
+ (version "0.20.1")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://bitcoincore.org/bin/bitcoin-core-"
+ version "/bitcoin-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0y5rad68b398arh0abr2wgiwybdw0i5a4dxz9s3fk9fgdbyn5gab"))))))
+
+;; The support lifetimes for bitcoin-core versions can be found in
+;; <https://bitcoincore.org/en/lifecycle/#schedule>.
+
+(define-public bitcoin-core bitcoin-core-0.21)
+
(define-public hledger
(package
(name "hledger")
@@ -1109,13 +1129,13 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(define-public python-duniterpy
(package
(name "python-duniterpy")
- (version "0.61.0")
+ (version "0.62.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "duniterpy" version))
(sha256
- (base32 "1dr5zx7hi1ps36p1zw2n66lmikp2frwi3sp4rf2zyd216dl3r1jp"))))
+ (base32 "1ldiw5j2g92cib9v06kgv4z8dw2zi0x1dmpisf8w78h4kg6712w1"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required
@@ -1384,16 +1404,16 @@ following three utilities are included with the library:
(define-public bitcoin-unlimited
(package
(name "bitcoin-unlimited")
- (version "1.9.0.1")
+ (version "1.9.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/BitcoinUnlimited/BitcoinUnlimited")
+ (url "https://gitlab.com/bitcoinunlimited/BCHUnlimited.git/")
(commit (string-append "BCHunlimited" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1pan24g3d5csa004d7zvlizj4mv58ly5i579341isp944phl3g5v"))))
+ (base32 "0vyvfawss40v9jaic9zq0z3cjvxiq04d4wgq4rnkha7ilm9zqyd7"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index a4c92f5bea..1d9c81b8a6 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -965,7 +965,7 @@ Unicode Charts. It was developed for use with DejaVu Fonts project.")
(arguments
`(#:configure-flags (list "--disable-static")))
(native-inputs
- `(("gtk-doc" ,gtk-doc)
+ `(("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(inputs
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 4105dd7ca0..40d41350ac 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -173,7 +174,7 @@
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gperf" ,gperf)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("xsltproc" ,libxslt)))
@@ -261,7 +262,7 @@ application-centers for distributions.")
("docbook-xml" ,docbook-xml-4.1.2)
("docbook-xsl" ,docbook-xsl)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("libtool" ,libtool)
("perl" ,perl)
("pkg-config" ,pkg-config)
@@ -313,7 +314,7 @@ for videoconferencing.")
`(("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
- ("gtk-doc" ,gtk-doc)))
+ ("gtk-doc" ,gtk-doc/stable)))
(inputs
`(("dbus" ,dbus)
("glib" ,glib)))
@@ -1202,7 +1203,7 @@ Analysis and Reporting Technology) functionality.")
("glib:bin" ,glib "bin") ; for glib-mkenums
("gnome-common" ,gnome-common) ; TODO: Why is this needed?
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("xsltproc" ,libxslt)))
@@ -1598,7 +1599,7 @@ wish to perform colour calibration.")
`(("eudev" ,eudev)
("glib:bin" ,glib "bin") ; for {glib-,}mkenums
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc) ; for 88 KiB of API documentation
+ ("gtk-doc" ,gtk-doc/stable) ; for 88 KiB of API documentation
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
@@ -1920,6 +1921,26 @@ encoding names are iconv-compatible.")
;; combination is GPL 2.0+.
(license license:gpl2+)))
+(define-public python-cchardet
+ (package
+ (name "python-cchardet")
+ (version "2.1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cchardet" version))
+ (sha256
+ (base32
+ "1bqfz85cd51sw0bvhvdq9ikccxi2ld7g5jpni4jkq1a5clrvca64"))))
+ (build-system python-build-system)
+ (inputs
+ `(("uchardet" ,uchardet)))
+ (home-page "https://github.com/PyYoshi/cChardet")
+ (synopsis "High-performance character encoding detection for Python")
+ (description "cChardet is a character encoding detector, written in
+Python, that binds to the C library @code{uchardet} to increase performance.")
+ (license license:gpl2+)))
+
(define-public udiskie
(package
(name "udiskie")
@@ -2197,7 +2218,7 @@ fallback to generic Systray support if none of those are available.")
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml)
("libxml2" ,libxml2)
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index b178063556..961ce3a464 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -1,9 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2018, 2021, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
+;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,12 +29,14 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cpio)
#:use-module (gnu packages compression)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libidn)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages pkg-config)
@@ -115,6 +118,8 @@ reliability in mind.")
(("a freeware program")
"free software"))
#t))))
+ (properties
+ `((release-monitoring-url . "https://www.ncftp.com/download/")))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -251,40 +256,82 @@ directory comparison and more.")
(properties '((upstream-name . "FileZilla")))))
(define-public vsftpd
- (package
- (name "vsftpd")
- (version "3.0.3")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://security.appspot.com/downloads/"
- name "-" version ".tar.gz"))
- (sha256
- (base32
- "1xsyjn68k3fgm2incpb3lz2nikffl9by2safp994i272wvv2nkcx"))))
- (build-system gnu-build-system)
- (arguments
- `(#:make-flags '("LDFLAGS=-lcrypt")
- #:tests? #f ; No tests exist.
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-installation-directory
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "Makefile"
- (("/usr") (assoc-ref outputs "out")))
- #t))
- (add-before 'install 'mkdir
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (mkdir-p out)
- (mkdir (string-append out "/sbin"))
- (mkdir (string-append out "/man"))
- (mkdir (string-append out "/man/man5"))
- (mkdir (string-append out "/man/man8"))
- #t)))
- (delete 'configure))))
- (synopsis "vsftpd FTP daemon")
- (description "@command{vsftpd} is a daemon that listens on a TCP socket
+ ;; Use a significantly patched CentOS variant with TLSv1.2 support and
+ ;; further bug and security fixes.
+ (let ((upstream-version "3.0.3")
+ (centos-version "8.3.2011")
+ (revision "32.el8"))
+ (package
+ (name "vsftpd")
+ (version (string-append upstream-version "-" revision))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://vault.centos.org/centos/" centos-version
+ "/AppStream/Source/SPackages/vsftpd-" upstream-version "-"
+ revision ".src.rpm"))
+ (sha256
+ (base32 "1xl0kqcismf82hl99klqbvvpylpyk1yr1qjy5hd8f80cj4lyl0f4"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags '("LDFLAGS=-lcrypt -lssl -pie")
+ #:tests? #f ; no tests exist
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'unpack
+ (lambda* (#:key source #:allow-other-keys)
+ (invoke "7z" "e" source "-ocpio")
+ (invoke "cpio" "-idmv"
+ (string-append "--file=cpio/vsftpd-"
+ ,upstream-version "-" ,revision
+ ".src.cpio"))
+ (invoke "tar" "xvf"
+ (string-append "vsftpd-" ,upstream-version ".tar.gz"))
+ (chdir (string-append "vsftpd-" ,upstream-version))))
+ (add-after 'unpack 'apply-CentOS-patches
+ ;; Apply all patches as enumerated in vsftpd.spec, in order:
+ ;; simply using FIND-FILES would silently corrupt the result.
+ (lambda _
+ (call-with-input-file "../vsftpd.spec"
+ (lambda (port)
+ (use-modules (ice-9 rdelim))
+ (let loop ()
+ (let ((line (read-line port)))
+ (unless (eof-object? line)
+ (when (string-prefix? "Patch" line)
+ (let* ((space (string-rindex line #\space))
+ (patch (string-drop line (+ 1 space))))
+ (format #t "Applying '~a'.\n" patch)
+ (invoke "patch" "-Np1"
+ "-i" (string-append "../" patch))))
+ (loop))))))))
+ (add-after 'unpack 'patch-installation-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("/usr") (assoc-ref outputs "out")))
+ #t))
+ (add-before 'install 'mkdir
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p out)
+ (mkdir (string-append out "/sbin"))
+ (mkdir (string-append out "/man"))
+ (mkdir (string-append out "/man/man5"))
+ (mkdir (string-append out "/man/man8"))
+ #t)))
+ (delete 'configure))))
+ (native-inputs
+ ;; Used to unpack the source RPM.
+ `(("p7zip" ,p7zip)
+ ("cpio" ,cpio)))
+ (inputs
+ `(("libcap" ,libcap)
+ ("linux-pam" ,linux-pam)
+ ("openssl" ,openssl)))
+ (home-page "https://security.appspot.com/vsftpd.html")
+ (synopsis "Share files securely over FTP or FTPS")
+ (description "@command{vsftpd} is a daemon that listens on a TCP socket
for clients and gives them access to local files via File Transfer
Protocol.")
- (home-page "https://security.appspot.com/vsftpd.html")
- (license gpl2)))
+ (license gpl2))))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index ea879568f5..07a17763f8 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -55,6 +56,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fltk)
@@ -446,7 +448,7 @@ support.")
(define-public tiled
(package
(name "tiled")
- (version "1.4.3")
+ (version "1.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -455,7 +457,7 @@ support.")
(file-name (git-file-name name version))
(sha256
(base32
- "14bx4gywfzr2f07ldqk3la82g5ag1agj21f7ccrxip12ydmpx0xb"))))
+ "1prajkx1xpp3csa0xpkrn3c2cnzvmwzxgrqb9d3gqszp3sllr2dg"))))
(build-system gnu-build-system)
(inputs
`(("qtbase" ,qtbase)
@@ -1761,6 +1763,44 @@ provide high-quality 3D rendering, it contains an animation editor, and can be
scripted in a Python-like language.")
(license license:expat)))
+(define-public entt
+ (package
+ (name "entt")
+ (version "3.7.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/skypjack/entt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0nzvnhiw3r6nkmxp749zwxc8kzja09nijyxibdbri3g2i7pysf58"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DENTT_BUILD_TESTING=ON"
+ "-DENTT_FIND_GTEST_PACKAGE=ON"
+ "-DENTT_BUILD_DOCS=ON")
+ ;; Only tests are compiled, and they need assertions to work correctly.
+ #:build-type "Debug"))
+ (native-inputs
+ `(;; for testing
+ ("googletest" ,googletest)
+ ;; for documentation
+ ("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)))
+ (synopsis "Entity component system")
+ (description "EnTT is a header-only library, containing (among other things)
+@itemize
+@item an entity component system based on sparse sets,
+@item a configuration system using the monostate pattern,
+@item a static reflection system,
+@item and a cooperative scheduler.
+@end itemize")
+ (home-page "https://github.com/skypjack/entt")
+ (license (list license:expat ; code
+ license:cc-by4.0)))) ; documentation
+
(define-public eureka
(package
(name "eureka")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2f48a9fb75..3e35479aae 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -743,7 +743,7 @@ battlestar (explore the world around, starting from dying spaceship),
phantasia (role-play as an rogue), trek (hunt the Klingons, and save the
Federation), and wump (hunt the big smelly Wumpus in a dark cave).
-Quizes: arithmetic, and quiz.")
+Quizzes: arithmetic and quiz.")
;; "Auxiliary and data files, distributed with the games in NetBSD, but
;; not bearing copyright notices, probably fall under the terms of the UCB
;; or NetBSD copyrights and licences. The file "fortune/Notes" contains a
@@ -2325,7 +2325,7 @@ and defeat them with your bubbles!")
(name "solarus")
;; XXX: When updating this package, please also update hash in
;; `solarus-quest-editor' below.
- (version "1.6.4")
+ (version "1.6.5")
(source
(origin
(method git-fetch)
@@ -2334,7 +2334,7 @@ and defeat them with your bubbles!")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1n6l91yyqjx0pz4w1lp3yybpq0fs2yjswfcm8c1wjfkxwiznbdxi"))))
+ (base32 "0ny9dgqphjv2l39rff2621hnrzpf8qin8vmnv7jdz20azjk4m8id"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -2393,19 +2393,9 @@ in mind.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qbc2j9kalk7xqk9j27s7wnm5zawiyjs47xqkqphw683idmzmjzn"))))
+ (base32 "1pvjgd4faxii5sskw1h55lw90hlbazhwni8nxyywzrmkjbq7irm0"))))
(arguments
- `(#:tests? #false ;no test
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-qt-build
- ;; XXX: Fix build with Qt 5.15. It has been applied upstream as
- ;; 81d5c7f1 and can be removed at next upgrade.
- (lambda _
- (substitute* "src/entities/jumper.cpp"
- (("#include <QPainter>" all)
- (string-append all "\n" "#include <QPainterPath>\n")))
- #t)))))
+ `(#:tests? #false)) ; no test suite
(inputs
`(("solarus" ,solarus)
,@(package-inputs solarus)))
@@ -3464,7 +3454,7 @@ match, cannon keep, and grave-itation pit.")
(define-public minetest
(package
(name "minetest")
- (version "5.3.0")
+ (version "5.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3473,7 +3463,7 @@ match, cannon keep, and grave-itation pit.")
(file-name (git-file-name name version))
(sha256
(base32
- "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6"))
+ "1a17g6cmxrscnqwpwrd4w2ck3dgvplyfq4kzyimilfpqar1q69j9"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3482,7 +3472,7 @@ match, cannon keep, and grave-itation pit.")
#t))))
(build-system cmake-build-system)
(arguments
- '(#:configure-flags
+ `(#:configure-flags
(list "-DRUN_IN_PLACE=0"
"-DENABLE_FREETYPE=1"
"-DENABLE_GETTEXT=1"
@@ -3493,7 +3483,27 @@ match, cannon keep, and grave-itation pit.")
(string-append "-DCURL_INCLUDE_DIR="
(assoc-ref %build-inputs "curl")
"/include/curl"))
- #:tests? #f)) ;no check target
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-sources
+ (lambda _
+ (substitute* "src/CMakeLists.txt"
+ (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") ""))
+ (substitute* "src/unittest/test_servermodmanager.cpp"
+ ;; do no override MINETEST_SUBGAME_PATH
+ (("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);")
+ "(void)0;"))
+ (setenv "MINETEST_SUBGAME_PATH"
+ (string-append (getcwd) "/games")) ; for check
+ #t))
+ (replace 'check
+ (lambda _
+ ;; Thanks to our substitutions, the tests should also run
+ ;; when invoked on the target outside of `guix build'.
+ (unless ,(%current-target-system)
+ (setenv "HOME" "/tmp")
+ (invoke "src/minetest" "--run-unittests"))
+ #t)))))
(native-search-paths
(list (search-path-specification
(variable "MINETEST_SUBGAME_PATH")
@@ -3541,7 +3551,7 @@ in different ways.")
(file-name (git-file-name name version))
(sha256
(base32
- "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx"))))
+ "11dz36z0pj2r7i8xm8v5lskzws81ckj6sc0avlmvdl8qdc9x83w5"))))
(build-system trivial-build-system)
(native-inputs
`(("source" ,source)))
@@ -3566,7 +3576,7 @@ in different ways.")
(define-public minetest-mineclone
(package
(name "minetest-mineclone")
- (version "0.66.2")
+ (version "0.71.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3575,7 +3585,7 @@ in different ways.")
(file-name (git-file-name name version))
(sha256
(base32
- "0miszzlzplpvaj0j1yii9867ydr42wsaqa9g6grxdrci75p05g00"))))
+ "0qm809dqvxc7pa1cr9skmglq9vrbq5hhm4c4m5yi46ldh1v96dgf"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
@@ -4083,7 +4093,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.14.15")
+ (version "1.14.16")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -4092,7 +4102,7 @@ falling, themeable graphics and sounds, and replays.")
"wesnoth-" version ".tar.bz2"))
(sha256
(base32
- "05iapxj3nzaqh10y42yq1jf7spxgm4iwjw4qj1c4lnb25xp4mc2h"))))
+ "1d9hq3dcx0sgs2v4400rg2nw98v46m7bwiqqjv8z8n7vw8kx8lhg"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no check target
@@ -5839,7 +5849,7 @@ for Un*x systems with X11.")
(define-public freeciv
(package
(name "freeciv")
- (version "2.6.3")
+ (version "2.6.4")
(source
(origin
(method url-fetch)
@@ -5851,7 +5861,7 @@ for Un*x systems with X11.")
(version-major+minor version) "/" version
"/freeciv-" version ".tar.bz2")))
(sha256
- (base32 "1lgq7wcbhwpy2yqdw4biwfmp5q8fh7lhlwxcgm0fpaapfl12whvp"))))
+ (base32 "1kn122f57wn5a8ryxaz73dlbd5m93mqx3bqmmz2lkgdccrvrbns0"))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 4d5aaa7070..a412c93c29 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -3,13 +3,14 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -273,6 +274,14 @@ where the OS part is overloaded to denote a specific ABI---into GCC
~a"
libc line))))
+ ;; TODO: Make this unconditional in core-updates.
+ ,@(if (target-powerpc?)
+ `((when (file-exists? "gcc/config/rs6000")
+ ;; Force powerpc libdir to be /lib and not /lib64
+ (substitute* (find-files "gcc/config/rs6000")
+ (("/lib64") "/lib"))))
+ `())
+
;; Don't retain a dependency on the build-time sed.
(substitute* "fixincludes/fixincl.x"
(("static char const sed_cmd_z\\[\\] =.*;")
@@ -574,20 +583,19 @@ It also includes runtime support libraries for these languages.")))
(define-public gcc-10
(package
(inherit gcc-8)
- (version "10.2.0")
+ (version "10.3.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcc/gcc-"
version "/gcc-" version ".tar.xz"))
(sha256
(base32
- "130xdkhmz1bc2kzx061s3sfwk36xah1fw5w332c0nzwwpdl47pdq"))
+ "0i6378ig6h397zkhd7m4ccwjx5alvzrf2hm27p1pzwjhlv0h9x34"))
(patches (search-patches "gcc-9-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch"))))))
;; Note: When changing the default gcc version, update
-;; the gcc-toolchain-* definitions and the gfortran definition
-;; accordingly.
+;; the gcc-toolchain-* definitions.
(define-public gcc gcc-7)
(define-public (make-libstdc++ gcc)
@@ -598,12 +606,27 @@ using compilers other than GCC."
(name "libstdc++")
(arguments
`(#:out-of-source? #t
- #:phases (alist-cons-before
- 'configure 'chdir
- (lambda _
- (chdir "libstdc++-v3")
- #t)
- %standard-phases)
+ #:phases
+ ;; TODO: Use the target-powerpc arm for everyone.
+ ,(if (target-powerpc?)
+ `(modify-phases %standard-phases
+ ;; Force rs6000 (i.e., powerpc) libdir to be /lib and not /lib64.
+ (add-before 'chdir 'fix-rs6000-libdir
+ (lambda _
+ (when (file-exists? "gcc/config/rs6000")
+ (substitute* (find-files "gcc/config/rs6000")
+ (("/lib64") "/lib")))
+ #t))
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "libstdc++-v3")
+ #t)))
+ `(alist-cons-before 'configure 'chdir
+ (lambda _
+ (chdir "libstdc++-v3")
+ #t)
+ %standard-phases))
+
#:configure-flags `("--disable-libstdcxx-pch"
,(string-append "--with-gxx-include-dir="
(assoc-ref %outputs "out")
diff --git a/gnu/packages/genealogy.scm b/gnu/packages/genealogy.scm
index dde0fddc25..2c3781d361 100644
--- a/gnu/packages/genealogy.scm
+++ b/gnu/packages/genealogy.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,7 +39,7 @@
(define-public gramps
(package
(name "gramps")
- (version "5.1.2")
+ (version "5.1.3")
(source
(origin
(method git-fetch)
@@ -48,7 +48,7 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "175iwvdp6c1a8rskl2wpk4yvzl437j7hm23v481974a85qy43iv8"))))
+ (base32 "109dwkswz2h2328xkqk2zj736d117s9pp7rz5cc1qg2vxn1lpm93"))))
(build-system python-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index c988d6b114..c4bdb6aca0 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -151,7 +151,7 @@
("automake" ,automake)
("docbook-xml" ,docbook-xml-4.3)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
@@ -294,36 +294,6 @@ and driving.")
(home-page "https://wiki.gnome.org/Apps/Maps")
(license license:gpl2+)))
-(define-public libgaiagraphics
- (package
- (name "libgaiagraphics")
- (version "0.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://www.gaia-gis.it/gaia-sins/libgaiagraphics-"
- version ".tar.gz"))
- (sha256
- (base32
- "076afqv417ag3hfvnif0qc7qscmnq1dsf6y431yygwgf34rjkayc"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("cairo" ,cairo)
- ("libpng" ,libpng)
- ("libjpeg-turbo" ,libjpeg-turbo)
- ("libtiff" ,libtiff)
- ("libgeotiff" ,libgeotiff)
- ("proj.4" ,proj.4)
- ("libxml2" ,libxml2)
- ("zlib" ,zlib)))
- (synopsis "Gaia common graphics support")
- (description "libgaiagraphics is a library supporting
- common-utility raster handling methods.")
- (home-page "https://www.gaia-gis.it/fossil/libgaiagraphics/index")
- (license license:lgpl3+)))
-
(define-public libgeotiff
(package
(name "libgeotiff")
@@ -373,6 +343,63 @@ writing GeoTIFF information tags.")
(license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution.")))))
+(define-public librasterlite2
+ (package
+ (name "librasterlite2")
+ (version "1.1.0-beta1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.gaia-gis.it/gaia-sins/librasterlite2-sources/"
+ "librasterlite2-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1x24gqp4hsq97c31ncwxblab0x0863q8v1z42jil7lvsq3glqa7p"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("curl" ,curl)
+ ("freetype" ,freetype)
+ ("freexl" ,freexl)
+ ("giflib" ,giflib)
+ ("libgeotiff" ,libgeotiff)
+ ("libjpeg-turbo" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("librttopo" ,librttopo)
+ ("libspatialite" ,libspatialite)
+ ("libtiff" ,libtiff)
+ ("libwebp" ,libwebp)
+ ("libxml2" ,libxml2)
+ ("lz4" ,lz4)
+ ("minizip" ,minizip)
+ ("openjpeg" ,openjpeg)
+ ("proj" ,proj)
+ ("sqlite" ,sqlite)
+ ("zstd" ,zstd "lib")))
+ (synopsis "Library to work with huge raster coverages using a SpatiaLite")
+ (description
+ "librasterlite2 is a library that stores and retrieves huge raster
+coverages using a SpatiaLite DBMS.")
+ (home-page "https://www.gaia-gis.it/fossil/librasterlite2/index")
+ ;; For the genuine librasterlite-sources holds:
+ ;; Any of the licenses MPL1.1, GPL2+ or LGPL2.1+ may be picked.
+ ;; Files under src/control_points are from GRASS
+ ;; and are licensed under GPL2+ only.
+ ;; src/md5.[ch]: Placed into the public domain by Alexander Peslyak.
+ ;; The tools supporting the library (both rl2tool and wmslite) are
+ ;; licensed under the GPL v3 (or any subsequent version) terms.
+ ;; The test/*.svg files are placed in the public domain, except for
+ ;; test/Car_Yellow.svg which is licensed under the Free Art License 1.3.
+ (license (list license:gpl2+
+ license:gpl3+
+ license:lal1.3
+ license:lgpl2.1+
+ license:mpl1.1
+ license:public-domain))))
+
(define-public librttopo
(package
(name "librttopo")
@@ -442,9 +469,8 @@ writing GeoTIFF information tags.")
("librttopo" ,librttopo)
("libxml2" ,libxml2)
("minizip" ,minizip)
- ("proj.4" ,proj.4)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)))
+ ("proj" ,proj)
+ ("sqlite" ,sqlite)))
(arguments
`(#:configure-flags
'("--enable-rttopo=yes")
@@ -454,7 +480,7 @@ writing GeoTIFF information tags.")
(add-after 'unpack 'ignore-broken-tests
(lambda _
(substitute* '("test/Makefile.in")
- (("\tcheck_sql_stm.*" all) "\tcheck_multithread$(EXEEXT) \\\n")
+ (("\tcheck_sql_stmt.* (check_sql_.*)" all tiny) (string-append "\t" tiny))
(("(\tch.*) check_v.*ble2.*$" all vt1) (string-append vt1 " \\\n"))
(("\tch.* (check_v.*ble4.*)$" all vt4) (string-append "\t" vt4)))
#t)))))
@@ -686,29 +712,39 @@ development.")
(define-public spatialite-gui
(package
(name "spatialite-gui")
- (version "1.7.1")
+ (version "2.1.0-beta1")
(source
(origin
(method url-fetch)
- (uri (string-append "https://www.gaia-gis.it/gaia-sins/spatialite_gui-"
- version ".tar.gz"))
+ (uri (string-append
+ "https://www.gaia-gis.it/gaia-sins/spatialite-gui-sources/"
+ "spatialite_gui-" version ".tar.gz"))
(sha256
- (base32
- "1r05dz9pyc8vsd2wbqxcsracpfbaamz470rcyp2myfpqwznv376b"))))
+ (base32 "0cyv4cycl073p9lnnnglcb72qn71g8h9g5zn4gzw7swcy5nxjj5s"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("freexl" ,freexl)
+ `(("curl" ,curl)
+ ("freexl" ,freexl)
("geos" ,geos)
- ("libgaiagraphics" ,libgaiagraphics)
+ ("giflib" ,giflib)
("libjpeg-turbo" ,libjpeg-turbo)
+ ("librasterlite2" ,librasterlite2)
+ ("librttopo" ,librttopo)
("libspatialite" ,libspatialite)
+ ("libwebp" ,libwebp)
+ ("libxlsxwriter" ,libxlsxwriter)
("libxml2" ,libxml2)
- ("proj.4" ,proj.4)
+ ("lz4" ,lz4)
+ ("minizip" ,minizip)
+ ("openjpeg" ,openjpeg)
+ ("postgresql" ,postgresql)
+ ("proj" ,proj)
("sqlite" ,sqlite)
- ("wxwidgets" ,wxwidgets-2)
- ("zlib" ,zlib)))
+ ("virtualpg" ,virtualpg)
+ ("wxwidgets" ,wxwidgets)
+ ("zstd" ,zstd "lib")))
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'fix-gui
@@ -1066,7 +1102,7 @@ map, geocoding with Nominatim, or general analysis.")
(define-public tippecanoe
(package
(name "tippecanoe")
- (version "1.31.5")
+ (version "1.36.0")
(source
(origin
(method git-fetch)
@@ -1075,14 +1111,14 @@ map, geocoding with Nominatim, or general analysis.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1m0x931a945sr7axyhcvpwh798m58hx1zxh6ikgf9gsgqhdhmszz"))))
+ (base32 "0lbmhly4ivnqc6qk1k3sdqvsg6x3nfd8gnjx846bhqj4wag3f88m"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases (delete 'configure))
#:test-target "test"
#:make-flags
- (list "CC=gcc"
+ (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out")))))
(inputs
`(("perl" ,perl)
@@ -1138,7 +1174,7 @@ OpenStreetMap data files.")
(build-system gnu-build-system)
(native-inputs
`(("gnome-common" ,gnome-common)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(inputs
`(("cairo" ,cairo)
@@ -1748,10 +1784,9 @@ associated attribute file (@file{.dbf}).")
("libspatialite" ,libspatialite)
("libxml2" ,libxml2)
("minizip" ,minizip)
- ("proj.4" ,proj.4)
+ ("proj" ,proj)
("readosm" ,readosm)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)))
+ ("sqlite" ,sqlite)))
(synopsis "Collection of command line tools for SpatiaLite")
(description
"@code{spatialite-tools} is a collection of Command Line Interface (CLI)
@@ -1978,7 +2013,7 @@ visualization.")
(define-public saga
(package
(name "saga")
- (version "7.6.2")
+ (version "7.9.0")
(source
(origin
(method url-fetch)
@@ -1986,7 +2021,7 @@ visualization.")
(version-major version) "/SAGA%20-%20" version
"/saga-" version ".tar.gz"))
(sha256
- (base32 "09j5magmayq2y620kqa490mfd1kpdp3lng2ifcgbrmssc079ybm0"))))
+ (base32 "1n051yxxkylly0k9rlkx2ih3j2lf9d4csg00sm7161r7nhjvggd1"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -2001,7 +2036,7 @@ visualization.")
("libtiff" ,libtiff)
("opencv" ,opencv)
("postgresql" ,postgresql)
- ("proj.4" ,proj.4)
+ ("proj" ,proj)
("python" ,python)
("qhull" ,qhull)
("unixodbc" ,unixodbc)
@@ -2047,7 +2082,21 @@ growing set of geoscientific methods.")
(("sip_dir = cfg.default_sip_dir")
(string-append "sip_dir = \""
(assoc-ref inputs "python-pyqt+qscintilla")
- "/share/sip\"")))
+ "/share/sip\""))
+ ;; Fix building with python-sip@5.
+ ;;
+ ;; The reason for this is that python-sip@5 introduces some
+ ;; changes such as a new build system 'sip-build' as well as the
+ ;; use of the path "/lib/pythonX.X/site-packages/*/bindings/"
+ ;; instead of "/share/sip/" for .sip files. However, we do not
+ ;; actually use that those yet. QGIS detects SIP5 and assumes we
+ ;; are, messing up the build. The long term solution is to fully
+ ;; upgrade SIP, use sip-build and fix all failing packages, but
+ ;; for now I just want to get the build working.
+ ((".pyqt_sip_dir...os.path.join.*,")
+ (string-append "'pyqt_sip_dir': \""
+ (assoc-ref inputs "python-pyqt+qscintilla")
+ "/share/sip" "\",")))
(substitute* (list "scripts/prepare_commit.sh"
"scripts/qstringfixup.sh"
"scripts/release.pl"
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 5d005e0378..eee958171c 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -36,7 +36,9 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
@@ -166,7 +168,7 @@ of a larger interface.")
(define-public babl
(package
(name "babl")
- (version "0.1.78")
+ (version "0.1.86")
(source (origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -180,10 +182,11 @@ of a larger interface.")
"/babl-" version ".tar.xz")))
(sha256
(base32
- "0fjjfb0pbgimlqi7rk8cqz8pq595b7gw8nrpkxfmixdz6cv4km8p"))))
+ "1w68h81kqkqnziixrx21qs0gfv2z79651h19sxn226xdb58mjgqb"))))
(build-system meson-build-system)
(arguments
- `(#:configure-flags
+ `(#:meson ,meson-0.55
+ #:configure-flags
(list "-Denable-gir=false")))
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -205,7 +208,7 @@ provided, as well as a framework to add new color models and data types.")
(define-public gegl
(package
(name "gegl")
- (version "0.4.26")
+ (version "0.4.28")
(source (origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/gegl/"
@@ -219,10 +222,11 @@ provided, as well as a framework to add new color models and data types.")
"/gegl-" version ".tar.xz")))
(sha256
(base32
- "097427icgpgvcx40019b3dm8m84cchz79pixzpz648drs8p1wdqg"))))
+ "003ri7yv7lm2fi86ama3vlkwnz656yyib4r36hxwlk6mfy2hs48x"))))
(build-system meson-build-system)
(arguments
- `(#:configure-flags
+ `(#:meson ,meson-0.55
+ #:configure-flags
(list "-Dintrospection=false")
#:phases
(modify-phases %standard-phases
@@ -266,14 +270,15 @@ buffers.")
(package
(name "gimp")
(version "2.10.22")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://download.gimp.org/pub/gimp/v"
- (version-major+minor version)
- "/gimp-" version ".tar.bz2"))
- (sha256
- (base32
- "1fqqyshakvdarf1jipk2n33ibqr23ni22z3d8srq13bpydblpf1d"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.gimp.org/pub/gimp/v"
+ (version-major+minor version)
+ "/gimp-" version ".tar.bz2"))
+ (sha256
+ (base32 "1fqqyshakvdarf1jipk2n33ibqr23ni22z3d8srq13bpydblpf1d"))
+ (patches (search-patches "gimp-make-gegl-introspect-optional.patch"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 9 MiB of gtk-doc HTML
@@ -541,6 +546,29 @@ healing the border, increasing the resolution while adding detail, and
transferring the style of an image.")
(license license:gpl3+)))
+(define gegl-for-glimpse
+ ;; Remove this when GIMP commit 2cae9b9acf9da98c4c9990819ffbd5aabe23017e
+ ;; makes it into Glimpse.
+ (package
+ (inherit gegl)
+ (arguments
+ (substitute-keyword-arguments (package-arguments gegl)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'refer-to-dot
+ ;; XXX Without ‘dot’ in $PATH, Glimpse would fail to start with an
+ ;; extremely obtuse ‘GEGL operation missing!’ error.
+ (lambda _
+ (substitute* "gegl/gegl-dot.c"
+ (("\"dot ")
+ (format #f "\"~a " (which "dot"))))
+ (substitute* "operations/common/introspect.c"
+ (("g_find_program_in_path \\(\"dot\"\\)")
+ (format #f "g_strdup (\"~a\")" (which "dot"))))))))))
+ (inputs
+ `(,@(package-inputs gegl)
+ ("graphviz" ,graphviz)))))
+
(define-public glimpse
(package
(name "glimpse")
@@ -620,7 +648,7 @@ transferring the style of an image.")
("poppler-data" ,poppler-data)
("python" ,python-2) ; optional, Python support
("python2-pygtk" ,python2-pygtk) ; optional, Python support
- ("gegl" ,gegl)))
+ ("gegl" ,gegl-for-glimpse))) ; XXX see comment in gegl-for-glimpse
(home-page "https://glimpse-editor.github.io/")
(synopsis "Glimpse Image Editor")
(description "The Glimpse Image Editor is an application for image
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index dec2835ca6..a3839c0519 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -720,7 +720,7 @@ OpenGL graphics API.")
(description
"libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL
API calls between multiple vendors. It allows multiple drivers from
-different vendors to coexist on the same filesystem, and determines which
+different vendors to coexist on the same file system, and determines which
vendor to dispatch each API call to at runtime.
Both GLX and EGL are supported, in any combination with OpenGL and OpenGL ES.")
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 9c3cd75624..c04bd334e9 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -1165,7 +1165,7 @@ other API remains the same.")
`(("bison" ,bison)
("flex" ,flex)
("glib:bin" ,glib "bin") ;; For glib-mkenums
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(home-page "https://gitlab.gnome.org/GNOME/template-glib")
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index f73001f64b..d8997ac538 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -950,9 +950,9 @@ feature-set for programming Vala effectively.")
#:exclude ("README.md" "LICENSE" "Art/" "package.json"
"package-lock.json" "Gulpfile.js")))))
(home-page "https://github.com/EliverLara/Nordic")
- (synopsis "Dark Gtk3.20+ theme using the Nord color pallete")
+ (synopsis "Dark Gtk3.20+ theme using the Nord color palette")
(description "Nordic is a Gtk3.20+ theme created using the Nord color
-pallete.")
+palette.")
(license license:gpl3))))
(define-public tiramisu
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 34cd0fa992..34f5078581 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
@@ -201,7 +201,6 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu artwork)
- #:use-module ((guix build utils) #:select (modify-phases))
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
@@ -215,8 +214,6 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix gexp)
- #:use-module (guix monads)
- #:use-module (guix store)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
@@ -263,7 +260,7 @@
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(propagated-inputs
`(("glib" ,glib)
@@ -366,7 +363,7 @@ features to enable users to create their discs easily and quickly.")
(native-inputs
`(("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
@@ -415,7 +412,7 @@ services.")
(native-inputs
`(("docbook-xml" ,docbook-xml-4.1.2)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(propagated-inputs
`(("glib" ,glib)
@@ -512,7 +509,7 @@ bindings.")
("docbook-xml" ,docbook-xml-4.1.2)
("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
@@ -622,7 +619,7 @@ It is written in C using GObject and libsoup.")
"/share/gtk-doc/html"))))
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(propagated-inputs
`(("glib" ,glib)))
@@ -692,7 +689,7 @@ of writing test cases for asynchronous interactions.")
("dbus-test-runner" ,dbus-test-runner)
("docbook-xml" ,docbook-xml-4.3)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
;; Would only be required by configure flag "--enable-extended-tests".
;("gtx" ,gtx)
("pkg-config" ,pkg-config)
@@ -768,7 +765,7 @@ of known objects without needing a central registrar.")
("docbook-xml" ,docbook-xml-4.3)
("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("vala" ,vala)
@@ -1177,7 +1174,7 @@ Library reference documentation.")
`(("docbook-xml" ,docbook-xml-4.3)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(inputs
`(("avahi" ,avahi)
@@ -1295,7 +1292,7 @@ It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
@@ -1326,7 +1323,7 @@ a debugging tool, @command{gssdp-device-sniffer}.")
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
@@ -1357,7 +1354,7 @@ for creating UPnP devices and control points, written in C using
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("libxml" ,libxml2)
("pkg-config" ,pkg-config)
("vala" ,vala)))
@@ -1391,7 +1388,7 @@ given profile, etc. DLNA is a subset of UPnP A/V.")
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("libxml" ,libxml2)
("pkg-config" ,pkg-config)))
(inputs
@@ -1607,7 +1604,7 @@ preview files on the GNOME desktop.")
(native-inputs
`(("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
@@ -1669,7 +1666,7 @@ client devices can handle.")
`(("docbook-xml" ,docbook-xml-4.3)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("vala" ,vala)))
@@ -2417,7 +2414,7 @@ GNOME Desktop.")
("automake" ,automake)
("glib" ,glib "bin") ; for glib-genmarshal, etc.
("gnome-common" ,gnome-common)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("libtool" ,libtool)
@@ -3057,7 +3054,7 @@ configuring CUPS.")
("gobject-introspection" ,gobject-introspection)
;; For the documentation.
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("xsltproc" ,libxslt)
("docbook-xsl" ,docbook-xsl)))
(home-page "https://developer-next.gnome.org/libnotify/")
@@ -3370,7 +3367,7 @@ library.")
(define-public librsvg-next
(package
(name "librsvg")
- (version "2.50.2")
+ (version "2.50.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/librsvg/"
@@ -3378,7 +3375,7 @@ library.")
"librsvg-" version ".tar.xz"))
(sha256
(base32
- "1lsnl08b5pjf01q3agixjd53islw5rqkc38r31rlmm2crrqz44b2"))
+ "0n79i4wj9hm0d3bbn4xvknq5ylhqs16pvhaqr1rxspx9wfc8lad4"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "vendor")
@@ -3434,7 +3431,7 @@ library.")
("rust-chrono" ,rust-chrono-0.4)
("rust-criterion" ,rust-criterion-0.3)
("rust-float-cmp" ,rust-float-cmp-0.8)
- ("rust-lopdf" ,rust-lopdf-0.25)
+ ("rust-lopdf" ,rust-lopdf-0.26)
("rust-png" ,rust-png-0.16)
("rust-predicates" ,rust-predicates-1)
("rust-tempfile" ,rust-tempfile-3))
@@ -4198,7 +4195,7 @@ Hints specification (EWMH).")
(define-public gnumeric
(package
(name "gnumeric")
- (version "1.12.48")
+ (version "1.12.49")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnumeric/"
@@ -4206,7 +4203,7 @@ Hints specification (EWMH).")
"gnumeric-" version ".tar.xz"))
(sha256
(base32
- "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p"))))
+ "0mzdhhpa7kwkc51l344g6vgqwaxkjdf03s7zasqh0bn3jpn75h4i"))))
(build-system glib-or-gtk-build-system)
(arguments
`(;; The gnumeric developers don't worry much about failing tests.
@@ -4256,6 +4253,57 @@ engineering.")
;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
(list license:gpl2 license:gpl3))))
+(define-public drawing
+ (package
+ (name "drawing")
+ (version "0.6.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/maoschanz/drawing")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kfgmalakifcvzhzss9zhmqjbdk24zr22c5xwkkahlvfcafp13wn"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((prog (string-append (assoc-ref outputs "out")
+ "/bin/drawing"))
+ (pylib (string-append (assoc-ref outputs "out")
+ "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages")))
+ (wrap-program prog
+ `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
+ `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+ #t))))))
+ (native-inputs
+ `(("desktop-file-utils" ,desktop-file-utils)
+ ("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk+:bin" ,gtk+ "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gtk+" ,gtk+)
+ ("pango" ,pango)
+ ("python-pycairo" ,python-pycairo)
+ ("python-pygobject" ,python-pygobject)))
+ (home-page "https://maoschanz.github.io/drawing/")
+ (synopsis "Basic image editor for GNOME")
+ (description
+ "Drawing is a basic image editor aiming at the GNOME desktop.")
+ (license license:gpl3+)))
+
(define-public gnome-themes-standard
(package
(name "gnome-themes-standard")
@@ -4452,7 +4500,7 @@ editors, IDEs, etc.")
"0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
(build-system meson-build-system)
(native-inputs
- `(("gtk-doc" ,gtk-doc)
+ `(("gtk-doc" ,gtk-doc/stable)
,@(package-native-inputs vte)))
(arguments
`(#:configure-flags '("-Ddocs=true")))
@@ -4569,7 +4617,7 @@ and RDP protocols.")
("docbook-xml" ,docbook-xml-4.2)
("docbook-xsl" ,docbook-xsl)
("glib:bin" ,glib "bin")
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(arguments
@@ -4646,7 +4694,7 @@ and objects.")
`(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("which" ,which)
("autoconf" ,autoconf)
@@ -4869,7 +4917,7 @@ libxml to ease remote use of the RESTful API.")
`(("docbook-xml" ,docbook-xml-4.1.2)
("glib:bin" ,glib "bin") ; for glib-mkenums
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
@@ -5236,7 +5284,7 @@ keyboard shortcuts.")
`(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(propagated-inputs
@@ -5281,7 +5329,7 @@ output devices.")
("gobject-introspection" ,gobject-introspection)
("modem-manager" ,modem-manager)
("libnotify" ,libnotify)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)))
(inputs
`(("avahi" ,avahi)
@@ -5326,7 +5374,7 @@ permission from user.")
("glibc-locales" ,glibc-locales) ; for tests
("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("json-glib" ,json-glib)))
(propagated-inputs
@@ -5632,7 +5680,7 @@ which are easy to play with the aid of a mouse.")
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
("glib:bin" ,glib "bin") ; for glib-mkenums
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
@@ -6049,7 +6097,7 @@ as possible!")
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("vala" ,vala)))
(inputs
`(("cyrus-sasl" ,cyrus-sasl)
@@ -6483,7 +6531,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.")
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
("gettext" ,gettext-minimal)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("xsltproc" ,libxslt)))
(inputs
@@ -6548,7 +6596,7 @@ DAV, and others.")
`(("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("vala" ,vala)
- ("gtk-doc" ,gtk-doc)))
+ ("gtk-doc" ,gtk-doc/stable)))
(propagated-inputs
;; Both of these are required by gusb.pc.
`(("glib" ,glib)
@@ -6661,9 +6709,11 @@ almost all of them.")
("python-pygobject" ,python-pygobject)
("python-pycairo" ,python-pycairo)
("python-pycrypto" ,python-pycrypto)
+ ("libhandy" ,libhandy)
("libsecret" ,libsecret)
("gtkspell3" ,gtkspell3)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
("webkitgtk" ,webkitgtk)))
(home-page "https://wiki.gnome.org/Apps/Eolie")
(synopsis "Web browser for GNOME")
@@ -7751,7 +7801,7 @@ users.")
`(("glib" ,glib)))
(native-inputs
`(("glib:bin" ,glib "bin") ; for gdbus-codegen
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("gobject-introspection" ,gobject-introspection)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
@@ -8008,7 +8058,7 @@ Cisco's AnyConnect SSL VPN.")
`(("intltool" ,intltool)
("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(propagated-inputs
;; libnm-gtk.pc refers to all these.
@@ -9756,7 +9806,7 @@ compiled.")
"--enable-introspection")))
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
@@ -9828,7 +9878,7 @@ environment, which can notably display keyboard layouts.")
`(("pkg-config" ,pkg-config)
("gobject-introspection" ,gobject-introspection)
("glib:bin" ,glib "bin")
- ("gtk-doc" ,gtk-doc)))
+ ("gtk-doc" ,gtk-doc/stable)))
(propagated-inputs
;; Referred to in .h files and .pc.
`(("gtk+" ,gtk+)))
@@ -10413,7 +10463,7 @@ photo-booth-like software, such as Cheese.")
("docbook-xml" ,docbook-xml-4.3)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("itstool" ,itstool)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
@@ -10845,7 +10895,7 @@ advanced image management tool")
(define-public terminator
(package
(name "terminator")
- (version "2.1.0")
+ (version "2.1.1")
(source
(origin
(method url-fetch)
@@ -10853,8 +10903,7 @@ advanced image management tool")
"releases/download/v" version "/"
name "-" version ".tar.gz"))
(sha256
- (base32
- "1vap4li2i24l1iz2q4b8wvhj8flamarf18xcmzq5ik2vzcrisbjy"))))
+ (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
(build-system python-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@@ -10952,7 +11001,7 @@ tabs, and it supports drag and drop re-ordering of terminals.")
`(("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
("vala" ,vala)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
@@ -11487,7 +11536,7 @@ card sheets that you’ll find at most office supply stores.")
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
@@ -12079,7 +12128,7 @@ developed with the aim of being used with the Librem 5 phone.")
("glib:bin" ,glib "bin")
("gnome-common" ,gnome-common)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 425ed81f9a..f2de477548 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -694,8 +694,8 @@ from forcing GEXP-PROMISE."
#:system system
#:guile-for-build guile)))
-(define %icecat-version "78.8.0-guix0-preview1")
-(define %icecat-build-id "20210223000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-version "78.9.0-guix0-preview1")
+(define %icecat-build-id "20210323000000") ;must be of the form YYYYMMDDhhmmss
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -717,7 +717,7 @@ from forcing GEXP-PROMISE."
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
- "0451hhjrj9hb6limxim7sbhvw4gs6dd2gmnfxjjx07z3wbgdzwhw"))))
+ "0r28wrsk2k6pc922zfs5wljh8ziqm4a98lisn7409j2szhfsq0wf"))))
(upstream-icecat-base-version "78.7.0") ; maybe older than base-version
;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
@@ -1305,11 +1305,11 @@ standards of the IceCat project.")
(cpe-version . ,(first (string-split version #\-)))))))
;; Update this together with icecat!
-(define %icedove-build-id "20210223000000") ;must be of the form YYYYMMDDhhmmss
+(define %icedove-build-id "20210323000000") ;must be of the form YYYYMMDDhhmmss
(define-public icedove
(package
(name "icedove")
- (version "78.8.0")
+ (version "78.9.0")
(source icecat-source)
(properties
`((cpe-name . "thunderbird_esr")))
@@ -1589,7 +1589,7 @@ standards of the IceCat project.")
;; in the Thunderbird release tarball. We don't use the release
;; tarball because it duplicates the Icecat sources and only adds the
;; "comm" directory, which is provided by this repository.
- ,(let ((changeset "d801a94f25867ca5f2f3488c4700532351987999"))
+ ,(let ((changeset "1a5cd2aa11de609116f258b413afcf113ed72f3a"))
(origin
(method hg-fetch)
(uri (hg-reference
@@ -1598,7 +1598,7 @@ standards of the IceCat project.")
(file-name (string-append "thunderbird-" version "-checkout"))
(sha256
(base32
- "19h1s9qcxzcvbd1m07xajk5lhpikj53k5fp3nwvl38xj7a3s0gxw")))))
+ "0qgz9qj8gbn2ccmhvk3259ahs9p435ipvkzsysn3xj8a6klbz02w")))))
("autoconf" ,autoconf-2.13)
("cargo" ,rust-1.41 "cargo")
("clang" ,clang)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d9988cd7ad..6502740220 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2016, 2019 Ludovic Courtès <ludo@gnu.org>
@@ -2099,7 +2099,7 @@ application's http.Handlers.")
(define-public go-github-com-sirupsen-logrus
(package
(name "go-github-com-sirupsen-logrus")
- (version "1.0.5")
+ (version "1.8.1")
(source
(origin
(method git-fetch)
@@ -2109,17 +2109,16 @@ application's http.Handlers.")
(file-name (git-file-name name version))
(sha256
(base32
- "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
+ "0rvqzic2zz7fpxyizmqxwmhv1m52ii9bgxnqa6km8wsa0l08wh42"))))
(build-system go-build-system)
(propagated-inputs
- `(("go-golang-org-x-crypto"
- ,go-golang-org-x-crypto)
- ("go-github-com-stretchr-testify"
- ,go-github-com-stretchr-testify)
+ `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)
+ ("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)
+ ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
+ ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
("go-golang-org-x-sys" ,go-golang-org-x-sys)))
(arguments
- '(#:tests? #f ;FIXME missing dependencies
- #:import-path "github.com/sirupsen/logrus"))
+ '(#:import-path "github.com/sirupsen/logrus"))
(home-page "https://github.com/sirupsen/logrus")
(synopsis "Structured, pluggable logging for Go")
(description "Logrus is a structured logger for Go, completely API
@@ -3966,7 +3965,7 @@ without requiring a real database connection.")
(home-page "https://github.com/go-sql-driver/mysql")
(synopsis "MySQL driver for golang")
(description
- "This is a pure Go implementaton of the MySQL API, compatible with
+ "This is a pure Go implementation of the MySQL API, compatible with
golang's database/sql package.")
(license license:mpl2.0)))
@@ -5505,7 +5504,7 @@ the parse trees produced by the html package.")
(build-system go-build-system)
(arguments
`(#:import-path "github.com/PuerkitoBio/goquery"))
- (native-inputs
+ (propagated-inputs
`(("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
("go-golang-org-x-net" ,go-golang-org-x-net)))
(home-page "https://github.com/PuerkitoBio/goquery")
@@ -5828,7 +5827,7 @@ which produce colorized output using github.com/fatih/color.")
(synopsis "Write handsome command-line tools with glamour")
(description "@code{glamour} lets you render markdown documents and
templates on ANSI compatible terminals. You can create your own stylesheet or
-use one of our glamourous default themes.")
+use one of our glamorous default themes.")
(license license:expat)))
(define-public go-github-com-coreos-go-semver
@@ -6912,7 +6911,7 @@ atomic access.")
(propagated-inputs
`(("go-go-uber-org-atomic" ,go-go-uber-org-atomic)))
(home-page "https://go.uber.org/multierr")
- (synopsis "Error combination fo Go")
+ (synopsis "Error combination for Go")
(description
"@code{multierr} allows combining one or more Go errors together.")
(license license:expat)))
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index db04b93f20..3c9cf18bbc 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016, 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
@@ -718,7 +718,7 @@ more.")
(define-public cgal
(package
(name "cgal")
- (version "5.2")
+ (version "5.2.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -726,9 +726,7 @@ more.")
"/CGAL-" version ".tar.xz"))
(sha256
(base32
- "08sr2k2dm4zasfbvisqpvs6djqw3rywzwpzr701an870nvnqck3l"))
- (patches (search-patches "cgal-security-pr-5371.patch"))
- (patch-flags '("-p2"))))
+ "1rhrpjsp4081nn2q215h78kc4msrj0081zg65k1gfp5hl88bg03y"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no test target
@@ -755,7 +753,7 @@ many more.")
(define-public ilmbase
(package
(name "ilmbase")
- (version "2.5.2")
+ (version "2.5.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -764,7 +762,7 @@ many more.")
(file-name (git-file-name "ilmbase" version))
(sha256
(base32
- "1vf8bqld2bpcdi99jbr043y6vp01cp3fvbiasrn66xn91mf6imbn"))
+ "0mjzb3fd8b9pcqmrgy5cdsmvqd70hmlvjnfypi66v59h3fhrmgd8"))
(patches (search-patches "ilmbase-fix-tests.patch"))))
(build-system cmake-build-system)
(arguments
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 1c7ba98a86..6a4e14167d 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -384,7 +384,7 @@ http://www.tux.org/~ricdude/overview.html")
"if (error) return 77;"))
#t)))))
(native-inputs
- `(("gtk-doc" ,gtk-doc)))
+ `(("gtk-doc" ,gtk-doc/stable)))
(home-page "https://gstreamer.freedesktop.org/modules/orc.html")
(synopsis "Oil runtime compiler")
(description
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5b1c4481fd..bffc9e0298 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
-;;; Coypright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
@@ -48,6 +48,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
@@ -722,7 +723,7 @@ in the GNOME project.")
(native-inputs
`(("gettext" ,gettext-minimal)
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("glib" ,glib "bin")
("pkg-config" ,pkg-config)))
(synopsis "Assistive Technology Service Provider Interface, core components")
@@ -1829,6 +1830,17 @@ typically used to document the public API of GTK+ and GNOME libraries, but it
can also be used to document application code.")
(license license:gpl2+)))
+;; This is a variant of the 'gtk-doc' package that is not updated often. It
+;; is intended to be used as a native-input at build-time only. This allows
+;; the main 'gtk-doc', 'dblatex' and 'imagemagick' packages to be freely
+;; updated on the 'master' branch without triggering an excessive number of
+;; rebuilds.
+(define-public gtk-doc/stable
+ (hidden-package
+ (package/inherit gtk-doc
+ (inputs (alist-replace "dblatex" `(,dblatex/stable)
+ (package-inputs gtk-doc))))))
+
(define-public gtk-engines
(package
(name "gtk-engines")
@@ -2192,16 +2204,18 @@ displayed on the other side of the bus.")
(define-public gtk-layer-shell
(package
(name "gtk-layer-shell")
- (version "0.1.0")
+ (version "0.6.0")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/wmww/gtk-layer-shell/releases/download/v"
- version "/gtk-layer-shell-" version ".tar.xz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wmww/gtk-layer-shell")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0ncklk3z0fzlz6p76jdcrr1ykyp1f4ykjjch4x2hfp9bwsnl4a3m"))))
+ (base32 "1kcp4p3s7sdh9lwniybjdarfy8z69j2j23hfrw98amhwhq39gdcc"))))
(build-system meson-build-system)
+ (arguments `(#:configure-flags (list "-Dtests=true")))
(native-inputs `(("pkg-config" ,pkg-config)
("gobject-introspection" ,gobject-introspection)))
(inputs `(("wayland" ,wayland)
@@ -2233,7 +2247,7 @@ popovers.")
`(("gettext" ,gettext-minimal)
("glib-bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)
("python" ,python)))
(inputs
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 9f4118f083..b2cbf3e898 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -22,19 +22,20 @@
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
;;; Copyright © 2019, 2020 Amar Singh <nly@disroot.org>
-;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2019, 2021 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Julien Lepiler <julien@lepiller.eu>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
+;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo>
;;; Copyright © 2020 Jesse Gibbons <jgibbons2357@gmail.com>
;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020, 2021 pukkamustard <pukkamustard@posteo.net>
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -90,6 +91,7 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages noweb)
#:use-module (gnu packages nss)
+ #:use-module (gnu packages package-management)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -1312,44 +1314,37 @@ Scheme by using Guile’s foreign function interface.")
(deprecated-package "guile3.0-newt" guile-newt))
(define-public guile-mastodon
- (package
- (name "guile-mastodon")
- (version "0.0.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://framagit.org/prouby/guile-mastodon.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1vblf3d1bbwna3l09p2ap5y8ycvl549bz6whgk78imyfmn28ygry"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Allow builds with Guile 3.0.
- (substitute* "configure.ac"
- (("^PKG_CHECK.*") "")
- (("^GUILE_PKG.*")
- "GUILE_PKG([3.0 2.2])\n"))
- #t))))
- (build-system gnu-build-system)
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("emacs" ,emacs-minimal)
- ("pkg-config" ,pkg-config)
- ("texinfo" ,texinfo)))
- (inputs
- `(("guile" ,guile-3.0)
- ("gnutls" ,gnutls)
- ("guile-json" ,guile-json-4)))
- (home-page "https://framagit.org/prouby/guile-mastodon")
- (synopsis "Guile Mastodon REST API module")
- (description "This package provides Guile modules to access the
+ (let ((commit "74b75bcf547df92acee1e0466ecd7ec07f775392")
+ (revision "1"))
+ (package
+ (name "guile-mastodon")
+ (version (git-version "0.0.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://framagit.org/prouby/guile-mastodon.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1wx5h6wa9c0na8mrnr2nv1nzjvq68zyrly8yyp11dsskhaw4y33h"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("emacs" ,emacs-minimal)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))
+ (inputs
+ `(("guile" ,guile-3.0)
+ ("gnutls" ,gnutls)
+ ("guile-json" ,guile-json-4)))
+ (home-page "https://framagit.org/prouby/guile-mastodon")
+ (synopsis "Guile Mastodon REST API module")
+ (description "This package provides Guile modules to access the
@uref{https://docs.joinmastodon.org/api/, REST API of Mastodon}, a federated
microblogging service.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public guile-parted
(package
@@ -1751,6 +1746,35 @@ The library is shipped with documentation in Info format and usage examples.")
(define-public guile3.0-ics
(deprecated-package "guile3.0-ics" guile-ics))
+(define-public guile-imanifest
+ (let ((commit "ccd5a2111b008d778106f5595a3a585954d95d0")
+ (revision "0"))
+ (package
+ (name "guile-imanifest")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~brown121407/guile-imanifest")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0i5qllcrhdjhspyj7j9h4dc9y37d3cfbpackmybm3030qgfxqirf"))))
+ (build-system guile-build-system)
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (propagated-inputs
+ `(("guile-readline" ,guile-readline)
+ ("guile-colorized" ,guile-colorized)
+ ("guix" ,guix)))
+ (home-page "https://sr.ht/~brown121407/guile-imanifest")
+ (synopsis "Interactive Guix manifests")
+ (description "This package provides functions to generate Guix manifests
+interactively. It works by scanning an alist of package categories, to ask the
+user which package sets would they like to install from it.")
+ (license license:gpl3+))))
+
(define-public guile-wisp
(package
(name "guile-wisp")
@@ -3495,7 +3519,7 @@ feature-set, fully programmable in Guile Scheme.")
texlive-fonts-iwona)))
("pkg-config" ,pkg-config)))
(propagated-inputs
- `(("guile-lib" ,guile-lib)))
+ `(("guile-lib" ,guile2.2-lib)))
(home-page "https://www.gnu.org/software/guile-cv/")
(synopsis "Computer vision library for Guile")
(description "Guile-CV is a Computer Vision functional programming library
@@ -4262,6 +4286,9 @@ errors.")
,@%gnu-build-system-modules)
#:make-flags
'("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
+ ;; Parallel builds fail on powerpc64le-linux.
+ ;; See https://lists.nongnu.org/archive/html/guile-avahi-bugs/2021-01/msg00000.html
+ #:parallel-build? #f
#:phases
(modify-phases %standard-phases
(add-before 'check 'fix-guile-avahi-file-name
@@ -4422,7 +4449,7 @@ tools.")
(synopsis "Guile implementation of the Encoding for Robust Immutable Storage (ERIS)")
(description
"Guile-ERIS is the reference implementation of the Encoding for Robust
-Immutable Storage (ERIS). ERIS allows arbirtary content to be encoded into
+Immutable Storage (ERIS). ERIS allows arbitrary content to be encoded into
uniformly sized, encrypted blocks that can be reassembled using a short
read-capability.")
(home-page "https://inqlab.net/git/eris.git")
@@ -4619,3 +4646,28 @@ binary which is smaller and faster to generate and parse. This package provides
a Guile implementation of CBOR.")
(home-page "https://inqlab.net/git/guile-cbor.git")
(license license:gpl3+)))
+
+(define-public guile-quickcheck
+ (package
+ (name "guile-quickcheck")
+ (version "0.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://files.ngyro.com/"
+ "guile-quickcheck/guile-quickcheck-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "03mwi1l3354x52nar0zwhcm0x29yai9xjln4p4gbchwvx5dsr6fb"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://ngyro.com/software/guile-quickcheck.html")
+ (synopsis "Randomized property-based testing for Guile")
+ (description "Guile-Quickcheck is a library for random testing of program
+properties inspired by ghc-quickcheck. You can use it to express properties,
+which functions should satisfy, as Scheme code and then check whether they hold
+in a large number of randomly generated test cases.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 10672f52f3..d5941b6c0f 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Evgeny Pisemsky <evgeny@pisemsky.com>
@@ -61,14 +61,14 @@
(define-public ddcutil
(package
(name "ddcutil")
- (version "0.9.9")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.ddcutil.com/tarballs/"
"ddcutil-" version ".tar.gz"))
(sha256
- (base32 "0anyxy53k2613hq9glaad16llqlv6iim5p8gz0rs5pnpp8p00dg1"))))
+ (base32 "19kkwb9ijzn6ya3mvjanggh1c96fcc0lkbk7xnyi2qp6wsr4nhxp"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index d7d5a0223a..8128c5425e 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -342,14 +342,14 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
- (version "8.20210310")
+ (version "8.20210330")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz"))
(sha256
- (base32 "1a4pr9z2li3wns1xycz7735nzzsv3cs8milr0q74k5qcqk5f22nx"))))
+ (base32 "07dhxlmnj48drgndcplafc7xhby0w3rks68fz9wsppxan929240p"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 0be9890d23..a250bb4262 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -2266,7 +2266,7 @@ server no longer receives pings, it shuts down.")
("ghc-websockets" ,ghc-websockets)))
(home-page "https://github.com/larskuhtz/wai-cors")
(synopsis "Cross-Origin Resource Sharing (CORS) for WAI")
- (description "This package provides an implemenation of Cross-Origin
+ (description "This package provides an implementation of Cross-Origin
Resource Sharing (CORS) for the Web Application Framework (WAI) that
aims to be compliant with @url{https://www.w3.org/TR/cors}.")
(license license:expat)))
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 26f6faea8c..2795eaf130 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018 Lprndn <guix@lprndn.info>
;;; Copyright © 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
@@ -14,6 +14,7 @@
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 Oleh Malyi <astroclubzp@gmail.com>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -246,7 +247,7 @@ many popular formats.")
(define-public vtk
(package
(name "vtk")
- (version "8.2.0")
+ (version "9.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://vtk.org/files/release/"
@@ -254,7 +255,7 @@ many popular formats.")
"/VTK-" version ".tar.gz"))
(sha256
(base32
- "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl"))
+ "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v"))
(patches
(search-patches "vtk-fix-freetypetools-build-failure.patch"))
(modules '((guix build utils)))
@@ -264,35 +265,47 @@ many popular formats.")
(lambda (dir)
(delete-file-recursively
(string-append "ThirdParty/" dir "/vtk" dir)))
- ;; ogg, pugixml depended upon unconditionally
+ ;; pugixml depended upon unconditionally
'("doubleconversion" "eigen" "expat" "freetype" "gl2ps"
"glew" "hdf5" "jpeg" "jsoncpp" "libproj" "libxml2" "lz4"
- "netcdf" "png" "sqlite" "theora" "tiff" "zlib"))
+ "netcdf" "ogg" "png" "sqlite" "theora" "tiff" "zlib"))
#t))))
+ (properties `((release-monitoring-url . "https://vtk.org/download/")))
(build-system cmake-build-system)
(arguments
'(#:build-type "Release" ;Build without '-g' to save space.
#:configure-flags '(;"-DBUILD_TESTING:BOOL=TRUE"
- ;"-DVTK_MODULE_USE_EXTERNAL_vtkogg:BOOL=TRUE" ; not honored
- "-DVTK_USE_SYSTEM_DOUBLECONVERSION:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_EIGEN:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_EXPAT:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_FREETYPE:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_GL2PS:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_GLEW:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_HDF5:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_JPEG:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_JSONCPP:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_LIBPROJ:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_LIBXML2:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_LZ4:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_NETCDF:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_PNG:BOOL=TRUE"
- ;"-DVTK_USE_SYSTEM_PUGIXML:BOOL=TRUE" ; breaks IO/CityGML
- "-DVTK_USE_SYSTEM_SQLITE:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_THEORA:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_TIFF:BOOL=TRUE"
- "-DVTK_USE_SYSTEM_ZLIB:BOOL=TRUE")
+ ; ; not honored
+ "-DVTK_USE_EXTERNAL=OFF" ;; default
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_libproj=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_ogg=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON"
+ ;"-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=ON" ; breaks IO/CityGML
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_sqlite=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON"
+ )
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-sources
+ (lambda _
+ (substitute* "Common/Core/vtkFloatingPointExceptions.cxx"
+ (("<fenv.h>") "<cfenv>"))
+ (substitute* "Common/Core/CMakeLists.txt"
+ (("fenv.h") "cfenv")))))
#:tests? #f)) ;XXX: test data not included
(inputs
`(("double-conversion" ,double-conversion)
@@ -305,7 +318,6 @@ many popular formats.")
("hdf5" ,hdf5)
("jpeg" ,libjpeg-turbo)
("jsoncpp" ,jsoncpp)
- ;("libogg" ,libogg)
("libtheora" ,libtheora)
("libX11" ,libx11)
("libxml2" ,libxml2)
@@ -320,6 +332,10 @@ many popular formats.")
("tiff" ,libtiff)
("xorgproto" ,xorgproto)
("zlib" ,zlib)))
+ (propagated-inputs
+ ;; VTK's 'VTK-vtk-module-find-packages.cmake' calls
+ ;; 'find_package(THEORA)', which in turns looks for libogg.
+ `(("libogg" ,libogg)))
(home-page "https://vtk.org/")
(synopsis "Libraries for 3D computer graphics")
(description
@@ -556,7 +572,7 @@ vision algorithms. It can be used to do things like:
(define-public vips
(package
(name "vips")
- (version "8.10.5")
+ (version "8.10.6")
(source
(origin
(method url-fetch)
@@ -564,7 +580,7 @@ vision algorithms. It can be used to do things like:
"https://github.com/libvips/libvips/releases/download/v"
version "/vips-" version ".tar.gz"))
(sha256
- (base32 "1n6gw7cw66rfn1wdb92ydpkv7gfmjiinsg6d6gqxpdja6gsz5vm4"))))
+ (base32 "0vjsh3i0861f6h9as3bch956cidz824zz499pvhjs3lfjn6hhs14"))))
(build-system gnu-build-system)
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index de6872b9b2..d04a247976 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1408,7 +1408,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
(define-public jasper
(package
(name "jasper")
- (version "2.0.26")
+ (version "2.0.27")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1417,7 +1417,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
(file-name (git-file-name name version))
(sha256
(base32
- "0zh239v6gj1ndrsk4ds5faiiyakpddmbpcy4v6p6shicfbr04snf"))))
+ "0mrnazk8qla7nn59xad86gmrf5fzqcv74j5xhcdrxbgfw67l17zd"))))
(build-system cmake-build-system)
(inputs
`(("libjpeg" ,libjpeg-turbo)))
@@ -2164,6 +2164,42 @@ by AOM, including with alpha.")
(license (list license:bsd-2 ; libavif itself
license:expat)))) ; cJSON in the test suite
+(define-public libheif
+ (package
+ (name "libheif")
+ (version "1.11.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/strukturag/libheif")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "036n63vlk4sk7y25q2kzyvvw4r5vv323ysbmbrcaprg9hdyjqgf5"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ;no test target although there is a tests folder
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("dav1d" ,dav1d)
+ ("gdk-pixbuf" ,gdk-pixbuf) ;optional
+ ("libaom" ,libaom)
+ ("libde265" ,libde265)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("x265" ,x265)))
+ (home-page "https://github.com/strukturag/libheif")
+ (synopsis "HEIF and AVIF file format decoder and encoder")
+ (description
+ "@code{libheif} is an ISO/IEC 23008-12:2017 HEIF and AVIF (AV1 Image File
+Format) file format decoder and encoder.")
+ (license license:lgpl3+)))
+
(define-public mtpaint
(package
(name "mtpaint")
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index a3562f2e13..4f0ffcbcc6 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016, 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
@@ -42,130 +42,125 @@
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml)
- #:use-module (gnu packages xorg))
+ #:use-module (gnu packages xorg)
+ #:use-module (srfi srfi-1))
-(define-public imagemagick
- (package
- (name "imagemagick")
- ;; The 7 release series has an incompatible API, while the 6 series is still
- ;; maintained. Don't update to 7 until we've made sure that the ImageMagick
- ;; users are ready for the 7-series API.
- (version "6.9.11-48")
- (replacement imagemagick/fixed)
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://imagemagick/ImageMagick-"
- version ".tar.xz"))
- (sha256
- (base32
- "0m8nkmywkqwyrr01q7aiakj6mi4rb2psjgzv8n0x82x3s1rpfyql"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch"
+;; This is a variant of the 'imagemagick' package that is not updated often.
+;; It is intended to be used as a native-input at build-time only, e.g. by
+;; 'gtk-doc' (via 'dblatex') for generating package documentation. This
+;; allows the main 'imagemagick' package to be freely updated on the 'master'
+;; branch without triggering an excessive number of rebuilds.
+;;
+;; Normally the grafts mechanism would be used, but there are often
+;; difficulties grafting imagemagick, e.g. because upstream changes the ABI
+;; between micro version updates. Also, the overwhelming majority of
+;; dependencies on imagemagick are via 'gtk-doc' in 'native-inputs', where
+;; grafting is ineffective. See:
+;; <https://lists.gnu.org/archive/html/guix-devel/2021-03/msg00381.html>.
+(define-public imagemagick/stable
+ (hidden-package
+ (package
+ (name "imagemagick")
+ ;; The 7 release series has an incompatible API, while the 6 series is still
+ ;; maintained. Don't update to 7 until we've made sure that the ImageMagick
+ ;; users are ready for the 7-series API.
+ (version "6.9.11-48")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://imagemagick/ImageMagick-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0m8nkmywkqwyrr01q7aiakj6mi4rb2psjgzv8n0x82x3s1rpfyql"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch"
- ;; Do not embed the build date in binaries.
- "--enable-reproducible-build")
+ ;; Do not embed the build date in binaries.
+ "--enable-reproducible-build")
- ;; FIXME: The test suite succeeded before version 6.9.6-2.
- ;; Try enabling it again with newer releases.
- #:tests? #f
- #:phases (modify-phases %standard-phases
- (add-before
- 'build 'pre-build
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "Makefile"
- ;; Clear the `LIBRARY_PATH' setting, which otherwise
- ;; interferes with our own use.
- (("^LIBRARY_PATH[[:blank:]]*=.*$")
- "")
+ ;; FIXME: The test suite succeeded before version 6.9.6-2.
+ ;; Try enabling it again with newer releases.
+ #:tests? #f
+ #:phases (modify-phases %standard-phases
+ (add-before
+ 'build 'pre-build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ ;; Clear the `LIBRARY_PATH' setting, which otherwise
+ ;; interferes with our own use.
+ (("^LIBRARY_PATH[[:blank:]]*=.*$")
+ "")
- ;; Since the Makefile overrides $docdir, modify it to
- ;; refer to what we want.
- (("^DOCUMENTATION_PATH[[:blank:]]*=.*$")
- (let ((doc (assoc-ref outputs "doc")))
- (string-append "DOCUMENTATION_PATH = "
- doc "/share/doc/"
- ,name "-"
- ,(package-version this-package) "\n"))))
- #t))
- (add-before
- 'configure 'strip-configure-xml
- (lambda _
- (substitute* "config/configure.xml.in"
- ;; Do not record 'configure' arguments in the
- ;; configure.xml file that gets installed: That would
- ;; include --docdir, and thus retain a reference to the
- ;; 'doc' output.
- (("@CONFIGURE_ARGS@")
- "not recorded"))
- #t)))))
- ;; TODO: Add Jasper etc.
- (inputs `(("fftw" ,fftw)
- ("graphviz" ,graphviz)
- ("ghostscript" ,ghostscript)
- ("lcms" ,lcms)
- ("libx11" ,libx11)
- ("zlib" ,zlib)
- ("libxml2" ,libxml2)
- ("libtiff" ,libtiff)
- ("libpng" ,libpng)
- ("libjpeg" ,libjpeg-turbo)
- ("pango" ,pango)
- ("freetype" ,freetype)
- ("bzip2" ,bzip2)
- ("xz" ,xz)))
- (native-inputs `(("pkg-config" ,pkg-config)))
- (outputs '("out"
- "doc")) ; 26 MiB of HTML documentation
- (home-page "https://www.imagemagick.org/")
- (synopsis "Create, edit, compose, or convert bitmap images")
- (description
- "ImageMagick is a software suite to create, edit, compose, or convert
+ ;; Since the Makefile overrides $docdir, modify it to
+ ;; refer to what we want.
+ (("^DOCUMENTATION_PATH[[:blank:]]*=.*$")
+ (let ((doc (assoc-ref outputs "doc")))
+ (string-append "DOCUMENTATION_PATH = "
+ doc "/share/doc/"
+ ,name "-"
+ ,(package-version this-package) "\n"))))
+ #t))
+ (add-before
+ 'configure 'strip-configure-xml
+ (lambda _
+ (substitute* "config/configure.xml.in"
+ ;; Do not record 'configure' arguments in the
+ ;; configure.xml file that gets installed: That would
+ ;; include --docdir, and thus retain a reference to the
+ ;; 'doc' output.
+ (("@CONFIGURE_ARGS@")
+ "not recorded"))
+ #t)))))
+ ;; TODO: Add Jasper etc.
+ (inputs `(("fftw" ,fftw)
+ ("graphviz" ,graphviz)
+ ("ghostscript" ,ghostscript)
+ ("lcms" ,lcms)
+ ("libx11" ,libx11)
+ ("zlib" ,zlib)
+ ("libxml2" ,libxml2)
+ ("libtiff" ,libtiff)
+ ("libpng" ,libpng)
+ ("libjpeg" ,libjpeg-turbo)
+ ("pango" ,pango)
+ ("freetype" ,freetype)
+ ("bzip2" ,bzip2)
+ ("xz" ,xz)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (outputs '("out"
+ "doc")) ; 26 MiB of HTML documentation
+ (home-page "https://www.imagemagick.org/")
+ (synopsis "Create, edit, compose, or convert bitmap images")
+ (description
+ "ImageMagick is a software suite to create, edit, compose, or convert
bitmap images. It can read and write images in a variety of formats (over 100)
including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,
and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and
transform images, adjust image colors, apply various special effects, or draw
text, lines, polygons, ellipses and Bézier curves.")
- (license (license:fsf-free "http://www.imagemagick.org/script/license.php"))))
+ (license (license:fsf-free "http://www.imagemagick.org/script/license.php")))))
-(define-public imagemagick/fixed
+(define-public imagemagick
(package
- (inherit imagemagick)
- (name "imagemagick")
- ;; 'g' for 'guix', appended character to retain version length so grafting
- ;; works properly.
- (version "6.9.12-2g")
+ (inherit imagemagick/stable)
+ (properties (alist-delete 'hidden? (package-properties imagemagick/stable)))
+ ;; The 7 release series has an incompatible API, while the 6 series is still
+ ;; maintained. Don't update to 7 until we've made sure that the ImageMagick
+ ;; users are ready for the 7-series API.
+ (version "6.9.12-4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
- ;; Hardcode the version here since we had to
- ;; change it above.
- "6.9.12-2.tar.xz"))
+ version ".tar.xz"))
(sha256
(base32
- "17da5zihz58qm41y61sbvw626m5xfwr2nzszlikrvxyq1j1q7asa"))))
- (arguments
- (substitute-keyword-arguments (package-arguments imagemagick)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'fix-compat-cheat-rename-so
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion
- (string-append (assoc-ref outputs "out")
- "/lib")
- (symlink "libMagick++-6.Q16.so.9.0.0"
- "libMagick++-6.Q16.so.8.0.0")
- (symlink "libMagick++-6.Q16.so.9"
- "libMagick++-6.Q16.so.8")
- (symlink "libMagickCore-6.Q16.so.7.0.0"
- "libMagickCore-6.Q16.so.6.0.0")
- (symlink "libMagickCore-6.Q16.so.7"
- "libMagickCore-6.Q16.so.6")
- (symlink "libMagickWand-6.Q16.so.7.0.0"
- "libMagickWand-6.Q16.so.6.0.0")
- (symlink "libMagickWand-6.Q16.so.7"
- "libMagickWand-6.Q16.so.6"))
- #t))))))))
+ "1pkwij76yz7vd5grl6520pgpa912qb6kh34qamx4zfndwcx6cf6b"))
+ (patches
+ (search-patches "imagemagick-ReadDCMImage-fix.patch"
+ "imagemagick-ReadDCMPixels-fix.patch"
+ "imagemagick-WriteTHUMBNAILImage-fix.patch"
+ "imagemagick-CVE-2020-27829.patch"))))))
(define-public perl-image-magick
(package
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index a595b40594..5fba72b576 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -282,14 +282,14 @@ for the IRCv3 protocol.")
(define-public ircii
(package
(name "ircii")
- (version "20151120")
+ (version "20210314")
(source (origin
(method url-fetch)
(uri (string-append "https://ircii.warped.com/"
name "-" version ".tar.gz"))
(sha256
(base32
- "178dc279f5j894qvp96dzz7c0jpryqlcqw5g0dc9yaxg9kgw1lqm"))))
+ "04jczayv1vdn21fcf5zkfaa98sy7d6ydrv2sns2i67gvya2z28j3"))))
(build-system gnu-build-system)
;; TODO: We should package a small socks4/5 library/server to configure
;; ircii with socks client. `ghc-socks' pulls in lots of haskell, which
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 3773c1ab0a..0adc3ed81e 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,20 +26,18 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
- #:use-module (gnu packages boost)
- #:use-module (gnu packages check)
- #:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
- #:use-module (gnu packages multiprecision)
#:use-module (gnu packages networking)
- #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
@@ -50,6 +48,7 @@
#:use-module (gnu packages telephony)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xiph)
@@ -57,13 +56,13 @@
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
- #:use-module (guix utils)
- #:use-module (srfi srfi-1))
+ #:use-module (guix utils))
-(define %jami-version "20200710.1.6bd18d2")
+(define %jami-version "20210326.1.cfba013")
(define* (jami-source #:key keep-contrib-patches?)
"Return an origin object of the tarball release sources archive of Jami.
@@ -78,7 +77,7 @@ of Jami."
(modules '((guix build utils)))
(snippet
`(begin
- ;; Delete over 200 MiB of bundled tarballs. The contrib directory
+ ;; Delete multiple MiBs of bundled tarballs. The contrib directory
;; contains the custom patches for pjproject and other libraries used
;; by Savoir-faire Linux.
(if ,keep-contrib-patches?
@@ -86,21 +85,21 @@ of Jami."
(delete-file-recursively "daemon/contrib"))
;; Remove code from unused Jami clients.
(for-each delete-file-recursively '("client-android"
+ "client-electron"
+ "client-ios"
"client-macosx"
- "client-uwp"
- "client-windows"))
- #t))
+ "client-uwp"))))
(sha256
(base32
- "0lg61jv39x7kc9lq30by246xb6gcgp1rzj49ak7ff8nqpfzyfvva"))))
+ "1h0avma8bdzyznkz39crjyv2888bii4f49md15jg7970dyp5pdyz"))))
(define %sfl-patches (jami-source #:keep-contrib-patches? #t))
(define %jami-sources (jami-source))
-;; Savoir-faire Linux modifies many libraries to add features
-;; to Jami. This procedure makes applying patches to a given
-;; package easy.
+;; Savoir-faire Linux maintains a set of patches for some key dependencies
+;; (currently pjproject and ffmpeg) of Jami that haven't yet been integrated
+;; upstream. This procedure simplifies the process of applying these patches.x
(define jami-apply-dependency-patches
'(lambda* (#:key inputs dep-name patches)
(let ((patches-directory "sfl-patches"))
@@ -112,15 +111,30 @@ of Jami."
dep-name))
(for-each
(lambda (file)
- (invoke "patch" "--force" "-p1" "-i"
+ (invoke "patch" "--force" "--ignore-whitespace" "-p1" "-i"
(string-append patches-directory "/"
file ".patch")))
patches))))
+;;; Jami maintains pjproject patches that add the ability to do ICE over TCP,
+;;; among other things. The patches are currently based on pjproject 2.10.
(define-public pjproject-jami
(package
(inherit pjproject)
(name "pjproject-jami")
+ (version "2.10")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pjsip/pjproject")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))
+ (patches (search-patches
+ "pjproject-correct-the-cflags-field.patch"
+ "pjproject-fix-pkg-config-ldflags.patch"))))
(native-inputs
`(("sfl-patches" ,%sfl-patches)
,@(package-native-inputs pjproject)))
@@ -140,14 +154,19 @@ of Jami."
"0004-multiple_listeners"
"0005-fix_ebusy_turn"
"0006-ignore_ipv6_on_transport_check"
- "0007-pj_ice_sess"
+ "0007-upnp-srflx-nat-assisted-cand"
"0008-fix_ioqueue_ipv6_sendto"
"0009-add-config-site"
- ;; Note: The base pjproject is already patched with
- ;; "0010-fix-pkgconfig".
+ ;; Already taken care of via the origin patches.
+ ;;"0010-fix-pkgconfig"
"0011-fix-tcp-death-detection"
- "0012-fix-turn-shutdown-crash"))
- #t))))))))
+ "0012-fix-turn-shutdown-crash"
+ "0013-Assign-unique-local-preferences-for-candidates-with-"
+ "0014-Add-new-compile-time-setting-PJ_ICE_ST_USE_TURN_PERM"
+ "0015-update-local-preference-for-peer-reflexive-candidate"
+ "0016-use-addrinfo-instead-CFHOST"
+ "0017-CVE-2020-15260"
+ "0018-CVE-2021-21375"))))))))))
;; The following variables are configure flags used by ffmpeg-jami. They're
;; from the ring-project/daemon/contrib/src/ffmpeg/rules.mak file. We try to
@@ -383,21 +402,22 @@ of Jami."
`(modify-phases ,phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
- (for-each make-file-writable (find-files "."))
- #t))
+ (for-each make-file-writable (find-files "."))))
(add-after 'unpack 'apply-patches
(lambda* (#:key inputs #:allow-other-keys)
(let ((jami-apply-dependency-patches
,jami-apply-dependency-patches))
;; These patches come from:
;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
- (jami-apply-dependency-patches #:inputs inputs
- #:dep-name "ffmpeg"
- #:patches
- '("remove-mjpeg-log"
- "change-RTCP-ratio"
- "rtp_ext_abs_send_time"))
- #t))))))))))
+ (jami-apply-dependency-patches
+ #:inputs inputs
+ #:dep-name "ffmpeg"
+ #:patches
+ '("remove-mjpeg-log"
+ "change-RTCP-ratio"
+ "rtp_ext_abs_send_time"
+ "libopusdec-enable-FEC"
+ "libopusenc-enable-FEC"))))))))))))
(define-public libring
(package
@@ -405,150 +425,197 @@ of Jami."
(version %jami-version)
(source %jami-sources)
(build-system gnu-build-system)
+ (outputs '("out" "debug"))
(inputs
`(("alsa-lib" ,alsa-lib)
- ("boost" ,boost)
+ ("asio" ,asio)
("dbus-c++" ,dbus-c++)
("eudev" ,eudev)
("ffmpeg" ,ffmpeg-jami)
- ("flac" ,flac)
- ("gmp" ,gmp)
- ("gsm" ,gsm)
("jack" ,jack-1)
("jsoncpp" ,jsoncpp)
("libarchive" ,libarchive)
+ ("libgit2" ,libgit2)
("libnatpmp" ,libnatpmp)
- ("libogg" ,libogg)
- ("libva" ,libva)
+ ("libsecp256k1" ,libsecp256k1)
+ ("libupnp" ,libupnp)
("opendht" ,opendht)
- ("opus" ,opus)
- ("pcre" ,pcre)
+ ("openssl" ,openssl)
+ ("pjproject" ,pjproject-jami)
("pulseaudio" ,pulseaudio)
- ("libsamplerate" ,libsamplerate)
- ("libsndfile" ,libsndfile)
("speex" ,speex)
("speexdsp" ,speexdsp)
- ("libupnp" ,libupnp)
- ("libvorbis" ,libvorbis)
- ("libx264" ,libx264)
- ("libvdpau" ,libvdpau)
- ("yaml-cpp" ,yaml-cpp)
- ("zlib" ,zlib)
- ("openssl" ,openssl)
- ("libsecp256k1" ,libsecp256k1)
- ("python" ,python)
- ("python-wrapper" ,python-wrapper)
- ("restinio" ,restinio)
- ("libx11" ,libx11)
- ("asio" ,asio)
- ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
- ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
- ("pjproject" ,pjproject-jami)))
+ ("webrtc-audio-processing" ,webrtc-audio-processing)
+ ("yaml-cpp" ,yaml-cpp)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
+ ("gcc" ,gcc-8) ;charconv requires GCC 8.1+
("libtool" ,libtool)
+ ("perl" ,perl) ;to generate manpages with pod2man
("pkg-config" ,pkg-config)
- ("which" ,which)
- ("cppunit" ,cppunit)
- ("perl" ,perl))) ; Needed for documentation.
+ ("which" ,which)))
(arguments
`(#:tests? #f ; The tests fail to compile due to missing headers.
+ #:make-flags '("V=1") ;build verbosely
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
- (chdir "daemon")
- #t))
+ (chdir "daemon")))
(add-before 'build 'add-lib-dir
(lambda _
- (mkdir-p "src/lib")
- #t)))))
- (synopsis "Distributed multimedia communications platform")
- (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user. It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library and daemon implementing the Jami core
-functionality.")
+ (mkdir-p "src/lib"))))))
+ (synopsis "Jami core library and daemon")
+ (description "This package provides a library and daemon implementing the
+Jami core functionality. Jami is a secure and distributed voice, video and
+chat communication platform that requires no centralized server and leaves the
+power of privacy in the hands of the user. It supports the SIP and IAX
+protocols, as well as decentralized calling using P2P-DHT.")
(home-page "https://jami.net/")
(license license:gpl3+)))
(define-public libringclient
(package
- (inherit libring)
(name "libringclient")
+ (version %jami-version)
+ (source %jami-sources)
(build-system cmake-build-system)
+ (outputs '("out" "debug"))
+ (inputs
+ `(("libring" ,libring)
+ ("network-manager" ,network-manager)))
(propagated-inputs
- `(("libring" ,libring) ; For 'dring'.
- ("qtbase" ,qtbase) ; Qt is included in several installed headers.
- ("qttools" ,qttools)))
+ `(("qtbase" ,qtbase))) ; Qt is included in several installed headers.
(arguments
`(#:tests? #f ; There is no testsuite.
#:configure-flags
- (list (string-append "-DRING_BUILD_DIR="
- (assoc-ref %build-inputs "libring") "/include"))
+ (let ((libring (assoc-ref %build-inputs "libring")))
+ (list (string-append "-DRING_XML_INTERFACES_DIR="
+ libring "/share/dbus-1/interfaces")
+ (string-append "-DRING_BUILD_DIR=" libring "/include")
+ ;; Use LIBWRAP, which removes the requirement on DBus. Qt
+ ;; links with the dbus library in Guix, which expects to find
+ ;; its configuration under /etc rather than /usr/share/dbus-1,
+ ;; which is perhaps the reason the auto-launching of dring
+ ;; doesn't work on foreign distributions.
+
+ ;; FIXME: Disabled for now, as it causes a segfault when
+ ;; attempting video calls (see:
+ ;; https://git.jami.net/savoirfairelinux/ring-lrc/-/issues/466).
+ "-DENABLE_LIBWRAP=false"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
- (chdir "lrc")
- #t))
- (add-before 'configure 'fix-dbus-interfaces-path
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "CMakeLists.txt"
- (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
- (string-append (assoc-ref inputs "libring")
- dbus-interfaces-path-suffix))))))))
- (synopsis "Distributed multimedia communications platform")
- (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user. It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
-
-This package provides a library common to all Jami clients.")
+ (chdir "lrc"))))))
+ (synopsis "Jami client library")
+ (description "This package provides a library common to all Jami clients.
+Jami is a secure and distributed voice, video and chat communication platform
+that requires no centralized server and leaves the power of privacy in the
+hands of the user. It supports the SIP and IAX protocols, as well as
+decentralized calling using P2P-DHT.")
(home-page "https://jami.net")
(license license:gpl3+)))
-(define-public jami
+(define-public jami-gnome
(package
- (inherit libring)
- (name "jami")
+ (name "jami-gnome")
+ (version %jami-version)
+ (source %jami-sources)
(build-system cmake-build-system)
+ (outputs '("out" "debug"))
(inputs
- `(("libringclient" ,libringclient)
- ("gtk+" ,gtk+)
- ("qrencode" ,qrencode)
- ("libnotify" ,libnotify)
- ("clutter" ,clutter)
+ `(("clutter" ,clutter)
("clutter-gtk" ,clutter-gtk)
+ ("gtk+" ,gtk+)
("libcanberra" ,libcanberra)
- ("webkitgtk" ,webkitgtk)
- ("sqlite" ,sqlite)))
+ ("libappindicator" ,libappindicator)
+ ("libnotify" ,libnotify)
+ ("libringclient" ,libringclient)
+ ("network-manager" ,network-manager)
+ ("qrencode" ,qrencode)
+ ("sqlite" ,sqlite)
+ ("webkitgtk" ,webkitgtk)))
(native-inputs
`(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin")
- ("doxygen" ,doxygen)))
+ ("glib:bin" ,glib "bin"))) ;for glib-compile-resources
(propagated-inputs
- `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
- ("adwaita-icon-theme" ,adwaita-icon-theme)
- ("evolution-data-server" ,evolution-data-server)))
+ `(("libring" ,libring) ; Contains 'dring', the daemon, which is
+ ; automatically started by DBus.
+ ("adwaita-icon-theme" ,adwaita-icon-theme)))
(arguments
`(#:tests? #f ; There is no testsuite.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
- (chdir "client-gnome")
- #t)))))
- (synopsis "Distributed, privacy-respecting communication program")
- (description "Jami (formerly GNU Ring) is a secure and distributed voice,
-video and chat communication platform that requires no centralized server and
-leaves the power of privacy in the hands of the user. It supports the SIP and
-IAX protocols, as well as decentralized calling using P2P-DHT.
+ (chdir "client-gnome"))))))
+ (synopsis "Jami client for GNOME")
+ (description "This package provides a Jami client for the GNOME desktop.
+Jami is a secure and distributed voice, video and chat communication platform
+that requires no centralized server and leaves the power of privacy in the
+hands of the user. It supports the SIP and IAX protocols, as well as
+decentralized calling using P2P-DHT.")
+ (home-page "https://jami.net")
+ (license license:gpl3+)))
+
+;;; Keep this until the Qt client matures enough to become the
+;;; main 'jami' client.
+(define-public jami
+ (deprecated-package "jami" jami-gnome))
-This package provides the Jami client for the GNOME desktop.")
+(define-public jami-qt
+ (package
+ (name "jami-qt") ;to be renamed 'jami' at some point
+ (version %jami-version)
+ ;; The Qt client code is not yet part of the release tarball; fetch it
+ ;; from git for now.
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.jami.net/savoirfairelinux/jami-client-qt.git")
+ (commit "ae21c17da5e8f730ae3895ccbc4da8047e3be1eb")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1rf3lpk8c4qc12pi6pn4rdp7i8b83xv64yqr0q47rzv9s518qyjp"))))
+ (build-system qt-build-system)
+ (outputs '("out" "debug"))
+ (arguments
+ `(#:tests? #f ;no test suite
+ ;; TODO: Uncomment after switching back to the tarball source.
+ ;; #:phases
+ ;; (modify-phases %standard-phases
+ ;; (add-after 'unpack 'change-directory
+ ;; (lambda _
+ ;; (chdir "client-qt"))))
+ ))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)
+ ("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)))
+ (inputs
+ `(("libringclient" ,libringclient)
+ ("network-manager" ,network-manager)
+ ("qrencode" ,qrencode)
+ ("qtsvg" ,qtsvg)
+ ("qtwebengine" ,qtwebengine)
+ ("qtwebchannel" ,qtwebchannel)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtgraphicaleffects" ,qtgraphicaleffects)
+ ("qtquickcontrols" ,qtquickcontrols)
+ ("qtquickcontrols2" ,qtquickcontrols2)))
+ (propagated-inputs
+ `(("libring" ,libring))) ;for dring
(home-page "https://jami.net")
+ (synopsis "Qt Jami client")
+ (description "This package provides the Jami Qt client. Jami is a secure
+and distributed voice, video and chat communication platform that requires no
+centralized server and leaves the power of privacy in the hands of the user.
+It supports the SIP and IAX protocols, as well as decentralized calling using
+P2P-DHT.")
(license license:gpl3+)))
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 37716e01d5..207f136513 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2107,11 +2107,8 @@ new Date();"))
(build-system gnu-build-system)
(outputs '("out" "jdk" "doc"))
(arguments
- `(#:imported-modules
- ((guix build syscalls)
- (ice-9 binary-ports)
- (rnrs bytevectors)
- ,@%gnu-build-system-modules)
+ `(#:imported-modules ((guix build syscalls)
+ ,@%gnu-build-system-modules)
#:tests? #f; requires jtreg
;; TODO package jtreg
#:configure-flags
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index 00e89612a5..bb3a8063e3 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -597,14 +597,14 @@ roots, or wrestle with obscure build systems.")
(define-public quickjs
(package
(name "quickjs")
- (version "2020-11-08")
+ (version "2021-03-27")
(source (origin
(method url-fetch)
(uri (string-append "https://bellard.org/quickjs/quickjs-"
version ".tar.xz"))
(sha256
(base32
- "0yqqcjxi3cqagw184mqrxpvqg486x7c233r3cp9mxachngd6779f"))))
+ "06pywwpmfwjz225h59wf90q96a2fd66qfcw5xa6m6y9k9k7glnx4"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 0d35cbde57..d79acf0b17 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,8 +22,35 @@
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system julia)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages tls))
+(define-public julia-abstractffts
+ (package
+ (name "julia-abstractffts")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/AbstractFFTS.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0083pwdyxjb04i330ir9pc8kmp4bwk59lx1jgc9qi05y8j7xzbp0"))))
+ (build-system julia-build-system)
+ (inputs ;required for tests
+ `(("julia-unitful" ,julia-unitful)))
+ (home-page "https://github.com/JuliaGPU/Adapt.jl")
+ (synopsis "General framework for fast Fourier transforms (FFTs)")
+ (description "This package allows multiple FFT packages to co-exist with
+the same underlying @code{fft(x)} and @code{plan_fft(x)} interface. It is
+mainly not intended to be used directly. Instead, developers of packages that
+implement FFTs (such as @code{FFTW.jl} or @code{FastTransforms.jl}) extend the
+types/functions defined in AbstractFFTs.")
+ (license license:expat)))
+
(define-public julia-adapt
(package
(name "julia-adapt")
@@ -95,6 +123,192 @@ operations. It can wrap any @code{IO} type automatically making incremental
reading and writing faster.")
(license license:expat)))
+(define-public julia-calculus
+ (package
+ (name "julia-calculus")
+ (version "0.5.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/Calculus.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0xh0ak2ycsjw2h86ja24ch3kn2d18zx3frrds78aimwdnqb1gdc2"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaMath/Calculus.jl")
+ (synopsis "Common utilities for automatic differentiation")
+ (description "This package provides tools for working with the basic
+calculus operations of differentiation and integration. The @code{Calculus}
+package produces approximate derivatives by several forms of finite
+differencing or produces exact derivative using symbolic differentiation. It
+can also be used to compute definite integrals by different numerical
+methods.")
+ (license license:expat)))
+
+(define-public julia-chainrules
+ (package
+ (name "julia-chainrules")
+ (version "0.7.54")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ChainRules.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1x4w71v8cw0vpba47h8f5xq4gyjfxbcvayzf7m41yg8gf49s9pkf"))))
+ (build-system julia-build-system)
+ (inputs ;required for test
+ `(("julia-chainrulestestutils" ,julia-chainrulestestutils)
+ ("julia-finitedifferences" ,julia-finitedifferences)
+ ("julia-nanmath" ,julia-nanmath)
+ ("julia-specialfunctions" ,julia-specialfunctions)))
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-compat" ,julia-compat)
+ ("julia-reexport" ,julia-reexport)
+ ("julia-requires" ,julia-requires)))
+ (home-page "https://github.com/JuliaDiff/ChainRules.jl")
+ (synopsis "Common utilities for automatic differentiation")
+ (description "The is package provides a variety of common utilities that
+can be used by downstream automatic differentiation (AD) tools to define and
+execute forward-, reverse-, and mixed-mode primitives.")
+ (license license:expat)))
+
+(define-public julia-chainrulescore
+ (package
+ (name "julia-chainrulescore")
+ (version "0.9.29")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ChainRulesCore.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k0iayw39n1ikkkhvyi4498vsnzc94skqs41gnd15632gxjfvki4"))))
+ (build-system julia-build-system)
+ (inputs ;required for tests
+ `(("julia-benchmarktools" ,julia-benchmarktools)
+ ("julia-staticarrays" ,julia-staticarrays)))
+ (propagated-inputs
+ `(("julia-compat" ,julia-compat)))
+ (home-page "https://github.com/JuliaDiff/ChainRulesCore.jl")
+ (synopsis "Common utilities used by downstream automatic differentiation tools")
+ (description "The package provides a light-weight dependency for defining
+sensitivities for functions without the need to depend on ChainRules itself.")
+ (license license:expat)))
+
+(define-public julia-chainrulestestutils
+ (package
+ (name "julia-chainrulestestutils")
+ (version "0.6.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ChainRulesTestUtils.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pzs947adnb3cx1qd0cxp2fidk9szz0zsqbas90z1lhydykkvkil"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-compat" ,julia-compat)
+ ("julia-finitedifference" ,julia-finitedifferences)))
+ (home-page "https://github.com/JuliaDiff/ChainRulesTestUtils.jl")
+ (synopsis "Common utilities used by downstream automatic differentiation tools")
+ (description "This package is designed to help in testing
+@code{ChainRulesCore.frule} and @code{ChainRulesCore.rrule} methods. The main
+entry points are @code{ChainRulesTestUtils.frule_test},
+@code{ChainRulesTestUtils.rrule_test}, and
+@code{ChainRulesTestUtils.test_scalar}. Currently this is done via testing the
+rules against numerical differentiation (using @code{FiniteDifferences.jl}).
+
+@code{ChainRulesTestUtils.jl} is separated from @code{ChainRulesCore.jl} so that it
+can be a test-only dependency, allowing it to have potentially heavy
+dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible.")
+ (license license:expat)))
+
+(define-public julia-colors
+ (package
+ (name "julia-colors")
+ (version "0.12.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGraphics/Colors.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "156zsszgwh6bmznsan0zyha6yvcxw3c5mvc5vr2qfsgxbyh36ln6"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-colortypes" ,julia-colortypes)
+ ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
+ ("julia-reexport" ,julia-reexport)))
+ (home-page "https://github.com/JuliaGraphics/Colors.jl")
+ (synopsis "Tools for dealing with color")
+ (description "This package provides a wide array of functions for dealing
+with color. This includes conversion between colorspaces, measuring distance
+between colors, simulating color blindness, parsing colors, and generating
+color scales for graphics.")
+ (license license:expat)))
+
+(define-public julia-colortypes
+ (package
+ (name "julia-colortypes")
+ (version "0.10.12")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGraphics/ColorTypes.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "176hr3qbz7lncmykks2qaj3cqisnzim7wi5jwsca9ld26wwyvyqq"))))
+ (arguments
+ '(#:tests? #f)) ;require Documenter, not packaged yet
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-fixedpointnumbers" ,julia-fixedpointnumbers)))
+ (home-page "https://github.com/JuliaGraphics/ColorTypes.jl")
+ (synopsis "Basic color types and constructor")
+ (description "This minimalistic package serves as the foundation for
+working with colors in Julia. It defines basic color types and their
+constructors, and sets up traits and show methods to make them easier to work
+with.")
+ (license license:expat)))
+
+(define-public julia-commonsubexpressions
+ (package
+ (name "julia-commonsubexpressions")
+ (version "0.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rdeits/CommonSubexpressions.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0mgy90kk8ksv3l720kkk04gnhn4aqhh2dj4sp3x8yy3limngfjay"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-macrotools" ,julia-macrotools)))
+ (home-page "https://github.com/rdeits/CommonSubexpressions.jl")
+ (synopsis "@code{@@cse} macro for Julia")
+ (description "This package provides the @code{@@cse} macro, which performs
+common subexpression elimination.")
+ (license license:expat)))
+
(define-public julia-compat
(package
(name "julia-compat")
@@ -117,6 +331,71 @@ provides a macro that lets you use the latest syntax in a backwards-compatible
way.")
(license license:expat)))
+;;; TODO: Remove this autogenerated source package
+;;; and build it from realse source using <https://github.com/JuliaPackaging/Yggdrasil/>
+(define-public julia-compilersupportlibraries-jll
+ (package
+ (name "julia-compilersupportlibraries-jll")
+ (version "0.4.0+1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl")
+ (commit (string-append "CompilerSupportLibraries-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03j6xdvps259mhdzpjqf41l65w2l9sahvxg4wrp34hcf69wkrzpy"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f ; no runtests.jl
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"CompilerSupportLibraries\", \""
+ (assoc-ref inputs "gfortran:lib") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$"))
+ #t)))))
+ (inputs ;required by artifacts
+ `(("gfortran:lib" ,gfortran "lib")))
+ (propagated-inputs
+ `(("julia-jllwrappers" ,julia-jllwrappers)))
+ (home-page "https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl")
+ (synopsis "Internal wrappers")
+ (description "This package provides compiler support for libraries. It is
+an autogenerated source package constructed using @code{BinaryBuilder.jl}. The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+ (license license:expat)))
+
+(define-public julia-constructionbase
+ (let ((commit "de77e2865b554f9b078fd8c35b593cce0554ae02"))
+ (package
+ (name "julia-constructionbase")
+ (version "1.1.0") ;tag not created upstream
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaObjects/ConstructionBase.jl")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1y79sfj0rds1skl9j16p9161hwa9khm0xc2m4hgjcbh5zzvyr57v"))))
+ (build-system julia-build-system)
+ (home-page "https://juliaobjects.github.io/ConstructionBase.jl/dev/")
+ (synopsis "Primitive functions for construction of objects")
+ (description "This very lightweight package provides primitive functions
+for construction of objects.")
+ (license license:expat))))
+
(define-public julia-datastructures
(package
(name "julia-datastructures")
@@ -141,6 +420,143 @@ including, @code{CircularBuffer}, @code{Queue}, @code{Stack},
@code{Accumulators}, @code{LinkedLists}, @code{SortedDicts} and many others.")
(license license:expat)))
+(define-public julia-diffresults
+ (package
+ (name "julia-diffresults")
+ (version "1.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/DiffResults.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1w6p3yxajvclax5b9g7cr2jmbc7lvr5nk4gq0aljxdycdq1d2y3v"))))
+ (propagated-inputs
+ `(("julia-staticarrays" ,julia-staticarrays)))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaDiff/DiffResults.jl")
+ (synopsis "In-place differentiation methods of primal values at multi-order")
+ (description "This package provides the @code{DiffResult} type, which can
+be passed to in-place differentiation methods instead of an output buffer.")
+ (license license:expat)))
+
+(define-public julia-diffrules
+ (package
+ (name "julia-diffrules")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/DiffRules.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cwjvj4gma7924fm3yas0nf0jlnwwx4v7fi79ii3s290lkdldzfl"))))
+ (propagated-inputs
+ `(("julia-nanmath" ,julia-nanmath)
+ ("julia-specialfunctions" ,julia-specialfunctions)))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaDiff/DiffRules.jl")
+ (synopsis "Primitive differentiation rules")
+ (description "This package provides primitive differentiation rules that
+can be composed via various formulations of the chain rule. Using
+@code{DiffRules}, new differentiation rules can defined, query whether or not
+a given rule exists, and symbolically apply rules to simple Julia expressions.")
+ (license license:expat)))
+
+(define-public julia-difftests
+ (package
+ (name "julia-difftests")
+ (version "0.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/DiffTests.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rxpnd5zi3pxgdd38l5jm2sxc3q6p7g57fqgll2dsiin07y3my57"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaDiff/DiffTests.jl")
+ (synopsis "Common test functions for differentiation tools")
+ (description "This package contains a common suite of test functions for
+stressing the robustness of differentiation tools.")
+ (license license:expat)))
+
+(define-public julia-example
+ (let ((commit "f968c69dea24f851d0c7e686db23fa55826b5388"))
+ (package
+ (name "julia-example")
+ (version "0.5.4") ;tag not created upstream
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaLang/Example.jl")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1v3z0d6gh6wfbypffy9m9rhh36px6fm5wjzq0y6rbmc95r0qpqlx"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaLang/Example.jl")
+ (synopsis "Module providing examples")
+ (description "This package provides various examples.")
+ (license license:expat))))
+
+(define-public julia-fillarrays
+ (package
+ (name "julia-fillarrays")
+ (version "0.11.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaArrays/FillArrays.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1q1qn9pb5dmppddnmf8gggdqyvivqh3ffvbblhn37smcf9r5sy7d"))))
+ (build-system julia-build-system)
+ (inputs ;required by tests
+ `(("julia-staticarrays" ,julia-staticarrays)))
+ (home-page "https://github.com/JuliaArrays/FillArrays.jl")
+ (synopsis "Lazy matrix representation")
+ (description "This package allows to lazily represent matrices filled with
+a single entry, as well as identity matrices. This package exports the
+following types: @code{Eye}, @code{Fill}, @code{Ones}, @code{Zeros},
+@code{Trues} and @code{Falses}.")
+ (license license:expat)))
+
+(define-public julia-finitedifferences
+ (package
+ (name "julia-finitedifferences")
+ (version "0.12.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/FiniteDifferences.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dcx34026xdpfmbjls3mrknl8ww62kxxfr77kfihbazsfg2gp5b4"))))
+ (build-system julia-build-system)
+ (inputs
+ `(("julia-benchmarktools" ,julia-benchmarktools)))
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-richardson" ,julia-richardson)
+ ("julia-staticarrays" ,julia-staticarrays)))
+ (home-page "https://github.com/JuliaDiff/FiniteDifferences.jl")
+ (synopsis "Estimates derivatives with finite differences")
+ (description "This package calculates approximate derivatives numerically
+using finite difference.")
+ (license license:expat)))
+
(define-public julia-fixedpointnumbers
(package
(name "julia-fixedpointnumbers")
@@ -176,6 +592,38 @@ scaled by a constant factor. Consequently, they have a fixed number of
digits (bits) after the decimal (radix) point.")
(license license:expat)))
+(define-public julia-forwarddiff
+ (package
+ (name "julia-forwarddiff")
+ (version "0.10.17")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ForwardDiff.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17xaz4v0zr46p7w873w1fwf31phdnhr0vbdym9yr4flmpzi528jw"))))
+ (build-system julia-build-system)
+ (inputs ;required for tests
+ `(("julia-calculus" ,julia-calculus)
+ ("julia-difftests" ,julia-difftests)))
+ (propagated-inputs
+ `(("julia-commonsubexpressions" ,julia-commonsubexpressions)
+ ("julia-diffresults" ,julia-diffresults)
+ ("julia-diffrules" ,julia-diffrules)
+ ("julia-nanmath" ,julia-nanmath)
+ ("julia-specialfunctions" ,julia-specialfunctions)
+ ("julia-staticarrays" ,julia-staticarrays)))
+ (home-page "https://github.com/JuliaDiff/ForwardDiff.jl")
+ (synopsis "Methods to take multidimensional derivatives")
+ (description "This package implements methods to take derivatives,
+gradients, Jacobians, Hessians, and higher-order derivatives of native Julia
+functions (or any callable object, really) using forward mode automatic
+differentiation (AD).")
+ (license license:expat)))
+
(define-public julia-http
(package
(name "julia-http")
@@ -254,6 +702,32 @@ implementing both a client and a server.")
allows to interface with @file{.ini} files.")
(license license:expat)))
+(define-public julia-irtools
+ (package
+ (name "julia-irtools")
+ (version "0.4.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/IRTools.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wwzy77jcdnffnd5fr6xan7162g4wydz67igrq82wflwnrhlcx5y"))))
+ (arguments
+ '(#:tests? #f)) ;require Documenter, not packaged yet
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-macrotools" ,julia-macrotools)))
+ (home-page "https://github.com/FluxML/IRTools.jl")
+ (synopsis "Simple and flexible IR format")
+ (description "This package provides a simple and flexible IR format,
+expressive enough to work with both lowered and typed Julia code, as well as
+external IRs. It can be used with Julia metaprogramming tools such as
+Cassette.")
+ (license license:expat)))
+
(define-public julia-jllwrappers
(package
(name "julia-jllwrappers")
@@ -322,6 +796,27 @@ used in autogenerated packages via @code{BinaryBuilder.jl}.")
and printing JSON documents.")
(license license:expat)))
+(define-public julia-macrotools
+ (package
+ (name "julia-macrotools")
+ (version "0.5.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/MacroTools.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0k4z2hyasd9cwxf4l61zk3w4ajs44k69wx6z1ghdn8f5p8xy217f"))))
+ (build-system julia-build-system)
+ (home-page "https://fluxml.ai/MacroTools.jl")
+ (synopsis "Tools for working with Julia code and expressions")
+ (description "This library provides tools for working with Julia code and
+expressions. This includes a template-matching system and code-walking tools
+that let you do deep transformations of code.")
+ (license license:expat)))
+
(define-public julia-mbedtls
(package
(name "julia-mbedtls")
@@ -349,7 +844,7 @@ and printing JSON documents.")
(home-page "https://github.com/JuliaLang/MbedTLS.jl")
(synopsis "Apache's mbed TLS library wrapper")
(description "@code{MbedTLS.jl} provides a wrapper around the @code{mbed
-TLS} and cryptography C libary for Julia.")
+TLS} and cryptography C library for Julia.")
(license license:expat)))
(define-public julia-mbedtls-jll
@@ -392,6 +887,26 @@ TLS} and cryptography C libary for Julia.")
wrappers.")
(license license:expat)))
+(define-public julia-nanmath
+ (package
+ (name "julia-nanmath")
+ (version "0.3.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mlubin/NaNMath.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hczhz00qj99w63vp627kwk02l2sr2qmzc2rkwwkdwvzy670p25q"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/mlubin/NaNMath.jl")
+ (synopsis "Implementations of basic math functions")
+ (description "Implementations of basic math functions which return
+@code{NaN} instead of throwing a @code{DomainError}.")
+ (license license:expat)))
+
(define-public julia-orderedcollections
(package
(name "julia-orderedcollections")
@@ -439,6 +954,52 @@ have arbitrary indices, similar to those found in some other programming
languages like Fortran.")
(license license:expat)))
+;;; TODO: Remove this autogenerated source package
+;;; and build it from realse source using <https://github.com/JuliaPackaging/Yggdrasil/>
+(define-public julia-openspecfun-jll
+(let ((commit "6c505cce3bdcd9cd2b15b4f9362ec3a42c4da71c"))
+ (package
+ (name "julia-openspecfun-jll")
+ (version "0.5.3+4") ;tag not created upstream
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bl2gcgndsbiwhwy8fl070cjm1fyf9kxj6gkikgirmzgjl29iakn"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f ; no runtests.jl
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"OpenSpecFun\", \""
+ (assoc-ref inputs "openspecfun") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$"))
+ #t)))))
+ (inputs
+ `(("openspecfun" ,openspecfun)))
+ (propagated-inputs
+ `(("julia-jllwrappers" ,julia-jllwrappers)
+ ("julia-compilersupportlibraries-jll" ,julia-compilersupportlibraries-jll)))
+ (home-page "https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl")
+ (synopsis "Internal wrappers")
+ (description "This package provides a wrapper for OpenSpecFun. It is an
+autogenerated source package constructed using @code{BinaryBuilder.jl}. The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+ (license license:expat))))
+
(define-public julia-parsers
(package
(name "julia-parsers")
@@ -459,6 +1020,130 @@ languages like Fortran.")
utilities for Julia.")
(license license:expat)))
+(define-public julia-reexport
+ (package
+ (name "julia-reexport")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/simonster/Reexport.jl")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1yhhja1zz6dy5f4fd19bdwd6jwgj7q4w3avzgyg1hjhmdl8jrh0s"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/simonster/Reexport.jl")
+ (synopsis "Re-export modules and symbols")
+ (description "This package provides tools to re-export modules and symbols.")
+ (license license:expat)))
+
+(define-public julia-requires
+ (package
+ (name "julia-requires")
+ (version "1.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaPackaging/Requires.jl/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03hyfy7c0ma45b0y756j76awi3az2ii4bz4s8cxm3xw9yy1z7b01"))))
+ (build-system julia-build-system)
+ (inputs ;required for test
+ `(("julia-example" ,julia-example)))
+ (propagated-inputs
+ `(("julia-colors" ,julia-colors)))
+ (home-page "https://github.com/JuliaPackaging/Requires.jl/")
+ (synopsis "Faster package loader")
+ (description "This package make loading packages faster, maybe. It
+supports specifying glue code in packages which will load automatically when
+another package is loaded, so that explicit dependencies (and long load times)
+can be avoided.")
+ (license license:expat)))
+
+(define-public julia-richardson
+ (package
+ (name "julia-richardson")
+ (version "1.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/Richardson.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06v9ii3d7hh41fsrfklaa8ap55z5s017f888mrd1c18y4fx9i4nx"))))
+ (build-system julia-build-system)
+ (home-page "https://juliapackages.com/p/richardson")
+ (synopsis "Extrapolate function using Richardson method")
+ (description "This package provides a function extrapolate that
+extrapolates a given function @code{f(x)} to @code{f(x0)}, evaluating @code{f}
+only at a geometric sequence of points @code{> x0} (or optionally @code{<
+x0}). The key algorithm is Richardson extrapolation using a Neville–Aitken
+tableau, which adaptively increases the degree of an extrapolation polynomial
+until convergence is achieved to a desired tolerance (or convergence stalls
+due to e.g. floating-point errors). This allows one to obtain @code{f(x0)} to
+high-order accuracy, assuming that @code{f(x0+h)} has a Taylor series or some
+other power series in @code{h}.")
+ (license license:expat)))
+
+(define-public julia-specialfunctions
+ (package
+ (name "julia-specialfunctions")
+ (version "1.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/SpecialFunctions.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rfhrrkzi3ils7fklbn35ki1yp5x88fi71qknfwqyw4pk8cf8p80"))))
+ (build-system julia-build-system)
+ (inputs
+ `(("julia-chainrulestestutils" ,julia-chainrulestestutils)))
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-openspecfun-jll" ,julia-openspecfun-jll)))
+ (home-page "https://github.com/JuliaMath/SpecialFunctions.jl")
+ (synopsis "Special mathematical functions")
+ (description "This package provides special mathematical functions,
+including Bessel, Hankel, Airy, error, Dawson, exponential (or sine and
+cosine) integrals, eta, zeta, digamma, inverse digamma, trigamma, and
+polygamma functions.")
+ (license license:expat)))
+
+(define-public julia-staticarrays
+ (package
+ (name "julia-staticarrays")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaArrays/StaticArrays.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01z8bcqwpfkp8p1h1r36pr5cc3798y76zkas7g3206pcsdhvlkz1"))))
+ (build-system julia-build-system)
+ (inputs
+ `(("julia-benchmarktools" ,julia-benchmarktools)))
+ (home-page "https://github.com/JuliaArrays/StaticArrays.jl")
+ (synopsis "Statically sized arrays")
+ (description "This package provides a framework for implementing
+statically sized arrays in Julia, using the abstract type
+@code{StaticArray{Size,T,N} <: AbstractArray{T,N}}. Subtypes of
+@code{StaticArray} will provide fast implementations of common array and
+linear algebra operations.")
+ (license license:expat)))
+
(define-public julia-uris
(package
(name "julia-uris")
@@ -492,3 +1177,82 @@ utilities for Julia.")
working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC
3986.")
(license license:expat)))
+
+(define-public julia-unitful
+ (package
+ (name "julia-unitful")
+ (version "1.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PainterQubits/Unitful.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g5bhlvay9yk11c5dqwbzmb3q7lzj0cq5zchyk39d59fkvvmxvq3"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-constructionbase" ,julia-constructionbase)))
+ (home-page "https://painterqubits.github.io/Unitful.jl/stable/")
+ (synopsis "Physical units in Julia")
+ (description "This package supports SI units and also many other unit
+system.")
+ (license license:expat)))
+
+(define-public julia-zygoterules
+ (package
+ (name "julia-zygoterules")
+ (version "0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/ZygoteRules.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07i2mf6rr5b8i6l82qgwl5arsb5pwyyzyfasgnszhdqllk9501bs"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-macrotools" ,julia-macrotools)))
+ (home-page "https://github.com/FluxML/ZygoteRules.jl")
+ (synopsis "Add minimal custom gradients to Zygote")
+ (description "Minimal package which enables to add custom gradients to
+Zygote, without depending on Zygote itself.")
+ (license license:expat)))
+
+(define-public julia-zygote
+ (package
+ (name "julia-zygote")
+ (version "0.6.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/Zygote.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1h2ph0lsisbkh8y4xgwzgw9p5zi243q8zzp5gfh3zw9pzkx6a1rf"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f)) ;require CUDA, not packaged yet
+ (propagated-inputs
+ `(("julia-abstractffs" ,julia-abstractffts)
+ ("julia-chainrules" ,julia-chainrules)
+ ("julia-diffrules" ,julia-diffrules)
+ ("julia-fillarrays" ,julia-fillarrays)
+ ("julia-forwarddiff" ,julia-forwarddiff)
+ ("julia-irtools" ,julia-irtools)
+ ("julia-macrotools" ,julia-macrotools)
+ ("julia-nanmath" ,julia-nanmath)
+ ("julia-requires" ,julia-requires)
+ ("julia-specialfunctions" ,julia-specialfunctions)
+ ("julia-zygote-rules" ,julia-zygoterules)))
+ (home-page "https://fluxml.ai/Zygote.jl")
+ (synopsis "Automatic differentiation in Julia")
+ (description "Zygote provides source-to-source automatic
+differentiation (AD) in Julia, and is the next-generation AD system for the
+Flux differentiable programming framework.")
+ (license license:expat)))
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index d790e94c87..74e8bdb8fd 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -1112,7 +1112,7 @@ and retrieving certificates from LDAP servers.")
(synopsis "Full featured graphical email client")
(description "KMail supports multiple accounts, mail filtering and email
encryption. The program let you configure your workflow and it has good
-integration into KDE (Plasma Desktop) but is also useable with other Desktop
+integration into KDE (Plasma Desktop) but is also usable with other Desktop
Environments.
KMail is the email component of Kontact, the integrated personal information
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 213def42e3..4a989b32dd 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -458,7 +459,7 @@ illustrate project schedules.")
(define-public krita
(package
(name "krita")
- (version "4.4.2")
+ (version "4.4.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -466,7 +467,7 @@ illustrate project schedules.")
"/krita-" version ".tar.gz"))
(sha256
(base32
- "14lprcv7xw6r19bmylcz4c1p1jfazmza2b4m48f3x7vmdv2sx5ln"))))
+ "0rwghzci2wn2jmisvnzs23yxc2z3d4dcx2qbbhcvjyi3q8ij61nl"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index d4b9b8d4cb..55a1b72d74 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -170,7 +170,7 @@
("gobject-introspection" ,gobject-introspection)
("gtk+-2:bin" ,gtk+-2 "bin")
("gtk+:bin" ,gtk+ "bin")
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("intltool" ,intltool)
("libtool" ,libtool)
("perl" ,perl)
@@ -197,7 +197,7 @@
(synopsis "Lightweight input method framework")
(description "Nimf is a lightweight, fast and extensible input method
framework. This package provides a fork of the original nimf project, that
-focusses especially on Korean input (Hangul, Hanja, ...).")
+focuses especially on Korean input (Hangul, Hanja, ...).")
(home-page "https://github.com/hamonikr/nimf/")
(license license:lgpl3+)))
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index 7109d9a88d..0e683570d3 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -134,6 +134,22 @@ resolution, asynchronous file system operations, and threading primitives.")
;; details. Documentation is CC-BY 4.0 as of 1.12.0; see 'LICENSE-docs'.
(license (list expat cc-by4.0))))
+(define-public libuv-for-node
+ ;; When upgrading Node, also upgrade this. Get the version from
+ ;; https://github.com/nodejs/node/blob/master/deps/uv/include/uv/version.h
+ (package
+ (inherit libuv)
+ (name "libuv")
+ (version "1.40.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://dist.libuv.org/dist/v" version
+ "/libuv-v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1551k3ab27vbg9517l9b4iqbramwxdkwgpf53knas05cbfwhvab1"))))
+ (properties '((hidden? . #t)))))
+
(define-public perl-anyevent
(package
(name "perl-anyevent")
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index 6c434bbe90..d62a1588c1 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -103,7 +103,8 @@ to call code written in another language. The libffi library really only
provides the lowest, machine dependent layer of a fully featured foreign
function interface. A layer must exist above libffi that handles type
conversions for values passed between the two languages.")
- (home-page "http://sources.redhat.com/libffi/")
+ (home-page "http://www.sourceware.org/libffi/")
+ (properties `((release-monitoring-url . ,home-page)))
;; See <https://github.com/atgreen/libffi/blob/master/LICENSE>.
(license expat)))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index a8c2ac5c4b..39867a1994 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -714,14 +714,14 @@ text documents, vector drawings, presentations and spreadsheets.")
(define-public libmwaw
(package
(name "libmwaw")
- (version "0.3.17")
+ (version "0.3.18")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libmwaw/libmwaw/libmwaw-"
version "/libmwaw-" version ".tar.xz"))
(sha256
- (base32 "074ipcq9w7jbd5x316dzclddgia2ydw098ph9d7p3d713pmkf5cf"))))
+ (base32 "03qyxp8hkcc7jcwyq0v0y2diqsvib060pg7y9zk0n07qh0b0apgw"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index afa542412f..deda49a4bc 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;;
-;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@@ -23,8 +23,12 @@
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages audio)
+ #:use-module (gnu packages avahi)
#:use-module (gnu packages base)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages crypto)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
@@ -35,6 +39,10 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages openldap)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
@@ -57,72 +65,175 @@
#:use-module (guix build-system gnu))
(define-public bcunit
- (package
- (name "bcunit")
- (version "3.0.2")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
- (sha256
- (base32 "0ylchj8w98ic2fkqpxc6yk4s6s0h0ql2zsz5n49jd7126m4h8dqk"))))
- (build-system cmake-build-system)
- (arguments
- '(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
- (synopsis "Belledonne Communications Unit Testing Framework")
- (description "BCUnit is a fork of the defunct project CUnit, with several
-fixes and patches applied. It is an unit testing framework for writing,
-administering, and running unit tests in C.")
- (home-page "https://gitlab.linphone.org/BC/public/bcunit")
- (license license:lgpl2.0+)))
+ (let ((commit "74021cc7cb20a4e177748dd2948173e1f9c270ae")
+ (revision "0"))
+ (package
+ (name "bcunit")
+ (version (git-version "3.0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.linphone.org/bcunit")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
+ (build-system cmake-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:configure-flags (list "-DENABLE_STATIC=NO"
+ "-DENABLE_CURSES=ON"
+ "-DENABLE_DOC=ON"
+ "-DENABLE_EXAMPLES=ON"
+ "-DENABLE_TEST=ON"
+ "-DENABLE_MEMTRACE=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda _
+ ;; Include BCunit headers for examples.
+ (substitute* "Examples/CMakeLists.txt"
+ (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}")
+ (string-append "${CMAKE_CURRENT_SOURCE_DIR} "
+ "${PROJECT_SOURCE_DIR}/BCUnit/Headers "
+ "${CMAKE_BINARY_DIR}/BCUnit/Headers")))
+ ;; Link bcunit and bcunit_tests libraries.
+ (substitute* "BCUnit/Sources/CMakeLists.txt"
+ (("target_include_directories\\(bcunit_test PUBLIC Test\\)")
+ (string-append
+ "target_include_directories(bcunit_test PUBLIC Test)\n"
+ "target_link_libraries(bcunit_test bcunit)")))))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "BCUnit/Sources/Test"
+ (invoke "./test_bcunit"))))
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (for-each mkdir-p
+ `(,(string-append doc "/share/doc")
+ ,(string-append doc "/share/BCUnit")))
+ (rename-file
+ (string-append out "/share/doc/BCUnit")
+ (string-append doc "/share/doc/BCUnit"))
+ (rename-file
+ (string-append out "/share/BCUnit/Examples")
+ (string-append doc "/share/BCUnit/Examples"))))))))
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (synopsis "Belledonne Communications Unit Testing Framework")
+ (description "BCUnit is a fork of the defunct project CUnit, with
+several fixes and patches applied. It is a unit testing framework for
+writing, administering, and running unit tests in C.")
+ (home-page "https://gitlab.linphone.org/BC/public/bcunit")
+ (license license:lgpl2.0+))))
(define-public bctoolbox
(package
(name "bctoolbox")
- (version "0.6.0")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/bctoolbox.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6"))))
+ (base32 "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25"))))
(build-system cmake-build-system)
+ (outputs '("out" "debug"))
(arguments
- '(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=OFF"))) ; Not required
+ `(#:configure-flags '("-DENABLE_STATIC=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-cmake
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix decaf dependency (see:
+ ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/3).
+ (let* ((decaf (assoc-ref inputs "decaf")))
+ (substitute* (find-files "." "CMakeLists.txt")
+ (("find_package\\(Decaf CONFIG\\)")
+ "set(DECAF_FOUND 1)")
+ (("\\$\\{DECAF_INCLUDE_DIRS\\}")
+ (string-append decaf "/include/decaf"))
+ (("\\$\\{DECAF_TARGETNAME\\}")
+ "decaf")))))
+ (add-after 'unpack 'skip-problematic-tests
+ (lambda _
+ ;; The following test relies on networking; disable it.
+ (substitute* "tester/port.c"
+ (("[ \t]*TEST_NO_TAG.*bctbx_addrinfo_sort_test\\)")
+ ""))))
+ (add-after 'unpack 'fix-installed-resource-directory-detection
+ (lambda _
+ ;; There's some broken logic in tester.c that checks if CWD, or
+ ;; if its parent exist, and if so, sets the prefix where the test
+ ;; resources are looked up to; disable it (see:
+ ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/4).
+ (substitute* "src/tester.c"
+ (("if \\(file_exists\\(\".\"\\)\\)")
+ "if (NULL)")
+ (("if \\(file_exists\\(\"..\"\\)\\)")
+ "if (NULL)"))))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "tester"
+ (invoke "./bctoolbox_tester")))))))
(inputs
`(("bcunit" ,bcunit)
+ ("decaf" ,libdecaf)
("mbedtls" ,mbedtls-apache)))
(synopsis "Belledonne Communications Tool Box")
(description "BcToolBox is an utilities library used by Belledonne
Communications software like belle-sip, mediastreamer2 and linphone.")
(home-page "https://gitlab.linphone.org/BC/public/bctoolbox")
- (license license:gpl2+)))
+ (license license:gpl3+)))
(define-public belr
(package
(name "belr")
- (version "0.1.3")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/belr.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1fwv2cg3qy9vdc7dimcda7nqcqc1h2cdd7ikhk7ng7q4ys8m96c1"))))
+ (base32 "0w2canwwm0qb99whnangvaybvjzq8xg6vksqxykgr8fbx7clw03h"))))
(build-system cmake-build-system)
+ (outputs '("out" "debug" "tester"))
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=OFF"))) ; Not required
+ `(#:configure-flags '("-DENABLE_STATIC=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check) ;moved after the install phase
+ (add-after 'install 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((tester (assoc-ref outputs "tester"))
+ (belr_tester (string-append tester "/bin/belr_tester"))
+ (tester-share (string-append tester "/share/belr_tester")))
+ (invoke belr_tester))))
+ (add-after 'install 'move-tester
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (tester (assoc-ref outputs "tester")))
+ (for-each mkdir-p
+ (list (string-append tester "/bin")
+ (string-append tester "/share")))
+ (rename-file
+ (string-append out "/bin/belr_tester")
+ (string-append tester "/bin/belr_tester"))
+ (rename-file
+ (string-append out "/share/belr-tester")
+ ;; The detect_res_prefix procedure in bctoolbox's tester.c
+ ;; resolves the resource path based on the executable path and
+ ;; name, so have it match.
+ (string-append tester "/share/belr_tester"))))))))
(inputs
`(("bctoolbox" ,bctoolbox)))
(synopsis "Belledonne Communications Language Recognition Library")
@@ -136,20 +247,51 @@ IETF.")
(define-public belcard
(package
(name "belcard")
- (version "1.0.2")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/belcard.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0iiyrll1shnbb0561pkvdqcmx9b2cdr76xpsbaqdirc3s4xzcl0k"))))
+ (base32 "16x2xp8d0a115132zhy1kpxkyj86ia7vrsnpjdg78fnbvmvysc8m"))))
(build-system cmake-build-system)
+ (outputs '("out" "debug" "tester"))
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=OFF"))) ; Not required
+ `(#:tests? #t
+ #:configure-flags '("-DENABLE_STATIC=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-vcard-grammar-location
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (vcard-grammar
+ (string-append out "/share/belr/grammars/vcard_grammar")))
+ (substitute* "include/belcard/vcard_grammar.hpp"
+ (("define VCARD_GRAMMAR \"vcard_grammar\"")
+ (format #f "define VCARD_GRAMMAR ~s" vcard-grammar))))))
+ (add-after 'install 'install-tester
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (tester (assoc-ref outputs "tester"))
+ (test-name (string-append ,name "_tester")))
+ (for-each mkdir-p
+ (list (string-append tester "/bin")
+ (string-append tester "/share")))
+ (rename-file (string-append out "/bin/" test-name)
+ (string-append tester "/bin/" test-name))
+ (rename-file (string-append out "/share/" test-name)
+ (string-append tester "/share/" test-name)))))
+ (delete 'check)
+ (add-after 'install-tester 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (let* ((tester (assoc-ref outputs "tester"))
+ (belcard_tester (string-append tester
+ "/bin/belcard_tester")))
+ (invoke belcard_tester))))))))
(inputs
`(("bctoolbox" ,bctoolbox)
("belr" ,belr)))
@@ -165,31 +307,26 @@ format.")
(version "0.23")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/bcmatroska2.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1a0vlk4fhh189pfzrwbc3xbc5vyx6cnxy642d1h40045jz9y4h15"))))
+ (base32 "1avl9w18kh4dxm3g8j0bkw39bksd7bz3nfxvyibqqnz63ds8vfi2"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list
- "-DENABLE_STATIC=NO"))) ; Not required
+ `(#:tests? #f ; No test target
+ #:configure-flags (list "-DENABLE_STATIC=NO"))) ; Not required
(synopsis "Belledonne Communications Media Container")
(description "BcMatroska is a free and open standard multi-media container
format. It can hold an unlimited number of video, audio, picture, or subtitle
-tracks in one file. ")
+tracks in one file. This project provides a convenient distribution of the
+Matroska multimedia container format.")
(home-page "https://gitlab.linphone.org/BC/public/bcmatroska2")
- (license
- (list
- ;; For Core C and LibEBML2.
- ;; https://www.matroska.org/node/47
- license:bsd-4
- ;; For LibMatroska2.
- ;; https://www.matroska.org/node/47
- license:lgpl2.1+))))
+ (license (list license:gpl2+ ;for this package (build system files)
+ license:bsd-4 ;for Core C and LibEBML2
+ license:lgpl2.1+)))) ;for LibMatroska2
(define-public bcg729
(package
@@ -199,42 +336,111 @@ tracks in one file. ")
(origin
(method git-fetch)
(uri (git-reference
- (url "git://git.linphone.org/bcg729.git")
+ (url "git://git.linphone.org/bcg729")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1hal6b3w6f8y5r1wa0xzj8sj2jjndypaxyw62q50p63garp2h739"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
+ `(#:configure-flags (list "-DENABLE_STATIC=NO"
+ "-DENABLE_TESTS=YES")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'copy-inputs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((test-patterns (assoc-ref inputs "test-patterns"))
+ (dest (string-append "test/bcg729-patterns.zip")))
+ (copy-recursively test-patterns dest))))
+ (replace 'check
+ (lambda _
+ (with-directory-excursion "test"
+ (invoke "unzip" "bcg729-patterns.zip")
+ (for-each
+ (lambda (test-name)
+ (invoke "./testCampaign" "-s" test-name))
+ (list "fixedCodebookSearch"
+ "postProcessing"
+ "adaptativeCodebookSearch"
+ "computeLP"
+ "computeAdaptativeCodebookGain"
+ "postFilter"
+ "decoder"
+ "LPSynthesisFilter"
+ "decodeLSP"
+ ;; "encoder"
+ ;; "LSPQuantization"
+ "preProcessing"
+ "decodeFixedCodeVector"
+ "CNGdecoder"
+ ;; "LP2LSPConversion"
+ "gainQuantization"
+ "findOpenLoopPitchDelay"
+ "decodeGains"
+ "computeWeightedSpeech"
+ "interpolateqLSPAndConvert2LP"
+ "decodeAdaptativeCodeVector"))))))))
+ (native-inputs
+ `(("perl" ,perl)
+ ("test-patterns"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "http://www.belledonne-communications.com/"
+ "bc-downloads/bcg729-patterns.zip"))
+ (sha256
+ (base32 "1kivarhh3izrl9sg0szs6x6pbq2ap0y6xsraw0gbgspi4gnfihrh"))))
+ ("unzip" ,unzip)))
(synopsis "Belledonne Communications G729 Codec")
(description "BcG729 is an implementation of both encoder and decoder of
the ITU G729 speech codec. The library written in C 99 is fully portable and
can be executed on many platforms including both ARM and x86 processors. It
supports concurrent channels encoding and decoding for multi call application
such as conferencing.")
- (home-page "https://gitlab.linphone.org/BC/public/belcard")
- (license license:gpl2+)))
+ (home-page "https://linphone.org/technical-corner/bcg729")
+ (license license:gpl3+)))
(define-public ortp
(package
(name "ortp")
- (version "1.0.2")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/ortp.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "016qg0lmdgmqh2kv19w9qhi4kkiyi5h1xp35g2s65b1j8ccm25d5"))))
+ (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
(build-system cmake-build-system)
+ (outputs '("out""tester"
+ "doc")) ;1.5 MiB of HTML doc
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
+ `(#:tests? #f ;requires networking
+ #:configure-flags (list "-DENABLE_STATIC=NO"
+ "-DENABLE_TESTS=YES")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-version-strings
+ ;; See: https://gitlab.linphone.org/BC/public/ortp/-/issues/5.
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
+ (string-append "VERSION " ,version))
+ (("\\$\\{ORTP_DOC_VERSION\\}")
+ ,version))))
+ (add-after 'install 'separate-outputs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc"))
+ (doc-src (string-append out "/share/doc/ortp-" ,version))
+ (doc-dest (string-append doc "/share/doc/ortp-" ,version))
+ (tester (assoc-ref outputs "tester")))
+ (for-each mkdir-p (list (string-append doc "/share/doc")
+ (string-append tester "/bin")))
+ (rename-file doc-src doc-dest)
+ (rename-file (string-append out "/bin")
+ (string-append tester "/bin"))))))))
(native-inputs
`(("dot" ,graphviz)
("doxygen" ,doxygen)))
@@ -243,26 +449,28 @@ such as conferencing.")
(synopsis "Belledonne Communications RTP Library")
(description "oRTP is a C library implementing the RTP protocol. It
implements the RFC 3550 standard.")
- (home-page "https://gitlab.linphone.org/BC/public/ortp")
- (license license:gpl2+)))
+ (home-page "https://linphone.org/technical-corner/ortp")
+ (license license:gpl3+)))
(define-public bzrtp
(package
(name "bzrtp")
- (version "1.0.6")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/bzrtp")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "12y0kkh90pixaaxfyx26ca2brhy6nw57fsypp6vh8jk1illv0j5z"))))
+ (base32 "1yjmsbqmymzl4r7sba6w4a2yld8m6hzafr6jf7sj0syhwpnc3zv6"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
+ `(#:configure-flags
+ (list
+ "-DENABLE_STATIC=NO"
+ "-DENABLE_TESTS=YES")))
(inputs
`(("bctoolbox" ,bctoolbox)
("sqlite3" ,sqlite)
@@ -272,100 +480,171 @@ implements the RFC 3550 standard.")
written in C. It is fully portable and can be executed on many platforms
including both ARM and x86.")
(home-page "https://gitlab.linphone.org/BC/public/bzrtp")
- (license license:gpl2+)))
+ (license license:gpl3+)))
(define-public belle-sip
(package
(name "belle-sip")
- (version "1.6.3")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/belle-sip.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0s55kggmgxap54dkw5856bgk4xg7yvbzialpxnjm0zhpic3hff1z"))))
+ (base32 "1kknnlczq7dpqaj1dwxvy092dzrqjy11ndkv90rqwmdryigkjk6z"))))
(build-system cmake-build-system)
+ (outputs '("out" "tester"))
(arguments
- `(#:tests? #f ; Requires network access
- #:configure-flags
- (list "-DENABLE_STATIC=NO") ; Not required
+ `(#:configure-flags (list "-DENABLE_STATIC=NO"
+ "-DENABLE_MDNS=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix mDNS dependency.
+ (let* ((avahi (assoc-ref inputs "avahi")))
+ (substitute* (find-files "." "CMakeLists.txt")
+ (("find_package\\(DNSSD REQUIRED\\)")
+ "set(DNSSD_FOUND 1)")
+ (("\\$\\{DNSSD_INCLUDE_DIRS\\}")
+ (string-append avahi "/include/avahi-compat-libdns_sd"))
+ (("\\$\\{DNSSD_LIBRARIES\\}")
+ "dns_sd")))
(substitute* "src/CMakeLists.txt"
;; ANTLR would use multithreaded DFA generation otherwise,
;; which would not be reproducible.
- (("-Xmultithreaded ") ""))
- #t)))))
+ (("-Xmultithreaded ") ""))))
+ (delete 'check) ;move after install
+ (add-after 'install 'separate-outputs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (tester (assoc-ref outputs "tester"))
+ (tester-name "belle_sip_tester"))
+ (for-each mkdir-p (list (string-append tester "/bin")
+ (string-append tester "/share")))
+ (rename-file (string-append out "/bin")
+ (string-append tester "/bin"))
+ (rename-file (string-append out "/share/" tester-name)
+ (string-append tester "/share/" tester-name)))))
+ (add-after 'separate-outputs 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((tester (string-append (assoc-ref outputs "tester")
+ "/bin/belle_sip_tester")))
+ (for-each (lambda (suite-name)
+ (invoke tester "--suite" suite-name))
+ (list "Object inheritance"
+ "SIP URI"
+ "FAST SIP URI"
+ "FAST SIP URI 2"
+ "Generic uri"
+ "Headers"
+ "Core"
+ "SDP"
+ ;;"Resolver"
+ "Message"
+ "Authentication helper"
+ ;;"Register"
+ ;;"Dialog"
+ "Refresher"
+ ;;"HTTP stack"
+ "Object"))))))))
(inputs
- `(("antlr3" ,antlr3-3.3)
- ("antlr3c" ,libantlr3c)
+ `(("avahi" ,avahi)
("bctoolbox" ,bctoolbox)
- ("java" ,icedtea)
("zlib" ,zlib)))
(synopsis "Belledonne Communications SIP Library")
(description "Belle-sip is a modern library implementing SIP transport,
transaction and dialog layers. It is written in C, with an object-oriented
API. It also comprises a simple HTTP/HTTPS client implementation.")
- (home-page "https://gitlab.linphone.org/BC/public/belle-sip")
- (license license:gpl2+)))
+ (home-page "https://linphone.org/technical-corner/belle-sip")
+ (license license:gpl3+)))
(define-public mediastreamer2
(package
(name "mediastreamer2")
- (version "2.16.1")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/"
- "mediastreamer/mediastreamer-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/mediastreamer2.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k"))
- (patches (search-patches "mediastreamer2-srtp2.patch"))))
+ (base32 "0989h3d0h7qrx4kjx8gg09j8c5hvvi3h8qi1iq1dqbppwbaxbz8c"))))
(outputs '("out" "doc" "tester"))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO" ; Not required
- "-DENABLE_STRICT=NO" ; Would otherwise treat warnings as err
- "-DENABLE_BV16=NO" ; Not available
- "-DCMAKE_C_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\""
- "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"")
+ `(#:configure-flags (list "-DENABLE_STATIC=NO"
+ "-DENABLE_PCAP=YES"
+ ;; Do not fail on compile warnings.
+ "-DENABLE_STRICT=NO"
+ "-DENABLE_PORTAUDIO=YES"
+ "-DENABLE_G729B_CNG=YES")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-version
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
+ (string-append "VERSION " ,version)))))
+ (add-after 'unpack 'patch-source
+ (lambda _
+ (substitute* "src/otherfilters/mspcapfileplayer.c"
+ (("O_BINARY") "L_INCR"))))
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Tests require a running X server.
+ (system "Xvfb :1 +extension GLX &")
+ (setenv "DISPLAY" ":1")
+ ;; Tests write to $HOME.
+ (setenv "HOME" (getenv "TEMP"))))
+ (delete 'check) ;move after install
(add-after 'install 'separate-outputs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc"))
(tester (assoc-ref outputs "tester"))
- (tester-name (string-append ,name "_tester")))
- ;; Copy the tester executable.
- (mkdir-p (string-append tester "/bin"))
+ (tester-name (string-append ,name "_tester"))
+ (doc (assoc-ref outputs "doc"))
+ (doc-name (string-append ,name "-" ,version)))
+ (for-each mkdir-p
+ (list (string-append tester "/bin")
+ (string-append tester "/share")
+ (string-append doc "/share/doc")))
+ ;; Move the tester executable.
(rename-file (string-append out "/bin/" tester-name)
(string-append tester "/bin/" tester-name))
- ;; Copy the tester data files.
- (copy-recursively (string-append out "/share/" tester-name)
- (string-append tester "/share/" tester-name))
- (delete-file-recursively (string-append out "/share/"
- tester-name))
- ;; Copy the HTML documentation.
- (copy-recursively (string-append out "/share/doc/"
- ,name "-" ,version "/html")
- (string-append doc "/share/doc/"
- ,name "-" ,version "/html"))
- (delete-file-recursively (string-append out "/share/doc/"
- ,name "-" ,version
- "/html"))
- #t))))))
+ ;; Move the tester data files.
+ (rename-file (string-append out "/share/" tester-name)
+ (string-append tester "/share/" tester-name))
+ ;; Move the HTML documentation.
+ (rename-file (string-append out "/share/doc/" doc-name)
+ (string-append doc "/share/doc/" doc-name)))))
+ (add-after 'separate-outputs 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((tester (string-append (assoc-ref outputs "tester")
+ "/bin/mediastreamer2_tester")))
+ (for-each (lambda (suite-name)
+ (invoke tester "--suite" suite-name))
+ ;; Some tests fail, due to requiring access to the
+ ;; sound card or the network.
+ (list "Basic Audio"
+ ;; "Sound Card"
+ ;; "AdaptiveAlgorithm"
+ ;; "AudioStream"
+ ;; "VideoStream"
+ "H26x Tools"
+ "Framework"
+ ;; "Player"
+ "TextStream"))))))))
(native-inputs
`(("dot" ,graphviz)
("doxygen" ,doxygen)
- ("python" ,python)))
+ ("python" ,python-wrapper)
+ ("xorg-server" ,xorg-server-for-tests)))
(inputs
`(("alsa" ,alsa-lib)
("bcg729" ,bcg729)
@@ -398,101 +677,120 @@ API. It also comprises a simple HTTP/HTTPS client implementation.")
for telephony applications. This media processing and streaming toolkit is
responsible for receiving and sending all multimedia streams in Linphone,
including media capture, encoding and decoding, and rendering.")
- (home-page "https://gitlab.linphone.org/BC/public/mediastreamer2")
- (license license:gpl2+)))
+ (home-page "https://linphone.org/technical-corner/mediastreamer2")
+ (license license:gpl3+)))
+
+(define-public lime
+ (package
+ (name "lime")
+ (version "4.4.34")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/lime.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14jg1zisjbzflw3scfqdbwy48wq3cp93l867vigb8l40lkc6n26z"))))
+ (build-system cmake-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:configure-flags (list "-DENABLE_STATIC=NO"
+ "-DENABLE_C_INTERFACE=YES")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda _
+ ;; Disable tests that require networking.
+ (substitute* "tester/CMakeLists.txt"
+ (("add_test\\(?.*\"Hello World\"\\)") "")
+ (("add_test\\(?.*\"lime\"\\)") "")
+ (("add_test\\(?.*\"FFI\"\\)") ""))))
+ (add-after 'build 'build-doc
+ (lambda _
+ (invoke "make" "doc")))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((doc (assoc-ref outputs "doc"))
+ (dir (string-append doc "/share/doc"))
+ (dest (string-append dir "/" ,name "-" ,version)))
+ (mkdir-p dest)
+ (copy-recursively "doc" dest)))))))
+ (native-inputs
+ `(("dot" ,graphviz)
+ ("doxygen" ,doxygen)))
+ (inputs
+ `(("bctoolbox" ,bctoolbox)
+ ("belle-sip" ,belle-sip)
+ ("soci" ,soci)))
+ (synopsis "Belledonne Communications Encryption Library")
+ (description "LIME is an encryption library for one-to-one and group
+instant messaging, allowing users to exchange messages privately and
+asynchronously. It supports multiple devices per user and multiple users per
+device.")
+ (home-page "https://linphone.org/technical-corner/lime")
+ (license license:gpl3+)))
(define-public liblinphone
(package
(name "liblinphone")
- (version "3.12.0")
+ (version "4.4.34")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/linphone"
- "/linphone-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/liblinphone.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0phhkx55xdyg28d4wn8l8q4yvsmdgzmjiw584d4s190sq1azm91x"))))
- (outputs '("out" "doc" "tester"))
+ (base32 "1lwabr93jw24y04pdqnw9dgg8jb3lzfplyx19f83jgp9dj8kmfq9"))))
+ (outputs '("out" "tester"))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR="
- (string-append (assoc-ref %build-inputs "gtk2")
- "/lib/gtk-2.0/include"))
- (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR="
- (string-append (assoc-ref %build-inputs "glib")
- "/lib/glib-2.0/include"))
- "-DENABLE_STATIC=NO" ; Not required
- "-DENABLE_STRICT=NO"
- "-DENABLE_GTK_UI=YES") ; for legacy UI
- #:imported-modules (,@%cmake-build-system-modules
- (guix build glib-or-gtk-build-system))
- #:modules ((guix build cmake-build-system)
- ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
- (guix build utils))
+ `(#:tests? #f ; Tests require networking
+ #:configure-flags (list "-DENABLE_STATIC=NO"
+ "-DENABLE_DOC=NO" ;requires unpackaged javasphinx
+ "-DENABLE_LDAP=YES")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda _
- (substitute* "gtk/main.c"
- (("#include \"liblinphone_gitversion.h\"")
- ""))
- #t))
(add-after 'install 'separate-outputs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc"))
(tester (assoc-ref outputs "tester"))
(tester-name (string-append ,name "_tester")))
- ;; Copy the tester executable.
- (mkdir-p (string-append tester "/bin"))
+ (for-each mkdir-p
+ (list (string-append tester "/bin")
+ (string-append tester "/share")))
(rename-file (string-append out "/bin/" tester-name)
(string-append tester "/bin/" tester-name))
- ;; Copy the tester data files.
- (mkdir-p (string-append tester "/share/"))
+ (rename-file (string-append out "/bin/groupchat_benchmark")
+ (string-append tester "/bin/groupchat_benchmark"))
(rename-file (string-append out "/share/" tester-name)
- (string-append tester "/share/" tester-name))
- ;; Copy the HTML and XML documentation.
- (copy-recursively
- (string-append out "/share/doc/linphone-" ,version)
- (string-append doc "/share/doc/" ,name "-" ,version))
- (delete-file-recursively
- (string-append out "/share/doc/linphone-" ,version))
- #t)))
- (add-after 'install 'install-man-pages
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (man (string-append out "/share/man/man1")))
- (for-each (lambda (file)
- (install-file file man))
- (find-files ".." ".*.1$"))
- #t)))
- (add-after 'separate-outputs 'glib-or-gtk-compile-schemas
- (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
- (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
- (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (string-append tester "/share/" tester-name))))))))
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("udev" ,eudev) ;for libudev.h
- ;; For generating the C++ wrappers.
- ("dot" ,graphviz)
+ `(("dot" ,graphviz)
("doxygen" ,doxygen)
- ("python" ,python)
+ ("gettext" ,gettext-minimal)
+ ("perl" ,perl)
+ ("python" ,python-wrapper)
("pystache" ,python-pystache)
- ("six" ,python-six)))
+ ("six" ,python-six)
+ ("udev" ,eudev)))
(inputs
`(("bctoolbox" ,bctoolbox)
("belcard" ,belcard)
("bellesip" ,belle-sip)
+ ("belr" ,belr)
("bzrtp" ,bzrtp)
("iconv" ,libiconv)
- ("glib" ,glib)
- ("gtk2" ,gtk+-2)
+ ("ldap" ,openldap)
+ ("libxsd" ,xsd)
+ ("lime" ,lime)
("mediastreamer2" ,mediastreamer2)
("notify" ,libnotify)
("ortp" ,ortp)
+ ("soci" ,soci)
("sqlite" ,sqlite)
("xml2" ,libxml2)
("zlib" ,zlib)))
@@ -502,58 +800,66 @@ all calling and instant messaging features into an unified
easy-to-use API. It is the cross-platform VoIP library on which the
Linphone application is based on, and that anyone can use to add audio
and video calls or instant messaging capabilities to an application.")
- (home-page "https://gitlab.linphone.org/BC/public/liblinphone")
- (license license:gpl2+)))
+ (home-page "https://linphone.org/technical-corner/liblinphone")
+ (license license:gpl3+)))
-(define-public linphoneqt
+(define-public linphone-desktop
(package
- (name "linphoneqt")
- (version "4.1.1")
+ (name "linphone-desktop")
+ (version "4.2.5")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/" name
- "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/linphone-desktop")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1g2zrr9li0g1hgs6vys06vr98h5dx36z22hx7a6ry231536c002a"))
- (patches (search-patches "linphoneqt-tabbutton.patch"))))
+ (base32 "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz"))
+ (patches (search-patches "linphone-desktop-without-sdk.patch"))))
(build-system qt-build-system)
+ (outputs '("out" "debug"))
(arguments
`(#:tests? #f ; No test target
+ #:configure-flags (list "-DENABLE_UPDATE_CHECK=NO"
+ "-DENABLE_DAEMON=YES"
+ "-DENABLE_CONSOLE_UI=YES")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-cmake-error
- (lambda _
- ;; This is fixed in commit efed2fd8 of the master branch.
- (substitute* "CMakeLists.txt"
- (("js)\\$\"")
- "js$\""))
- #t))
- (add-after 'unpack 'set-version-string
+ (add-after 'unpack 'pre-configure
(lambda _
- (substitute* "src/app/AppController.cpp"
- (("LINPHONE_QT_GIT_VERSION")
- (format #f "~s" ,version)))
- #t))
- (add-after 'install 'extend-shared-resources
- ;; Not using the FHS exposes an issue where the client refers to
- ;; its own "share" directory, which lacks sound files installed by
- ;; liblinphone.
+ (make-file-writable "linphone-app/linphoneqt_version.cmake")
+ (substitute* "linphone-app/linphoneqt_version.cmake"
+ (("\\$\\{GUIX-SET-VERSION\\}") ,version))))
+ (add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((liblinphone (assoc-ref inputs "linphone"))
- (out (assoc-ref outputs "out")))
+ (let* ((out (assoc-ref outputs "out"))
+ (liblinphone (assoc-ref inputs "liblinphone"))
+ (grammar-dest (string-append out "/share/belr/grammars")))
+ ;; Remove unnecessary Qt configuration file.
+ (delete-file (string-append out "/bin/qt.conf"))
+ ;; Not using the FHS exposes an issue where the client
+ ;; refers to its own directories, which lacks files
+ ;; installed by the dependencies.
+ (symlink (string-append liblinphone "/lib")
+ (string-append out "/lib"))
(symlink (string-append liblinphone "/share/sounds")
(string-append out "/share/sounds"))
- #t))))))
+ (symlink (string-append liblinphone "/share/linphone/rootca.pem")
+ (string-append out "/share/linphone/rootca.pem"))
+ (mkdir-p (dirname grammar-dest))
+ (symlink (string-append liblinphone "/share/belr/grammars")
+ grammar-dest)))))))
(native-inputs
- `(("qttools" ,qttools)))
+ `(("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)))
(inputs
`(("bctoolbox" ,bctoolbox)
("belcard" ,belcard)
- ("bellesip" ,belle-sip)
- ("linphone" ,liblinphone)
+ ("belr" ,belr)
+ ("liblinphone" ,liblinphone)
("mediastreamer2" ,mediastreamer2)
+ ("ortp" ,ortp)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("qtgraphicaleffects" ,qtgraphicaleffects)
@@ -578,128 +884,155 @@ and video calls or instant messaging capabilities to an application.")
@item Audio codecs: opus, speex, g711, g729, gsm, iLBC, g722, SILK, etc.
@item Video codecs: VP8, H.264 and H.265 with resolutions up to 1080P, MPEG4
@end itemize")
- (home-page "https://gitlab.linphone.org/BC/public/linphone-desktop")
- (license license:gpl2+)))
+ (home-page "https://linphone.org/technical-corner/linphone")
+ (license license:gpl3+)))
+
+(define-public linphoneqt
+ (deprecated-package "linphoneqt" linphone-desktop))
(define-public msopenh264
- (package
- (name "msopenh264")
- (version "1.2.1")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/plugins/"
- name "/" name "-" version ".tar.gz"))
- (sha256
- (base32 "0rdxgazm52560g52pp6mp3mwx6j1z3h2zyizzfycp8y8zi92fqm8"))
- (patches
- (list
- ;; For support for OpenH264 version >= 2.
- (origin
- (method url-fetch)
- (uri
- (string-append "https://gitlab.linphone.org/BC/public/msopenh264/"
- "commit/493d147d28c9a0f788ba4e50b47a1ce7b18bf326"
- ".diff"))
- (file-name "msopenh264-openh264.patch")
- (sha256
- (base32
- "0mmd7nz5n9ian4rcwn200nldmy5j0dpdrna7r32rqnaw82bx3kdb")))))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
- (inputs
- `(("mediastreamer2" ,mediastreamer2)
- ("openh264" ,openh264)
- ("ortp" ,ortp)))
- (synopsis "Media Streamer H.264 Codec")
- (description "MsOpenH264 is an H.264 encoder/decoder plugin for
-mediastreamer2 based on the openh264 library.")
- (home-page "https://gitlab.linphone.org/BC/public/msopenh264")
- (license license:gpl2+)))
+ (let ((commit "88697cc95140017760d6da408cb0efdc5e86e40a")
+ (revision "0"))
+ (package
+ (name "msopenh264")
+ (version (git-version "1.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/msopenh264.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "10y3b6s934f2wbsf60b3p0g6hffizjqrj5in8l4sida2fjdxlwwy"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No test target
+ #:configure-flags
+ (list "-DENABLE_STATIC=NO"))) ; Not required
+ (inputs
+ `(("bctoolbox" ,bctoolbox)
+ ("mediastreamer2" ,mediastreamer2)
+ ("openh264" ,openh264)
+ ("ortp" ,ortp)))
+ (synopsis "Media Streamer H.264 Codec")
+ (description "MsOpenH264 is an H.264 encoder/decoder plugin for
+ mediastreamer2 based on the openh264 library.")
+ (home-page "https://gitlab.linphone.org/BC/public/msopenh264")
+ (license license:gpl2+))))
(define-public mssilk
- (package
- (name "mssilk")
- (version "1.1.1")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/plugins/"
- name "/" name "-" version ".tar.gz"))
- (sha256
- (base32 "07ip0vd29d1n98lnqs5wpimcsmpm65yl7g5vk4hbqghcbsjw94lj"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO"))) ; Not required
- (inputs
- `(("mediastreamer2" ,mediastreamer2)
- ("ortp" ,ortp)))
- (synopsis "Media Streamer SILK Codec")
- (description "MSSILK is a plugin of MediaStreamer, adding support for AMR
+ (let ((commit "dd0f31ee795faa7ea89e601b072dae4cd1df7e3f")
+ (revision "0"))
+ (package
+ (name "mssilk")
+ (version (git-version "1.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/mssilk.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1dann5fnzqp6wjlwc6bl2k9b6rvn6bznqb3qsi1kgv9dnq44cbr0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No test target
+ #:configure-flags
+ (list "-DENABLE_STATIC=NO"))) ; Not required
+ (inputs
+ `(("bctoolbox" ,bctoolbox)
+ ("mediastreamer2" ,mediastreamer2)
+ ("ortp" ,ortp)))
+ (synopsis "Media Streamer SILK Codec")
+ (description "MSSILK is a plugin of MediaStreamer, adding support for AMR
codec. It is based on the Skype's SILK implementation.")
- (home-page "https://gitlab.linphone.org/BC/public/mssilk")
- (license license:gpl2+)))
+ (home-page "https://gitlab.linphone.org/BC/public/mssilk")
+ (license license:gpl2+))))
(define-public mswebrtc
- (package
- (name "mswebrtc")
- (version "1.1.1")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/plugins/"
- name "/" name "-" version ".tar.gz"))
- (sha256
- (base32 "1wj28hl9myhshqmn64xg0jf07aw75gmnilb5rff6rcbdxim87mqr"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list
- "-DENABLE_STATIC=NO"))) ; Not required
- (inputs
- `(("bctoolbox" ,bctoolbox)
- ("mediastreamer2" ,mediastreamer2)
- ("ortp" ,ortp)))
- (synopsis "Media Streamer WebRTC Codec")
- (description "MSWebRTC is a plugin of MediaStreamer, adding support for
+ (let ((commit "946ca706733f36a6b4923f04e569531125462d1d")
+ (revision "0"))
+ (package
+ (name "mswebrtc")
+ (version (git-version "1.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/mswebrtc")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pfg9m6bpbv0f53nx72rdxhlyriax9pg4yj0gpwq8ha6lqnpwg1x"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No test target
+ #:configure-flags
+ (list
+ "-DENABLE_STATIC=NO")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'copy-inputs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((webrtc-from (assoc-ref inputs "webrtc"))
+ (webrtc-to (string-append (getcwd) "/webrtc")))
+ (copy-recursively webrtc-from webrtc-to))
+ #t)))))
+ (native-inputs
+ `(("webrtc"
+ ,(origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://gitlab.linphone.org/BC/public/external/webrtc")
+ (commit "583acd27665cfadef8ab03eb85a768d308bd29dd")))
+ (file-name
+ (git-file-name "webrtc-for-mswebrtc" version))
+ (sha256
+ (base32
+ "1maqychrgwy0z4zypa03qp726l2finw64z6cymdzhd58ql3p1lvm"))))
+ ("python" ,python-wrapper)))
+ (inputs
+ `(("bctoolbox" ,bctoolbox)
+ ("mediastreamer2" ,mediastreamer2)
+ ("ortp" ,ortp)))
+ (synopsis "Media Streamer WebRTC Codec")
+ (description "MSWebRTC is a plugin of MediaStreamer, adding support for
WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.")
- (home-page "https://gitlab.linphone.org/BC/public/mswebrtc")
- (license license:gpl2+)))
+ (home-page "https://gitlab.linphone.org/BC/public/mswebrtc")
+ (license license:gpl2+))))
(define-public msamr
- (package
- (name "msamr")
- (version "1.1.3")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "https://www.linphone.org/releases/sources/plugins/"
- name "/" name "-" version ".tar.gz"))
- (sha256
- (base32 "16c9f3z4wnj73k7y8gb0fgpr4axsm7b5zrbjvy8vsgz9gyg3agm5"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; No test target
- #:configure-flags
- (list "-DENABLE_STATIC=NO" ; Not required
- "-DENABLE_WIDEBAND=YES")))
- (inputs
- `(("mediastreamer2" ,mediastreamer2)
- ("opencoreamr" ,opencore-amr)
- ("ortp" ,ortp)
- ("voamrwbenc" ,vo-amrwbenc)))
- (synopsis "Media Streamer AMR Codec")
- (description "MSAMR is a plugin of MediaStreamer, adding support for AMR
+ (let ((commit "5ab5c098299107048dfcbfc741f7392faef167bd")
+ (revision "0"))
+ (package
+ (name "msamr")
+ (version (git-version "1.1.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.linphone.org/BC/public/msamr")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1g79lw1qi1mlw3v1b0cixmqiwjql81gz9naakb15n8pvaag9aaqm"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No test target
+ #:configure-flags
+ (list "-DENABLE_STATIC=NO" ; Not required
+ "-DENABLE_WIDEBAND=YES")))
+ (inputs
+ `(("bctoolbox" ,bctoolbox)
+ ("mediastreamer2" ,mediastreamer2)
+ ("opencoreamr" ,opencore-amr)
+ ("ortp" ,ortp)
+ ("voamrwbenc" ,vo-amrwbenc)))
+ (synopsis "Media Streamer AMR Codec")
+ (description "MSAMR is a plugin of MediaStreamer, adding support for AMR
codec. It is based on the opencore-amr implementation.")
- (home-page "https://gitlab.linphone.org/BC/public/msamr")
- (license license:gpl3+)))
+ (home-page "https://gitlab.linphone.org/BC/public/msamr")
+ (license license:gpl3+))))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 37fccf415a..75d0db4c21 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -355,7 +355,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-5.11-version "5.11.7")
+(define-public linux-libre-5.11-version "5.11.12")
(define deblob-scripts-5.11
(linux-libre-deblob-scripts
linux-libre-5.11-version
@@ -363,7 +363,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0yvr80g200hdryz54gdnzj4fl38pf7g4qbgj475rhcfwixhp1j7n")))
(define-public linux-libre-5.11-pristine-source
(let ((version linux-libre-5.11-version)
- (hash (base32 "1cd87v6j8nk89pjqqsaviyzx9lj0d51j46n1in7cjlg18wng3da9")))
+ (hash (base32 "0z8fpskygs569f15c37x7c1sd46h06bfjmphql3xidj86hbnz8n0")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.11)))
@@ -371,7 +371,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.10-version "5.10.24")
+(define-public linux-libre-5.10-version "5.10.28")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
linux-libre-5.10-version
@@ -379,12 +379,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0hh27ccqimagr3aij7ygwikxw66y63sqwd0xlf49bhpjd090r9a7")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "0gvnplip90gvlzw9rm0cg66z54cfa82gk23icf5xdickb17d1p66")))
+ (hash (base32 "0m63g9700c0yfazj6j4s5b5x36kp9ffjwsdqj0zfcmlmf7m3mz2d")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.106")
+(define-public linux-libre-5.4-version "5.4.110")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
linux-libre-5.4-version
@@ -392,12 +392,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "1ny8b69ngydh0iw53jwlmqlgv31wjhkybkgnqi5kv0n174n3p1yc")))
+ (hash (base32 "0a5jv46znqf1pg6y9fa1fmk87jjbfrd40iqqrdkb59788229gxnh")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.181")
+(define-public linux-libre-4.19-version "4.19.185")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
linux-libre-4.19-version
@@ -405,12 +405,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "1kd967azsq6w41ch8iwpv0i4yjkpijzn5avcipi1141dx4ryw62j")))
+ (hash (base32 "15w5a2lfar3qdzv4lljdjy7dh49dhjy3gw2bn92awzcr2a1dg28n")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.226")
+(define-public linux-libre-4.14-version "4.14.229")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
linux-libre-4.14-version
@@ -418,12 +418,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "09llp8jl5xgxxzj0f2sfx32annwyz82k1zmgd26zy90lz0d09p3s")))
+ (hash (base32 "0b1nmcl3vdi37nxi7kjnfjmigmffigx9vkay2lldg9nyrlwyi6xj")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.262")
+(define-public linux-libre-4.9-version "4.9.265")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
linux-libre-4.9-version
@@ -431,12 +431,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
- (hash (base32 "1zq77x9zf1wbk8n17rnblm5lfwlkin1xnxb3sxirwb9njm07cbmj")))
+ (hash (base32 "0485kyqn1fgvw3kgbnc6rmjzdgjvwcl6jaqnv1qyhjdhd4ak0iji")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
-(define-public linux-libre-4.4-version "4.4.262")
+(define-public linux-libre-4.4-version "4.4.265")
(define deblob-scripts-4.4
(linux-libre-deblob-scripts
linux-libre-4.4-version
@@ -444,7 +444,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
- (hash (base32 "0yz9qi4i46ndshxmb99kvv7lk6cbb09y7bzagq7sgvqaj4lwaw6j")))
+ (hash (base32 "1531x9f6dwfj1vmy9z8kw8lhg753chkzk4yi2m9h7r89jbikfriv")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
@@ -1205,8 +1205,8 @@ and should be used with caution, especially on untested models.")
(license license:gpl3+))) ; see README.md (no licence headers)
(define-public rtl8812au-aircrack-ng-linux-module
- (let ((commit "62cb003043e4daeeba0b8805137fa604af450ed2")
- (revision "3"))
+ (let ((commit "059e06a51be025fde5b2bec6565540b3d9981b0b")
+ (revision "4"))
(package
(name "rtl8812au-aircrack-ng-linux-module")
(version (git-version "5.6.4.2" revision commit))
@@ -1218,7 +1218,7 @@ and should be used with caution, especially on untested models.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1kragxkjprjy7nl9h2rd0mwcry1ygw07zb1p2qkj7cmz0r2035yz"))
+ (base32 "0h6l2r3yj7j9zf11dw0zcdyn50ajnjw8yvv86dzlfj80dn75n98f"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3570,6 +3570,93 @@ subsystem. @code{uinput} allows userspace programs to create and handle input
devices that can inject events directly into the input subsystem.")
(license license:bsd-3)))
+(define-public interception-tools
+ (package
+ (name "interception-tools")
+ (version "0.6.4")
+ (home-page "https://gitlab.com/interception/linux/tools")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "121jy40ynkbzlqnx7g0dqwvkb7dm2ahcy6vwrz6ylsyd0jmi6s5a"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("boost" ,boost)
+ ("libevdev" ,libevdev)
+ ("libudev" ,eudev)
+ ("yaml-cpp" ,yaml-cpp)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-libevdev-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((libevdev (assoc-ref inputs "libevdev")))
+ (substitute* "CMakeLists.txt"
+ (("/usr/include/libevdev-1.0")
+ (string-append libevdev "/include/libevdev-1.0")))
+ #t))))
+ ;; No tests are included.
+ #:tests? #f))
+ (synopsis "Utilities for operating on input events of evdev devices")
+ (description
+ "Interception Tools provides a composable infrastructure on top of
+@code{libudev} and @code{libevdev}. The following utilities are provided:
+
+@itemize
+@item @command{udevmon} --- monitor input devices for launching tasks
+@item @command{intercept} --- redirect device input events to stdout
+@item @command{uinput} --- redirect device input events from stding to virtual device
+@item @command{mux} --- mux streams of input events
+@end itemize")
+ ;; Dual-licensed under GPLv3+ or "something else" on request, per
+ ;; 'README.md'.
+ (license license:gpl3+)))
+
+(define-public interception-dual-function-keys
+ (package
+ (name "interception-dual-function-keys")
+ (version "1.3.0")
+ (home-page "https://gitlab.com/interception/linux/plugins/dual-function-keys")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1gvhkmwzl5fyyc7k8rc4rf2b9mzh05wa8wcybf9hz2x1mqkc7lmz"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libevdev" ,libevdev)
+ ("yaml-cpp" ,yaml-cpp)))
+ (arguments
+ `(#:make-flags (list "CC=gcc" "CXX=g++"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-libevdev-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((libevdev (assoc-ref inputs "libevdev")))
+ (substitute* "config.mk"
+ (("/usr/include/libevdev-1.0")
+ (string-append libevdev "/include/libevdev-1.0")))
+ #t)))
+ ;; No configure script
+ (delete 'configure)
+ ;; No target 'check'
+ (delete 'check))))
+ (synopsis "Tap for one key, hold for another")
+ (description
+ "Dual Function Keys is a plugin for @code{interception-tools} that allows
+one to send arbitrary keycodes when a given key is tapped or held.")
+ (license license:expat)))
+
(define-public lvm2
(package
(name "lvm2")
@@ -5726,7 +5813,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
(package
(name "rng-tools")
(home-page "https://github.com/nhorman/rng-tools")
- (version "6.11")
+ (version "6.12")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
@@ -5734,7 +5821,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
(file-name (git-file-name name version))
(sha256
(base32
- "0wwvi8a8k2ahhmwln4w970b8gd3in3g13jkbsapkpnspwmlqj5xa"))))
+ "0z4j3kqh9k3zsrx6257hwh4fa51vqg79c6dnfrj6lhpcll0wh0hm"))))
(build-system gnu-build-system)
(arguments
`(;; Disable support for various hardware entropy sources as they need
@@ -5835,7 +5922,7 @@ cpufreq sub-system is enabled or not.")
(define-public haveged
(package
(name "haveged")
- (version "1.9.13")
+ (version "1.9.14")
(source
(origin
(method git-fetch)
@@ -5844,7 +5931,7 @@ cpufreq sub-system is enabled or not.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0g3hcvpky76cabgcfqh65fay7nnjkms32sgmlf33q969833hijqz"))))
+ (base32 "050hmnh5s2s4mb83f4d1fk23mk27pprg840c1aagc6v1sz6x5dhq"))))
(build-system gnu-build-system)
(home-page "https://www.issihosts.com/haveged")
(synopsis "Entropy source for the Linux random number generator")
@@ -6201,15 +6288,17 @@ interface to the variable facility of UEFI boot firmware.")
(define-public efibootmgr
(package
(name "efibootmgr")
- (version "16")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/rhinstaller/efibootmgr"
- "/releases/download/" version "/efibootmgr"
- "-" version ".tar.bz2"))
- (sha256
- (base32
- "0pzn67vxxaf7jna4cd0i4kqm60h04kb21hckksv9z82q9gxra1wm"))))
+ (version "17")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rhinstaller/efibootmgr")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1niicijxg59rsmiw3rsjwy4bvi1n42dynvm01lnp9haixdzdpq03"))
+ (patches (search-patches "efibootmgr-remove-extra-decl.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no tests
@@ -7039,7 +7128,7 @@ interface to this kernel feature.")
(define-public mbpfan
(package
(name "mbpfan")
- (version "2.1.1")
+ (version "2.2.1")
(source
(origin
(method git-fetch)
@@ -7048,7 +7137,7 @@ interface to this kernel feature.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0aijyxrqh01x0s80yr4cgxgd001iiqqph65pxvby7f0wz8lnxnqj"))))
+ (base32 "0gc9ypxi55vxs77nx8ihhh9zk7fr9v0m0zfm76q7x0bi6jz11mbr"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; tests ask to be run as root
@@ -7075,7 +7164,7 @@ privileges.")
(define-public psm2
(package
(name "psm2")
- (version "11.2.86")
+ (version "11.2.185")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7084,7 +7173,7 @@ privileges.")
(file-name (git-file-name name version))
(sha256
(base32
- "1hiqzcmc97lzhaqjva82vf8irgg038cciypsv2brw90ak09n6vwf"))))
+ "062hg4r6gz7pla9df70nqs5i2a3mp1wszmp4l0g771fykhhrxsjg"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
@@ -7245,7 +7334,7 @@ compatible with Python's ConfigParser style of .INI files, including RFC
(define-public xfsprogs
(package
(name "xfsprogs")
- (version "5.10.0")
+ (version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -7253,7 +7342,7 @@ compatible with Python's ConfigParser style of .INI files, including RFC
"xfsprogs-" version ".tar.gz"))
(sha256
(base32
- "1wcvcv9fl955g3zl68057hq7pp9bm7i733vc7j6xr6wnfd8qf6sr"))))
+ "1byj53qdwsii35d0f11nz0dl618mpvwy5aa44pc9zg281g2r27ab"))))
(build-system gnu-build-system)
(outputs (list "out" "python"))
(arguments
@@ -7975,8 +8064,8 @@ kernel side implementation.")
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(home-page "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/")
- (synopsis "User-space tools for EROFS filesystem")
+ (synopsis "User-space tools for EROFS file system")
(description "EROFS (Enhanced Read-Only File System) is a compressed,
-read-only filesystem optimized for resource-scarce devices. This package
-provides user-space tools for creating EROFS filesystems.")
+read-only file system optimized for resource-scarce devices. This package
+provides user-space tools for creating EROFS file systems.")
(license license:gpl2+)))
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 5682daee3f..0f6d0103d5 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -64,6 +64,7 @@
#:use-module (gnu packages file)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages imagemagick)
@@ -120,10 +121,49 @@ portable between implementations.")
(define-public ecl-alexandria
(sbcl-package->ecl-package sbcl-alexandria))
-(define-public sbcl-golden-utils
- (let ((commit "9424419d867d5c2f819196ee41667a818a5058e7")
+(define-public sbcl-bodge-utilities
+ (let ((commit "6304bac4abe06d53579e2c0fc4437d14ff077d9f")
(revision "1"))
(package
+ (name "sbcl-bodge-utilities")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/borodust/bodge-utilities")
+ (commit commit)))
+ (file-name (git-file-name "bodge-utilities" version))
+ (sha256
+ (base32 "1z1blj05q71vzh323qwyn9p3xs7v0mq2yhwfyzza5libp37wqm3c"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
+ ("claw" ,sbcl-claw)
+ ("dissect" ,sbcl-dissect)
+ ("local-time" ,sbcl-local-time)
+ ("log4cl" ,sbcl-log4cl)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("static-vectors" ,sbcl-static-vectors)
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (home-page "https://github.com/borodust/bodge-utilities")
+ (synopsis "Common Lisp utilities library for CL-BODGE")
+ (description
+ "This Common Lisp library provides utilities for the @emph{Bodge} library
+collection.")
+ (license license:expat))))
+
+(define-public ecl-bodge-utilities
+ (sbcl-package->ecl-package sbcl-bodge-utilities))
+
+(define-public cl-bodge-utilities
+ (sbcl-package->cl-source-package sbcl-bodge-utilities))
+
+(define-public sbcl-golden-utils
+ (let ((commit "62a5cb948a011eb26e7a89f56d5839a3334b4100")
+ (revision "2"))
+ (package
(name "sbcl-golden-utils")
(version (git-version "0.0.0" revision commit))
(source
@@ -132,9 +172,9 @@ portable between implementations.")
(uri (git-reference
(url "https://git.mfiano.net/mfiano/golden-utils")
(commit commit)))
- (file-name (git-file-name name version))
+ (file-name (git-file-name "golden-utils" version))
(sha256
- (base32 "15x0phm6820yj3h37ibi06gjyh6z45sd2nz2n8lcbfflwm086q0h"))))
+ (base32 "13mvxqwd1nmpq8h5hb1s60wyqdj7ji4haxrqr0sy3csyqa8aq2j8"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)))
@@ -2055,7 +2095,7 @@ also be supported.")
(define-public sbcl-ironclad
(package
(name "sbcl-ironclad")
- (version "0.54")
+ (version "0.55")
(source
(origin
(method git-fetch)
@@ -2063,7 +2103,7 @@ also be supported.")
(url "https://github.com/sharplispers/ironclad/")
(commit (string-append "v" version))))
(sha256
- (base32 "07g0wpvfqq2yk23prs890d4qvbnr3xd6w8ssd88g89xdg483wpvk"))
+ (base32 "1w4slnc4143w1gcff1wxsivzb8kcji0bpd7y9rld3sabay0qprwl"))
(file-name (git-file-name name version))))
(build-system asdf-build-system/sbcl)
(native-inputs
@@ -2890,6 +2930,39 @@ from GLSL as data.")
(define-public cl-glsl-spec
(sbcl-package->cl-source-package sbcl-glsl-spec))
+(define-public sbcl-rtg-math
+ (let ((commit "29fc5b3d0028a4a11a82355ecc8cca62662c69e0")
+ (revision "1"))
+ (package
+ (name "sbcl-rtg-math")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cbaggers/rtg-math")
+ (commit commit)))
+ (file-name (git-file-name "rtg-math" version))
+ (sha256
+ (base32 "0bhxxnv7ldkkb18zdxyz2rj2a3iawzq2kcp7cn5i91iby7n0082x"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("documentation-utils" ,sbcl-documentation-utils)
+ ("glsl-symbols" ,sbcl-glsl-spec)))
+ (home-page "https://github.com/cbaggers/rtg-math")
+ (synopsis "Common Lisp library of game-related math functions")
+ (description
+ "RTG-MATH provides a selection of the math routines most commonly needed
+for making realtime graphics in Lisp.")
+ (license license:bsd-2))))
+
+(define-public ecl-rtg-math
+ (sbcl-package->ecl-package sbcl-rtg-math))
+
+(define-public cl-rtg-math
+ (sbcl-package->cl-source-package sbcl-rtg-math))
+
(define-public sbcl-varjo
(let ((commit "9e77f30220053155d2ef8870ceba157f75e538d4")
(revision "1"))
@@ -3345,10 +3418,10 @@ is a library for creating graphical user interfaces.")
(sbcl-package->ecl-package sbcl-cl-cffi-gtk))
(define-public sbcl-cl-webkit
- (let ((commit "0bc05cc73257670ab241853b9cc9ccb68940fe44"))
+ (let ((commit "db855639d4a13f6ba296959cf11635b6b67421bf"))
(package
(name "sbcl-cl-webkit")
- (version (git-version "2.4" "10" commit))
+ (version (git-version "2.4" "13" commit))
(source
(origin
(method git-fetch)
@@ -3358,7 +3431,7 @@ is a library for creating graphical user interfaces.")
(file-name (git-file-name "cl-webkit" version))
(sha256
(base32
- "1kg6illspvb5647pm0x819ag2n7njnqvrm18jzgd28vk6nlkrcmq"))))
+ "01alj5bfsh2983pwpdy0zpa2rvl4kl0mqzs08ff46is3cb8fqs0g"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("cffi" ,sbcl-cffi)
@@ -7223,10 +7296,10 @@ of C+GObject libraries without the need of writing dedicated bindings.")
(inputs
`(("ppcre" ,sbcl-cl-ppcre)))
(home-page "https://github.com/EuAndreh/cl-slug")
- (synopsis "Multi-language slug formater")
+ (synopsis "Multi-language slug formatter")
(description
"This is a small Common Lisp library to make slugs, mainly for URIs,
-from english and beyond.")
+from English and beyond.")
(license license:llgpl))))
(define-public ecl-cl-slug
@@ -9949,7 +10022,7 @@ approach to templating.")
(define-public sbcl-postmodern
(package
(name "sbcl-postmodern")
- (version "1.32.8")
+ (version "1.32.9")
(source
(origin
(method git-fetch)
@@ -9958,7 +10031,7 @@ approach to templating.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0vr5inbr8dldf6dsl0qj3h2yrnnsayzfwxfzwkn1pk7xbns2l78q"))))
+ (base32 "137jci4hn4vlxf48y39k0di27kc89kvxy3brmn3vl9xq56sy6mhz"))))
(build-system asdf-build-system/sbcl)
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
@@ -13242,7 +13315,7 @@ and lean bindings to C libraries.")
(home-page "https://github.com/borodust/claw-utils")
(synopsis "Utilities for easier autowrapping")
(description
- "This Common Lisp library contains various handy utilties to help
+ "This Common Lisp library contains various handy utilities to help
autowrapping with @code{claw}.")
(license license:expat))))
@@ -15262,6 +15335,35 @@ line tool @code{df} and get disk space information using @code{statvfs}.")
(define-public cl-diskspace
(sbcl-package->cl-source-package sbcl-cl-diskspace))
+(define-public sbcl-cl-cpus
+ (package
+ (name "sbcl-cl-cpus")
+ (version "0.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/muyinliu/cl-cpus")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-cpus" version))
+ (sha256
+ (base32 "0sdaff9hpsx7bpkkkqavmxmrrlc2d61gmqjjgn8xchncng4a0rf8"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cffi" ,sbcl-cffi)))
+ (home-page "https://github.com/muyinliu/cl-cpus")
+ (synopsis "Common Lisp feature to get number of CPUs")
+ (description
+ "This package provides a Common Lisp system which has only one function to
+return the CPU count of the current system.")
+ (license license:isc)))
+
+(define-public ecl-cl-cpus
+ (sbcl-package->ecl-package sbcl-cl-cpus))
+
+(define-public cl-cpus
+ (sbcl-package->cl-source-package sbcl-cl-cpus))
+
(define-public sbcl-fof
(package
(name "sbcl-fof")
@@ -15342,3 +15444,348 @@ numbers in Common Lisp.")
(define-public cl-computable-reals
(sbcl-package->cl-source-package sbcl-computable-reals))
+
+(define-public sbcl-html-template
+ (package
+ (name "sbcl-html-template")
+ (version "0.9.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/edicl/html-template")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wz3czvjsn4x971dsiia9f9nvvcmbkablcl75zsvxndkimc93wxb"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://edicl.github.io/html-template/")
+ (synopsis "HTML templates from Common Lisp")
+ (description
+ "HTML-TEMPLATE is a Common Lisp library which can be used to fill
+templates with arbitrary (string) values at runtime. The result does not have
+to be HTML.
+
+It is loosely modeled after the Perl module @code{HTML::Template} and
+partially compatible with a its syntax, though both libraries contain some
+extensions that the other does not support.
+
+HTML-TEMPLATE translates templates into efficient closures which can be
+re-used as often as needed. It uses a cache mechanism so you can update
+templates while your program is running and have the changes take effect
+immediately.")
+ (license license:bsd-2)))
+
+(define-public ecl-html-template
+ (sbcl-package->ecl-package sbcl-html-template))
+
+(define-public cl-html-template
+ (sbcl-package->cl-source-package sbcl-html-template))
+
+(define-public sbcl-quickproject
+ (package
+ (name "sbcl-quickproject")
+ (version "1.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xach/quickproject")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1szs8p2wr1yr9mjmj3h3557l6wxzzga0iszimb68z0hb1jj3lva6"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cl-fad" ,sbcl-cl-fad)
+ ("html-template" ,sbcl-html-template)))
+ (arguments
+ '(#:asd-files '("quickproject.asd")))
+ (home-page "https://xach.com/lisp/quickproject/")
+ (synopsis "Create Common Lisp project skeletons")
+ (description
+ "Quickproject provides a quick way to make a Common Lisp project. After
+creating a project, it extends the ASDF registry so the project may be
+immediately loaded.")
+ (license license:expat)))
+
+(define-public ecl-quickproject
+ (sbcl-package->ecl-package sbcl-quickproject))
+
+(define-public cl-quickproject
+ (sbcl-package->cl-source-package sbcl-quickproject))
+
+(define-public sbcl-bodge-math
+ (let ((commit "9159b7faf88d440024c07110dbef2abddb20b9af")
+ (revision "1"))
+ (package
+ (name "sbcl-bodge-math")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/borodust/bodge-math")
+ (commit commit)))
+ (file-name (git-file-name "bodge-math" version))
+ (sha256
+ (base32 "0r3vnl9lywn4ksy34apcv6j825qp7l1naddawr14v4lwacndb80v"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("bodge-utilities" ,sbcl-bodge-utilities)
+ ("rtg-math" ,sbcl-rtg-math)))
+ (home-page "https://github.com/borodust/bodge-math")
+ (synopsis "Common Lisp core math utilities of BODGE library collection")
+ (description
+ "This Common Lisp package contains the core math utilities of the
+@emph{Bodge} library collection.")
+ (license license:expat))))
+
+(define-public ecl-bodge-math
+ (sbcl-package->ecl-package sbcl-bodge-math))
+
+(define-public cl-bodge-math
+ (sbcl-package->cl-source-package sbcl-bodge-math))
+
+(define-public sbcl-cl-conspack
+ (let ((commit "fc8473bc6f929696b03b43820596b7c976c4678e")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-conspack")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/conspack/cl-conspack")
+ (commit commit)))
+ (file-name (git-file-name "cl-conspack" version))
+ (sha256
+ (base32 "0b7qzvsrpvnw12hqhjmz0b02sigj0kdjy55j4k7xzmj8684cs8bx"))))
+ (build-system asdf-build-system/sbcl)
+ ;; FIXME: (Sharlatan-20210331T220652+0100): Test are disabled because of:
+ ;;
+ ;; Error while trying to load definition for system cl-conspack-test
+ ;; from pathname .../cl-conspack/cl-conspack-test.asd:
+ ;; Error opening .../checkl/formalize-tmpGHU3ALSV.fasl": Permission denied
+ ;;
+ ;; It looks like the issues is in CheckL itself as other packages keep
+ ;; failing test where it's in use.
+ (arguments
+ '(#:tests? #f
+ #:asd-files '("cl-conspack.asd")))
+ (native-inputs
+ `(("checkl" ,sbcl-checkl)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("fast-io" ,sbcl-fast-io)
+ ("ieee-floats" ,sbcl-ieee-floats)
+ ("trivial-garbage" ,sbcl-trivial-garbage)
+ ("trivial-utf-8" ,sbcl-trivial-utf-8)))
+ (home-page "https://github.com/conspack/cl-conspack")
+ (synopsis "CONSPACK implementation for Common Lisp")
+ (description
+ "This package provides a CONSPACK implementation for Common Lisp.")
+ (license license:bsd-3))))
+
+(define-public ecl-cl-conspack
+ (sbcl-package->ecl-package sbcl-cl-conspack))
+
+(define-public cl-conspack
+ (sbcl-package->cl-source-package sbcl-cl-conspack))
+
+(define-public sbcl-cl-opengl
+ (let ((commit "e2d83e0977b7e7ac3f3d348d8ccc7ccd04e74d59")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-opengl")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/3b/cl-opengl")
+ (commit commit)))
+ (file-name (git-file-name "cl-opengl" version))
+ (sha256
+ (base32 "0mhqmll09f079pnd6mgswz9nvr6h5n27d4q7zpmm2igf1v460id7"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-systems '("cl-opengl" "cl-glu" "cl-glut")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-lib-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "gl/library.lisp"
+ (("libGL.so" all)
+ (string-append (assoc-ref inputs "mesa") "/lib/" all)))
+ (substitute* "glu/library.lisp"
+ (("libGLU.so" all)
+ (string-append (assoc-ref inputs "glu") "/lib/" all)))
+ (substitute* "glut/library.lisp"
+ (("libglut.so" all)
+ (string-append (assoc-ref inputs "freeglut") "/lib/" all)))
+ #t)))))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
+ ("float-features" ,sbcl-float-features)
+ ("freeglut" ,freeglut)
+ ("glu" ,glu)
+ ("mesa" ,mesa)))
+ (home-page "https://github.com/3b/cl-opengl")
+ (synopsis "Common Lisp bindings to OpenGL, GLU and GLUT APIs")
+ (description
+ "This package provides a set of bindings and utilities for accessing the
+OpenGL (Mesa), GLU and GLUT (FreeGLUT) APIs using CFFI.")
+ (license license:bsd-3))))
+
+(define-public ecl-cl-opengl
+ (sbcl-package->ecl-package sbcl-cl-opengl))
+
+(define-public cl-opengl
+ (sbcl-package->cl-source-package sbcl-cl-opengl))
+
+(define-public sbcl-shadow
+ (let ((commit "b2031adbfba3579b48c9d39ad997e19b79b6852f")
+ (revision "1"))
+ (package
+ (name "sbcl-shadow")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.mfiano.net/mfiano/shadow")
+ (commit commit)))
+ (file-name (git-file-name "shadow" version))
+ (sha256
+ (base32 "0w1i734gkdkziin74ql2nhx7jdjxx02ylssaa6qdrvnj4br1124a"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cl-opengl" ,sbcl-cl-opengl)
+ ("glsl-packing" ,sbcl-glsl-packing)
+ ("golden-utils" ,sbcl-golden-utils)
+ ("static-vectors" ,sbcl-static-vectors)
+ ("varjo" ,sbcl-varjo)))
+ (home-page "https://git.mfiano.net/mfiano/shadow")
+ (synopsis "Management system for OpenGL shader programs")
+ (description
+ "This package provides a Common Lisp library for defining OpenGL shader
+programs. There are also functions for referencing shader programs by name,
+querying for basic information about them, modifying uniform variables
+throughout the lifecycle of an OpenGL application, and managing certain OpenGL
+buffer object types (UBO, SSBO currently).")
+ (license license:expat))))
+
+(define-public ecl-shadow
+ (sbcl-package->ecl-package sbcl-shadow))
+
+(define-public cl-shadow
+ (sbcl-package->cl-source-package sbcl-shadow))
+
+(define-public sbcl-umbra
+ (let ((commit "d6ef2f6cbfa26180929061129eaf325bf17f73d8")
+ (revision "1"))
+ (package
+ (name "sbcl-umbra")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.mfiano.net/mfiano/umbra")
+ (commit commit)))
+ (file-name (git-file-name "umbra" version))
+ (sha256
+ (base32 "04vyh2j00zdpb8ryxr8g81wjcmqlz9wrn55r3cypcj4qg970r5wi"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("golden-utils" ,sbcl-golden-utils)
+ ("shadow" ,sbcl-shadow)
+ ("varjo" ,sbcl-varjo)))
+ (home-page "https://git.mfiano.net/mfiano/umbra")
+ (synopsis "Common Lisp library of reusable GPU shader functions")
+ (description
+ "This is a Common Lisp library consisting of a collection of useful GPU
+shader functions, written with @code{Shadow}.")
+ (license license:expat))))
+
+(define-public ecl-umbra
+ (sbcl-package->ecl-package sbcl-umbra))
+
+(define-public cl-umbra
+ (sbcl-package->cl-source-package sbcl-umbra))
+
+(define-public sbcl-abstract-classes
+ (let ((commit "7fa74f1e057f9ba7c1ffecff14f049f979e45267")
+ (revision "1"))
+ (package
+ (name "sbcl-abstract-classes")
+ (version (git-version "1.7.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://bitbucket.org/eeeickythump/cl-abstract-classes")
+ (commit commit)))
+ (file-name (git-file-name "cl-abstract-classes" version))
+ (sha256
+ (base32 "06lby4i6xbbgs7kgb0f3fqybvyskyg6djhrf967lnysv7hn3zpg9"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("closer-mop" ,sbcl-closer-mop)))
+ (arguments
+ `(#:asd-systems '("abstract-classes" "singleton-classes")))
+ (home-page "https://bitbucket.org/eeeickythump/cl-abstract-classes")
+ (synopsis "Abstract, final, and singleton metaclasses for CLOS")
+ (description
+ "This package provides Common Lisp extension to the MOP to allow
+abstract, final and singleton classes.")
+ (license license:public-domain))))
+
+(define-public ecl-abstract-classes
+ (sbcl-package->ecl-package sbcl-abstract-classes))
+
+(define-public cl-abstract-classes
+ (sbcl-package->cl-source-package sbcl-abstract-classes))
+
+(define-public sbcl-coalton
+ (let ((commit "4a42ffb4222fde3abfd1b50d96e455ff2eef9fe8")
+ (revision "1"))
+ (package
+ (name "sbcl-coalton")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stylewarning/coalton")
+ (commit commit)))
+ (file-name (git-file-name "coalton" version))
+ (sha256
+ (base32 "0aidwwam7cnhb3p9212zbv5w2dl6kr5iklzanypzr1a9lqaxwdlk"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiasco" ,sbcl-fiasco)))
+ (inputs
+ `(("abstract-classes" ,sbcl-abstract-classes)
+ ("alexandria" ,sbcl-alexandria)
+ ("global-vars" ,sbcl-global-vars)
+ ("optima" ,sbcl-optima)
+ ("trivial-garbage" ,sbcl-trivial-garbage)))
+ (home-page "https://github.com/stylewarning/coalton")
+ (synopsis "Dialect of ML in Common Lisp")
+ (description
+ "Coalton is a dialect of ML embedded in Common Lisp. It emphasizes
+practicality and interoperability with Lisp, and is intended to be a DSL that
+allows one to gradually make their programs safer.")
+ (license license:expat))))
+
+(define-public ecl-coalton
+ (sbcl-package->ecl-package sbcl-coalton))
+
+(define-public cl-coalton
+ (sbcl-package->cl-source-package sbcl-coalton))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index c91bf55ac5..1d8c1ac601 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
-;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
@@ -400,14 +400,14 @@ an interpreter, a compiler, a debugger, and much more.")
(define-public sbcl
(package
(name "sbcl")
- (version "2.1.0")
+ (version "2.1.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2"))
(sha256
- (base32 "0k12m2z60fnq64m8dgivprs2mvrsnmp7c5ipzx7jzkprcsymdvh5"))))
+ (base32 "1h6s3as8m72ik971zy7a8j1kqfyy5gzpv9ksy09ixv65a10ll3d9"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(native-inputs
@@ -847,7 +847,7 @@ enough to play the original mainframe Zork all the way through.")
(define-public txr
(package
(name "txr")
- (version "246")
+ (version "255")
(source
(origin
(method git-fetch)
@@ -856,7 +856,7 @@ enough to play the original mainframe Zork all the way through.")
(commit (string-append "txr-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1ynkz0ss7nn1ssiaxagpq80iabknf085nk0pra9hn8y9hx7av0db"))))
+ (base32 "0fjca44761x29xg5hh60yf4i3k7462z7ysnadbk2wzisp42yxk6j"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 0a1b6c84ce..d35c20e17c 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -790,17 +790,6 @@ of programming tools as well as libraries with equivalent functionality.")
(base32
"153vcvj8gvgwakzr4j0kndc0b7wn91c2g1vy2vg24s6spxcc23gn"))))))
-(define-public clang-runtime-3.6
- (clang-runtime-from-llvm
- llvm-3.6
- "11qx8d3pbfqjaj2x207pvlvzihbs1z2xbw4crpz7aid6h1yz6bqg"
- '("clang-runtime-asan-build-fixes.patch")))
-
-(define-public clang-3.6
- (clang-from-llvm llvm-3.6 clang-runtime-3.6
- "1wwr8s6lzr324hv4s1k6na4j5zv6n9kdhi14s4kb9b13d93814df"
- #:patches '("clang-3.5-libc-search-path.patch")))
-
(define-public llvm-3.5
(package (inherit llvm-3.6)
(version "3.5.2")
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index eafc23b2e6..6a4975e435 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@@ -190,7 +190,7 @@ output in multiple windows in a terminal.")
(define-public spdlog
(package
(name "spdlog")
- (version "1.8.2")
+ (version "1.8.5")
(source
(origin
(method git-fetch)
@@ -199,8 +199,7 @@ output in multiple windows in a terminal.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "03vmwbi9v7r3v8kzd0lj10fchp54kxbxwzfx7dp6qzkxjrvmx2dx"))))
+ (base32 "179krvg5sad6dviqpcjwg6czzknnilqszrg1d0fgp12h6sy66vqg"))))
(build-system cmake-build-system)
;; TODO run benchmark. Currently not possible, as adding
;; (gnu packages benchmark) forms a dependency cycle
@@ -215,19 +214,3 @@ library.")
;; spdlog is under Expat license, but the bundled fmt library in
;; "include/spdlog/fmt/bundled" is under BSD 2 clause license.
(license (list license:expat license:bsd-2))))
-
-(define-public spdlog-1.7
- (package
- (inherit spdlog)
- (name "spdlog")
- (version "1.7.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/gabime/spdlog")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1ryaa22ppj60461hcdb8nk7jwj84arp4iw4lyw594py92g4vnx3j"))))))
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index edb3f85109..0a1ca19a6f 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -51,6 +51,7 @@
#:use-module (gnu packages m4)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
#:use-module (gnu packages re2c)
#:use-module (gnu packages readline)
#:use-module (gnu packages tls)
@@ -1107,14 +1108,14 @@ shell command executions.")
(define-public emilua
(package
(name "emilua")
- (version "0.2.1")
+ (version "0.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/emilua/emilua.git")
(commit (string-append "v" version))
- ;; Current version requires bundled CLI11 and fmt, but at some
- ;; future release the ones found in the system could be used
+ ;; Current version requires bundled CLI11, but at some future
+ ;; release the one found in the system could be used
;; instead. Current version also requires Trial.Protocol and
;; the HTTP lib developed as part of GSoC 2014 for Boost, but
;; these are dependencies unlikely to be "unbundled" in future
@@ -1123,13 +1124,17 @@ shell command executions.")
(file-name (git-file-name name version))
(sha256
(base32
- "1d6k5v6x85fbvz2ijq1imnfdwvqmsav4xp021a5v3ah4mgy7yann"))))
+ "124fj73722c03znwdyqp1i0jygwv3s11f6s1j9rzym513qrf7fnd"))))
(build-system meson-build-system)
(arguments
`(#:meson ,meson-0.55
;; Tests are disabled for now due to an issue that affecs guix:
;; <https://gitlab.com/emilua/emilua/-/issues/22>
- #:configure-flags '("-Denable_http=false" "-Denable_tests=false")))
+ #:configure-flags
+ (list "-Denable_http=true"
+ "-Denable_tests=false"
+ "-Denable_manpages=false"
+ "-Dversion_suffix=-guix1")))
(native-inputs
`(("gcc" ,gcc-10) ; gcc-7 is too old for our C++17 needs
("luajit-lua52-openresty" ,luajit-lua52-openresty)
@@ -1139,6 +1144,7 @@ shell command executions.")
(inputs
`(("boost" ,boost)
("boost-static" ,boost-static)
+ ("fmt" ,fmt)
;; LuaJIT has a 2GiB addressing limit[1] that has been fixed on OpenResty
;; fork. Emilua is severely affected by this limit, so the upstream package
;; is avoided. Emilua also depends on the -DLUAJIT_ENABLE_LUA52COMPAT
@@ -1150,6 +1156,12 @@ shell command executions.")
("luajit-lua52-openresty" ,luajit-lua52-openresty)
("ncurses" ,ncurses)
("openssl" ,openssl)))
+ (native-search-paths
+ (list
+ (search-path-specification
+ (variable "EMILUA_PATH")
+ (files
+ (list (string-append "lib/emilua-" (version-major+minor version)))))))
(home-page "https://gitlab.com/emilua/emilua")
(synopsis "Lua execution engine")
(description
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 239ddb0eb0..56fae3fcba 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
@@ -27,20 +27,21 @@
;;; Copyright © 2018, 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
+;;; Copyright © 2020, 2021 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020 divoplade <d@divoplade.fr>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Benoit Joly <benoit@benoitj.ca>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -88,6 +89,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages groff)
@@ -155,7 +157,9 @@
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system go)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system guile)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
@@ -317,6 +321,37 @@ software.")
;; Libraries are under LGPLv3+, and programs under GPLv3+.
(list license:gpl3+ license:lgpl3+))))
+(define-public go-gitlab.com-shackra-goimapnotify
+ (let ((commit "832bc7112db9b28e28d69e90b91ea6c005244c9b")
+ (revision "0"))
+ (package
+ (name "go-gitlab.com-shackra-goimapnotify")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/shackra/goimapnotify")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1h27kshx4vwl5k6vc2szsq3d701fzs4gczjypz907f8hj0lrnjmy"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "gitlab.com/shackra/goimapnotify"))
+ (propagated-inputs
+ `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
+ ("go-github-com-emersion-go-imap-idle" ,go-github-com-emersion-go-imap-idle)
+ ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
+ ("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)
+ ("go-golang-org-x-text" ,go-golang-org-x-text)))
+ (synopsis "Execute scripts on IMAP mailbox changes.")
+ (description
+ "Script to execute scripts on IMAP mailbox changes (new/deleted/updated
+messages) using IDLE. Implemented in Go.")
+ (home-page "https://gitlab.com/shackra/goimapnotify")
+ (license license:gpl3+))))
+
(define-public guile2.2-mailutils
(package
(inherit mailutils)
@@ -412,7 +447,7 @@ to run without any changes.")
(define-public fetchmail
(package
(name "fetchmail")
- (version "6.4.17")
+ (version "6.4.18")
(source
(origin
(method url-fetch)
@@ -420,7 +455,7 @@ to run without any changes.")
(version-major+minor version) "/"
"fetchmail-" version ".tar.xz"))
(sha256
- (base32 "1ijh9l7pg2yk5s5h1yj3vpd1az31giqy9bjrna10daj13gqws6x4"))))
+ (base32 "17r5zfk9yh7jhgdb360dlzx5fx9lsbmalasx6zgxw9v9vjycjb9h"))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)))
@@ -494,7 +529,7 @@ operating systems.")
(define-public neomutt
(package
(name "neomutt")
- (version "20201127")
+ (version "20210205")
(source
(origin
(method git-fetch)
@@ -503,7 +538,7 @@ operating systems.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1yhpz591jhcjpwllgppwf7vl7z2rnaqfphsvqd1sihd9k4lwch06"))))
+ (base32 "15kr9nvb4j8lx5rl2yapv231rbp4sbn709vv82pfhx5717x3yf00"))))
(build-system gnu-build-system)
(inputs
`(("cyrus-sasl" ,cyrus-sasl)
@@ -1593,14 +1628,14 @@ addons which can add many functionalities to the base client.")
(define-public msmtp
(package
(name "msmtp")
- (version "1.8.14")
+ (version "1.8.15")
(source
(origin
(method url-fetch)
(uri (string-append "https://marlam.de/msmtp/releases/"
"/msmtp-" version ".tar.xz"))
(sha256
- (base32 "1d3knxpwpglg20z4zcsi82mqv9285ah1b1b16k1fk1hlf5fhcvym"))))
+ (base32 "1klrj2a77671xb6xa0a0iyszhjb7swxhmzpzd4qdybmzkrixqr92"))))
(build-system gnu-build-system)
(inputs
`(("libsecret" ,libsecret)
@@ -2684,14 +2719,14 @@ easily (one at a time).")
(define-public mpop
(package
(name "mpop")
- (version "1.4.12")
+ (version "1.4.13")
(source
(origin
(method url-fetch)
(uri (string-append "https://marlam.de/mpop/releases/"
"mpop-" version ".tar.xz"))
(sha256
- (base32 "02j8qfd44dfyq1sq7r9znj9y6wam39ncch1sc8chcdlw5nsmaqsz"))))
+ (base32 "1hbx69d6ivbvjajrcp54fdb3g1ms4ydj0ybf3bfhlravqrk88jdk"))))
(build-system gnu-build-system)
(inputs
`(("gnutls" ,gnutls)))
@@ -3135,6 +3170,39 @@ writing OpenSMTPd filters.")
messages with @acronym{DKIM, DomainKeys Identified Mail} (RFC 4871).")
(license license:expat)))
+(define-public opensmtpd-filter-rspamd
+ (package
+ (name "opensmtpd-filter-rspamd")
+ (version "0.1.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/poolpOrg/filter-rspamd")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1qhrw20q9y44ffgx5k14nvqc9dh47ihywgzza84g0zv9xgif7hd5"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/poolpOrg/filter-rspamd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'set-bootstrap-variables
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ ;; Tell the build system where to install binaries
+ (let* ((out (assoc-ref outputs "out"))
+ (libexec (string-append out "/libexec/opensmtpd")))
+ (setenv "GOBIN" libexec)))))))
+ (native-inputs
+ `(("opensmtpd" ,opensmtpd)))
+ (home-page "https://github.com/poolpOrg/filter-rspamd")
+ (synopsis "OpenSMTPd filter to request an Rspamd analysis")
+ (description
+ "The @command{filter-rspamd} OpenSMTPd filter implements the
+Rspamd protocol and allows OpenSMTPd to request an Rspamd analysis of
+an SMTP transaction before a message is committed to queue.")
+ (license license:isc)))
+
(define-public mailman
(package
(name "mailman")
@@ -3624,14 +3692,14 @@ tools and applications:
(define-public balsa
(package
(name "balsa")
- (version "2.6.1")
+ (version "2.6.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://pawsa.fedorapeople.org/balsa/"
"balsa-" version ".tar.bz2"))
(sha256
- (base32 "1xkxx801p7sbfkn0bh3cz85wra4xf1z1zhjqqc80z1z1nln7fhb4"))))
+ (base32 "1w0239i01mw4wwwy7xh8gz7zgl5khwvfm5wy35x0swvvax021mai"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -3653,8 +3721,9 @@ tools and applications:
("gnutls" ,gnutls)
("gpgme" ,gpgme)
("gtk+" ,gtk+)
- ("gtksourceview" ,gtksourceview-3)
+ ("gtksourceview" ,gtksourceview)
("gtkspell3" ,gtkspell3)
+ ("libassuan" ,libassuan) ; in gpgme.pc Requires
("libcanberra" ,libcanberra)
("libesmtp" ,libesmtp)
("libical" ,libical)
@@ -3790,13 +3859,13 @@ servers. The 4rev1 and 4 versions of IMAP are supported.")
(define-public urlscan
(package
(name "urlscan")
- (version "0.9.5")
+ (version "0.9.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "urlscan" version))
(sha256
- (base32 "07vcwirap0p4dkqrqblfn1q017slgd8m6qyijvbi3gxnr09pbyx2"))))
+ (base32 "09lxi7dhn49fpb3ij4cgrhj3qqqqs9rcxbjb7p9smw5wblrqpzga"))))
(build-system python-build-system)
(propagated-inputs
`(("python-urwid" ,python-urwid)))
@@ -3838,8 +3907,8 @@ It is a replacement for the @command{urlview} program.")
(license license:gpl2+)))
(define-public mumi
- (let ((commit "8c82c8f104ff0013e2bfb3d6b4277280f32446a6")
- (revision "3"))
+ (let ((commit "9f070bd90adc67064cd8aff4e40f303d5957ef4a")
+ (revision "5"))
(package
(name "mumi")
(version (git-version "0.0.1" revision commit))
@@ -3851,7 +3920,7 @@ It is a replacement for the @command{urlview} program.")
(file-name (git-file-name name version))
(sha256
(base32
- "1gkwagy7qplzq2x2zqsbrwhlilxviqb0dqhrvnnhxd7z8wvyzcsi"))))
+ "1ym1j3nzy8qhd1ydadccbgm0nckkmnq3vnz9qh9x8rasx7zg1ldp"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index c021a1e2e4..8911463a61 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2014, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
@@ -32,6 +32,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system ruby)
#:use-module (guix utils)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages dbm)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
@@ -221,10 +222,54 @@ accessed using the man command. It uses a Berkeley DB database in place of
the traditional flat-text whatis databases.")
(license license:gpl2+)))
+(define-public mandoc
+ (package
+ (name "mandoc")
+ (version "1.14.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://mandoc.bsd.lv/snapshots/mandoc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1xyqllxpjj1kimlipx11pzyywf5c25i4wmv0lqm7ph3gnlnb86c2"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "regress"
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'set-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "configure"
+ (("^CC=.*")
+ (string-append "CC=" ,(cc-for-target) "\n"))
+ (("^DEFCFLAGS=\\\\\"")
+ "DEFCFLAGS=\"-O2 ")
+ (("^UTF8_LOCALE=.*") ;used for tests
+ "UTF8_LOCALE=en_US.UTF-8\n")
+ (("^MANPATH_(BASE|DEFAULT)=.*" _ which)
+ (string-append "MANPATH_" which "="
+ "/run/current-system/profile/share/man\n"))
+ (("^PREFIX=.*")
+ (string-append "PREFIX=" (assoc-ref outputs "out")
+ "\n"))))))))
+ (native-inputs `(("perl" ,perl))) ;used to run tests
+ (inputs `(("zlib" ,zlib)))
+ (synopsis "Tools for BSD mdoc and man pages")
+ (description
+ "mandoc is a suite of tools compiling mdoc, the roff macro language of
+choice for BSD manual pages, and man, the predominant historical language for
+UNIX manuals. It is small and quite fast. The main component of the toolset
+is the @command{mandoc} utility program, based on the libmandoc validating
+compiler, to format output for UTF-8 and ASCII UNIX terminals, HTML 5,
+PostScript, and PDF. Additional tools include the @command{man} viewer, and
+@command{apropos} and @command{whatis}.")
+ (home-page "https://mandoc.bsd.lv/")
+ (license license:isc)))
+
(define-public man-pages
(package
(name "man-pages")
- (version "5.10")
+ (version "5.11")
(source
(origin
(method url-fetch)
@@ -234,7 +279,7 @@ the traditional flat-text whatis databases.")
(string-append "mirror://kernel.org/linux/docs/man-pages/Archive/"
"man-pages-" version ".tar.xz")))
(sha256
- (base32 "0ql7fqs0w2nbwv1b6ffnzyjz1sysvkhq8kb77wi2z7qip8sja43m"))))
+ (base32 "1aiwn6yi19idg4jbf7x4x5i06macjv7r8d5fgp1rwnc4a775vniy"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index fbb1a74d09..44420147a3 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -681,6 +681,7 @@ mate-volume-control, a MATE volume control application and applet.")
`(("dconf" ,dconf)
("cairo" ,cairo)
("dbus-glib" ,dbus-glib)
+ ("gtk-layer-shell" ,gtk-layer-shell)
("gtk+" ,gtk+)
("libcanberra" ,libcanberra)
("libice" ,libice)
@@ -695,7 +696,8 @@ mate-volume-control, a MATE volume control application and applet.")
("mate-desktop" ,mate-desktop)
("mate-menus" ,mate-menus)
("pango" ,pango)
- ("tzdata" ,tzdata)))
+ ("tzdata" ,tzdata)
+ ("wayland" ,wayland)))
(home-page "https://mate-desktop.org/")
(synopsis "Panel for MATE")
(description
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 565f109f47..c1c29bc1d3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2018, 2020 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018, 2019, 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
@@ -34,7 +34,7 @@
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
-;;; Copyright © 2020 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
@@ -43,6 +43,7 @@
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
+;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2289,7 +2290,8 @@ ASCII text files using Gmsh's own scripting language.")
(native-inputs
`(("pkg-config" ,pkg-config)
;;("python-astropy" ,python-astropy) ;; FIXME: Package this.
- ("qttools" ,qttools)))
+ ("qttools" ,qttools)
+ ("python-sip" ,python-sip-4)))
(inputs
`(("ghostscript" ,ghostscript) ;optional, for EPS/PS output
("python-dbus" ,python-dbus)
@@ -3246,6 +3248,63 @@ YACC = bison -pscotchyy -y -b y
(synopsis
"Programs and libraries for graph algorithms (32-bit integers)")))
+(define-public scotch-shared
+ (package (inherit scotch)
+ (name "scotch-shared")
+ (native-inputs
+ `(("gcc" ,gcc)
+ ("flex" ,flex)
+ ("bison" ,bison)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments scotch)
+ ((#:phases scotch-shared-phases)
+ `(modify-phases ,scotch-shared-phases
+ (replace
+ 'configure
+ (lambda _
+ ;; Otherwise, the RUNPATH will lack the final path component.
+ (setenv "RPATHFLAGS" (string-append "-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib"))
+ (call-with-output-file "Makefile.inc"
+ (lambda (port)
+ (format port "
+EXE =
+LIB = .so
+OBJ = .o
+MAKE = make
+AR = gcc
+ARFLAGS = -shared -o
+CAT = cat
+CCS = gcc
+CCP = mpicc
+CCD = gcc
+CPPFLAGS =~{ -D~a~}
+CFLAGS = -O2 -g -fPIC $(CPPFLAGS) $(RPATHFLAGS)
+CLIBFLAGS = -shared -fPIC
+LDFLAGS = -lz -lm -lrt -lpthread -Xlinker --no-as-needed
+CP = cp
+LEX = flex -Pscotchyy -olex.yy.c
+LN = ln
+MKDIR = mkdir
+MV = mv
+RANLIB = echo
+YACC = bison -pscotchyy -y -b y
+"
+ '("COMMON_FILE_COMPRESS_GZ"
+ "COMMON_PTHREAD"
+ "COMMON_RANDOM_FIXED_SEED"
+ "INTSIZE64" ;use 'int64_t'
+ ;; Prevents symbolc clashes with libesmumps
+ "SCOTCH_RENAME"
+ ;; XXX: Causes invalid frees in superlu-dist tests
+ ;; "SCOTCH_PTHREAD"
+ ;; "SCOTCH_PTHREAD_NUMBER=2"
+ "restrict=__restrict"
+ ))))#t))
+ (delete 'check)))))
+ (synopsis
+ "Programs and libraries for graph algorithms (shared libraries version)")))
+
(define-public pt-scotch
(package (inherit scotch)
(name "pt-scotch")
@@ -3293,6 +3352,28 @@ YACC = bison -pscotchyy -y -b y
(synopsis
"Programs and libraries for graph algorithms (with MPI and 32-bit integers)")))
+(define-public pt-scotch-shared
+ (package (inherit scotch-shared)
+ (name "pt-scotch-shared")
+ (propagated-inputs
+ `(("openmpi" ,openmpi))) ;Headers include MPI headers
+ (arguments
+ (substitute-keyword-arguments (package-arguments scotch-shared)
+ ((#:phases scotch-shared-phases)
+ `(modify-phases ,scotch-shared-phases
+ (replace
+ 'build
+ (lambda _
+ (invoke "make" (format #f "-j~a" (parallel-job-count))
+ "ptscotch" "ptesmumps")
+
+ ;; Install the serial metis compatibility library
+ (invoke "make" "-C" "libscotchmetis" "install")))
+ (add-before 'check 'mpi-setup
+ ,%openmpi-setup)))))
+ (synopsis "Graph algorithms (shared libraries version, with MPI)")))
+
+
(define-public metis
(package
(name "metis")
@@ -3305,6 +3386,9 @@ YACC = bison -pscotchyy -y -b y
(sha256
(base32
"1cjxgh41r8k6j029yxs8msp3z6lcnpm16g5pvckk35kc7zhfpykn"))))
+ (properties
+ `((release-monitoring-url
+ . "http://glaros.dtc.umn.edu/gkhome/metis/metis/download")))
(build-system cmake-build-system)
(inputs
`(("blas" ,openblas)))
@@ -3907,7 +3991,7 @@ Fresnel integrals, and similar related functions as well.")
(define-public suitesparse
(package
(name "suitesparse")
- (version "5.8.1")
+ (version "5.9.0")
(source
(origin
(method git-fetch)
@@ -3917,7 +4001,7 @@ Fresnel integrals, and similar related functions as well.")
(file-name (git-file-name name version))
(sha256
(base32
- "0qjlyfxs8s48rs63c2fzspisgq1kk4bwkgnhmh125hgkdhrq2w1c"))
+ "1zhkix58afw92s7p291prljdm3yi0pjg1kbi3lczdb8rb14jkz5n"))
(patches (search-patches "suitesparse-mongoose-cmake.patch"))
(modules '((guix build utils)))
(snippet
@@ -3927,9 +4011,9 @@ Fresnel integrals, and similar related functions as well.")
#t))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ;no "check" target
+ `(#:tests? #f ;no "check" target
#:make-flags
- (list "CC=gcc"
+ (list (string-append "CC=" ,(cc-for-target))
"TBB=-ltbb"
"MY_METIS_LIB=-lmetis"
;; Flags for cmake (required to build GraphBLAS and Mongoose)
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm
index 8a3a1283fa..5c2b194d07 100644
--- a/gnu/packages/matrix.scm
+++ b/gnu/packages/matrix.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,6 +32,30 @@
#:use-module (guix download)
#:use-module (guix packages))
+(define-public python-matrix-client
+ (package
+ (name "python-matrix-client")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "matrix-client" version))
+ (sha256
+ (base32
+ "1mgjd0ymf9mvqjkvgx3xjhxap7rzdmpa21wfy0cxbw2xcswcrqyw"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)
+ ("python-responses" ,python-responses)))
+ (home-page
+ "https://github.com/matrix-org/matrix-python-sdk")
+ (synopsis "Client-Server SDK for Matrix")
+ (description "This package provides client-server SDK for Matrix.")
+ (license license:asl2.0)))
+
(define-public python-matrix-synapse-ldap3
(package
(name "python-matrix-synapse-ldap3")
@@ -61,13 +86,13 @@ an LDAP server.")
(define-public synapse
(package
(name "synapse")
- (version "1.25.0")
+ (version "1.29.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "matrix-synapse" version))
(sha256
(base32
- "0382qcsmgvg24p0xvb37kn3y1kd3bn363kblgwg58iy92df0pga4"))))
+ "0if2yhpz8psg0661401mvxznldbfhk2j9rhbs25jdaqm9jsv6907"))))
(build-system python-build-system)
;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’.
(propagated-inputs
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index b4b7bcb6b5..750ec2e67a 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -98,14 +99,14 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(define-public nyacc
(package
(inherit nyacc-0.99)
- (version "1.03.0")
+ (version "1.03.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/nyacc/nyacc-"
version ".tar.gz"))
(sha256
(base32
- "1vdiqpm3p0ndmpmkzcpkpjvgklfsk4wxrhkixdxbczpafdfl635p"))
+ "1s7kli288l4pizjaarx8m6jg7g0mgfy8rpbs9lpzg8la7wr5rvp4"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index c282080361..64aada69f5 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -27,6 +27,7 @@
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020, 2021 Robert Karszniewicz <avoidr@posteo.de>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -89,6 +90,7 @@
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
+ #:use-module (gnu packages matrix)
#:use-module (gnu packages mono)
#:use-module (gnu packages mpd)
#:use-module (gnu packages ncurses)
@@ -101,6 +103,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
@@ -785,7 +788,7 @@ authentication.")
(define-public pidgin
(package
(name "pidgin")
- (version "2.14.1")
+ (version "2.14.3")
(source
(origin
(method url-fetch)
@@ -793,11 +796,9 @@ authentication.")
(string-append "mirror://sourceforge/pidgin/Pidgin/"
version "/pidgin-" version ".tar.gz"))
(sha256
- (base32 "1c4dzxg9c3d9zfqqa7jwijj9rv9fm6w95igmpljwy88lxq7v5w11"))
+ (base32 "0vdfnm96m1kh4gm6xn6i7s9c5zjh1p18jg4595k4p5bplvd6fmm8"))
(patches
- (search-patches
- "pidgin-add-search-path.patch"
- "pidgin-vv-gst.patch"))
+ (search-patches "pidgin-add-search-path.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -874,7 +875,16 @@ authentication.")
"/lib")
(string-append "--with-tkconfig="
(assoc-ref %build-inputs "tk")
- "/lib"))))
+ "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'eat-leftovers
+ ;; XXX Remove when updating beyond 2.14.3. Equivalent to
+ ;; <https://keep.imfreedom.org/pidgin/pidgin/rev/d4d72fde60c2>.
+ (lambda _
+ ;; Remove a lingering [broken] oscar reference.
+ (substitute* "libpurple/tests/check_libpurple.c"
+ ((".*oscar_util_suite.*") "")))))))
(native-search-paths
(list
(search-path-specification
@@ -1017,9 +1027,6 @@ of xmpppy.")
(home-page "https://dev.gajim.org/gajim/python-nbxmpp")
(license license:gpl3+)))
-(define-public python2-nbxmpp
- (package-with-python2 python-nbxmpp))
-
(define-public gajim
(package
(name "gajim")
@@ -1619,99 +1626,6 @@ guidelines. It provides an easy to use application that allows you to
connect with friends and family without anyone else listening in.")
(license license:gpl3+)))
-(define-public pybitmessage
- (package
- (name "pybitmessage")
- (version "0.6.3.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Bitmessage/PyBitmessage")
- (commit version)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1lmhbpwsqh1v93krlqqhafw2pc3y0qp8zby186yllbph6s8kdp35"))))
- (propagated-inputs
- ;; TODO:
- ;; Package "pyopencl", required in addition to numpy for OpenCL support.
- ;; Package "gst123", required in addition to alsa-utils and
- ;; mpg123 for sound support.
- `(("python2-msgpack" ,python2-msgpack)
- ("python2-pythondialog" ,python2-pythondialog)
- ("python2-pyqt-4" ,python2-pyqt-4)
- ("python2-sip" ,python2-sip)
- ("python2-pysqlite" ,python2-pysqlite)
- ("python2-pyopenssl" ,python2-pyopenssl)))
- (native-inputs
- `(("openssl" ,openssl)))
- (build-system python-build-system)
- (arguments
- `(#:modules ((guix build python-build-system)
- (guix build utils))
- #:tests? #f ;no test target
- #:python ,python-2
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-unmatched-python-shebangs
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/bitmessagemain.py"
- (("#!/usr/bin/env python2.7")
- (string-append "#!" (which "python"))))
- (substitute* "src/bitmessagecli.py"
- (("#!/usr/bin/env python2.7.x")
- (string-append "#!" (which "python"))))
- #t))
- (add-after 'unpack 'fix-depends
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/depends.py"
- (("libcrypto.so")
- (string-append (assoc-ref inputs "openssl")
- "/lib/libcrypto.so")))
- #t))
- (add-after 'unpack 'fix-local-files-in-paths
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "src/proofofwork.py"
- (("bitmsghash.so")
- (string-append (assoc-ref outputs "out")
- "/lib/bitmsghash.so")))
- #t))
- (add-after 'unpack 'fix-pyelliptic
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/pyelliptic/openssl.py"
- (("libcrypto.so")
- (string-append (assoc-ref inputs "openssl")
- "/lib/libcrypto.so"))
- (("libssl.so")
- (string-append (assoc-ref inputs "openssl")
- "/lib/libssl.so")))
- #t))
- (add-after 'unpack 'noninteractive-build
- ;; This applies upstream commit 4c597d3f7cf9f83a763472aa165a1a4292019f20
- (lambda _
- (substitute* "setup.py"
- (("except NameError")
- "except EOFError, NameError"))
- #t))
- ;; XXX: python setup.py does not build and install bitmsghash,
- ;; without it PyBitmessage tries to compile it at first run
- ;; in the store, which due to obvious reasons fails. Do it
- ;; and place it in /lib.
- (add-after 'unpack 'build-and-install-bitmsghash
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion "src/bitmsghash"
- (system* "make")
- (install-file "bitmsghash.so"
- (string-append (assoc-ref outputs "out") "/lib")))
- #t)))))
- (license license:expat)
- (description
- "Distributed and trustless peer-to-peer communications protocol
-for sending encrypted messages to one person or many subscribers.")
- (synopsis "Distributed peer-to-peer communication")
- (home-page "https://bitmessage.org/")))
-
(define-public ytalk
(package
(name "ytalk")
@@ -2777,6 +2691,49 @@ as phones, embedded computers or microcontrollers.")
;; Dual licensed.
(license (list license:epl1.0 license:edl1.0))))
+(define-public movim-desktop
+ (let ((commit "83d583b83629dbd2ec448da9a1ffd81f6c1fb295")
+ (revision "3"))
+ (package
+ (name "movim-desktop")
+ (version
+ (git-version "0.14.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/movim/movim_desktop")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lsa3k3wx1d2lk0qs0k5jc5bmapnmpzwynprjf2wihh8c8y3iwlz"))))
+ (build-system qt-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* `("CMakeLists.txt" "movim.desktop")
+ (("/usr")
+ (assoc-ref outputs "out"))
+ (("\"build")
+ "\"../build"))
+ #t)))))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtwebchannel" ,qtwebchannel)))
+ (propagated-inputs
+ `(("qtwebengine" ,qtwebengine)))
+ (home-page "https://movim.eu/")
+ (synopsis "Desktop Application for Movim")
+ (description
+ "Movim-Desktop is a desktop application, relying on Qt, for the Movim
+social and chat platform.")
+ (license license:gpl3+))))
+
(define-public psi-plus
(package
(name "psi-plus")
@@ -2912,4 +2869,102 @@ as phones, embedded computers or microcontrollers.")
designed for experienced users.")
(license license:gpl2+)))
+(define-public python-zulip
+ (package
+ (name "python-zulip")
+ (version "0.7.1")
+ (source
+ (origin
+ ;; There is no source on Pypi.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zulip/python-zulip-api")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0da1ki1v252avy27j6d7snnc0gyq0xa9fypm3qdmxhw2w79d6q36"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'cd-to-zulip-dir
+ (lambda _
+ (chdir "zulip")
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (let ((test-zulip "../tools/test-zulip"))
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
+ (patch-shebang test-zulip)
+ (invoke test-zulip))
+ #t))))))
+ (propagated-inputs
+ `(("python-matrix-client" ,python-matrix-client)
+ ("python-pyopenssl" ,python-pyopenssl)
+ ("python-requests" ,python-requests)
+ ("python-six" ,python-six)))
+ (native-inputs
+ `(("python-cython" ,python-cython)
+ ("python-distro" ,python-distro)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/zulip/python-zulip-api")
+ (synopsis "Zulip's API Python bindings")
+ (description
+ "This package provides Python bindings to Zulip's API.")
+ (license license:asl2.0)))
+
+(define-public zulip-term
+ (package
+ (name "zulip-term")
+ (version "0.5.2")
+ (source
+ (origin
+ ;; Pypi package doesn't ship tests.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zulip/zulip-terminal")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xhhy3v4wck74a83avil0rnmsi2grrh03cww19n5mv80p2q1cjmf"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "setup.py"
+ (("\\=\\=1\\.7") ">=1.7") ; pytest-mock
+ (("\\=\\=2\\.5") ">=2.5") ; pytest-cov
+ (("4\\.5\\.2") "4.4.2")) ; lxml
+ #t))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Delete failing tests.
+ (delete-file "tests/cli/test_run.py")
+ (invoke "pytest"))
+ #t)))))
+ (inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-lxml" ,python-lxml)
+ ("python-mypy-extensions" ,python-mypy-extensions)
+ ("python-urwid" ,python-urwid)
+ ("python-urwid-readline" ,python-urwid-readline)
+ ("python-zulip" ,python-zulip)))
+ (native-inputs
+ `(("python-distro" ,python-distro)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-mock" ,python-pytest-mock)))
+ (home-page "https://github.com/zulip/zulip-terminal")
+ (synopsis "Zulip's official terminal client")
+ (description "This package contains Zulip's official terminal client.")
+ (license license:asl2.0)))
+
;;; messaging.scm ends here
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 46e1903704..22b02a561b 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -160,7 +160,7 @@ etc. via a Web interface. Features include:
(define-public zabbix-agentd
(package
(name "zabbix-agentd")
- (version "5.2.5")
+ (version "5.2.6")
(source
(origin
(method url-fetch)
@@ -168,7 +168,7 @@ etc. via a Web interface. Features include:
"https://cdn.zabbix.com/zabbix/sources/stable/"
(version-major+minor version) "/zabbix-" version ".tar.gz"))
(sha256
- (base32 "1iaby7rablakx91hajnkmjcc4zkvrq7xsvlhss3lw5drm12rf3ff"))))
+ (base32 "100n1rv7r4pqagxxifzpcza5bhrr2fklzx7gndxwiyq4597p1jvn"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index dba3e17558..ff67d9e9e5 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
@@ -208,7 +208,7 @@ a highly stable and efficient implementation.")
(define-public taglib
(package
(name "taglib")
- (version "1.12-beta-1")
+ (version "1.12")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -217,7 +217,7 @@ a highly stable and efficient implementation.")
(file-name (git-file-name name version))
(sha256
(base32
- "1mp6w2ikniw8w6d5wr0h20j0ijg8jw7s9dli5a8k9znpznvxpym4"))))
+ "0q7dkn5rh9v6b0scmcp2qmjv3iransafmpn6jvgid0yq75m2nqd2"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on.
@@ -372,7 +372,7 @@ This package contains the binary.")
(define-public mpg123
(package
(name "mpg123")
- (version "1.26.4")
+ (version "1.26.5")
(source
(origin
(method url-fetch)
@@ -382,7 +382,7 @@ This package contains the binary.")
"https://www.mpg123.org/download/mpg123-"
version ".tar.bz2")))
(sha256
- (base32 "0m34hjssgslcsns8lj1n7f32iyiw547qgba9j2r6d9pp1ma92688"))))
+ (base32 "01pgcqjbbi2r7nlg5118bkivl0gkv0hq0cw7v4vpxgimv7h9fajh"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--with-default-audio=pulse")))
(native-inputs
@@ -405,7 +405,8 @@ command-line tool as well as a C library, libmpg123.")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/mpg321/mpg321/"
- version "/mpg321-" version ".tar.gz"))
+ version "/mpg321_" version ".orig.tar.gz"))
+ (file-name (string-append "mpg321-" version ".tar.gz"))
(sha256
(base32
"0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5"))
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 2f32364ad8..7df0d82805 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -307,9 +307,6 @@ information about tracks being played to a scrobbler, such as Libre.FM.")
interface for the Music Player Daemon.")
(license license:lgpl3+)))
-(define-public python2-mpd2
- (package-with-python2 python-mpd2))
-
(define-public sonata
(package
(name "sonata")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 1e12bbe1a2..89a8a56965 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -34,6 +34,8 @@
;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2021 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -152,6 +154,7 @@
#:use-module (gnu packages video)
#:use-module (gnu packages vim) ;for 'xxd'
#:use-module (gnu packages web)
+ #:use-module (gnu packages webkit)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
@@ -447,7 +450,7 @@ playing your music.")
(define-public strawberry
(package
(name "strawberry")
- (version "0.8.5")
+ (version "0.9.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -456,7 +459,7 @@ playing your music.")
(file-name (git-file-name name version))
(sha256
(base32
- "0lfbbmhfzwlhnjhzfk5zn8h71cabx47pzfkcw2nylkbqkz83r57r"))
+ "0d9asg21j9ai23sb35cimws8bd8fsnpha777rgscraa7i09q0rx2"))
(modules '((guix build utils)
(ice-9 regex)))
(snippet
@@ -480,9 +483,6 @@ playing your music.")
(build-system cmake-build-system)
(arguments
`(#:test-target "run_strawberry_tests"
- #:configure-flags
- (list "-DUSE_SYSTEM_TAGLIB=TRUE"
- "-DBUILD_TESTS=TRUE")
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-program
@@ -1965,7 +1965,7 @@ users to select LV2 plugins and run them with jalv.")
(define-public synthv1
(package
(name "synthv1")
- (version "0.9.20")
+ (version "0.9.21")
(source (origin
(method url-fetch)
(uri
@@ -1973,7 +1973,7 @@ users to select LV2 plugins and run them with jalv.")
"/synthv1-" version ".tar.gz"))
(sha256
(base32
- "1g2i79gkl1j7i49djz6igkbvdmfwxhcg6kx97n63bcqcvvy03rqz"))))
+ "0wg4ywkqf307vln0y923p083xacb5ahr2ghzvb9gmqyszd7k2v15"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -1997,7 +1997,7 @@ oscillators and stereo effects.")
(define-public drumkv1
(package
(name "drumkv1")
- (version "0.9.20")
+ (version "0.9.21")
(source (origin
(method url-fetch)
(uri
@@ -2005,7 +2005,7 @@ oscillators and stereo effects.")
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
- "0y6njh1n0yai4g9dhg24hwc9khba44l4n5xizqcs6i4q7lyr9z48"))))
+ "1ym7kns7hfgxdwm2nzvpdm5vjxpkwb9dssjiic6rrpicv1p2v59m"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -2030,7 +2030,7 @@ effects.")
(define-public samplv1
(package
(name "samplv1")
- (version "0.9.20")
+ (version "0.9.21")
(source (origin
(method url-fetch)
(uri
@@ -2038,7 +2038,7 @@ effects.")
"/samplv1-" version ".tar.gz"))
(sha256
(base32
- "06nni00dgn8fvbyam1v44aq4yfns1vf7hw1mwmwzv2vxapdbpngn"))))
+ "1kz8hcpzhrkvxpah6irz5gbah4m7knjhi4rk5hs1kwiikn7p6vgk"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -2063,7 +2063,7 @@ effects.")
(define-public padthv1
(package
(name "padthv1")
- (version "0.9.20")
+ (version "0.9.21")
(source (origin
(method url-fetch)
(uri
@@ -2071,7 +2071,7 @@ effects.")
"/padthv1-" version ".tar.gz"))
(sha256
(base32
- "1x3qjkby29xd7y0dg22ms19c8h8drqf55m9nxz6jlc58sfha2ss0"))))
+ "0s28l8vp9b85s4bdm18qm57dh8dx8rx7659r05p44828g4053ipl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -2639,18 +2639,17 @@ browser.")
(define-public drumstick
(package
(name "drumstick")
- (version "2.0.0")
+ (version "2.1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/drumstick/"
version "/drumstick-" version ".tar.bz2"))
(sha256
(base32
- "088j0w3kr9i4lh78y0js0q8adlfzkr89xq2dxc8y3bafsgihax1x"))))
+ "06lz4kzpgg5lalcjb14pi35jxca5f4j6ckqf6mdxs1k42dfhjpjp"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
- #:configure-flags '("-DLIB_SUFFIX=")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-docbook
@@ -2673,7 +2672,7 @@ browser.")
("docbook-xsl" ,docbook-xsl)
("doxygen" ,doxygen)
("graphviz" ,graphviz))) ; for dot
- (home-page "http://drumstick.sourceforge.net/")
+ (home-page "https://drumstick.sourceforge.io/")
(synopsis "C++ MIDI library")
(description
"Drumstick is a set of MIDI libraries using C++/Qt5 idioms and style. It
@@ -2687,14 +2686,14 @@ backends, including ALSA, OSS, Network and FluidSynth.")
(define-public vmpk
(package
(name "vmpk")
- (version "0.8.0")
+ (version "0.8.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/vmpk/vmpk/"
version "/vmpk-" version ".tar.bz2"))
(sha256
(base32
- "0wn45c4sbvan7schq93zmsgg5fcf144mbbawxn5kq699vrbc3473"))))
+ "1kv256j13adk4ib7r464gsl4vjhih820bq37ddhqfyfd07wh53a2"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
@@ -3039,14 +3038,14 @@ from the command line.")
(define-public qtractor
(package
(name "qtractor")
- (version "0.9.19")
+ (version "0.9.21")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.sourceforge.net/qtractor/"
"qtractor-" version ".tar.gz"))
(sha256
(base32
- "0gdr1hvda56vmv4998z9xcqsp7da6lplj00f217x9g2i2snyvkzp"))))
+ "12hn17hqs3jndv6238wj8yhw07n99s0zachab4kfvhwa0qfflsbl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; no "check" target
@@ -3348,9 +3347,6 @@ APEv2 tags can be edited regardless of audio format. It can also manipulate Ogg
streams on an individual packet/page level.")
(license license:gpl2))) ; "later version" never mentioned
-(define-public python2-mutagen
- (package-with-python2 python-mutagen))
-
(define-public python-mediafile
(package
(name "python-mediafile")
@@ -4787,6 +4783,67 @@ list view, and a score editor. MusE aims to be a complete multitrack virtual
studio.")
(license license:gpl2+)))
+(define-public gsequencer
+ (package
+ (name "gsequencer")
+ (version "3.7.48")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gsequencer.git/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0pqaj09x3lzcj0zbbkqpyaky9i1w462bhhvg1akh73nzwvyy46zd"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'prepare-x-for-test
+ (lambda _
+ (system "Xvfb &")
+ (setenv "DISPLAY" ":0")
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("cunit" ,cunit)
+ ("gettext" ,gettext-minimal)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk-doc" ,gtk-doc)
+ ("libtool" ,libtool)
+ ("libxslt" ,libxslt)
+ ("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server-for-tests)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("dssi" ,dssi)
+ ("fftw" ,fftw)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("gstreamer" ,gstreamer)
+ ("gtk+" ,gtk+)
+ ("jack" ,jack-1)
+ ("ladspa" ,ladspa)
+ ("libinstpatch" ,libinstpatch)
+ ("libsamplerate" ,libsamplerate)
+ ("libsndfile" ,libsndfile)
+ ("libsoup" ,libsoup)
+ ("libuuid" ,util-linux "lib")
+ ("libxml2" ,libxml2)
+ ("lv2" ,lv2)
+ ("pulseaudio" ,pulseaudio)
+ ("webkitgtk" ,webkitgtk)))
+ (home-page "https://nongnu.org/gsequencer/")
+ (synopsis "Advanced Gtk+ Sequencer")
+ (description
+ "GSequencer allows you to play, capture and create music. There is a piano
+roll, automation and wave form editor. It has machines for playing drum samples,
+Soundfont2 sound containers and synthesizers. They usually can be connected to a
+MIDI input source (instrument). It has support for various audio backends like
+ALSA, Pulseaudio, JACK, OSSv4 and CoreAudio.")
+ (license license:gpl3+)))
+
(define-public dssi
(package
(name "dssi")
diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm
index f5e7188ff0..753e2d6e7e 100644
--- a/gnu/packages/nettle.scm
+++ b/gnu/packages/nettle.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -71,7 +72,7 @@ cryptographic toolkits for object-oriented languages or in applications
themselves.")
(license gpl2+)))
-(define-public nettle
+(define-public nettle-3.5
;; This version is not API-compatible with version 2. In particular, lsh
;; cannot use it yet. So keep it separate.
(package (inherit nettle-2)
@@ -89,3 +90,17 @@ themselves.")
;; Build "fat" binaries where the right implementation is chosen
;; at run time based on CPU features (starting from 3.1.)
`(cons "--enable-fat" ,flags))))))
+
+(define-public nettle-3.7
+ (package (inherit nettle-3.5)
+ (version "3.7.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/nettle/nettle-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0qpi1qp3bcvqdsaxy2pzg530db95x8qjahkynxgwvr6dy5760ald"))))))
+
+;;; Upgrading Nettle on master would cause 10000+ packages to be rebuilt.
+(define-public nettle nettle-3.5)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 3f6023c966..baaa9c5707 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -26,7 +26,7 @@
;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
@@ -302,7 +302,7 @@ Android, and ChromeOS.")
(native-inputs
`(("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(inputs
`(("gstreamer" ,gstreamer)
@@ -1895,7 +1895,7 @@ loop.")
(define-public perl-data-validate-ip
(package
(name "perl-data-validate-ip")
- (version "0.27")
+ (version "0.30")
(source
(origin
(method url-fetch)
@@ -1903,7 +1903,7 @@ loop.")
"mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-"
version ".tar.gz"))
(sha256
- (base32 "1mmppyzsh1w2z2h86kvzqxy56wxgs62a3kf8nvcnz76bblir5ap1"))))
+ (base32 "074adrlvkiahj1fdc9nvb95dpfyjzm2jzhi90m8xaw4bw5ipcbzy"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-requires" ,perl-test-requires)))
@@ -1922,7 +1922,7 @@ private (reserved).")
(define-public perl-net-dns
(package
(name "perl-net-dns")
- (version "1.28")
+ (version "1.30")
(source
(origin
(method url-fetch)
@@ -1933,7 +1933,7 @@ private (reserved).")
(string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
version ".tar.gz")))
(sha256
- (base32 "0kh2qbhxv005pqb35mdk2bld7cg7xnxl12qvdwv30sgd91aqica7"))))
+ (base32 "1nm560xjg173wvv736ai3ib1gwssyy41gi0yv4j5fqamfav70ph5"))))
(build-system perl-build-system)
(inputs
`(("perl-digest-hmac" ,perl-digest-hmac)))
@@ -2098,22 +2098,19 @@ It is intended primarily for use in testing.")
(define-public perl-net-cidr-lite
(package
(name "perl-net-cidr-lite")
- (version "0.21")
+ (version "0.22")
(source
(origin
(method url-fetch)
(uri (string-append
- "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-"
+ "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-"
version
".tar.gz"))
(sha256
- (base32
- "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"))))
+ (base32 "05w57db2lx4djb4vixzdr6qgrzyzkk047nl812g7nq8s6k5xh5s3"))))
(build-system perl-build-system)
- (home-page
- "https://metacpan.org/release/Net-CIDR-Lite")
- (synopsis
- "Perl extension for merging IPv4 or IPv6 CIDR addresses")
+ (home-page "https://metacpan.org/release/Net-CIDR-Lite")
+ (synopsis "Perl extension for merging IPv4 or IPv6 CIDR addresses")
(description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
(license license:gpl1+)))
@@ -2497,7 +2494,7 @@ networks.")
(define-public speedtest-cli
(package
(name "speedtest-cli")
- (version "2.1.2")
+ (version "2.1.3")
(source
(origin
(method git-fetch)
@@ -2506,7 +2503,7 @@ networks.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1456yly6iym2c9bl6pi4sz8xbw34bm2dxm1vzpydsd6jazwpmy26"))))
+ (base32 "10fazl4kwf41mk7pnwpfms16n0ii0kg9pf8r3mz9xwnl9y04mv9x"))))
(build-system python-build-system)
(home-page "https://github.com/sivel/speedtest-cli")
(synopsis "Internet bandwidth tester")
@@ -3027,7 +3024,8 @@ eight bytes) tools
;; Either BSD-3 or GPL-2 can be used.
(license (list license:bsd-3 license:gpl2))))
-(define-public asio
+;;; This is an old version required by rested.
+(define-public asio-1.12
(package
(name "asio")
(version "1.12.2")
@@ -3054,6 +3052,18 @@ low-level I/O programming that provides developers with a consistent
asynchronous model using a modern C++ approach.")
(license license:boost1.0)))
+(define-public asio
+ (package
+ (inherit asio-1.12)
+ (version "1.18.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/asio/asio/"
+ version " (Stable)/asio-" version ".tar.bz2"))
+ (sha256
+ (base32 "04wi69d72l1p5c7d63z1dz06zn8pdqsbgx1if98dszs9ymfqgyaa"))))))
+
(define-public shadowsocks
;; There are some security fixes after the last release.
(let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
@@ -3319,62 +3329,61 @@ never see any machines other than the one Dante is running on.")
(license (license:non-copyleft "file://LICENSE"))))
(define-public restbed
- (let ((commit "6eb385fa9051203f28bf96cc1844bbb5a9a6481f"))
- (package
- (name "restbed")
- (version (git-version "4.6" "1" commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Corvusoft/restbed/")
- (commit commit)))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0k60i5drklqqrb4khb25fzkgz9y0sncxf1sp6lh2bm1m0gh0661n"))))
- (build-system cmake-build-system)
- (inputs
- `(("asio" ,asio)
- ("catch" ,catch-framework)
- ("openssl" ,openssl)))
- (arguments
- `(#:tests? #f
- #:configure-flags
- '("-DBUILD_TESTS=NO"
- "-DBUILD_EXAMPLES=NO"
- "-DBUILD_SSL=NO"
- "-DBUILD_SHARED=NO")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'apply-patches-and-fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((asio (assoc-ref inputs "asio"))
- (catch (assoc-ref inputs "catch"))
- (openssl (assoc-ref inputs "openssl")))
- (substitute* "cmake/Findasio.cmake"
- (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
- (string-append begin " \"" asio "/include\" )")))
- (substitute* "cmake/Findcatch.cmake"
- (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
- (string-append begin " \"" catch "/include\" )")))
- (substitute* "cmake/Findopenssl.cmake"
- (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
- (string-append begin " \"" openssl "/lib\" )"))
- (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
- (string-append begin " \"" openssl "/lib\" )"))
- (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
- (string-append begin " \"" openssl "/include\" )")))))))))
- (synopsis "Asynchronous RESTful functionality to C++11 applications")
- (description "Restbed is a comprehensive and consistent programming
+ (package
+ (name "restbed")
+ (version "4.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Corvusoft/restbed/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "055qicb773a599dsqbcz5xf0xj1wpk33mdrkyi0fsmyjmn8d2p9d"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("asio" ,asio-1.12)
+ ("catch" ,catch-framework)
+ ("openssl" ,openssl)))
+ (arguments
+ `(#:tests? #f
+ #:configure-flags
+ '("-DBUILD_TESTS=NO"
+ "-DBUILD_EXAMPLES=NO"
+ "-DBUILD_SSL=NO"
+ "-DBUILD_SHARED=NO")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'apply-patches-and-fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((asio (assoc-ref inputs "asio"))
+ (catch (assoc-ref inputs "catch"))
+ (openssl (assoc-ref inputs "openssl")))
+ (substitute* "cmake/Findasio.cmake"
+ (("(find_path\\( asio_INCLUDE asio\\.hpp HINTS ).*$" all begin)
+ (string-append begin " \"" asio "/include\" )")))
+ (substitute* "cmake/Findcatch.cmake"
+ (("(find_path\\( catch_INCLUDE catch\\.hpp HINTS ).*$" all begin)
+ (string-append begin " \"" catch "/include\" )")))
+ (substitute* "cmake/Findopenssl.cmake"
+ (("(find_library\\( ssl_LIBRARY ssl ssleay32 HINTS ).*$" all begin)
+ (string-append begin " \"" openssl "/lib\" )"))
+ (("(find_library\\( crypto_LIBRARY crypto libeay32 HINTS ).*$" all begin)
+ (string-append begin " \"" openssl "/lib\" )"))
+ (("(find_path\\( ssl_INCLUDE openssl/ssl\\.h HINTS ).*$" all begin)
+ (string-append begin " \"" openssl "/include\" )")))))))))
+ (synopsis "Asynchronous RESTful functionality to C++11 applications")
+ (description "Restbed is a comprehensive and consistent programming
model for building applications that require seamless and secure
communication over HTTP.")
- (home-page "https://github.com/Corvusoft/restbed")
- (license license:agpl3+))))
+ (home-page "https://github.com/Corvusoft/restbed")
+ (license license:agpl3+)))
(define-public restinio
(package
(name "restinio")
- (version "0.6.1.1")
+ (version "0.6.13")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3383,7 +3392,7 @@ communication over HTTP.")
(file-name (git-file-name name version))
(sha256
(base32
- "141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5"))))
+ "0gb0yc88hdzwm08zdiviay6s08q427za33kfbygib7bdzp2wr2dm"))))
(build-system cmake-build-system)
(inputs ; TODO: Need to force-keep references on some inputs, e.g. boost.
`(("zlib" ,zlib)
@@ -3416,40 +3425,39 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(define-public opendht
(package
(name "opendht")
- (version "2.1.4")
+ (version "2.2.0rc4") ;jami requires >= 2.2.0
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/savoirfairelinux/opendht")
(commit version)))
(file-name (git-file-name name version))
- (patches (search-patches "opendht-fix-jami.patch"))
(sha256
(base32
- "1ax26ri1ifb6s8ppd28jmanka9yf8mw3np65q2h4djhhik0phhal"))))
+ "1wc0f6cnvnlmhxnx64nxqgsx93k4g7ljdaqjl40ml74jg3nqrzcl"))))
;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
(build-system cmake-build-system)
(inputs
`(("argon2" ,argon2)
- ("nettle" ,nettle)
+ ("nettle" ,nettle-3.7)
("readline" ,readline)
("jsoncpp" ,jsoncpp)
("openssl" ,openssl) ;required for the DHT proxy
("fmt" ,fmt)))
(propagated-inputs
`(("gnutls" ,gnutls) ;included in opendht/crypto.h
- ("msgpack" ,msgpack))) ;included in several installed headers
+ ("msgpack" ,msgpack) ;included in several installed headers
+ ("restinio" ,restinio))) ;included in opendht/http.h
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)
- ("restinio" ,restinio) ;headers only library
("libtool" ,libtool)
("cppunit" ,cppunit)))
(arguments
`(#:tests? #f ; Tests require network connection.
#:configure-flags
- '(;; "-DOPENDHT_TESTS=on"
+ '(;;"-DOPENDHT_TESTS=on"
"-DOPENDHT_TOOLS=off"
"-DOPENDHT_PYTHON=off"
"-DOPENDHT_PROXY_SERVER=on"
@@ -3826,14 +3834,14 @@ thousands of connections is clearly realistic with today's hardware.")
(define-public lldpd
(package
(name "lldpd")
- (version "1.0.8")
+ (version "1.0.9")
(source
(origin
(method url-fetch)
(uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-"
version ".tar.gz"))
(sha256
- (base32 "1vrxr8lgkw7q6ixaaili6ac7i0j0326194s498n2dxihdvkh1llq"))
+ (base32 "1xa9953hl2c94zi4ngaxyi2yw3dax1ab16118wriwawm4lqynr3b"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3943,7 +3951,7 @@ network.")
(define-public yggdrasil
(package
(name "yggdrasil")
- (version "0.3.15")
+ (version "0.3.16")
(source
(origin
(method git-fetch)
@@ -3954,8 +3962,7 @@ network.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32
- "0gk7gy8yq5nrnblv4imxzzm2hac4ri0hlw19ajfbc1zll5kj32gf"))
+ (base32 "0vyd7a333hwn6j1lv1g9sicw74a4qk982bsi3cfdhjlv6hsjwmil"))
(patches (search-patches "yggdrasil-extra-config.patch"))))
(build-system go-build-system)
(arguments
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index b1d6d4ce59..f401380310 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -261,10 +262,39 @@ function with browser support.")
"06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p"))))
(build-system node-build-system)
(arguments
- `(#:tests? #f)) ;; FIXME: Tests depend on node-tap
+ '(#:tests? #f ; FIXME: Tests depend on node-tap
+ #:phases
+ (modify-phases %standard-phases
+ ;; The only dependency to check for is tap, which we don't have.
+ (delete 'configure))))
(home-page "https://github.com/npm/node-semver")
(synopsis "Parses semantic versions strings")
(description
"@code{node-semver} is a JavaScript implementation of the
@uref{https://semver.org/, SemVer.org} specification.")
(license license:isc)))
+
+(define-public node-wrappy
+ (package
+ (name "node-wrappy")
+ (version "1.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/npm/wrappy")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ymlc61cja6v5438vwb04gq8wg2b784lj39zf0g4i36fvgcw9783"))))
+ (build-system node-build-system)
+ (arguments
+ '(#:tests? #f ; FIXME: Tests depend on node-tap
+ #:phases
+ (modify-phases %standard-phases
+ ;; The only dependency to check for is tap, which we don't have.
+ (delete 'configure))))
+ (home-page "https://github.com/npm/wrappy")
+ (synopsis "Callback wrapping utility")
+ (description "@code{wrappy} is a utility for Node.js to wrap callbacks.")
+ (license license:isc)))
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index a0df3d2cad..4e80dd4d4e 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -26,13 +26,15 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages node)
- #:use-module ((guix licenses) #:select (expat))
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix packages)
#:use-module (guix derivations)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system node)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages base)
@@ -41,6 +43,7 @@
#:use-module (gnu packages icu4c)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages node-xyz)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -207,10 +210,511 @@ event-driven, non-blocking I/O model that makes it lightweight and efficient,
perfect for data-intensive real-time applications that run across distributed
devices.")
(home-page "https://nodejs.org/")
- (license expat)
+ (license license:expat)
(properties '((max-silent-time . 7200) ;2h, needed on ARM
(timeout . 21600))))) ;6h
+;; This should be the latest version of node that still builds without
+;; depending on llhttp.
+(define-public node-bootstrap
+ (hidden-package node))
+
+;; Duplicate of node-semver
+(define-public node-semver-bootstrap
+ (package
+ (name "node-semver")
+ (version "7.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/npm/node-semver")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p"))))
+ (build-system node-build-system)
+ (arguments
+ `(#:node ,node-bootstrap
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/npm/node-semver")
+ (properties '((hidden? . #t)))
+ (synopsis "Parses semantic versions strings")
+ (description
+ "@code{node-semver} is a JavaScript implementation of the
+@uref{https://semver.org/, SemVer.org} specification.")
+ (license license:isc)))
+
+(define-public node-ms-bootstrap
+ (package
+ (name "node-ms")
+ (version "2.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vercel/ms.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1pjxzbi4j8pinlsc7yxvfrh0b47kb2dc4lfc2rjq4wx5bdwl33fj"))))
+ (build-system node-build-system)
+ (arguments
+ `(#:node ,node-bootstrap
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/zeit/ms#readme")
+ (properties '((hidden? . #t)))
+ (synopsis "Tiny millisecond conversion utility")
+ (description "Use this package to easily convert various time
+formats to milliseconds.")
+ (license license:expat)))
+
+(define-public node-binary-search-bootstrap
+ (package
+ (name "node-binary-search")
+ (version "1.3.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/darkskyapp/binary-search.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xr2msdc143cd3xwgq7n3rhzy7j8wrnaidxl0r6l6b6g3mpbpjig"))))
+ (build-system node-build-system)
+ (arguments
+ `(#:node ,node-bootstrap
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/darkskyapp/binary-search#readme")
+ (properties '((hidden? . #t)))
+ (synopsis "Tiny binary search function with comparators")
+ (description "This package is a binary search function for Node.js.")
+ (license license:cc0)))
+
+(define-public node-debug-bootstrap
+ (package
+ (name "node-debug")
+ (version "4.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/visionmedia/debug.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08g52r1d4yqcsfdfb7n5if33d4cghaq75gx5n9hj6m6fd8jfp2pi"))))
+ (build-system node-build-system)
+ (arguments
+ `(#:node ,node-bootstrap
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs `(("node-ms" ,node-ms-bootstrap)))
+ (home-page "https://github.com/visionmedia/debug#readme")
+ (properties '((hidden? . #t)))
+ (synopsis "Small debugging utility")
+ (description "This package contains a tiny JavaScript debugging
+utility modelled after Node.js core's debugging technique. It works in
+Node.js and web browsers.")
+ (license license:expat)))
+
+(define-public node-llparse-builder-bootstrap
+ (package
+ (name "node-llparse-builder")
+ (version "1.5.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/indutny/llparse-builder.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0r82iiwqsb73k2fxw7842rjjiixllxpyc6yl9cq4ma6ybkf6xmzm"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; FIXME: Unneeded runtime dependency.
+ ;; https://github.com/indutny/llparse-builder/pull/2
+ (substitute* "package.json"
+ (("\"@types/debug.*,") ""))
+ ;; Fix imports for esbuild.
+ ;; https://github.com/evanw/esbuild/issues/477
+ (substitute* '("src/node/invoke.ts"
+ "src/node/base.ts"
+ "src/node/consume.ts"
+ "src/node/match.ts"
+ "src/node/error.ts"
+ "src/node/pause.ts"
+ "src/edge.ts"
+ "src/utils.ts"
+ "src/loop-checker/index.ts"
+ "src/loop-checker/lattice.ts"
+ "src/code/field.ts"
+ "src/span-allocator.ts")
+ (("\\* as assert") "assert")
+ (("\\* as debugAPI") "debugAPI"))
+ #t))))
+ (build-system node-build-system)
+ (arguments
+ `(#:node ,node-bootstrap
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((esbuild (string-append (assoc-ref inputs "esbuild")
+ "/bin/esbuild")))
+ (invoke esbuild
+ "--platform=node"
+ "--outfile=lib/builder.js"
+ "--bundle"
+ "src/builder.ts")))))))
+ (inputs
+ `(("node-binary-search" ,node-binary-search-bootstrap)
+ ("node-debug" ,node-debug-bootstrap)))
+ (native-inputs
+ `(("esbuild" ,esbuild)))
+ (home-page "https://github.com/indutny/llparse-builder#readme")
+ (properties '((hidden? . #t)))
+ (synopsis "Graph builder for consumption by llparse")
+ (description "This package builds graphs for consumption by llparse.")
+ (license license:expat)))
+
+(define-public node-llparse-frontend-bootstrap
+ (package
+ (name "node-llparse-frontend")
+ (version "3.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/indutny/llparse-frontend.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rm9g4ifyip30svm5cgnf0gx7d45jgh4mpf2hkd092xhngmfvicc"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Fix imports for esbuild.
+ ;; https://github.com/evanw/esbuild/issues/477
+ (substitute* '("src/frontend.ts"
+ "src/code/field-value.ts"
+ "src/container/index.ts"
+ "src/container/wrap.ts"
+ "src/node/sequence.ts"
+ "src/node/single.ts"
+ "src/node/table-lookup.ts"
+ "src/trie/index.ts")
+ (("\\* as assert") "assert")
+ (("\\* as debugAPI") "debugAPI"))
+ #t))))
+ (build-system node-build-system)
+ (arguments
+ `(#:node ,node-bootstrap
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((esbuild (string-append (assoc-ref inputs "esbuild")
+ "/bin/esbuild")))
+ (invoke esbuild
+ "--platform=node"
+ "--outfile=lib/frontend.js"
+ "--bundle"
+ "src/frontend.ts")))))))
+ (inputs
+ `(("node-debug" ,node-debug-bootstrap)
+ ("node-llparse-builder" ,node-llparse-builder-bootstrap)))
+ (native-inputs
+ `(("esbuild" ,esbuild)))
+ (home-page "https://github.com/indutny/llparse-frontend#readme")
+ (properties '((hidden? . #t)))
+ (synopsis "Frontend for the llparse compiler")
+ (description "This package is a frontend for the llparse compiler.")
+ (license license:expat)))
+
+(define-public node-llparse-bootstrap
+ (package
+ (name "node-llparse")
+ (version "7.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/indutny/llparse.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "10da273iy2if88hp79cwms6c8qpsl1fkgzll6gmqyx5yxv5mkyp6"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Fix imports for esbuild.
+ ;; https://github.com/evanw/esbuild/issues/477
+ (substitute* '("src/compiler/index.ts"
+ "src/implementation/c/node/base.ts"
+ "src/implementation/c/node/table-lookup.ts"
+ "src/implementation/c/compilation.ts"
+ "src/implementation/c/helpers/match-sequence.ts"
+ "src/implementation/c/code/mul-add.ts")
+ (("\\* as assert") "assert")
+ (("\\* as debugAPI") "debugAPI"))
+ #t))))
+ (build-system node-build-system)
+ (arguments
+ `(#:node ,node-bootstrap
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((esbuild (string-append (assoc-ref inputs "esbuild")
+ "/bin/esbuild")))
+ (invoke esbuild
+ "--platform=node"
+ "--outfile=lib/api.js"
+ "--bundle"
+ "src/api.ts")))))))
+ (inputs
+ `(("node-debug" ,node-debug-bootstrap)
+ ("node-llparse-frontend" ,node-llparse-frontend-bootstrap)))
+ (native-inputs
+ `(("esbuild" ,esbuild)))
+ (home-page "https://github.com/nodejs/llparse#readme")
+ (properties '((hidden? . #t)))
+ (synopsis "Compile incremental parsers to C code")
+ (description "This package offers an API for compiling an incremental
+parser definition into a C output.")
+ (license license:expat)))
+
+(define-public llhttp-bootstrap
+ (package
+ (name "llhttp")
+ (version "2.1.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nodejs/llhttp.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0pqj7kyyzr1zs4h9yzn5rdxnxspm3wqgsv00765dd42fszlmrmk8"))
+ (patches (search-patches "llhttp-bootstrap-CVE-2020-8287.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Fix imports for esbuild.
+ ;; https://github.com/evanw/esbuild/issues/477
+ (substitute* "src/llhttp/http.ts"
+ (("\\* as assert") "assert"))
+ (substitute* "Makefile"
+ (("npx ts-node bin/generate.ts")
+ "node bin/generate.js"))
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:make-flags (list (string-append "CLANG=" ,(cc-for-target))
+ (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+ "PREFIX=")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((esbuild (string-append (assoc-ref inputs "esbuild")
+ "/bin/esbuild")))
+ (invoke esbuild
+ "--platform=node"
+ "--outfile=bin/generate.js"
+ "--bundle" "bin/generate.ts"))))
+ (add-before 'install 'create-install-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (dir)
+ (mkdir-p (string-append out dir)))
+ (list "/lib" "/include" "/src"))
+ #t)))
+ (add-after 'install 'install-src
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (src-dir (string-append out "/src")))
+ (install-file "build/c/llhttp.c" src-dir)
+ (install-file "src/native/api.c" src-dir)
+ (install-file "src/native/http.c" src-dir)
+ #t))))))
+ (native-inputs
+ `(("esbuild" ,esbuild)
+ ("node" ,node-bootstrap)
+ ("node-semver" ,node-semver-bootstrap)
+ ("node-llparse-bootstrap" ,node-llparse-bootstrap)))
+ (home-page "https://github.com/nodejs/llhttp")
+ (properties '((hidden? . #t)))
+ (synopsis "Parser for HTTP messages")
+ (description "This is a rewrite of
+@url{https://github.com/nodejs/http-parser, http-parser} using
+@url{https://github.com/nodejs/llparse, llparse} to generate the C
+source files.")
+ (license license:expat)))
+
+(define-public node-lts
+ (package
+ (inherit node)
+ (version "14.16.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://nodejs.org/dist/v" version
+ "/node-v" version ".tar.xz"))
+ (sha256
+ (base32
+ "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ ;; Remove bundled software, where possible
+ (for-each delete-file-recursively
+ '("deps/cares"
+ "deps/icu-small"
+ "deps/nghttp2"
+ "deps/openssl"
+ "deps/zlib"))
+ (substitute* "Makefile"
+ ;; Remove references to bundled software.
+ (("deps/uv/uv.gyp") "")
+ (("deps/zlib/zlib.gyp") ""))
+ #t))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments node)
+ ((#:configure-flags configure-flags)
+ ''("--shared-cares"
+ "--shared-libuv"
+ "--shared-nghttp2"
+ "--shared-openssl"
+ "--shared-zlib"
+ "--shared-brotli"
+ "--with-intl=system-icu"))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'configure
+ ;; Node's configure script is actually a python script, so we can't
+ ;; run it with bash.
+ (lambda* (#:key outputs (configure-flags '()) inputs
+ #:allow-other-keys)
+ (let* ((prefix (assoc-ref outputs "out"))
+ (flags (cons (string-append "--prefix=" prefix)
+ configure-flags)))
+ (format #t "build directory: ~s~%" (getcwd))
+ (format #t "configure flags: ~s~%" flags)
+ ;; Node's configure script expects the CC environment variable to
+ ;; be set.
+ (setenv "CC" ,(cc-for-target))
+ (apply invoke
+ (string-append (assoc-ref inputs "python")
+ "/bin/python3")
+ "configure" flags))))
+ (replace 'patch-files
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix hardcoded /bin/sh references.
+ (substitute* '("lib/child_process.js"
+ "lib/internal/v8_prof_polyfill.js"
+ "test/parallel/test-child-process-spawnsync-shell.js"
+ "test/parallel/test-fs-write-sigxfsz.js"
+ "test/parallel/test-stdio-closed.js"
+ "test/sequential/test-child-process-emfile.js")
+ (("'/bin/sh'")
+ (string-append "'" (which "sh") "'")))
+
+ ;; Fix hardcoded /usr/bin/env references.
+ (substitute* '("test/parallel/test-child-process-default-options.js"
+ "test/parallel/test-child-process-env.js"
+ "test/parallel/test-child-process-exec-env.js")
+ (("'/usr/bin/env'")
+ (string-append "'" (which "env") "'")))
+
+ ;; FIXME: These tests fail in the build container, but they don't
+ ;; seem to be indicative of real problems in practice.
+ (for-each delete-file
+ '("test/parallel/test-cluster-master-error.js"
+ "test/parallel/test-cluster-master-kill.js"))
+
+ ;; These require a DNS resolver.
+ (for-each delete-file
+ '("test/parallel/test-dns.js"
+ "test/parallel/test-dns-lookupService-promises.js"))
+
+ ;; FIXME: This test fails randomly:
+ ;; https://github.com/nodejs/node/issues/31213
+ (delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
+
+ ;; FIXME: These tests fail on armhf-linux:
+ ;; https://github.com/nodejs/node/issues/31970
+ ,@(if (target-arm32?)
+ '((for-each delete-file
+ '("test/parallel/test-zlib.js"
+ "test/parallel/test-zlib-brotli.js"
+ "test/parallel/test-zlib-brotli-flush.js"
+ "test/parallel/test-zlib-brotli-from-brotli.js"
+ "test/parallel/test-zlib-brotli-from-string.js"
+ "test/parallel/test-zlib-convenience-methods.js"
+ "test/parallel/test-zlib-random-byte-pipes.js"
+ "test/parallel/test-zlib-write-after-flush.js")))
+ '())
+
+ ;; These tests have an expiry date: they depend on the validity of
+ ;; TLS certificates that are bundled with the source. We want this
+ ;; package to be reproducible forever, so remove those.
+ ;; TODO: Regenerate certs instead.
+ (for-each delete-file
+ '("test/parallel/test-tls-passphrase.js"
+ "test/parallel/test-tls-server-verify.js"))
+
+ ;; Replace pre-generated llhttp sources
+ (let ((llhttp (assoc-ref inputs "llhttp")))
+ (copy-file (string-append llhttp "/src/llhttp.c")
+ "deps/llhttp/src/llhttp.c")
+ (copy-file (string-append llhttp "/src/api.c")
+ "deps/llhttp/src/api.c")
+ (copy-file (string-append llhttp "/src/http.c")
+ "deps/llhttp/src/http.c")
+ (copy-file (string-append llhttp "/include/llhttp.h")
+ "deps/llhttp/include/llhttp.h"))
+ #t))))))
+ (inputs
+ `(("c-ares" ,c-ares)
+ ("icu4c" ,icu4c-67)
+ ("libuv" ,libuv-for-node)
+ ("llhttp" ,llhttp-bootstrap)
+ ("google-brotli" ,google-brotli)
+ ("nghttp2" ,nghttp2 "lib")
+ ("openssl" ,openssl)
+ ("zlib" ,zlib)))
+ (native-inputs
+ (alist-replace "python" (list python-3)
+ (package-native-inputs node)))))
+
(define-public libnode
(package/inherit node
(name "libnode")
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 086f3b048a..44ca0c67e2 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -19,6 +19,7 @@
;;; Copyright © 2020 divoplade <d@divoplade.fr>
;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -158,7 +159,7 @@
(properties
`((max-silent-time . 14400))) ; 4 hours, expected even on x86_64
(home-page "https://github.com/Ekdohibs/camlboot")
- (synopsis "OCaml souce bootstrap")
+ (synopsis "OCaml source bootstrap")
(description "OCaml is written in OCaml. Its sources contain a pre-compiled
bytecode version of @command{ocamlc} and @command{ocamllex} that are used to
build the next version of the compiler. Camlboot implements a bootstrap for
@@ -466,6 +467,71 @@ depend: $(STDLIB_MLIS) $(STDLIB_DEPS)"))
for building OCaml library and programs.")
(license license:lgpl2.1+)))
+(define-public camlidl
+ (package
+ (name "camlidl")
+ (version "1.09")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xavierleroy/camlidl")
+ (commit "camlidl109")))
+ (sha256
+ (base32 "0zrkaq7fk23b2b9vg6jwdjx7l0hdqp4synbbrw1zcg8gjf6n3c80"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;; No test suite
+ #:make-flags
+ (list
+ (string-append
+ "BINDIR=" (assoc-ref %outputs "out") "/bin")
+ (string-append
+ "OCAMLLIB=" (assoc-ref %outputs "out") "/lib/ocaml/site-lib/camlidl"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (copy-file "config/Makefile.unix" "config/Makefile")
+ ;; Note: do not pass '-jN' as this appears to not be
+ ;; parallel-safe (race condition related to libcamlidl.a).
+ (invoke "make" "all")
+ #t))
+ (add-before 'install 'create-target-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (string-append (assoc-ref outputs "out"))))
+ (mkdir-p
+ (string-append out "/bin"))
+ (mkdir-p
+ (string-append out "/lib/ocaml/site-lib/camlidl/stublibs"))
+ (mkdir-p
+ (string-append out "/lib/ocaml/site-lib/camlidl/caml")))
+ #t))
+ (add-after 'install 'install-meta
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (with-output-to-file
+ (string-append out "/lib/ocaml/site-lib/camlidl/META")
+ (lambda _
+ (display
+ (string-append
+ "description = \"Stub code generator for OCaml/C interface\"
+version = \"" ,version "\"
+directory = \"^\"
+archive(byte) = \"com.cma\"
+archive(native) = \"com.cmxa\"")))))
+ #t)))))
+ (native-inputs
+ `(("ocaml" ,ocaml)))
+ (home-page "https://github.com/xavierleroy/camlidl")
+ (synopsis "Stub code generator for OCaml/C interface")
+ (description
+ "Camlidl is a stub code generator for Objective Caml. It generates stub
+code for interfacing Caml with C from an IDL description of the C functions.")
+ (license license:lgpl2.1)))
+
(define-public ocaml-extlib
(package
(name "ocaml-extlib")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index f45c2f65e3..6df46aa35f 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -132,8 +132,8 @@
;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this.
(let ((version "1.2.0")
- (commit "ec7fb669945bfb47c5e1fdf7de3a5d07f7002ccf")
- (revision 17))
+ (commit "2d73086262e1fb33cd0f0f16f74a495fe06b38aa")
+ (revision 20))
(package
(name "guix")
@@ -149,7 +149,7 @@
(commit commit)))
(sha256
(base32
- "1v9pwsqx8n4l6f7aj9vxv6m7vb4lyw8j5qg6mxf5zksia0qlcv2z"))
+ "070frsjcbrdqh68rhrck6w3cprbq1hjpd24z44qd017zaicix1f0"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -212,7 +212,7 @@ $(prefix)/etc/init.d\n")))
(substitute* "nix/local.mk"
(("^openrcservicedir = .*$")
(string-append "openrcservicedir = \
-$(prefix)/etc/init.d\n")))
+$(prefix)/etc/openrc\n")))
(invoke "sh" "bootstrap")))
(add-before 'build 'use-host-compressors
@@ -705,7 +705,7 @@ features of Stow with some extensions.")
(define-public rpm
(package
(name "rpm")
- (version "4.16.1.2")
+ (version "4.16.1.3")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.rpm.org/releases/rpm-"
@@ -713,7 +713,7 @@ features of Stow with some extensions.")
version ".tar.bz2"))
(sha256
(base32
- "1k6ank2aad7r503w12m6m494mxr6iccj52wqhwbc94pwxsf34mw3"))))
+ "07g2g0adgjm29wqy94iqhpp5dk0hacfw1yf7kzycrrxnfbwwfgai"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-external-db" ;use the system's bdb
@@ -1049,8 +1049,8 @@ environments.")
(license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
(define-public guix-build-coordinator
- (let ((commit "1f79fc38a17ceda30f378efd4e7f80f252c99b4d")
- (revision "20"))
+ (let ((commit "6fb5eafc33efa109b220efe71594cfcdb2efe133")
+ (revision "24"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@@ -1061,7 +1061,7 @@ environments.")
(commit commit)))
(sha256
(base32
- "0d5zr5mv07pi195vva2fhclfgyzrgbk9vlnwrmy7z1jcw2p1d2zp"))
+ "1lf7jry18kwglvyakfkmi8bif8ppsdinl0xjgmkgkp4mvmymh2gj"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -1088,14 +1088,18 @@ environments.")
(for-each
(lambda (file)
(simple-format (current-error-port) "wrapping: ~A\n" file)
- (let ((guile-inputs `("guile-json"
- "guile-gcrypt"
- "guix"
- "guile-prometheus"
- "guile-lib"
- "guile-lzlib"
- "guile-zlib"
- "gnutls")))
+ (let ((guile-inputs (list
+ "guile-json"
+ "guile-gcrypt"
+ "guix"
+ "guile-prometheus"
+ "guile-lib"
+ "guile-lzlib"
+ "guile-zlib"
+ "gnutls"
+ ,@(if (hurd-target?)
+ '()
+ '("guile-fibers")))))
(wrap-program file
`("PATH" ":" prefix
(,bin
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 8816844368..05964cd038 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2016, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
@@ -57,14 +57,14 @@
(define-public parallel
(package
(name "parallel")
- (version "20210222")
+ (version "20210322")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
- (base32 "0az73cpl04k3j9hwyxgych5cr95ls8qrsmy6zni4xxv2xc5b0saf"))))
+ (base32 "152np0jg4n94sbl2p2fzxjfnssiyp5sg7r5wx6s8p893b921pxwq"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 0d86a3d69e..d7942a0f8b 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -179,37 +179,6 @@ algorithms AES or Twofish.")
;; the combined work falls under the GPLv3.
(license license:gpl3)))
-(define-public keepassx
- (package
- (name "keepassx")
- (version "2.0.3")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://www.keepassx.org/releases/" version
- "/keepassx-" version ".tar.gz"))
- (sha256
- (base32
- "1ia7cqx9ias38mnffsl7da7g1f66bcbjsi23k49sln0c6spb9zr3"))))
- (build-system cmake-build-system)
- (inputs
- `(("libgcrypt" ,libgcrypt)
- ("libxi" ,libxi)
- ("libxtst" ,libxtst)
- ("qt" ,qt-4)))
- (native-inputs
- `(("zlib" ,zlib)))
- (home-page "https://www.keepassx.org")
- (synopsis "Password manager")
- (description "KeePassX is a password manager or safe which helps you to
-manage your passwords in a secure way. You can put all your passwords in one
-database, which is locked with one master key or a key-file which can be stored
-on an external storage device. The databases are encrypted using the
-algorithms AES or Twofish.")
- ;; Non functional parts use various licences.
- (license license:gpl3)
- (properties `((superseded . ,keepassxc)))))
-
(define-public pwsafe
(package
(name "pwsafe")
diff --git a/gnu/packages/patches/calibre-no-updates-dialog.patch b/gnu/packages/patches/calibre-no-updates-dialog.patch
index 1d8d79660e..66ac913cb5 100644
--- a/gnu/packages/patches/calibre-no-updates-dialog.patch
+++ b/gnu/packages/patches/calibre-no-updates-dialog.patch
@@ -1,11 +1,17 @@
-Taken from debian.
+From 19e8d7701c302b0eca4c638705a6db625352caa3 Mon Sep 17 00:00:00 2001
+From: Brendan Tildesley <mail@brendan.scot>
+Date: Thu, 25 Feb 2021 12:17:30 +1100
+Subject: [PATCH] Don't check for updates.
-# Description: Disable update check by default.
-Index: calibre/src/calibre/gui2/main.py
-===================================================================
---- calibre.orig/src/calibre/gui2/main.py 2014-02-02 10:41:28.470954623 +0100
-+++ calibre/src/calibre/gui2/main.py 2014-02-02 10:41:56.546954247 +0100
-@@ -37,8 +37,8 @@
+---
+ src/calibre/gui2/main.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py
+index 776f8bebfb..4302716d7e 100644
+--- a/src/calibre/gui2/main.py
++++ b/src/calibre/gui2/main.py
+@@ -59,8 +59,8 @@ def option_parser():
help=_('Start minimized to system tray.'))
parser.add_option('-v', '--verbose', default=0, action='count',
help=_('Ignored, do not use. Present only for legacy reasons'))
@@ -16,3 +22,5 @@ Index: calibre/src/calibre/gui2/main.py
parser.add_option('--ignore-plugins', default=False, action='store_true',
help=_('Ignore custom plugins, useful if you installed a plugin'
' that is preventing calibre from starting'))
+--
+2.30.1
diff --git a/gnu/packages/patches/calibre-remove-test-sqlite.patch b/gnu/packages/patches/calibre-remove-test-sqlite.patch
index 7bdd90874d..fc2b237ef2 100644
--- a/gnu/packages/patches/calibre-remove-test-sqlite.patch
+++ b/gnu/packages/patches/calibre-remove-test-sqlite.patch
@@ -1,20 +1,20 @@
-From a92e26359bd07743ab105819ed0b619e27e14017 Mon Sep 17 00:00:00 2001
+From d8225e83c3b73f0e0da73874910f50ca652f48cf Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
-Date: Sat, 27 Apr 2019 03:30:53 +1000
-Subject: [PATCH] Disable test_sqlite.
+Date: Thu, 25 Feb 2021 00:48:00 +1100
+Subject: [PATCH] Remove test_sqlite
---
src/calibre/test_build.py | 6 ------
1 file changed, 6 deletions(-)
diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
-index 07bdffd3e5..740588c95b 100644
+index 0ab7aa0646..87fdfabd9a 100644
--- a/src/calibre/test_build.py
+++ b/src/calibre/test_build.py
-@@ -162,12 +162,6 @@ class BuildTest(unittest.TestCase):
- au(x, 'strftime')
- self.assertEqual(unicode_type(time.strftime(fmt.replace('%e', '%#d'), t)), x)
-
+@@ -273,12 +273,6 @@ def read_changes():
+ m.close()
+ self.assertEqual(winutil.parse_cmdline('"c:\\test exe.exe" "some arg" 2'), ('c:\\test exe.exe', 'some arg', '2'))
+
- def test_sqlite(self):
- import sqlite3
- conn = sqlite3.connect(':memory:')
@@ -24,6 +24,5 @@ index 07bdffd3e5..740588c95b 100644
def test_apsw(self):
import apsw
conn = apsw.Connection(':memory:')
---
-2.21.0
-
+--
+2.30.1
diff --git a/gnu/packages/patches/calibre-remove-test-unrar.patch b/gnu/packages/patches/calibre-remove-test-unrar.patch
index 4e5572d1a6..961cc3eba7 100644
--- a/gnu/packages/patches/calibre-remove-test-unrar.patch
+++ b/gnu/packages/patches/calibre-remove-test-unrar.patch
@@ -1,28 +1,26 @@
-Unrar contains security vulnerabilities and has thus been removed from Guix.
-From a16f97b02bd8afd0ec05c471e156f631f2cc6eec Mon Sep 17 00:00:00 2001
+From 9edf67191cc3655480b6fd418247709ade930b1a Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <mail@brendan.scot>
-Date: Tue, 26 Mar 2019 22:17:03 +1100
-Subject: [PATCH] Remove test_unrar.
+Date: Thu, 25 Feb 2021 00:33:10 +1100
+Subject: [PATCH] Remove test_unrar
---
src/calibre/test_build.py | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
-index d67afd20a6..709132ef17 100644
+index b37fb1bcfb..0ab7aa0646 100644
--- a/src/calibre/test_build.py
+++ b/src/calibre/test_build.py
-@@ -220,10 +220,6 @@ class BuildTest(unittest.TestCase):
+@@ -369,10 +369,6 @@ def test_file_dialog_helper(self):
from calibre.gui2.win_file_dialogs import test
test()
-
+
- def test_unrar(self):
- from calibre.utils.unrar import test_basic
- test_basic()
-
- @unittest.skipUnless(iswindows, 'WPD is windows only')
- def test_wpd(self):
- wpd = plugins['wpd'][0]
---
-2.21.0
-
+ def test_7z(self):
+ from calibre.utils.seven_zip import test_basic
+ test_basic()
+--
+2.30.1
diff --git a/gnu/packages/patches/cgal-security-pr-5371.patch b/gnu/packages/patches/cgal-security-pr-5371.patch
deleted file mode 100644
index dea53dceaf..0000000000
--- a/gnu/packages/patches/cgal-security-pr-5371.patch
+++ /dev/null
@@ -1,1611 +0,0 @@
-From 618b409b0fbcef7cb536a4134ae3a424ef5aae45 Mon Sep 17 00:00:00 2001
-From: Maxime Gimeno <maxime.gimeno@gmail.com>
-Date: Mon, 18 Jan 2021 15:40:40 +0100
-Subject: [PATCH 1/8] Fix Nef_2 and Nef_S2 IO
-
----
- Nef_2/include/CGAL/Nef_2/PM_io_parser.h | 74 ++++++++++++---
- Nef_2/include/CGAL/Nef_polyhedron_2.h | 2 +
- Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h | 106 ++++++++++++++++------
- 3 files changed, 142 insertions(+), 40 deletions(-)
-
-diff --git a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-index 85295f3d85a..9b84dd37fbe 100644
---- a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-+++ b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-@@ -200,6 +200,11 @@ bool PM_io_parser<PMDEC>::read_vertex(Vertex_handle v)
- !(in >> p) ||
- !check_sep("}") ) return false;
-
-+ if(!(f >= 0 && ((iso && f < fn) || (!iso && f < en))))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- if (iso) v->set_face(Face_of[f]);
- else v->set_halfedge(Halfedge_of[f]);
- mark(v) = m; point(v) = p;
-@@ -229,10 +234,14 @@ bool PM_io_parser<PMDEC>::read_hedge(Halfedge_handle e)
- !(in >> f) || !check_sep(",") ||
- !(in >> m) || !check_sep("}") )
- return false;
-- CGAL_assertion_msg
-- (eo >= 0 || (std::size_t) eo < en || epr >= 0 || (std::size_t) epr < en || ene >= 0 || (std::size_t) ene < en ||
-- v >= 0 || (std::size_t) v < vn || f >= 0 || (std::size_t) f < fn ,
-- "wrong index in read_hedge");
-+
-+ if(!(eo >= 0 && (std::size_t) eo < en && epr >= 0 && (std::size_t) epr < en && ene >= 0 && (std::size_t) ene < en &&
-+ v >= 0 && (std::size_t) v < vn && f >= 0 && (std::size_t) f < fn ))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ std::cerr<<"wrong index in read_hedge"<<std::endl;
-+ return false;
-+ }
-
- // precond: objects exist!
- CGAL_assertion(EI[e->opposite()]);
-@@ -267,14 +276,32 @@ bool PM_io_parser<PMDEC>::read_face(Face_handle f)
- int n, ei, vi; Mark m;
- if ( !(in >> n) || !check_sep("{") ) return false;
- if ( !(in >> ei) || !check_sep(",") ) return false;
-- if (ei >= 0) f->set_halfedge(Halfedge_of[ei]);
-+ if (ei >= 0 && ei < en)
-+ {
-+ f->set_halfedge(Halfedge_of[ei]);
-+ }
-+ else
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- while (in >> ei) {
- CGAL_assertion_msg(ei >= 0 && (std::size_t) ei < en, "wrong index in face cycle list.");
-+ if (!(ei >= 0 && ei < en))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- f->store_fc(Halfedge_of[ei]);
- } in.clear();
- if (!check_sep(",")) { return false; }
- while (in >> vi) {
- CGAL_assertion_msg(vi >= 0 && (std::size_t) vi < vn, "wrong index in iso vertex list.");
-+ if (!(vi >= 0 && vi < vn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- f->store_iv(Vertex_of[vi]);
- } in.clear();
- if (!check_sep(",") || !(in >> m) || !check_sep("}") )
-@@ -313,13 +340,26 @@ template <typename PMDEC>
- void PM_io_parser<PMDEC>::read()
- {
- if ( !check_sep("Plane_map_2") )
-- CGAL_error_msg("PM_io_parser::read: no embedded_PM header.");
-+ {
-+ std::cerr<<"PM_io_parser::read: no embedded_PM header."<<std::endl;
-+ return;
-+ }
- if ( !(check_sep("vertices") && (in >> vn)) )
-- CGAL_error_msg("PM_io_parser::read: wrong node line.");
-+ {
-+ std::cerr<<"PM_io_parser::read: wrong node line."<<std::endl;
-+ return;
-+ }
-+
- if ( !(check_sep("halfedges") && (in >> en) && (en%2==0)) )
-- CGAL_error_msg("PM_io_parser::read: wrong edge line.");
-+ {
-+ std::cerr<<"PM_io_parser::read: wrong edge line."<<std::endl;
-+ return;
-+ }
- if ( !(check_sep("faces") && (in >> fn)) )
-- CGAL_error_msg("PM_io_parser::read: wrong face line.");
-+ {
-+ std::cerr<<"PM_io_parser::read: wrong face line."<<std::endl;
-+ return;
-+ }
-
- Vertex_of.resize(vn);
- Halfedge_of.resize(en);
-@@ -333,16 +373,24 @@ void PM_io_parser<PMDEC>::read()
-
- for(i=0; i<vn; i++) {
- if (!read_vertex(Vertex_of[i]))
-- CGAL_error_msg("PM_io_parser::read: error in node line");
-+ {
-+ std::cerr<<"PM_io_parser::read: error in node line"<<std::endl;
-+ return;
-+ }
- }
- for(i=0; i<en; i++) {
- if (!read_hedge(Halfedge_of[i]))
-- CGAL_error_msg("PM_io_parser::read: error in halfedge\
-- line");
-+ {
-+ std::cerr<<"PM_io_parser::read: error in halfedge line"<<std::endl;
-+ return;
-+ }
- }
- for(i=0; i<fn; i++) {
- if (!read_face(Face_of[i]))
-- CGAL_error_msg("PM_io_parser::read: error in face line");
-+ {
-+ std::cerr<<"PM_io_parser::read: error in face line"<<std::endl;
-+ return;
-+ }
- }
- }
-
-diff --git a/Nef_2/include/CGAL/Nef_polyhedron_2.h b/Nef_2/include/CGAL/Nef_polyhedron_2.h
-index 92c54593386..62aad3e5649 100644
---- a/Nef_2/include/CGAL/Nef_polyhedron_2.h
-+++ b/Nef_2/include/CGAL/Nef_polyhedron_2.h
-@@ -1112,6 +1112,8 @@ std::istream& operator>>
- std::cerr << "Nef_polyhedron_2 input corrupted." << std::endl;
- NP = Nef_polyhedron_2<T,Items,Mark>();
- }
-+ if(!is)
-+ return is;
- typename Nef_polyhedron_2<T,Items,Mark>::Topological_explorer D(NP.explorer());
- D.check_integrity_and_topological_planarity();
- return is;
-diff --git a/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h b/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-index 7bddd3036d5..631c63dc5dc 100644
---- a/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-+++ b/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-@@ -203,8 +203,14 @@ bool SM_io_parser<Decorator_>::read_vertex(SVertex_handle v)
- !(in >> p) ||
- !check_sep("}") ) return false;
-
-- if (iso) set_face(v,SFace_of[f]);
-- else set_first_out_edge(v,Edge_of[f]);
-+ if(f<0 || (iso && f > fn) || (!iso && f > en))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
-+
-+ if (iso) this->set_face(v,SFace_of[f]);
-+ else this->set_first_out_edge(v,Edge_of[f]);
- v->mark() = m; v->point() = p;
- return true;
- }
-@@ -235,17 +241,21 @@ bool SM_io_parser<Decorator_>::read_edge(SHalfedge_handle e)
- !(in >> m) || !check_sep(",") ||
- !(in >> k) || !check_sep("}") )
- return false;
-- CGAL_assertion_msg
-+ if (!
- (eo >= 0 && eo < en && epr >= 0 && epr < en && ene >= 0 && ene < en &&
-- v >= 0 && v < vn && f >= 0 && f < fn ,
-- "wrong index in read_edge");
-+ v >= 0 && v < vn && f >= 0 && f < fn ))
-+ {
-+ std::cerr<<"wrong index in read_edge"<<std::endl;
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
-
- // precond: features exist!
- CGAL_assertion(EI[e->twin()]);
-- set_prev(e,Edge_of[epr]);
-- set_next(e,Edge_of[ene]);
-- set_source(e,SVertex_of[v]);
-- set_face(e,SFace_of[f]);
-+ this->set_prev(e,Edge_of[epr]);
-+ this->set_next(e,Edge_of[ene]);
-+ this->set_source(e,SVertex_of[v]);
-+ this->set_face(e,SFace_of[f]);
- e->mark() = m;
- e->circle() = k;
- return true;
-@@ -274,7 +284,7 @@ bool SM_io_parser<Decorator_>::read_loop(SHalfloop_handle l)
- CGAL_assertion_msg(
- (lo >= 0 && lo < 2 && f >= 0 && f < fn),"wrong index in read_edge");
-
-- set_face(l,SFace_of[f]);
-+ this->set_face(l,SFace_of[f]);
- l->mark() = m;
- l->circle() = k;
- return true;
-@@ -303,21 +313,33 @@ bool SM_io_parser<Decorator_>::read_face(SFace_handle f)
- int n, ei, vi, li; Mark m;
- if ( !(in >> n) || !check_sep("{") ) return false;
- while (in >> ei) {
-- CGAL_assertion_msg(ei >= 0 && ei < en,
-- "wrong index in face cycle list.");
-- store_sm_boundary_object(Edge_of[ei],f);
-+ if(!(ei >= 0 && ei < en))
-+ {
-+ std::cerr<<"wrong index in face cycle list."<<std::endl;
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
-+ this->store_sm_boundary_object(Edge_of[ei],f);
- } in.clear();
- if (!check_sep(",")) { return false; }
- while (in >> vi) {
-- CGAL_assertion_msg(vi >= 0 && vi < vn,
-- "wrong index in iso vertex list.");
-- store_sm_boundary_object(SVertex_of[vi],f);
-+ if(!(vi >= 0 && vi < vn))
-+ {
-+ std::cerr<<"wrong index in iso vertex list."<<std::endl;
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
-+ this->store_sm_boundary_object(SVertex_of[vi],f);
- } in.clear();
- if (!check_sep(",")) { return false; }
- while (in >> li) {
-- CGAL_assertion_msg(li >= 0 && li < 2,
-- "wrong index in iso vertex list.");
-- store_sm_boundary_object(Loop_of[li],f);
-+ if(!(li >= 0 && li < 2))
-+ {
-+ std::cerr<<"wrong index in iso vertex list."<<std::endl;
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
-+ this->store_sm_boundary_object(Loop_of[li],f);
- } in.clear();
- if (!check_sep(",") || !(in >> m) || !check_sep("}") )
- return false;
-@@ -357,16 +379,36 @@ void SM_io_parser<Decorator_>::print() const
- template <typename Decorator_>
- void SM_io_parser<Decorator_>::read()
- {
-+ if ( !check_sep("Nef_polyhedron_S2") )
-+ {
-+ std::cerr<<"Missing line in header"<<std::endl;
-+ return;
-+ }
- if ( !check_sep("Sphere_map_2") )
-- CGAL_error_msg("SM_io_parser::read: no embedded_PM header.");
-+ {
-+ std::cerr<<"SM_io_parser::read: no embedded_PM header."<<std::endl;
-+ return;
-+ }
- if ( !(check_sep("vertices") && (in >> vn)) )
-- CGAL_error_msg("SM_io_parser::read: wrong vertex line.");
-+ {
-+ std::cerr<<"SM_io_parser::read: wrong vertex line."<<std::endl;
-+ return;
-+ }
- if ( !(check_sep("edges") && (in >> en) && (en%2==0)) )
-- CGAL_error_msg("SM_io_parser::read: wrong edge line.");
-+ {
-+ std::cerr<<"SM_io_parser::read: wrong edge line."<<std::endl;
-+ return;
-+ }
- if ( !(check_sep("loops") && (in >> ln)) )
-- CGAL_error_msg("SM_io_parser::read: wrong loop line.");
-+ {
-+ std::cerr<<"SM_io_parser::read: wrong loop line."<<std::endl;
-+ return;
-+ }
- if ( !(check_sep("faces") && (in >> fn)) )
-- CGAL_error_msg("SM_io_parser::read: wrong face line.");
-+ {
-+ std::cerr<<"SM_io_parser::read: wrong face line."<<std::endl;
-+ return;
-+ }
-
- SVertex_of.resize(vn);
- Edge_of.resize(en);
-@@ -383,18 +425,28 @@ void SM_io_parser<Decorator_>::read()
-
- for(i=0; i<vn; i++) {
- if (!read_vertex(SVertex_of[i]))
-- CGAL_error_msg("SM_io_parser::read: error in node line");
-+ {
-+ std::cerr<<"SM_io_parser::read: error in node line"<<std::endl;
-+ return;
-+ }
- }
- for(i=0; i<en; i++) {
- if (!read_edge(Edge_of[i]))
-- CGAL_error_msg("SM_io_parser::read: error in edge line");
-+ {
-+ std::cerr<<"SM_io_parser::read: error in edge line"<<std::endl;
-+ return;
-+ }
-+
- }
- if ( ln == 2 ) {
- read_loop(Loop_of[0]); read_loop(Loop_of[1]);
- }
- for(i=0; i<fn; i++) {
- if (!read_face(SFace_of[i]))
-- CGAL_error_msg("SM_io_parser::read: error in face line");
-+ {
-+ std::cerr<<"SM_io_parser::read: error in face line"<<std::endl;
-+ return;
-+ }
- }
- }
-
-
-From 5a1ab45058112f8647c14c02f58905ecc597ec76 Mon Sep 17 00:00:00 2001
-From: Maxime Gimeno <maxime.gimeno@gmail.com>
-Date: Tue, 19 Jan 2021 12:24:08 +0100
-Subject: [PATCH 2/8] Fix Nef_3
-
----
- Nef_3/include/CGAL/Nef_3/SNC_io_parser.h | 195 ++++++++++++++++++++++-
- 1 file changed, 188 insertions(+), 7 deletions(-)
-
-diff --git a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-index 5eee7528ee7..04d9d0ac8e8 100644
---- a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-+++ b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-@@ -1444,40 +1444,61 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- typename std::vector<Vertex_iterator>::iterator vi;
- for(vi=Vertex_of.begin(); vi!=Vertex_of.end(); ++vi) {
- if (!read_vertex<K>(*vi))
-- CGAL_error_msg("SNC_io_parser::read: error in node line");
-+ {
-+ std::cerr<<"SNC_io_parser::read: error in node line"<<std::endl;
-+ return;
-+ }
- }
-
- typename std::vector<Halfedge_iterator>::iterator ei;
- for(ei=Edge_of.begin(); ei!=Edge_of.end(); ++ei) {
- if (!read_edge<K>(*ei))
-- CGAL_error_msg("SNC_io_parser::read: error in edge line");
-+ {
-+ std::cerr<<"SNC_io_parser::read: error in edge line"<<std::endl;
-+ return;
-+ }
- }
-
- typedef typename std::vector<Halffacet_iterator>::iterator vhf_iterator;
- vhf_iterator fi;
- for(fi=Halffacet_of.begin(); fi!=Halffacet_of.end(); ++fi) {
- if (!read_facet<K>(*fi))
-- CGAL_error_msg("SNC_io_parser::read: error in facet line");
-+ {
-+ std::cerr<<"SNC_io_parser::read: error in facet line"<<std::endl;
-+ return;
-+ }
- }
- typename std::vector<Volume_iterator>::iterator ci;
- for(ci=Volume_of.begin()+plus01; ci!=Volume_of.end(); ++ci) {
- if (!read_volume(*ci))
-- CGAL_error_msg("SNC_io_parser::read: error in volume line");
-+ {
-+ std::cerr<<"SNC_io_parser::read: error in volume line"<<std::endl;
-+ return;
-+ }
- }
- typename std::vector<SHalfedge_iterator>::iterator sei;
- for(sei=SEdge_of.begin(); sei!=SEdge_of.end(); ++sei) {
- if (!read_sedge<K>(*sei))
-- CGAL_error_msg("SNC_io_parser::read: error in sedge line");
-+ {
-+ std::cerr<<"SNC_io_parser::read: error in sedge line"<<std::endl;
-+ return;
-+ }
- }
- typename std::vector<SHalfloop_iterator>::iterator sli;
- for(sli=SLoop_of.begin(); sli!=SLoop_of.end(); ++sli) {
- if (!read_sloop<K>(*sli))
-- CGAL_error_msg("SNC_io_parser::read: error in sloop line");
-+ {
-+ std::cerr<<"SNC_io_parser::read: error in sloop line"<<std::endl;
-+ return;
-+ }
- }
- typename std::vector<SFace_iterator>::iterator sfi;
- for(sfi=SFace_of.begin(); sfi!=SFace_of.end(); ++sfi) {
- if (!read_sface(*sfi))
-- CGAL_error_msg("SNC_io_parser::read: error in sface line");
-+ {
-+ std::cerr<<"SNC_io_parser::read: error in sface line"<<std::endl;
-+ return;
-+ }
- }
-
- SNC_constructor C(*this->sncp());
-@@ -1535,21 +1556,56 @@ read_vertex(Vertex_handle vh) {
- vh->sncp() = this->sncp();
-
- in >> index;
-+ if(index >= int(en))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- vh->svertices_begin() = (index >= 0 ? Edge_of[index] : this->svertices_end());
- in >> index;
-+ if(index >= int(en))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- vh->svertices_last() = index >= 0 ? Edge_of[index] : this->svertices_end();
- OK = OK && test_string(",");
- in >> index;
-+ if(index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- vh->shalfedges_begin() = index >= 0 ? SEdge_of[index] : this->shalfedges_end();
- in >> index;
-+ if(index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- vh->shalfedges_last() = index >= 0 ? SEdge_of[index] : this->shalfedges_end();
- OK = OK && test_string(",");
- in >> index;
-+ if(index >= int(sfn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- vh->sfaces_begin() = index >= 0 ? SFace_of[index] : this->sfaces_end();
- in >> index;
-+ if(index >= int(sfn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- vh->sfaces_last() = index >= 0 ? SFace_of[index] : this->sfaces_end();
- OK = OK && test_string(",");
- in >> index;
-+ if(index >= int(sln))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- vh->shalfloop() = index >= 0 ? SLoop_of[index] : this->shalfloops_end();
- OK = OK && test_string("|");
- #ifdef CGAL_NEF_NATURAL_COORDINATE_INPUT
-@@ -1604,17 +1660,37 @@ read_edge(Halfedge_handle eh) {
- OK = OK && test_string("{");
-
- in >> index;
-+ if(index < 0 || index >= int(en))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- eh->twin() = Edge_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(vn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- eh->center_vertex() = Vertex_of[index];
- OK = OK && test_string(",");
- in >> index;
- if(index == 0) {
- in >> index;
-+ if(index < 0 || index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- eh->out_sedge() = SEdge_of[index];
- } else {
- in >> index;
-+ if(index < 0 || index >= int(sfn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- eh->incident_sface() = SFace_of[index];
- }
- OK = OK && test_string("|");
-@@ -1669,6 +1745,11 @@ read_facet(Halffacet_handle fh) {
- OK = OK && test_string("{");
-
- in >> index;
-+ if(index < 0 || index >= int(fn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- fh->twin() = Halffacet_of[index];
- OK = OK && test_string(",");
-
-@@ -1676,6 +1757,11 @@ read_facet(Halffacet_handle fh) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-+ if(index < 0 || index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- fh->boundary_entry_objects().push_back(make_object(SEdge_of[index]));
- in >> cc;
- }
-@@ -1684,11 +1770,21 @@ read_facet(Halffacet_handle fh) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-+ if(index < 0 || index >= int(sln))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- fh->boundary_entry_objects().push_back(make_object(SLoop_of[index]));
- in >> cc;
- }
-
- in >> index;
-+ if(index < 0 || index >= int(vn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- fh->incident_volume() = Volume_of[index+addInfiBox];
- OK = OK && test_string("|");
- #ifdef CGAL_NEF_NATURAL_COORDINATE_INPUT
-@@ -1731,6 +1827,11 @@ read_volume(Volume_handle ch) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-+ if(index < 0 || index >= int(sfn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- ch->shell_entry_objects().push_back(make_object(SFace_of[index]));
- in >> cc;
- }
-@@ -1781,27 +1882,67 @@ read_sedge(SHalfedge_handle seh) {
- OK = OK && test_string("{");
-
- in >> index;
-+ if(index < 0 || index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->twin() = SEdge_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->sprev() = SEdge_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->snext() = SEdge_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(en))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->source() = Edge_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(sfn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->incident_sface() = SFace_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->prev() = SEdge_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(sen))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->next() = SEdge_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= int(fn))
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- seh->facet() = Halffacet_of[index];
- OK = OK && test_string("|");
- #ifdef CGAL_NEF_NATURAL_COORDINATE_INPUT
-@@ -1852,12 +1993,27 @@ read_sloop(SHalfloop_handle slh) {
- OK = OK && test_string("{");
-
- in >> index;
-+ if(index < 0 || index >= sln)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- slh->twin() = SLoop_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= sfn)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- slh->incident_sface() = SFace_of[index];
- OK = OK && test_string(",");
- in >> index;
-+ if(index < 0 || index >= fn)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- slh->facet() = Halffacet_of[index];
- OK = OK && test_string("|");
- #ifdef CGAL_NEF_NATURAL_COORDINATE_INPUT
-@@ -1904,6 +2060,11 @@ read_sface(SFace_handle sfh) {
- OK = OK && test_string("{");
-
- in >> index;
-+ if(index < 0 || index >= vn)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- sfh->center_vertex() = Vertex_of[index];
- OK = OK && test_string(",");
-
-@@ -1913,6 +2074,11 @@ read_sface(SFace_handle sfh) {
- in >> index;
- // sfh->boundary_entry_objects().push_back(SEdge_of[index]);
- SM_decorator SD(&*sfh->center_vertex());
-+ if(index < 0 || index >= sen)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- SD.link_as_face_cycle(SEdge_of[index],sfh);
- in >> cc;
- }
-@@ -1921,6 +2087,11 @@ read_sface(SFace_handle sfh) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-+ if(index < 0 || index >= en)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- sfh->boundary_entry_objects().push_back(make_object(Edge_of[index]));
- this->sncp()->store_sm_boundary_item(Edge_of[index], --(sfh->sface_cycles_end()));
- in >> cc;
-@@ -1930,12 +2101,22 @@ read_sface(SFace_handle sfh) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-+ if(index < 0 || index >= sln)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- sfh->boundary_entry_objects().push_back(make_object(SLoop_of[index]));
- this->sncp()->store_sm_boundary_item(SLoop_of[index], --(sfh->sface_cycles_end()));
- in >> cc;
- }
-
- in >> index;
-+ if(index < 0 || index >= vn)
-+ {
-+ in.clear(std::ios_base::badbit);
-+ return false;
-+ }
- sfh->volume() = Volume_of[index+addInfiBox];
- OK = OK && test_string("}");
- in >> sfh->mark();
-
-From 9e291e6bbfe23137fb2dd3a0f8d6461229ca2376 Mon Sep 17 00:00:00 2001
-From: Maxime Gimeno <maxime.gimeno@gmail.com>
-Date: Tue, 19 Jan 2021 14:04:54 +0100
-Subject: [PATCH 3/8] replace cerr by CGAL_warning_msg
-
----
- Nef_2/include/CGAL/Nef_2/PM_io_parser.h | 14 +++---
- Nef_3/include/CGAL/Nef_3/SNC_io_parser.h | 53 ++++++++++++++++-------
- Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h | 18 ++++----
- 3 files changed, 54 insertions(+), 31 deletions(-)
-
-diff --git a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-index 9b84dd37fbe..52bc830e115 100644
---- a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-+++ b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-@@ -341,23 +341,23 @@ void PM_io_parser<PMDEC>::read()
- {
- if ( !check_sep("Plane_map_2") )
- {
-- std::cerr<<"PM_io_parser::read: no embedded_PM header."<<std::endl;
-+ CGAL_warning_msg(false, "PM_io_parser::read: no embedded_PM header.");
- return;
- }
- if ( !(check_sep("vertices") && (in >> vn)) )
- {
-- std::cerr<<"PM_io_parser::read: wrong node line."<<std::endl;
-+ CGAL_warning_msg(false, "PM_io_parser::read: wrong node line.");
- return;
- }
-
- if ( !(check_sep("halfedges") && (in >> en) && (en%2==0)) )
- {
-- std::cerr<<"PM_io_parser::read: wrong edge line."<<std::endl;
-+ CGAL_warning_msg(false, "PM_io_parser::read: wrong edge line.");
- return;
- }
- if ( !(check_sep("faces") && (in >> fn)) )
- {
-- std::cerr<<"PM_io_parser::read: wrong face line."<<std::endl;
-+ CGAL_warning_msg(false, "PM_io_parser::read: wrong face line.");
- return;
- }
-
-@@ -374,21 +374,21 @@ void PM_io_parser<PMDEC>::read()
- for(i=0; i<vn; i++) {
- if (!read_vertex(Vertex_of[i]))
- {
-- std::cerr<<"PM_io_parser::read: error in node line"<<std::endl;
-+ CGAL_warning_msg(false, "PM_io_parser::read: error in node line");
- return;
- }
- }
- for(i=0; i<en; i++) {
- if (!read_hedge(Halfedge_of[i]))
- {
-- std::cerr<<"PM_io_parser::read: error in halfedge line"<<std::endl;
-+ CGAL_warning_msg(false, "PM_io_parser::read: error in halfedge line");
- return;
- }
- }
- for(i=0; i<fn; i++) {
- if (!read_face(Face_of[i]))
- {
-- std::cerr<<"PM_io_parser::read: error in face line"<<std::endl;
-+ CGAL_warning_msg(false, "PM_io_parser::read: error in face line");
- return;
- }
- }
-diff --git a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-index 04d9d0ac8e8..21c54dd4133 100644
---- a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-+++ b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-@@ -1400,24 +1400,47 @@ template <typename EW>
- void SNC_io_parser<EW>::read()
- {
- if ( !check_sep("Selective Nef Complex") )
-- CGAL_error_msg("SNC_io_parser::read: no SNC header.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: no SNC header.");
-+ returnl
-+ }
- std::string kernel_type;
- in >> kernel_type;
- CGAL_assertion(kernel_type == "standard" || kernel_type == "extended");
- if ( !(check_sep("vertices") && (in >> vn)) )
-- CGAL_error_msg("SNC_io_parser::read: wrong vertex line.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: wrong vertex line.");
-+ return;
-+ }
- if ( !(check_sep("halfedges") && (in >> en) && (en%2==0)) )
-- CGAL_error_msg("SNC_io_parser::read: wrong edge line.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: wrong edge line.");
-+ return;
-+ }
- if ( !(check_sep("facets") && (in >> fn) && (fn%2==0)) )
-- CGAL_error_msg("SNC_io_parser::read: wrong facet line.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: wrong facet line.");
-+ }
- if ( !(check_sep("volumes") && (in >> cn)) )
-- CGAL_error_msg("SNC_io_parser::read: wrong volume line.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: wrong volume line.");
-+ return;
-+ }
- if ( !(check_sep("shalfedges") && (in >> sen)) )
-- CGAL_error_msg("SNC_io_parser::read: wrong sedge line.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: wrong sedge line.");
-+ return;
-+ }
- if ( !(check_sep("shalfloops") && (in >> sln)) )
-- CGAL_error_msg("SNC_io_parser::read: wrong sloop line.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: wrong sloop line.");
-+ return;
-+ }
- if ( !(check_sep("sfaces") && (in >> sfn)) )
-- CGAL_error_msg("SNC_io_parser::read: wrong sface line.");
-+ {
-+ CGAL_warning_msg(false, "SNC_io_parser::read: wrong sface line.");
-+ return;
-+ }
-
- addInfiBox = (kernel_type == "standard" && Infi_box::extended_kernel());
-
-@@ -1445,7 +1468,7 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- for(vi=Vertex_of.begin(); vi!=Vertex_of.end(); ++vi) {
- if (!read_vertex<K>(*vi))
- {
-- std::cerr<<"SNC_io_parser::read: error in node line"<<std::endl;
-+ CGAL_warning_msg(false, "SNC_io_parser::read: error in node line");
- return;
- }
- }
-@@ -1454,7 +1477,7 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- for(ei=Edge_of.begin(); ei!=Edge_of.end(); ++ei) {
- if (!read_edge<K>(*ei))
- {
-- std::cerr<<"SNC_io_parser::read: error in edge line"<<std::endl;
-+ CGAL_warning_msg(false, "SNC_io_parser::read: error in edge line");
- return;
- }
- }
-@@ -1464,7 +1487,7 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- for(fi=Halffacet_of.begin(); fi!=Halffacet_of.end(); ++fi) {
- if (!read_facet<K>(*fi))
- {
-- std::cerr<<"SNC_io_parser::read: error in facet line"<<std::endl;
-+ CGAL_warning_msg(false, "SNC_io_parser::read: error in facet line");
- return;
- }
- }
-@@ -1472,7 +1495,7 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- for(ci=Volume_of.begin()+plus01; ci!=Volume_of.end(); ++ci) {
- if (!read_volume(*ci))
- {
-- std::cerr<<"SNC_io_parser::read: error in volume line"<<std::endl;
-+ CGAL_warning_msg(false, "SNC_io_parser::read: error in volume line");
- return;
- }
- }
-@@ -1480,7 +1503,7 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- for(sei=SEdge_of.begin(); sei!=SEdge_of.end(); ++sei) {
- if (!read_sedge<K>(*sei))
- {
-- std::cerr<<"SNC_io_parser::read: error in sedge line"<<std::endl;
-+ CGAL_warning_msg(false, "SNC_io_parser::read: error in sedge line");
- return;
- }
- }
-@@ -1488,7 +1511,7 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- for(sli=SLoop_of.begin(); sli!=SLoop_of.end(); ++sli) {
- if (!read_sloop<K>(*sli))
- {
-- std::cerr<<"SNC_io_parser::read: error in sloop line"<<std::endl;
-+ CGAL_warning_msg(false, "SNC_io_parser::read: error in sloop line");
- return;
- }
- }
-@@ -1496,7 +1519,7 @@ void SNC_io_parser<EW>::read_items(int plus01) {
- for(sfi=SFace_of.begin(); sfi!=SFace_of.end(); ++sfi) {
- if (!read_sface(*sfi))
- {
-- std::cerr<<"SNC_io_parser::read: error in sface line"<<std::endl;
-+ CGAL_warning_msg(false, "SNC_io_parser::read: error in sface line");
- return;
- }
- }
-diff --git a/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h b/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-index 631c63dc5dc..a9377719f93 100644
---- a/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-+++ b/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-@@ -381,32 +381,32 @@ void SM_io_parser<Decorator_>::read()
- {
- if ( !check_sep("Nef_polyhedron_S2") )
- {
-- std::cerr<<"Missing line in header"<<std::endl;
-+ CGAL_warning_msg(false, "Missing line in header");
- return;
- }
- if ( !check_sep("Sphere_map_2") )
- {
-- std::cerr<<"SM_io_parser::read: no embedded_PM header."<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: no embedded_PM header.");
- return;
- }
- if ( !(check_sep("vertices") && (in >> vn)) )
- {
-- std::cerr<<"SM_io_parser::read: wrong vertex line."<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: wrong vertex line.");
- return;
- }
- if ( !(check_sep("edges") && (in >> en) && (en%2==0)) )
- {
-- std::cerr<<"SM_io_parser::read: wrong edge line."<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: wrong edge line.");
- return;
- }
- if ( !(check_sep("loops") && (in >> ln)) )
- {
-- std::cerr<<"SM_io_parser::read: wrong loop line."<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: wrong loop line.");
- return;
- }
- if ( !(check_sep("faces") && (in >> fn)) )
- {
-- std::cerr<<"SM_io_parser::read: wrong face line."<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: wrong face line.");
- return;
- }
-
-@@ -426,14 +426,14 @@ void SM_io_parser<Decorator_>::read()
- for(i=0; i<vn; i++) {
- if (!read_vertex(SVertex_of[i]))
- {
-- std::cerr<<"SM_io_parser::read: error in node line"<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: error in node line");
- return;
- }
- }
- for(i=0; i<en; i++) {
- if (!read_edge(Edge_of[i]))
- {
-- std::cerr<<"SM_io_parser::read: error in edge line"<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: error in edge line");
- return;
- }
-
-@@ -444,7 +444,7 @@ void SM_io_parser<Decorator_>::read()
- for(i=0; i<fn; i++) {
- if (!read_face(SFace_of[i]))
- {
-- std::cerr<<"SM_io_parser::read: error in face line"<<std::endl;
-+ CGAL_warning_msg(false, "SM_io_parser::read: error in face line");
- return;
- }
- }
-
-From 2e592e0027b2d85680273425161581655f4677fd Mon Sep 17 00:00:00 2001
-From: Maxime Gimeno <maxime.gimeno@gmail.com>
-Date: Wed, 20 Jan 2021 08:38:33 +0100
-Subject: [PATCH 4/8] Fix typo and use setstate
-
----
- Nef_2/include/CGAL/Nef_2/PM_io_parser.h | 10 ++--
- Nef_3/include/CGAL/Nef_3/SNC_io_parser.h | 66 +++++++++++------------
- Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h | 10 ++--
- 3 files changed, 43 insertions(+), 43 deletions(-)
-
-diff --git a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-index 52bc830e115..64a3e94916e 100644
---- a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-+++ b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-@@ -202,7 +202,7 @@ bool PM_io_parser<PMDEC>::read_vertex(Vertex_handle v)
-
- if(!(f >= 0 && ((iso && f < fn) || (!iso && f < en))))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- if (iso) v->set_face(Face_of[f]);
-@@ -238,7 +238,7 @@ bool PM_io_parser<PMDEC>::read_hedge(Halfedge_handle e)
- if(!(eo >= 0 && (std::size_t) eo < en && epr >= 0 && (std::size_t) epr < en && ene >= 0 && (std::size_t) ene < en &&
- v >= 0 && (std::size_t) v < vn && f >= 0 && (std::size_t) f < fn ))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- std::cerr<<"wrong index in read_hedge"<<std::endl;
- return false;
- }
-@@ -282,14 +282,14 @@ bool PM_io_parser<PMDEC>::read_face(Face_handle f)
- }
- else
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- while (in >> ei) {
- CGAL_assertion_msg(ei >= 0 && (std::size_t) ei < en, "wrong index in face cycle list.");
- if (!(ei >= 0 && ei < en))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- f->store_fc(Halfedge_of[ei]);
-@@ -299,7 +299,7 @@ bool PM_io_parser<PMDEC>::read_face(Face_handle f)
- CGAL_assertion_msg(vi >= 0 && (std::size_t) vi < vn, "wrong index in iso vertex list.");
- if (!(vi >= 0 && vi < vn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- f->store_iv(Vertex_of[vi]);
-diff --git a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-index 21c54dd4133..e5530445153 100644
---- a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-+++ b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-@@ -1402,7 +1402,7 @@ void SNC_io_parser<EW>::read()
- if ( !check_sep("Selective Nef Complex") )
- {
- CGAL_warning_msg(false, "SNC_io_parser::read: no SNC header.");
-- returnl
-+ return;
- }
- std::string kernel_type;
- in >> kernel_type;
-@@ -1581,14 +1581,14 @@ read_vertex(Vertex_handle vh) {
- in >> index;
- if(index >= int(en))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- vh->svertices_begin() = (index >= 0 ? Edge_of[index] : this->svertices_end());
- in >> index;
- if(index >= int(en))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- vh->svertices_last() = index >= 0 ? Edge_of[index] : this->svertices_end();
-@@ -1596,14 +1596,14 @@ read_vertex(Vertex_handle vh) {
- in >> index;
- if(index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- vh->shalfedges_begin() = index >= 0 ? SEdge_of[index] : this->shalfedges_end();
- in >> index;
- if(index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- vh->shalfedges_last() = index >= 0 ? SEdge_of[index] : this->shalfedges_end();
-@@ -1611,14 +1611,14 @@ read_vertex(Vertex_handle vh) {
- in >> index;
- if(index >= int(sfn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- vh->sfaces_begin() = index >= 0 ? SFace_of[index] : this->sfaces_end();
- in >> index;
- if(index >= int(sfn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- vh->sfaces_last() = index >= 0 ? SFace_of[index] : this->sfaces_end();
-@@ -1626,7 +1626,7 @@ read_vertex(Vertex_handle vh) {
- in >> index;
- if(index >= int(sln))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- vh->shalfloop() = index >= 0 ? SLoop_of[index] : this->shalfloops_end();
-@@ -1685,7 +1685,7 @@ read_edge(Halfedge_handle eh) {
- in >> index;
- if(index < 0 || index >= int(en))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- eh->twin() = Edge_of[index];
-@@ -1693,7 +1693,7 @@ read_edge(Halfedge_handle eh) {
- in >> index;
- if(index < 0 || index >= int(vn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- eh->center_vertex() = Vertex_of[index];
-@@ -1703,7 +1703,7 @@ read_edge(Halfedge_handle eh) {
- in >> index;
- if(index < 0 || index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- eh->out_sedge() = SEdge_of[index];
-@@ -1711,7 +1711,7 @@ read_edge(Halfedge_handle eh) {
- in >> index;
- if(index < 0 || index >= int(sfn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- eh->incident_sface() = SFace_of[index];
-@@ -1770,7 +1770,7 @@ read_facet(Halffacet_handle fh) {
- in >> index;
- if(index < 0 || index >= int(fn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- fh->twin() = Halffacet_of[index];
-@@ -1782,7 +1782,7 @@ read_facet(Halffacet_handle fh) {
- in >> index;
- if(index < 0 || index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- fh->boundary_entry_objects().push_back(make_object(SEdge_of[index]));
-@@ -1795,7 +1795,7 @@ read_facet(Halffacet_handle fh) {
- in >> index;
- if(index < 0 || index >= int(sln))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- fh->boundary_entry_objects().push_back(make_object(SLoop_of[index]));
-@@ -1805,7 +1805,7 @@ read_facet(Halffacet_handle fh) {
- in >> index;
- if(index < 0 || index >= int(vn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- fh->incident_volume() = Volume_of[index+addInfiBox];
-@@ -1852,7 +1852,7 @@ read_volume(Volume_handle ch) {
- in >> index;
- if(index < 0 || index >= int(sfn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- ch->shell_entry_objects().push_back(make_object(SFace_of[index]));
-@@ -1907,7 +1907,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->twin() = SEdge_of[index];
-@@ -1915,7 +1915,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->sprev() = SEdge_of[index];
-@@ -1923,7 +1923,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->snext() = SEdge_of[index];
-@@ -1931,7 +1931,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(en))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->source() = Edge_of[index];
-@@ -1939,7 +1939,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(sfn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->incident_sface() = SFace_of[index];
-@@ -1947,7 +1947,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->prev() = SEdge_of[index];
-@@ -1955,7 +1955,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(sen))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->next() = SEdge_of[index];
-@@ -1963,7 +1963,7 @@ read_sedge(SHalfedge_handle seh) {
- in >> index;
- if(index < 0 || index >= int(fn))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- seh->facet() = Halffacet_of[index];
-@@ -2018,7 +2018,7 @@ read_sloop(SHalfloop_handle slh) {
- in >> index;
- if(index < 0 || index >= sln)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- slh->twin() = SLoop_of[index];
-@@ -2026,7 +2026,7 @@ read_sloop(SHalfloop_handle slh) {
- in >> index;
- if(index < 0 || index >= sfn)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- slh->incident_sface() = SFace_of[index];
-@@ -2034,7 +2034,7 @@ read_sloop(SHalfloop_handle slh) {
- in >> index;
- if(index < 0 || index >= fn)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- slh->facet() = Halffacet_of[index];
-@@ -2085,7 +2085,7 @@ read_sface(SFace_handle sfh) {
- in >> index;
- if(index < 0 || index >= vn)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- sfh->center_vertex() = Vertex_of[index];
-@@ -2099,7 +2099,7 @@ read_sface(SFace_handle sfh) {
- SM_decorator SD(&*sfh->center_vertex());
- if(index < 0 || index >= sen)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- SD.link_as_face_cycle(SEdge_of[index],sfh);
-@@ -2112,7 +2112,7 @@ read_sface(SFace_handle sfh) {
- in >> index;
- if(index < 0 || index >= en)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- sfh->boundary_entry_objects().push_back(make_object(Edge_of[index]));
-@@ -2126,7 +2126,7 @@ read_sface(SFace_handle sfh) {
- in >> index;
- if(index < 0 || index >= sln)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- sfh->boundary_entry_objects().push_back(make_object(SLoop_of[index]));
-@@ -2137,7 +2137,7 @@ read_sface(SFace_handle sfh) {
- in >> index;
- if(index < 0 || index >= vn)
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- sfh->volume() = Volume_of[index+addInfiBox];
-diff --git a/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h b/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-index a9377719f93..d58126bac9c 100644
---- a/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-+++ b/Nef_S2/include/CGAL/Nef_S2/SM_io_parser.h
-@@ -205,7 +205,7 @@ bool SM_io_parser<Decorator_>::read_vertex(SVertex_handle v)
-
- if(f<0 || (iso && f > fn) || (!iso && f > en))
- {
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
-
-@@ -246,7 +246,7 @@ bool SM_io_parser<Decorator_>::read_edge(SHalfedge_handle e)
- v >= 0 && v < vn && f >= 0 && f < fn ))
- {
- std::cerr<<"wrong index in read_edge"<<std::endl;
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
-
-@@ -316,7 +316,7 @@ bool SM_io_parser<Decorator_>::read_face(SFace_handle f)
- if(!(ei >= 0 && ei < en))
- {
- std::cerr<<"wrong index in face cycle list."<<std::endl;
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- this->store_sm_boundary_object(Edge_of[ei],f);
-@@ -326,7 +326,7 @@ bool SM_io_parser<Decorator_>::read_face(SFace_handle f)
- if(!(vi >= 0 && vi < vn))
- {
- std::cerr<<"wrong index in iso vertex list."<<std::endl;
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- this->store_sm_boundary_object(SVertex_of[vi],f);
-@@ -336,7 +336,7 @@ bool SM_io_parser<Decorator_>::read_face(SFace_handle f)
- if(!(li >= 0 && li < 2))
- {
- std::cerr<<"wrong index in iso vertex list."<<std::endl;
-- in.clear(std::ios_base::badbit);
-+ in.setstate(std::ios_base::badbit);
- return false;
- }
- this->store_sm_boundary_object(Loop_of[li],f);
-
-From ffa019712b0ad3b20e3d02edad4d731fda04a2ef Mon Sep 17 00:00:00 2001
-From: Maxime Gimeno <maxime.gimeno@gmail.com>
-Date: Mon, 25 Jan 2021 12:59:48 +0100
-Subject: [PATCH 5/8] First face may be -1, don't fail on it, just don't use it
-
----
- Nef_2/include/CGAL/Nef_2/PM_io_parser.h | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-index 64a3e94916e..d08b08180d6 100644
---- a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-+++ b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-@@ -280,11 +280,7 @@ bool PM_io_parser<PMDEC>::read_face(Face_handle f)
- {
- f->set_halfedge(Halfedge_of[ei]);
- }
-- else
-- {
-- in.setstate(std::ios_base::badbit);
-- return false;
-- }
-+
- while (in >> ei) {
- CGAL_assertion_msg(ei >= 0 && (std::size_t) ei < en, "wrong index in face cycle list.");
- if (!(ei >= 0 && ei < en))
-
-From d78842712cdfcbb3bdfc5f7cb252d3772fd6a16f Mon Sep 17 00:00:00 2001
-From: Maxime Gimeno <maxime.gimeno@gmail.com>
-Date: Tue, 26 Jan 2021 09:55:20 +0100
-Subject: [PATCH 6/8] Fix conversion warnigns
-
----
- Nef_2/include/CGAL/Nef_2/PM_io_parser.h | 8 ++++----
- Nef_3/include/CGAL/Nef_3/SNC_io_parser.h | 18 +++++++++---------
- 2 files changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-index d08b08180d6..39b99b37d7c 100644
---- a/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-+++ b/Nef_2/include/CGAL/Nef_2/PM_io_parser.h
-@@ -200,7 +200,7 @@ bool PM_io_parser<PMDEC>::read_vertex(Vertex_handle v)
- !(in >> p) ||
- !check_sep("}") ) return false;
-
-- if(!(f >= 0 && ((iso && f < fn) || (!iso && f < en))))
-+ if(!(f >= 0 && ((iso && (std::size_t)f < fn) || (!iso && (std::size_t)f < en))))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -276,14 +276,14 @@ bool PM_io_parser<PMDEC>::read_face(Face_handle f)
- int n, ei, vi; Mark m;
- if ( !(in >> n) || !check_sep("{") ) return false;
- if ( !(in >> ei) || !check_sep(",") ) return false;
-- if (ei >= 0 && ei < en)
-+ if (ei >= 0 && (std::size_t) ei < en)
- {
- f->set_halfedge(Halfedge_of[ei]);
- }
-
- while (in >> ei) {
- CGAL_assertion_msg(ei >= 0 && (std::size_t) ei < en, "wrong index in face cycle list.");
-- if (!(ei >= 0 && ei < en))
-+ if (!(ei >= 0 && (std::size_t)ei < en))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -293,7 +293,7 @@ bool PM_io_parser<PMDEC>::read_face(Face_handle f)
- if (!check_sep(",")) { return false; }
- while (in >> vi) {
- CGAL_assertion_msg(vi >= 0 && (std::size_t) vi < vn, "wrong index in iso vertex list.");
-- if (!(vi >= 0 && vi < vn))
-+ if (!(vi >= 0 && (std::size_t)vi < vn))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-diff --git a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-index e5530445153..1dde7f8d0b3 100644
---- a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-+++ b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-@@ -1579,7 +1579,7 @@ read_vertex(Vertex_handle vh) {
- vh->sncp() = this->sncp();
-
- in >> index;
-- if(index >= int(en))
-+ if(index >= (int)en)
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2016,7 +2016,7 @@ read_sloop(SHalfloop_handle slh) {
- OK = OK && test_string("{");
-
- in >> index;
-- if(index < 0 || index >= sln)
-+ if(index < 0 || index >= (int)(sln))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2024,7 +2024,7 @@ read_sloop(SHalfloop_handle slh) {
- slh->twin() = SLoop_of[index];
- OK = OK && test_string(",");
- in >> index;
-- if(index < 0 || index >= sfn)
-+ if(index < 0 || index >= (int)(sfn))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2032,7 +2032,7 @@ read_sloop(SHalfloop_handle slh) {
- slh->incident_sface() = SFace_of[index];
- OK = OK && test_string(",");
- in >> index;
-- if(index < 0 || index >= fn)
-+ if(index < 0 || index >= (int)(fn))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2083,7 +2083,7 @@ read_sface(SFace_handle sfh) {
- OK = OK && test_string("{");
-
- in >> index;
-- if(index < 0 || index >= vn)
-+ if(index < 0 || index >= (int)(sln))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2097,7 +2097,7 @@ read_sface(SFace_handle sfh) {
- in >> index;
- // sfh->boundary_entry_objects().push_back(SEdge_of[index]);
- SM_decorator SD(&*sfh->center_vertex());
-- if(index < 0 || index >= sen)
-+ if(index < 0 || index >= (int)(sln))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2110,7 +2110,7 @@ read_sface(SFace_handle sfh) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-- if(index < 0 || index >= en)
-+ if(index < 0 || index >= (int)(sln))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2124,7 +2124,7 @@ read_sface(SFace_handle sfh) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-- if(index < 0 || index >= sln)
-+ if(index < 0 || index >= (int)(sln))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2135,7 +2135,7 @@ read_sface(SFace_handle sfh) {
- }
-
- in >> index;
-- if(index < 0 || index >= vn)
-+ if(index < 0 || index >= (int)(sln))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-
-From 23cc6b0f4a2ac6061b01d86411d58b6da7ff5a34 Mon Sep 17 00:00:00 2001
-From: Maxime Gimeno <maxime.gimeno@gmail.com>
-Date: Wed, 27 Jan 2021 10:04:45 +0100
-Subject: [PATCH 7/8] Fix read_sface
-
----
- .../Convex_decomposition_3/check_decomposition.cpp | 2 ++
- Nef_3/include/CGAL/Nef_3/SNC_io_parser.h | 10 +++++-----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-index 1dde7f8d0b3..a31a07c5d99 100644
---- a/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-+++ b/Nef_3/include/CGAL/Nef_3/SNC_io_parser.h
-@@ -1803,7 +1803,7 @@ read_facet(Halffacet_handle fh) {
- }
-
- in >> index;
-- if(index < 0 || index >= int(vn))
-+ if(index < 0 || index >= int(cn))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2083,7 +2083,7 @@ read_sface(SFace_handle sfh) {
- OK = OK && test_string("{");
-
- in >> index;
-- if(index < 0 || index >= (int)(sln))
-+ if(index < 0 || index >= (int)(vn))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2097,7 +2097,7 @@ read_sface(SFace_handle sfh) {
- in >> index;
- // sfh->boundary_entry_objects().push_back(SEdge_of[index]);
- SM_decorator SD(&*sfh->center_vertex());
-- if(index < 0 || index >= (int)(sln))
-+ if(index < 0 || index >= (int)(sen))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2110,7 +2110,7 @@ read_sface(SFace_handle sfh) {
- while(isdigit(cc)) {
- in.putback(cc);
- in >> index;
-- if(index < 0 || index >= (int)(sln))
-+ if(index < 0 || index >= (int)(en))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-@@ -2135,7 +2135,7 @@ read_sface(SFace_handle sfh) {
- }
-
- in >> index;
-- if(index < 0 || index >= (int)(sln))
-+ if(index < 0 || index >= (int)(cn))
- {
- in.setstate(std::ios_base::badbit);
- return false;
-
diff --git a/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch b/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch
new file mode 100644
index 0000000000..aad2d99996
--- /dev/null
+++ b/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch
@@ -0,0 +1,780 @@
+From 2447e047b750c3371778beb487f881641a582e66 Mon Sep 17 00:00:00 2001
+From: Philip McGrath <philip@philipmcgrath.com>
+Date: Thu, 11 Mar 2021 18:17:47 -0500
+Subject: [PATCH] avoid hard-coded paths for utilities in build scripts
+
+Backported from
+https://github.com/cisco/ChezScheme/commit/8f4633ce24ac6425b2ab13cc78026b1c9bb5361e
+
+Specific changes:
+ - `cc` -> `$(CC)`
+ - `/bin/rm` -> `rm`
+ - `/bin/ln` -> `ln`
+ - `/bin/cp` -> `cp`
+ - `/bin/echo` -> `echo`
+ - in `makefiles/installsh`, add a case to find `true`
+ at an unusual path or as a shell builtin
+
+Co-authored-by: Andy Keep <akeep@robotman.org>
+---
+ LOG | 12 ++++++++++++
+ csug/gifs/Makefile | 8 ++++----
+ csug/math/Makefile | 4 ++--
+ examples/Makefile | 2 +-
+ makefiles/Makefile-csug.in | 6 +++---
+ makefiles/Makefile-release_notes.in | 2 +-
+ makefiles/Mf-install.in | 4 ++--
+ makefiles/installsh | 3 ++-
+ mats/6.ms | 2 +-
+ mats/Mf-a6fb | 4 ++--
+ mats/Mf-a6le | 4 ++--
+ mats/Mf-a6nb | 4 ++--
+ mats/Mf-a6ob | 4 ++--
+ mats/Mf-a6osx | 4 ++--
+ mats/Mf-arm32le | 4 ++--
+ mats/Mf-i3fb | 4 ++--
+ mats/Mf-i3le | 4 ++--
+ mats/Mf-i3nb | 4 ++--
+ mats/Mf-i3ob | 4 ++--
+ mats/Mf-i3osx | 4 ++--
+ mats/Mf-i3qnx | 4 ++--
+ mats/Mf-ppc32le | 4 ++--
+ mats/Mf-ta6fb | 4 ++--
+ mats/Mf-ta6le | 4 ++--
+ mats/Mf-ta6nb | 4 ++--
+ mats/Mf-ta6ob | 4 ++--
+ mats/Mf-ta6osx | 4 ++--
+ mats/Mf-ti3fb | 4 ++--
+ mats/Mf-ti3le | 4 ++--
+ mats/Mf-ti3nb | 4 ++--
+ mats/Mf-ti3ob | 4 ++--
+ mats/Mf-ti3osx | 4 ++--
+ mats/Mf-tppc32le | 4 ++--
+ mats/unix.ms | 4 ++--
+ newrelease | 22 +++++++++++-----------
+ pkg/Makefile | 2 +-
+ release_notes/gifs/Makefile | 6 +++---
+ release_notes/math/Makefile | 4 ++--
+ s/Mf-base | 2 +-
+ workarea | 10 +++++-----
+ 40 files changed, 101 insertions(+), 88 deletions(-)
+
+diff --git a/LOG b/LOG
+index e1631df..399104d 100644
+--- a/LOG
++++ b/LOG
+@@ -2119,3 +2119,15 @@
+ bintar/Makefile rpm/Makefile pkg/Makefile wininstall/Makefile
+ wininstall/a6nt.wxs wininstall/i3nt.wxs wininstall/ta6nt.wxs
+ wininstall/ti3nt.wxs
++9.5.5 changes:
++- avoid hard-coded paths for utilities in build scripts
++ checkin csug/gifs/Makefile csug/math/Makefile examples/Makefile
++ makefiles/Makefile-csug.in makefiles/Makefile-release_notes.in
++ makefiles/Mf-install.in makefiles/installsh mats/6.ms mats/Mf-a6fb
++ mats/Mf-a6le mats/Mf-a6nb mats/Mf-a6ob mats/Mf-a6osx mats/Mf-arm32le
++ mats/Mf-i3fb mats/Mf-i3le mats/Mf-i3nb mats/Mf-i3ob mats/Mf-i3osx
++ mats/Mf-i3qnx mats/Mf-ppc32le mats/Mf-ta6fb mats/Mf-ta6le mats/Mf-ta6nb
++ mats/Mf-ta6ob mats/Mf-ta6osx mats/Mf-ti3fb mats/Mf-ti3le mats/Mf-ti3nb
++ mats/Mf-ti3ob mats/Mf-ti3osx mats/Mf-tppc32le mats/unix.ms newrelease
++ pkg/Makefile release_notes/gifs/Makefile release_notes/math/Makefile
++ s/Mf-base workarea
+diff --git a/csug/gifs/Makefile b/csug/gifs/Makefile
+index 8676e4c..4253ffd 100644
+--- a/csug/gifs/Makefile
++++ b/csug/gifs/Makefile
+@@ -18,7 +18,7 @@ density=-r90x90
+ ${density} - |\
+ pnmcrop |\
+ ppmtogif -transparent white > $*.gif
+- /bin/rm -f $*.dvi $*.log *.aux
++ rm -f $*.dvi $*.log *.aux
+ test -f $*.gif && chmod 644 $*.gif
+
+ # translate ps file to gif w/o transparent white background
+@@ -28,7 +28,7 @@ density=-r90x90
+ ${density} - |\
+ pnmcrop |\
+ ppmtogif > $*.gif
+- /bin/rm -f $*.dvi $*.log *.aux
++ rm -f $*.dvi $*.log *.aux
+ test -f $*.gif && chmod 644 $*.gif
+
+ all: ${gifs}
+@@ -57,7 +57,7 @@ ghostRightarrow.gif: Rightarrow.tex
+ giftrans -g '#000000=#ffffff' |\
+ giftopnm |\
+ ppmtogif -transparent white > $*.gif
+- /bin/rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux
++ rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux
+ test -f $*.gif && chmod 644 $*.gif
+
+-clean: ; /bin/rm -f *.gif Make.out
++clean: ; rm -f *.gif Make.out
+diff --git a/csug/math/Makefile b/csug/math/Makefile
+index 3385fdb..3392ea8 100644
+--- a/csug/math/Makefile
++++ b/csug/math/Makefile
+@@ -15,11 +15,11 @@ density=-r90x90
+ ${density} - |\
+ pnmcrop |\
+ ppmtogif -transparent white > $*.gif
+- /bin/rm -f $*.dvi $*.log $*.aux
++ rm -f $*.dvi $*.log $*.aux
+ test -f $*.gif && chmod 644 $*.gif
+
+ all: ${gifs}
+
+ ${gifs}: mathmacros
+
+-clean: ; /bin/rm -f *.gif Make.out
++clean: ; rm -f *.gif Make.out
+diff --git a/examples/Makefile b/examples/Makefile
+index b1b4e1d..3edfdd0 100644
+--- a/examples/Makefile
++++ b/examples/Makefile
+@@ -25,4 +25,4 @@ needed: ${obj}
+
+ all: ; echo "(time (for-each compile-file (map symbol->string '(${src}))))" | ${Scheme}
+
+-clean: ; /bin/rm -f $(obj) expr.md
++clean: ; rm -f $(obj) expr.md
+diff --git a/makefiles/Makefile-csug.in b/makefiles/Makefile-csug.in
+index df24092..6f8a8d9 100644
+--- a/makefiles/Makefile-csug.in
++++ b/makefiles/Makefile-csug.in
+@@ -29,7 +29,7 @@ install: target
+ # thrice is not enough when starting from scratch
+ logcheck1: $(x).thirdrun
+ @if [ -n "`grep 'Warning: Label(s) may have changed' $(x).log`" ] ; then\
+- /bin/rm -f $(x).thirdrun ;\
++ rm -f $(x).thirdrun ;\
+ $(MAKE) $(x).thirdrun;\
+ fi
+
+@@ -55,7 +55,7 @@ stexsrc = csug.stex title.stex copyright.stex contents.stex\
+ texsrc = ${stexsrc:%.stex=%.tex}
+
+ title.tex contents.tex bibliography.tex:
+- /bin/rm -f $*.tex
++ rm -f $*.tex
+ echo "%%% DO NOT EDIT THIS FILE" > $*.tex
+ echo "%%% Edit the .stex version instead" >> $*.tex
+ echo "" >> $*.tex
+@@ -147,7 +147,7 @@ code: $(stexsrc)
+ echo '(load "code" pretty-print)' | $(Scheme) -q
+
+ $(x).clean:
+- -/bin/rm -f $(x).rfm $(x).sfm $(x).prefirstrun $(x).presecondrun\
++ -rm -f $(x).rfm $(x).sfm $(x).prefirstrun $(x).presecondrun\
+ $(x).prethirdrun $(x).ans\
+ $(x).hprefirstrun $(x).hpresecondrun $(x).hprethirdrun\
+ tspl.aux tspl.haux tspl.rfm tspl.idx in.hidx\
+diff --git a/makefiles/Makefile-release_notes.in b/makefiles/Makefile-release_notes.in
+index 4435b6f..64348a4 100644
+--- a/makefiles/Makefile-release_notes.in
++++ b/makefiles/Makefile-release_notes.in
+@@ -38,7 +38,7 @@ install: $x.pdf $x.html
+ $(INSTALL) -m 2755 -d $(installdir)/gifs
+ $(INSTALL) -m 0644 --ifdiff gifs/*.gif $(installdir)/gifs
+ $(INSTALL) -m 2755 -d $(installdir)/math
+- -/bin/rm -rf $(installdir)/$(mathdir)
++ -rm -rf $(installdir)/$(mathdir)
+ $(INSTALL) -m 2755 -d $(installdir)/$(mathdir)
+ if [ -e $(mathdir)/0.gif ] ; then $(INSTALL) -m 0644 $(mathdir)/*.gif $(installdir)/$(mathdir) ; fi
+
+diff --git a/makefiles/Mf-install.in b/makefiles/Mf-install.in
+index a702c34..c09043d 100644
+--- a/makefiles/Mf-install.in
++++ b/makefiles/Mf-install.in
+@@ -114,12 +114,12 @@ bininstall: ${Bin}
+ libbininstall: ${LibBin}
+ $I -m 444 ${PetiteBoot} ${LibBin}/petite.boot
+ if [ "${InstallPetiteName}" != "petite" ]; then\
+- /bin/rm -f ${LibBin}/${InstallPetiteName}.boot;\
++ rm -f ${LibBin}/${InstallPetiteName}.boot;\
+ ln -f ${LibBin}/petite.boot ${LibBin}/${InstallPetiteName}.boot;\
+ fi
+ $I -m 444 ${SchemeBoot} ${LibBin}/scheme.boot;\
+ if [ "${InstallSchemeName}" != "scheme" ]; then\
+- /bin/rm -f ${LibBin}/${InstallSchemeName}.boot;\
++ rm -f ${LibBin}/${InstallSchemeName}.boot;\
+ ln -f ${LibBin}/scheme.boot ${LibBin}/${InstallSchemeName}.boot;\
+ fi
+ ln -f ${LibBin}/scheme.boot ${LibBin}/${InstallScriptName}.boot;
+diff --git a/makefiles/installsh b/makefiles/installsh
+index 48f1e46..95d85fb 100755
+--- a/makefiles/installsh
++++ b/makefiles/installsh
+@@ -1,7 +1,8 @@
+ #! /bin/sh
+ if [ -x /bin/true ]; then TRUE=/bin/true;
+ elif [ -x /usr/bin/true ]; then TRUE=/usr/bin/true;
+-else echo "Can't find /bin/true or /usr/bin/true" ; exit 1;
++elif command -v true &> /dev/null; then TRUE=true;
++else echo "Can't find /bin/true or /usr/bin/true and no true command" ; exit 1;
+ fi
+
+ while ${TRUE} ; do
+diff --git a/mats/6.ms b/mats/6.ms
+index 102f84b..e504230 100644
+--- a/mats/6.ms
++++ b/mats/6.ms
+@@ -2685,7 +2685,7 @@
+ (begin
+ (system "ln -s ../examples .")
+ (load "examples/fatfib.ss" compile)
+- (system "/bin/rm examples")
++ (system "rm -f examples")
+ #t))
+ (or (windows?) (embedded?)
+ (equal?
+diff --git a/mats/Mf-a6fb b/mats/Mf-a6fb
+index b16d1b6..ff9e687 100644
+--- a/mats/Mf-a6fb
++++ b/mats/Mf-a6fb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-a6le b/mats/Mf-a6le
+index d6fee09..a3bda76 100644
+--- a/mats/Mf-a6le
++++ b/mats/Mf-a6le
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m64 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m64 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-a6nb b/mats/Mf-a6nb
+index 48187ef..0f7ac17 100644
+--- a/mats/Mf-a6nb
++++ b/mats/Mf-a6nb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-a6ob b/mats/Mf-a6ob
+index 12758f3..0ffcccc 100644
+--- a/mats/Mf-a6ob
++++ b/mats/Mf-a6ob
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-a6osx b/mats/Mf-a6osx
+index f1dbf85..57bac22 100644
+--- a/mats/Mf-a6osx
++++ b/mats/Mf-a6osx
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m64 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m64 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-arm32le b/mats/Mf-arm32le
+index f33a665..83896eb 100644
+--- a/mats/Mf-arm32le
++++ b/mats/Mf-arm32le
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -fPIC -fomit-frame-pointer -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -fPIC -fomit-frame-pointer -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-i3fb b/mats/Mf-i3fb
+index 150cedb..1e4e8fc 100644
+--- a/mats/Mf-i3fb
++++ b/mats/Mf-i3fb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-i3le b/mats/Mf-i3le
+index 8f521c8..b248620 100644
+--- a/mats/Mf-i3le
++++ b/mats/Mf-i3le
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-i3nb b/mats/Mf-i3nb
+index e81f6ff..8afeb5c 100644
+--- a/mats/Mf-i3nb
++++ b/mats/Mf-i3nb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-i3ob b/mats/Mf-i3ob
+index 4e3ee1b..fcd4dee 100644
+--- a/mats/Mf-i3ob
++++ b/mats/Mf-i3ob
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-i3osx b/mats/Mf-i3osx
+index 53c7d4a..a55f6ee 100644
+--- a/mats/Mf-i3osx
++++ b/mats/Mf-i3osx
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m32 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m32 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-i3qnx b/mats/Mf-i3qnx
+index 724f2db..3e1437a 100644
+--- a/mats/Mf-i3qnx
++++ b/mats/Mf-i3qnx
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ppc32le b/mats/Mf-ppc32le
+index 28151a8..547ca00 100644
+--- a/mats/Mf-ppc32le
++++ b/mats/Mf-ppc32le
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ta6fb b/mats/Mf-ta6fb
+index 921d609..5ed233e 100644
+--- a/mats/Mf-ta6fb
++++ b/mats/Mf-ta6fb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ta6le b/mats/Mf-ta6le
+index cd014ec..21c686a 100644
+--- a/mats/Mf-ta6le
++++ b/mats/Mf-ta6le
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m64 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m64 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ta6nb b/mats/Mf-ta6nb
+index 6b1929d..9b9b898 100644
+--- a/mats/Mf-ta6nb
++++ b/mats/Mf-ta6nb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ta6ob b/mats/Mf-ta6ob
+index a7aee91..8f25aed 100644
+--- a/mats/Mf-ta6ob
++++ b/mats/Mf-ta6ob
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ta6osx b/mats/Mf-ta6osx
+index 42da5d7..0dd386f 100644
+--- a/mats/Mf-ta6osx
++++ b/mats/Mf-ta6osx
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m64 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m64 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ti3fb b/mats/Mf-ti3fb
+index c891145..56bf7d3 100644
+--- a/mats/Mf-ti3fb
++++ b/mats/Mf-ti3fb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ti3le b/mats/Mf-ti3le
+index 12e77b8..22b4148 100644
+--- a/mats/Mf-ti3le
++++ b/mats/Mf-ti3le
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ti3nb b/mats/Mf-ti3nb
+index 028c652..573946e 100644
+--- a/mats/Mf-ti3nb
++++ b/mats/Mf-ti3nb
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ti3ob b/mats/Mf-ti3ob
+index 8a4741c..4472b60 100644
+--- a/mats/Mf-ti3ob
++++ b/mats/Mf-ti3ob
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-ti3osx b/mats/Mf-ti3osx
+index 6913c34..9273b44 100644
+--- a/mats/Mf-ti3osx
++++ b/mats/Mf-ti3osx
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m32 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m32 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/Mf-tppc32le b/mats/Mf-tppc32le
+index a12b515..8b9d9f0 100644
+--- a/mats/Mf-tppc32le
++++ b/mats/Mf-tppc32le
+@@ -21,7 +21,7 @@ fobj = foreign1.so
+ include Mf-base
+
+ foreign1.so: ${fsrc} ../boot/$m/scheme.h
+- cc -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
++ $(CC) -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc}
+
+ cat_flush: cat_flush.c
+- cc -o cat_flush cat_flush.c
++ $(CC) -o cat_flush cat_flush.c
+diff --git a/mats/unix.ms b/mats/unix.ms
+index cfba3e7..db7f6f9 100644
+--- a/mats/unix.ms
++++ b/mats/unix.ms
+@@ -72,8 +72,8 @@
+ (mat system
+ (eqv? (with-output-to-file "testfile.ss" void '(replace)) (void))
+ (begin
+- (system (format "~:[~;/pkg~]/bin/rm testfile.ss" (embedded?)))
+- (system (format "~:[~;/pkg~]/bin/echo hello > testfile.ss" (embedded?)))
++ (system "rm -f testfile.ss")
++ (system "echo hello > testfile.ss")
+ (let ([p (open-input-file "testfile.ss")])
+ (and (eq? (read p) 'hello)
+ (begin (close-input-port p) #t))))
+diff --git a/newrelease b/newrelease
+index e903956..2d06740 100755
+--- a/newrelease
++++ b/newrelease
+@@ -75,13 +75,13 @@ if ($status != 0) exit 1
+
+ cd $W
+
+-/bin/rm -f BUILDING
++rm -f BUILDING
+ sed -e "s/Chez Scheme Version [^ ]*/Chez Scheme Version $R/" \
+ -e "s/Copyright 1984-.... /Copyright 1984-`date +%Y` /" \
+ ../BUILDING > BUILDING
+ set updatedfiles = ($updatedfiles BUILDING)
+
+-/bin/rm -f NOTICE
++rm -f NOTICE
+ sed -e "s/Chez Scheme Version [^ ]*/Chez Scheme Version $R/" \
+ -e "s/Copyright 1984-.... /Copyright 1984-`date +%Y` /" \
+ ../NOTICE > NOTICE
+@@ -92,19 +92,19 @@ sed -e "s/csv[0-9]\.[0-9]\(\.[0-9]\)*/csv$R/" ../makefiles/Mf-install.in > makef
+ sed -e "s/csug[0-9]\.[0-9]/csug$MR.$mR/" -e "s/csug[0-9]_[0-9]/csug$MR""_$mR/" ../makefiles/Makefile-csug.in > makefiles/Makefile-csug.in
+ set updatedfiles = ($updatedfiles makefiles/Mf-install.in makefiles/Makefile-csug.in)
+
+-/bin/rm scheme.1.in
++rm -f scheme.1.in
+ sed -e "s/Chez Scheme Version [0-9]\.[0-9]\(\.[0-9]\)* .* [0-9][0-9]*/Chez Scheme Version $R `date +'%B %Y'`/" \
+ -e "s/Copyright .* Cisco Systems, Inc./Copyright `date +%Y` Cisco Systems, Inc./" \
+ ../scheme.1.in > scheme.1.in
+ set updatedfiles = ($updatedfiles scheme.1.in)
+
+-/bin/rm -f c/Makefile.{,t}{i3,a6}nt
++rm -f c/Makefile.{,t}{i3,a6}nt
+ foreach fn (c/Makefile.{,t}{a6,i3}nt)
+ set updatedfiles = ($updatedfiles $fn)
+ sed -e "s/csv[0-9][0-9][0-9]*/csv$ZR/g" ../$fn > $fn
+ end
+
+-/bin/rm -f mats/Mf-{,t}{i3,a6}nt
++rm -f mats/Mf-{,t}{i3,a6}nt
+ foreach fn (mats/Mf-{,t}{a6,i3}nt)
+ set updatedfiles = ($updatedfiles $fn)
+ sed -e "s/csv[0-9][0-9][0-9]*/csv$ZR/g" ../$fn > $fn
+@@ -123,11 +123,11 @@ sed -e "s/FILEVERSION .*/FILEVERSION $RCVERSION/"\
+ -e "s/Copyright 1984-..../Copyright 1984-`date +%Y`/g" ../c/scheme.rc > c/scheme.rc
+ set updatedfiles = ($updatedfiles c/scheme.rc)
+
+-/bin/rm -f s/7.ss
++rm -f s/7.ss
+ sed -e "s/nCopyright 1984-..../nCopyright 1984-`date +%Y`/g" ../s/7.ss > s/7.ss
+ set updatedfiles = ($updatedfiles s/7.ss)
+
+-/bin/rm -f s/cmacros.ss
++rm -f s/cmacros.ss
+ set VNUM = `printf "%04x%02x%02x" $MR $mR $bR`
+ sed -e "s/scheme-version #x......../scheme-version #x$VNUM/" ../s/cmacros.ss > s/cmacros.ss
+ set updatedfiles = ($updatedfiles s/cmacros.ss)
+@@ -146,17 +146,17 @@ sed -e "s/Revised\(.*\)for Chez Scheme Version [^ ]*<br>/Revised\1for Chez Schem
+ ../csug/csug.stex > csug/csug.stex
+ set updatedfiles = ($updatedfiles csug/copyright.stex csug/csug.stex)
+
+-/bin/rm bintar/Makefile
++rm -f bintar/Makefile
+ sed -e "s/^version = .*/version = $R/" \
+ -e "s/csv[0-9][0-9][0-9]*/csv$ZR/g" \
+ ../bintar/Makefile > bintar/Makefile
+ set updatedfiles = ($updatedfiles bintar/Makefile)
+
+-/bin/rm rpm/Makefile
++rm -f rpm/Makefile
+ sed -e "s/^version = .*/version = $R/" ../rpm/Makefile > rpm/Makefile
+ set updatedfiles = ($updatedfiles rpm/Makefile)
+
+-/bin/rm pkg/Makefile
++rm -f pkg/Makefile
+ sed -e "s/^version = .*/version = $R/" \
+ -e "s/&copy; .* Cisco Systems/\&copy; `date +%Y` Cisco Systems/" \
+ ../pkg/Makefile > pkg/Makefile
+@@ -170,7 +170,7 @@ foreach fn (wininstall/{,t}{a6,i3}nt.wxs)
+ sed -e "s/csv[0-9][0-9][0-9]*/csv$ZR/" ../$fn > $fn
+ end
+
+-/bin/rm LOG
++rm -f LOG
+ cat ../LOG > LOG
+ echo "" >> LOG
+ echo "$R changes:" >> LOG
+diff --git a/pkg/Makefile b/pkg/Makefile
+index e0eef67..a3fe83f 100644
+--- a/pkg/Makefile
++++ b/pkg/Makefile
+@@ -39,7 +39,7 @@ $(PKG): $(BUILDROOT)/$(PKG)
+ --package-path $(BUILDROOT)\
+ $(PKG)
+ sudo chown $(DOTUSER):$(DOTGROUP) $(PKG)
+- sudo /bin/rm -rf $(RELEASE) $(BUILDROOT)
++ sudo rm -rf $(RELEASE) $(BUILDROOT)
+
+ $(BUILDROOT)/$(PKG): $(PKGCONTENT)
+ sudo /usr/bin/pkgbuild\
+diff --git a/release_notes/gifs/Makefile b/release_notes/gifs/Makefile
+index 9572965..701d53a 100644
+--- a/release_notes/gifs/Makefile
++++ b/release_notes/gifs/Makefile
+@@ -15,7 +15,7 @@ density=-r90x90
+ ${density} - |\
+ pnmcrop |\
+ ppmtogif -transparent white > $*.gif
+- /bin/rm -f $*.dvi $*.log *.aux
++ rm -f $*.dvi $*.log *.aux
+ test -f $*.gif && chmod 644 $*.gif
+
+ all: ${gifs}
+@@ -44,7 +44,7 @@ ghostRightarrow.gif: Rightarrow.tex
+ giftrans -g '#000000=#ffffff' |\
+ giftopnm |\
+ ppmtogif -transparent white > $*.gif
+- /bin/rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux
++ rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux
+ test -f $*.gif && chmod 644 $*.gif
+
+-clean: ; /bin/rm -f *.gif Make.out
++clean: ; rm -f *.gif Make.out
+diff --git a/release_notes/math/Makefile b/release_notes/math/Makefile
+index b3ffae3..9eca430 100644
+--- a/release_notes/math/Makefile
++++ b/release_notes/math/Makefile
+@@ -16,11 +16,11 @@ density=-r90x90
+ ${density} - |\
+ pnmcrop |\
+ ppmtogif -transparent white > $*.gif
+- /bin/rm -f $*.dvi $*.log $*.aux
++ rm -f $*.dvi $*.log $*.aux
+ test -f $*.gif && chmod 644 $*.gif
+
+ all: ${gifs}
+
+ ${gifs}: mathmacros
+
+-clean: ; /bin/rm -f *.gif Make.out
++clean: ; rm -f *.gif Make.out
+diff --git a/s/Mf-base b/s/Mf-base
+index c709608..40d816c 100644
+--- a/s/Mf-base
++++ b/s/Mf-base
+@@ -206,7 +206,7 @@ profiled:
+ $(MAKE) all loadspd=t bp=t PetiteBoot=../boot/$m/xpetite.boot SchemeBoot=../boot/$m/xscheme.boot
+ $(MAKE) prettyclean
+ $(MAKE) io.$m loadspd=t dumpbpd=t Scheme="../bin/$m/scheme -b ../boot/$m/xpetite.boot -b ../boot/$m/xscheme.boot"
+- /bin/rm -f ../boot/$m/xpetite.boot ../boot/$m/xscheme.boot
++ rm -f ../boot/$m/xpetite.boot ../boot/$m/xscheme.boot
+ $(MAKE) prettyclean
+ $(MAKE) all loadspd=t loadbpd=t
+
+diff --git a/workarea b/workarea
+index bacc712..0461919 100755
+--- a/workarea
++++ b/workarea
+@@ -70,9 +70,9 @@ esac
+
+ if [ "$OS" = "Windows_NT" ]
+ then
+- ln="/bin/cp -R"
++ ln="cp -R"
+ else
+- ln="/bin/ln -s"
++ ln="ln -s"
+ fi
+
+ # This shell script creates a workarea for local modifications to the
+@@ -102,7 +102,7 @@ workln()
+ forceworkln()
+ {
+ if [ ! -e $2 ] ; then
+- /bin/ln -s $1 $2 2> /dev/null
++ ln -s $1 $2 2> /dev/null
+ fi
+ }
+
+@@ -168,13 +168,13 @@ done
+ # deep copy submodules where builds occur so changes don't propagate through symlinks
+ for dir in `echo zlib` ; do
+ if [ ! -e $W/$dir ] ; then
+- /bin/cp -R $dir $W/$dir
++ cp -R $dir $W/$dir
+ fi
+ done
+
+ for dir in `echo lz4` ; do
+ if [ ! -e $W/$dir ] ; then
+- /bin/cp -R $dir $W/$dir
++ cp -R $dir $W/$dir
+ fi
+ done
+
+--
+2.21.1 (Apple Git-122.3)
+
diff --git a/gnu/packages/patches/containerd-test-with-go1.13.patch b/gnu/packages/patches/containerd-test-with-go1.13.patch
deleted file mode 100644
index 964adee9e6..0000000000
--- a/gnu/packages/patches/containerd-test-with-go1.13.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Compatibility fix for go 1.13, flag.Parse() shouldn't be called during
-package initialization.
-https://golang.org/doc/go1.13#testing
---- a/client_test.go 2020-02-12 14:50:28.991245371 -0500
-+++ b/client_test.go 2020-02-12 15:12:37.383523980 -0500
-@@ -49,7 +49,6 @@
- flag.StringVar(&address, "address", defaultAddress, "The address to the containerd socket for use in the tests")
- flag.BoolVar(&noDaemon, "no-daemon", false, "Do not start a dedicated daemon for the tests")
- flag.BoolVar(&noCriu, "no-criu", false, "Do not run the checkpoint tests")
-- flag.Parse()
- }
-
- func testContext() (context.Context, context.CancelFunc) {
-@@ -59,6 +58,7 @@
- }
-
- func TestMain(m *testing.M) {
-+ flag.Parse()
- if testing.Short() {
- os.Exit(m.Run())
- }
diff --git a/gnu/packages/patches/curl-7.76-use-ssl-cert-env.patch b/gnu/packages/patches/curl-7.76-use-ssl-cert-env.patch
new file mode 100644
index 0000000000..24be6e31d9
--- /dev/null
+++ b/gnu/packages/patches/curl-7.76-use-ssl-cert-env.patch
@@ -0,0 +1,64 @@
+Make libcurl respect the SSL_CERT_{DIR,FILE} variables by default. The variables
+are fetched during initialization to preserve thread-safety (curl_global_init(3)
+must be called when no other threads exist).
+
+This fixes network functionality in rust:cargo, and probably removes the need
+for other future workarounds.
+===================================================================
+--- curl-7.66.0.orig/lib/easy.c 2020-01-02 15:43:11.883921171 +0100
++++ curl-7.66.0/lib/easy.c 2020-01-02 16:18:54.691882797 +0100
+@@ -134,6 +134,9 @@
+ # pragma warning(default:4232) /* MSVC extension, dllimport identity */
+ #endif
+
++char * Curl_ssl_cert_dir = NULL;
++char * Curl_ssl_cert_file = NULL;
++
+ /**
+ * curl_global_init() globally initializes curl given a bitwise set of the
+ * different features of what to initialize.
+@@ -155,6 +158,9 @@
+ #endif
+ }
+
++ Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR");
++ Curl_ssl_cert_file = curl_getenv("SSL_CERT_FILE");
++
+ if(!Curl_ssl_init()) {
+ DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n"));
+ return CURLE_FAILED_INIT;
+@@ -260,6 +266,9 @@
+ Curl_ssl_cleanup();
+ Curl_resolver_global_cleanup();
+
++ free(Curl_ssl_cert_dir);
++ free(Curl_ssl_cert_file);
++
+ #ifdef WIN32
+ Curl_win32_cleanup(init_flags);
+ #endif
+diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c
+--- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100
++++ curl-7.66.0/lib/url.c 2020-01-02 16:21:11.563880346 +0100
+@@ -524,6 +524,21 @@
+ if(result)
+ return result;
+ #endif
++ extern char * Curl_ssl_cert_dir;
++ extern char * Curl_ssl_cert_file;
++ if(Curl_ssl_cert_dir) {
++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH], Curl_ssl_cert_dir))
++ return result;
++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_PROXY], Curl_ssl_cert_dir))
++ return result;
++ }
++
++ if(Curl_ssl_cert_file) {
++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE], Curl_ssl_cert_file))
++ return result;
++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_PROXY], Curl_ssl_cert_file))
++ return result;
++ }
+ }
+
+ set->wildcard_enabled = FALSE;
diff --git a/gnu/packages/patches/efibootmgr-remove-extra-decl.patch b/gnu/packages/patches/efibootmgr-remove-extra-decl.patch
new file mode 100644
index 0000000000..eb68108f88
--- /dev/null
+++ b/gnu/packages/patches/efibootmgr-remove-extra-decl.patch
@@ -0,0 +1,27 @@
+From 99b578501643377e0b1994b2a068b790d189d5ad Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Wed, 13 Jun 2018 09:41:01 -0400
+Subject: [PATCH] remove extra decl
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+---
+ src/efibootmgr.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/efibootmgr.c b/src/efibootmgr.c
+index de38f01..4e1a680 100644
+--- a/src/efibootmgr.c
++++ b/src/efibootmgr.c
+@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv)
+ "invalid numeric value %s\n",
+ optarg);
+ }
+- /* XXX efivar-36 accidentally doesn't have a public
+- * header for this */
+- extern int efi_set_verbose(int verbosity, FILE *errlog);
+ efi_set_verbose(opts.verbose - 2, stderr);
+ break;
+ case 'V':
+--
+2.24.0
+
diff --git a/gnu/packages/patches/gimp-make-gegl-introspect-optional.patch b/gnu/packages/patches/gimp-make-gegl-introspect-optional.patch
new file mode 100644
index 0000000000..4dd1ab74a8
--- /dev/null
+++ b/gnu/packages/patches/gimp-make-gegl-introspect-optional.patch
@@ -0,0 +1,43 @@
+From 2cae9b9acf9da98c4c9990819ffbd5aabe23017e Mon Sep 17 00:00:00 2001
+From: Jehan <jehan@girinstud.io>
+Date: Mon, 14 Dec 2020 19:53:38 +0100
+Subject: [PATCH] app: make "gegl:introspect" an optional operation dependency.
+
+Check at runtime for the operation availability and set the "Show Image
+Graph" action active depending on this check.
+
+This goes with discussions to make this operation optional with a
+runtime check for the tool `dot`.
+See: https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/84
+---
+ app/actions/debug-actions.c | 6 ++++++
+ app/sanity.c | 1 -
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/app/actions/debug-actions.c b/app/actions/debug-actions.c
+index 6be4422b228..22ca38b15ea 100644
+--- a/app/actions/debug-actions.c
++++ b/app/actions/debug-actions.c
+@@ -103,4 +103,10 @@ void
+ debug_actions_update (GimpActionGroup *group,
+ gpointer data)
+ {
++#define SET_SENSITIVE(action,condition) \
++ gimp_action_group_set_action_sensitive (group, action, (condition) != 0)
++
++ SET_SENSITIVE ("debug-show-image-graph", gegl_has_operation ("gegl:introspect"));
++
++#undef SET_SENSITIVE
+ }
+diff --git a/app/sanity.c b/app/sanity.c
+index 015801a396e..6374ac1ad20 100644
+--- a/app/sanity.c
++++ b/app/sanity.c
+@@ -650,7 +650,6 @@ sanity_check_gegl_ops (void)
+ "gegl:hue-chroma",
+ "gegl:illusion",
+ "gegl:image-gradient",
+- "gegl:introspect",
+ "gegl:invert-gamma",
+ "gegl:invert-linear",
+ "gegl:lens-blur",
diff --git a/gnu/packages/patches/glibc-ldd-powerpc.patch b/gnu/packages/patches/glibc-ldd-powerpc.patch
new file mode 100644
index 0000000000..8e899ee99b
--- /dev/null
+++ b/gnu/packages/patches/glibc-ldd-powerpc.patch
@@ -0,0 +1,10 @@
+diff -r -U3 a/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
+--- a/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed 1970-01-01 01:00:00.000000000 +0100
++++ b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed 2020-02-29 00:15:41.080000000 +0100
+@@ -11,5 +11,5 @@
+ # this works for /lib64/ld64.so.x and /lib/ld.so.x as input
+ s_lib64_lib_
+ s_64\.so_\.so_
+-s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \164\264\3"_
++s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \1\264\3"_
+
diff --git a/gnu/packages/patches/imagemagick-CVE-2020-27829.patch b/gnu/packages/patches/imagemagick-CVE-2020-27829.patch
new file mode 100644
index 0000000000..b15c1d0879
--- /dev/null
+++ b/gnu/packages/patches/imagemagick-CVE-2020-27829.patch
@@ -0,0 +1,27 @@
+We omit the ChangeLog changes below, since they do not apply cleanly.
+
+
+From 6ee5059cd3ac8d82714a1ab1321399b88539abf0 Mon Sep 17 00:00:00 2001
+From: Cristy <urban-warrior@imagemagick.org>
+Date: Mon, 30 Nov 2020 16:26:59 +0000
+Subject: [PATCH] possible TIFF related-heap buffer overflow (alert & POC by
+ Hardik Shah)
+
+---
+ ChangeLog | 6 ++++++
+ coders/tiff.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/coders/tiff.c b/coders/tiff.c
+index e98f927ab..1eecf17ae 100644
+--- a/coders/tiff.c
++++ b/coders/tiff.c
+@@ -1975,7 +1975,7 @@ static Image *ReadTIFFImage(const ImageInfo *image_info,
+ extent+=image->columns*sizeof(uint32);
+ #endif
+ strip_pixels=(unsigned char *) AcquireQuantumMemory(extent,
+- sizeof(*strip_pixels));
++ 2*sizeof(*strip_pixels));
+ if (strip_pixels == (unsigned char *) NULL)
+ ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
+ (void) memset(strip_pixels,0,extent*sizeof(*strip_pixels));
diff --git a/gnu/packages/patches/imagemagick-ReadDCMImage-fix.patch b/gnu/packages/patches/imagemagick-ReadDCMImage-fix.patch
new file mode 100644
index 0000000000..42ece43682
--- /dev/null
+++ b/gnu/packages/patches/imagemagick-ReadDCMImage-fix.patch
@@ -0,0 +1,26 @@
+From 512668dfd92b20d0d08b91d62b422d8262573281 Mon Sep 17 00:00:00 2001
+From: Dirk Lemstra <dirk@lemstra.org>
+Date: Wed, 24 Mar 2021 20:37:15 +0100
+Subject: [PATCH] Throw exception when no exception was raised but status was
+ false (#3432).
+
+---
+ coders/dcm.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/coders/dcm.c b/coders/dcm.c
+index 7a68ed6e8..ed17c9567 100644
+--- a/coders/dcm.c
++++ b/coders/dcm.c
+@@ -3989,6 +3989,8 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
+ if (redmap != (int *) NULL)
+ redmap=(int *) RelinquishMagickMemory(redmap);
+ image=DestroyImageList(image);
++ if ((status == MagickFalse) && (exception->severity < ErrorException))
++ ThrowReaderException(CorruptImageError,"CorruptImage");
+ return(GetFirstImageInList(images));
+ }
+ if (info.depth != (1UL*MAGICKCORE_QUANTUM_DEPTH))
+--
+2.31.0
+
diff --git a/gnu/packages/patches/imagemagick-ReadDCMPixels-fix.patch b/gnu/packages/patches/imagemagick-ReadDCMPixels-fix.patch
new file mode 100644
index 0000000000..a91999186b
--- /dev/null
+++ b/gnu/packages/patches/imagemagick-ReadDCMPixels-fix.patch
@@ -0,0 +1,35 @@
+From c8f25953ad1dd38a8b2d92738f0f742ad7e0bce7 Mon Sep 17 00:00:00 2001
+From: Cristy <mikayla-grace@urban-warrior.org>
+Date: Sun, 21 Mar 2021 21:21:15 -0400
+Subject: [PATCH] https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32322
+
+---
+ coders/dcm.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/coders/dcm.c b/coders/dcm.c
+index 29eed9618..7a68ed6e8 100644
+--- a/coders/dcm.c
++++ b/coders/dcm.c
+@@ -2984,12 +2984,12 @@ static MagickBooleanType ReadDCMPixels(Image *image,DCMInfo *info,
+ }
+ else
+ {
+- SetPixelRed(q,(Quantum) (((ssize_t) pixel.red) |
+- (((ssize_t) GetPixelRed(q)) << 8)));
+- SetPixelGreen(q,(Quantum) (((ssize_t) pixel.green) |
+- (((ssize_t) GetPixelGreen(q)) << 8)));
+- SetPixelBlue(q,(Quantum) (((ssize_t) pixel.blue) |
+- (((ssize_t) GetPixelBlue(q)) << 8)));
++ SetPixelRed(q,(Quantum) (((size_t) pixel.red) |
++ (((size_t) GetPixelRed(q)) << 8)));
++ SetPixelGreen(q,(Quantum) (((size_t) pixel.green) |
++ (((size_t) GetPixelGreen(q)) << 8)));
++ SetPixelBlue(q,(Quantum) (((size_t) pixel.blue) |
++ (((size_t) GetPixelBlue(q)) << 8)));
+ }
+ q++;
+ }
+--
+2.31.0
+
diff --git a/gnu/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch b/gnu/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch
new file mode 100644
index 0000000000..f38a45b800
--- /dev/null
+++ b/gnu/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch
@@ -0,0 +1,25 @@
+From 6a5d3575487487f2703383338bd17c8c25068f19 Mon Sep 17 00:00:00 2001
+From: Cristy <mikayla-grace@urban-warrior.org>
+Date: Thu, 25 Mar 2021 08:58:18 -0400
+Subject: [PATCH] eliminate compiler warning
+
+---
+ coders/thumbnail.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/coders/thumbnail.c b/coders/thumbnail.c
+index 3833341b0..1e2bfe8c2 100644
+--- a/coders/thumbnail.c
++++ b/coders/thumbnail.c
+@@ -199,7 +199,7 @@ static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info,
+ q++;
+ }
+ if ((q > (GetStringInfoDatum(profile)+GetStringInfoLength(profile))) ||
+- (length > (GetStringInfoDatum(profile)+GetStringInfoLength(profile)-q)))
++ ((ssize_t) length > (GetStringInfoDatum(profile)+GetStringInfoLength(profile)-q)))
+ ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail");
+ thumbnail_image=BlobToImage(image_info,q,length,&image->exception);
+ if (thumbnail_image == (Image *) NULL)
+--
+2.31.0
+
diff --git a/gnu/packages/patches/libvirt-add-install-prefix.patch b/gnu/packages/patches/libvirt-add-install-prefix.patch
new file mode 100644
index 0000000000..1331fa9b6f
--- /dev/null
+++ b/gnu/packages/patches/libvirt-add-install-prefix.patch
@@ -0,0 +1,329 @@
+Patch from NixOS:
+https://raw.githubusercontent.com/NixOS/nixpkgs/b98031a49c66095dd1eb9185ecdaeeb5e3cd752d/pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
+
+From a896b0be849455edb83a9305dfec9b41447ef3e4 Mon Sep 17 00:00:00 2001
+From: Euan Kemp <euank@euank.com>
+Date: Thu, 14 Jan 2021 00:32:00 -0800
+Subject: [PATCH] meson: patch in an install prefix for building on nix
+
+Used in the nixpkgs version of libvirt so that we can install things in
+the nix store, but read them from the root filesystem.
+---
+ meson.build | 9 +++++++++
+ meson_options.txt | 2 ++
+ src/libxl/meson.build | 6 +++---
+ src/locking/meson.build | 8 ++++----
+ src/lxc/meson.build | 6 +++---
+ src/meson.build | 18 +++++++++---------
+ src/network/meson.build | 12 ++++++------
+ src/nwfilter/xml/meson.build | 2 +-
+ src/qemu/meson.build | 14 +++++++-------
+ src/remote/meson.build | 6 +++---
+ src/security/apparmor/meson.build | 8 ++++----
+ tools/meson.build | 4 ++--
+ 12 files changed, 53 insertions(+), 42 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index b5164f6..33719f1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -39,6 +39,8 @@ if host_machine.system() == 'windows'
+ conf.set('WINVER', '0x0600') # Win Vista / Server 2008
+ endif
+
++# patched in for nix
++install_prefix = get_option('install_prefix')
+
+ # set various paths
+
+@@ -57,6 +59,13 @@ else
+ sysconfdir = prefix / get_option('sysconfdir')
+ endif
+
++# nix: don't prefix the localstatedir; some things need to write to it, so it
++# can't be in the nix store, and that's what the prefix is.
++# We'll prefix things ourselves where needed
++localstatedir = get_option('localstatedir')
++# Same for sysconfidr
++sysconfdir = get_option('sysconfdir')
++
+ # if --prefix is /usr, don't use /usr/var for localstatedir or /usr/etc for
+ # sysconfdir as this makes a lot of things break in testing situations
+ if prefix == '/usr'
+diff --git a/meson_options.txt b/meson_options.txt
+index e5d79c2..081cd32 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,3 +1,5 @@
++option('install_prefix', type: 'string', value: '', description: 'prefix for nix store installation')
++
+ option('no_git', type: 'boolean', value: false, description: 'Disable git submodule update')
+ option('packager', type: 'string', value: '', description: 'Extra packager name')
+ option('packager_version', type: 'string', value: '', description: 'Extra packager version')
+diff --git a/src/libxl/meson.build b/src/libxl/meson.build
+index 3bb6cc5..78d7be0 100644
+--- a/src/libxl/meson.build
++++ b/src/libxl/meson.build
+@@ -84,8 +84,8 @@ if conf.has('WITH_LIBXL')
+ }
+
+ virt_install_dirs += [
+- localstatedir / 'lib' / 'libvirt' / 'libxl',
+- runstatedir / 'libvirt' / 'libxl',
+- localstatedir / 'log' / 'libvirt' / 'libxl',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl',
++ install_prefix + runstatedir / 'libvirt' / 'libxl',
++ install_prefix + localstatedir / 'log' / 'libvirt' / 'libxl',
+ ]
+ endif
+diff --git a/src/locking/meson.build b/src/locking/meson.build
+index 8a28310..9da81cc 100644
+--- a/src/locking/meson.build
++++ b/src/locking/meson.build
+@@ -243,14 +243,14 @@ if conf.has('WITH_LIBVIRTD')
+ }
+
+ virt_install_dirs += [
+- localstatedir / 'lib' / 'libvirt' / 'lockd',
+- localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files',
+- runstatedir / 'libvirt' / 'lockd',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'lockd',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files',
++ install_prefix + runstatedir / 'libvirt' / 'lockd',
+ ]
+
+ if conf.has('WITH_SANLOCK')
+ virt_install_dirs += [
+- localstatedir / 'lib' / 'libvirt' / 'sanlock',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'sanlock',
+ ]
+ endif
+ endif
+diff --git a/src/lxc/meson.build b/src/lxc/meson.build
+index f8e2a88..96d6687 100644
+--- a/src/lxc/meson.build
++++ b/src/lxc/meson.build
+@@ -182,8 +182,8 @@ if conf.has('WITH_LXC')
+ }
+
+ virt_install_dirs += [
+- localstatedir / 'lib' / 'libvirt' / 'lxc',
+- runstatedir / 'libvirt' / 'lxc',
+- localstatedir / 'log' / 'libvirt' / 'lxc',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'lxc',
++ install_prefix + runstatedir / 'libvirt' / 'lxc',
++ install_prefix + localstatedir / 'log' / 'libvirt' / 'lxc',
+ ]
+ endif
+diff --git a/src/meson.build b/src/meson.build
+index 7c47821..d33d16a 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -669,7 +669,7 @@ endforeach
+
+ virt_conf_files += 'libvirt.conf'
+
+-install_data(virt_conf_files, install_dir: confdir)
++install_data(virt_conf_files, install_dir: install_prefix + confdir)
+ install_data(virt_aug_files, install_dir: virt_aug_dir)
+
+ # augeas_test_data:
+@@ -729,7 +729,7 @@ foreach data : virt_daemon_confs
+ output: '@0@.conf'.format(data['name']),
+ configuration: daemon_conf,
+ install: true,
+- install_dir: confdir,
++ install_dir: install_prefix + confdir,
+ )
+
+ if data.get('with_ip', false)
+@@ -853,14 +853,14 @@ if conf.has('WITH_LIBVIRTD')
+
+ install_data(
+ init_file,
+- install_dir: sysconfdir / 'init.d',
++ install_dir: install_prefix + sysconfdir / 'init.d',
+ rename: [ init['name'] ],
+ )
+
+ if init.has_key('confd')
+ install_data(
+ init['confd'],
+- install_dir: sysconfdir / 'conf.d',
++ install_dir: install_prefix + sysconfdir / 'conf.d',
+ rename: [ init['name'] ],
+ )
+ endif
+@@ -872,7 +872,7 @@ if init_script != 'none'
+ foreach sysconf : sysconf_files
+ install_data(
+ sysconf['file'],
+- install_dir: sysconfdir / 'sysconfig',
++ install_dir: install_prefix + sysconfdir / 'sysconfig',
+ rename: [ sysconf['name'] ],
+ )
+ endforeach
+@@ -897,10 +897,10 @@ endif
+ # Install empty directories
+
+ virt_install_dirs += [
+- localstatedir / 'cache' / 'libvirt',
+- localstatedir / 'lib' / 'libvirt' / 'images',
+- localstatedir / 'lib' / 'libvirt' / 'filesystems',
+- localstatedir / 'lib' / 'libvirt' / 'boot',
++ install_prefix + localstatedir / 'cache' / 'libvirt',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'images',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'filesystems',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'boot',
+ ]
+
+ meson.add_install_script(
+diff --git a/src/network/meson.build b/src/network/meson.build
+index 3ec598c..b02040b 100644
+--- a/src/network/meson.build
++++ b/src/network/meson.build
+@@ -79,9 +79,9 @@ if conf.has('WITH_NETWORK')
+ }
+
+ virt_install_dirs += [
+- localstatedir / 'lib' / 'libvirt' / 'network',
+- localstatedir / 'lib' / 'libvirt' / 'dnsmasq',
+- runstatedir / 'libvirt' / 'network',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'network',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'dnsmasq',
++ install_prefix + runstatedir / 'libvirt' / 'network',
+ ]
+
+ configure_file(
+@@ -89,12 +89,12 @@ if conf.has('WITH_NETWORK')
+ output: '@BASENAME@',
+ copy: true,
+ install: true,
+- install_dir: confdir / 'qemu' / 'networks',
++ install_dir: install_prefix + confdir / 'qemu' / 'networks',
+ )
+
+ meson.add_install_script(
+ meson_python_prog.path(), python3_prog.path(), meson_install_symlink_prog.path(),
+- confdir / 'qemu' / 'networks' / 'autostart',
++ install_prefix + confdir / 'qemu' / 'networks' / 'autostart',
+ '../default.xml', 'default.xml',
+ )
+
+diff --git a/src/nwfilter/xml/meson.build b/src/nwfilter/xml/meson.build
+index 0d96c54..66c92a1 100644
+--- a/src/nwfilter/xml/meson.build
++++ b/src/nwfilter/xml/meson.build
+@@ -25,4 +25,4 @@ nwfilter_xml_files = [
+ 'qemu-announce-self.xml',
+ ]
+
+-install_data(nwfilter_xml_files, install_dir: sysconfdir / 'libvirt' / 'nwfilter')
++install_data(nwfilter_xml_files, install_dir: install_prefix + sysconfdir / 'libvirt' / 'nwfilter')
+diff --git a/src/qemu/meson.build b/src/qemu/meson.build
+index 90640b0..8802cec 100644
+--- a/src/qemu/meson.build
++++ b/src/qemu/meson.build
+@@ -171,12 +171,12 @@ if conf.has('WITH_QEMU')
+ }
+
+ virt_install_dirs += [
+- localstatedir / 'lib' / 'libvirt' / 'qemu',
+- runstatedir / 'libvirt' / 'qemu',
+- localstatedir / 'cache' / 'libvirt' / 'qemu',
+- localstatedir / 'log' / 'libvirt' / 'qemu',
+- localstatedir / 'lib' / 'libvirt' / 'swtpm',
+- runstatedir / 'libvirt' / 'qemu' / 'swtpm',
+- localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu',
++ install_prefix + runstatedir / 'libvirt' / 'qemu',
++ install_prefix + localstatedir / 'cache' / 'libvirt' / 'qemu',
++ install_prefix + localstatedir / 'log' / 'libvirt' / 'qemu',
++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'swtpm',
++ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'swtpm',
++ install_prefix + localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu',
+ ]
+ endif
+diff --git a/src/remote/meson.build b/src/remote/meson.build
+index 9ad2f6a..429a15b 100644
+--- a/src/remote/meson.build
++++ b/src/remote/meson.build
+@@ -245,7 +245,7 @@ if conf.has('WITH_REMOTE')
+ }
+
+ virt_install_dirs += [
+- localstatedir / 'log' / 'libvirt',
++ install_prefix + localstatedir / 'log' / 'libvirt',
+ ]
+
+ logrotate_conf = configuration_data()
+@@ -259,7 +259,7 @@ if conf.has('WITH_REMOTE')
+ )
+ install_data(
+ log_file,
+- install_dir: sysconfdir / 'logrotate.d',
++ install_dir: install_prefix + sysconfdir / 'logrotate.d',
+ rename: [ name ],
+ )
+ endforeach
+@@ -309,7 +309,7 @@ endif
+ if conf.has('WITH_SASL')
+ install_data(
+ 'libvirtd.sasl',
+- install_dir: sysconfdir / 'sasl2',
++ install_dir: install_prefix + sysconfdir / 'sasl2',
+ rename: [ 'libvirt.conf' ],
+ )
+ endif
+diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build
+index af43780..e2d6c81 100644
+--- a/src/security/apparmor/meson.build
++++ b/src/security/apparmor/meson.build
+@@ -17,22 +17,22 @@ foreach name : apparmor_gen_profiles
+ output: name,
+ configuration: apparmor_gen_profiles_conf,
+ install: true,
+- install_dir: apparmor_dir,
++ install_dir: install_prefix + apparmor_dir,
+ )
+ endforeach
+
+ install_data(
+ [ 'libvirt-qemu', 'libvirt-lxc' ],
+- install_dir: apparmor_dir / 'abstractions',
++ install_dir: install_prefix + apparmor_dir / 'abstractions',
+ )
+
+ install_data(
+ [ 'TEMPLATE.qemu', 'TEMPLATE.lxc' ],
+- install_dir: apparmor_dir / 'libvirt',
++ install_dir: install_prefix + apparmor_dir / 'libvirt',
+ )
+
+ install_data(
+ 'usr.lib.libvirt.virt-aa-helper.local',
+- install_dir: apparmor_dir / 'local',
++ install_dir: install_prefix + apparmor_dir / 'local',
+ rename: 'usr.lib.libvirt.virt-aa-helper',
+ )
+diff --git a/tools/meson.build b/tools/meson.build
+index b8c6802..dacd0ff 100644
+--- a/tools/meson.build
++++ b/tools/meson.build
+@@ -115,7 +115,7 @@ if conf.has('WITH_LOGIN_SHELL')
+ install_rpath: libvirt_rpath,
+ )
+
+- install_data('virt-login-shell.conf', install_dir: sysconfdir / 'libvirt')
++ install_data('virt-login-shell.conf', install_dir: install_prefix + sysconfdir / 'libvirt')
+ endif
+
+ if host_machine.system() == 'windows'
+@@ -274,7 +274,7 @@ configure_file(
+ if init_script == 'systemd'
+ install_data(
+ 'libvirt-guests.sysconf',
+- install_dir: sysconfdir / 'sysconfig',
++ install_dir: install_prefix + sysconfdir / 'sysconfig',
+ rename: 'libvirt-guests',
+ )
diff --git a/gnu/packages/patches/linphone-desktop-without-sdk.patch b/gnu/packages/patches/linphone-desktop-without-sdk.patch
new file mode 100644
index 0000000000..63e9808bf4
--- /dev/null
+++ b/gnu/packages/patches/linphone-desktop-without-sdk.patch
@@ -0,0 +1,235 @@
+From cfdf6d1c2051d6a20d0cbb94d81fe398f70dea4d Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <rg@raghavgururajan.name>
+Date: Sun, 21 Mar 2021 21:13:53 -0400
+Subject: [PATCH] [PATCH]: Fix building from git.
+
+---
+ CMakeLists.txt | 73 +------------------
+ linphone-app/CMakeLists.txt | 12 +--
+ .../cmake_builder/additional_steps.cmake | 2 +-
+ .../linphone_package/CMakeLists.txt | 38 ----------
+ linphone-app/linphoneqt_version.cmake | 1 +
+ linphone-app/src/config.h.cmake | 1 +
+ 6 files changed, 6 insertions(+), 121 deletions(-)
+ create mode 100644 linphone-app/linphoneqt_version.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f7eb05f2..3e853bdd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -48,16 +48,6 @@ project(linphoneqt)
+ include(GNUInstallDirs)
+ include(CheckCXXCompilerFlag)
+
+-# Prepare gobal CMAKE configuration specific to the current project
+-set(SDK_BUILD_DIR "${CMAKE_BINARY_DIR}/WORK") # SDK build in WORK. Keep all in it.
+-set(LINPHONE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/linphone-sdk/desktop")
+-
+-set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT")
+-
+-set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
+-string(REPLACE ";" "|" PREFIX_PATH "${CMAKE_PREFIX_PATH}")
+-#set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
+-
+ # Avoid cmake warning if CMP0071 is not set.
+ if (POLICY CMP0071)
+ cmake_policy(SET CMP0071 NEW)
+@@ -116,9 +106,6 @@ if(ENABLE_V4L)
+ endif()
+ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}")
+
+-list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
+-
+-include(ExternalProject)
+ set(PROJECT_BUILD_COMMAND "")
+ if(CMAKE_BUILD_PARALLEL_LEVEL)
+ list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}")
+@@ -133,32 +120,10 @@ if(CMAKE_VERBOSE_MAKEFILE)
+ endif()
+ endif()
+ if(UNIX AND NOT APPLE)
+- set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib:${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}")
+ list(APPEND APP_OPTIONS "-DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}")
+ endif()
+-ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk"
+- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk"
+- INSTALL_DIR "${LINPHONE_OUTPUT_DIR}"
+- STAMP_DIR "${SDK_BUILD_DIR}/stamp"
+- BINARY_DIR "${SDK_BUILD_DIR}"
+- STEP_TARGETS build
+- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
+- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
+- LIST_SEPARATOR | # Use the alternate list separator
+- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
+- #BUILD_ALWAYS NO #${DO_BUILD}
+-)
+-ExternalProject_Add_Step(sdk force_build
+- COMMENT "Forcing build for 'desktop'"
+- DEPENDEES configure
+- DEPENDERS build
+- ALWAYS 1
+-)
+ include(FindPkgConfig)
+
+-set(APP_DEPENDS sdk)
+-
+-
+ find_package(Qt5 5.12 COMPONENTS Core REQUIRED)
+
+ if ( NOT Qt5_FOUND )
+@@ -173,39 +138,5 @@ find_package(Mediastreamer2 CONFIG QUIET)
+ find_package(ortp CONFIG QUIET)
+
+
+-if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR FORCE_APP_EXTERNAL_PROJECTS)
+- message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target install")
+- ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
+- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
+- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
+- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app"
+- DEPENDS ${APP_DEPENDS}
+- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
+- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step will not be done by external project"
+- LIST_SEPARATOR | # Use the alternate list separator
+- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
+- # ${APP_OPTIONS}
+- BUILD_ALWAYS ON
+- )
+- install(CODE "message(STATUS Running install)")
+- set(AUTO_REGENERATION auto_regeneration)
+- add_custom_target(${AUTO_REGENERATION} ALL
+- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
+- DEPENDS linphone-qt)
+-else()
+- message("Adding Linphone Desktop in an IDE-friendly state")
+- set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
+- add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
+- add_dependencies(app-library ${APP_DEPENDS})
+-endif()
+-ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphone-app"
+- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app"
+- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
+- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app"
+- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
+-# INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time."
+- LIST_SEPARATOR | # Use the alternate list separator
+- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
+- EXCLUDE_FROM_ALL ON
+- BUILD_ALWAYS ON
+-)
++message("Adding Linphone Desktop in an IDE-friendly state")
++add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app)
+diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt
+index 3bc9420a..5267cd4a 100644
+--- a/linphone-app/CMakeLists.txt
++++ b/linphone-app/CMakeLists.txt
+@@ -21,17 +21,8 @@
+ ################################################################################
+ cmake_minimum_required(VERSION 3.1)
+
++include(linphoneqt_version.cmake)
+ find_package(bctoolbox CONFIG)
+-set(FULL_VERSION )
+-bc_compute_full_version(FULL_VERSION)
+-set(version_major )
+-set(version_minor )
+-set(version_patch )
+-set(identifiers )
+-set(metadata )
+-bc_parse_full_version("${FULL_VERSION}" version_major version_minor version_patch identifiers metadata)
+-
+-project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}")
+
+ if(ENABLE_BUILD_VERBOSE)
+ #message("CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}")
+@@ -49,7 +40,6 @@ if(UNIX AND NOT APPLE)
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+ endif()
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
+-list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/cmake")
+
+ set(APP_LIBRARY app-library)
+ include(application_info.cmake)
+diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake
+index 7f7fd573..48e3c716 100644
+--- a/linphone-app/cmake_builder/additional_steps.cmake
++++ b/linphone-app/cmake_builder/additional_steps.cmake
+@@ -61,7 +61,7 @@ if (ENABLE_PACKAGING)
+ SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/linphone_package"
+ DOWNLOAD_COMMAND ""
+ CMAKE_GENERATOR ${CMAKE_GENERATOR}
+- CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY}
++ CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY}
+ )
+ endif ()
+ endif ()
+diff --git a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
+index baea03cf..d06dcb74 100644
+--- a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
++++ b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt
+@@ -200,44 +200,6 @@ elseif (APPLE)
+ endif ()
+ # install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS)
+ else()# Not Windows and Apple
+- foreach (LIBRARY ${SHARED_LIBRARIES})
+- get_filename_component(LIBRARY_FILENAME ${LIBRARY} NAME)
+- message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}' to '$ORIGIN/../${CMAKE_INSTALL_LIBDIR}'")
+- execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}" "$ORIGIN/../lib" "${LIBRARY}")
+- execute_process(COMMAND install_name_tool -addrpath "$ORIGIN/../lib64" "${LIBRARY}")
+- endforeach ()
+- install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/" DESTINATION "${CMAKE_INSTALL_BINDIR}" USE_SOURCE_PERMISSIONS)
+-#Just in case. This is useless because we have to use CMAKE_INSTALL_LIBDIR
+- if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib/")
+- file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib/*.so*")
+- if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
+- foreach(item ${SHARED_LIBRARIES})
+- get_filename_component(LIBRARY_FILENAME ${item} NAME)
+- if("${LIBRARY_FILENAME}" MATCHES "^libopenh264.*$")
+- list(REMOVE_ITEM SHARED_LIBRARIES ${item})
+- endif()
+- endforeach(item)
+- endif()
+- install(FILES ${SHARED_LIBRARIES} DESTINATION "lib")
+- endif()
+- if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib64/")
+- file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib64/*.so*")
+- if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
+- foreach(item ${SHARED_LIBRARIES})
+- get_filename_component(LIBRARY_FILENAME ${item} NAME)
+- if("${LIBRARY_FILENAME}" MATCHES "^libopenh264.*$")
+- list(REMOVE_ITEM SHARED_LIBRARIES ${item})
+- endif()
+- endforeach(item)
+- endif()
+- install(FILES ${SHARED_LIBRARIES} DESTINATION "lib64")
+- endif()
+- install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
+- if(ENABLE_BUILD_VERBOSE)
+- message("INSTALLATION : ${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" )
+- endif()
+- file(GLOB PLUGINS_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer/plugins/*")
+- install(FILES ${PLUGINS_FILES} DESTINATION "plugins/mediastreamer/" )
+ # Install desktop/icon files.
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphone.desktop.cmake" "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" @ONLY)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications")
+diff --git a/linphone-app/linphoneqt_version.cmake b/linphone-app/linphoneqt_version.cmake
+new file mode 100644
+index 00000000..a85d3455
+--- /dev/null
++++ b/linphone-app/linphoneqt_version.cmake
+@@ -0,0 +1 @@
++project(linphoneqt VERSION ${GUIX-SET-VERSION})
+\ No newline at end of file
+diff --git a/linphone-app/src/config.h.cmake b/linphone-app/src/config.h.cmake
+index 093539e0..5a238c70 100644
+--- a/linphone-app/src/config.h.cmake
++++ b/linphone-app/src/config.h.cmake
+@@ -28,3 +28,4 @@
+ #cmakedefine ENABLE_UPDATE_CHECK 1
+ #cmakedefine EXECUTABLE_NAME "${EXECUTABLE_NAME}"
+ #cmakedefine MSPLUGINS_DIR "${MSPLUGINS_DIR}"
++#define LINPHONE_QT_GIT_VERSION "${PROJECT_VERSION}"
+\ No newline at end of file
+--
+2.31.0
+
diff --git a/gnu/packages/patches/linphoneqt-tabbutton.patch b/gnu/packages/patches/linphoneqt-tabbutton.patch
deleted file mode 100644
index 6b3214026e..0000000000
--- a/gnu/packages/patches/linphoneqt-tabbutton.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From ecaab0f73d0b74bbfbf150286305fa6e12970037 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Fri, 19 Jan 2018 14:42:01 +0100
-Subject: [PATCH] fix(SettingsWindow): rename icon property of TabButton to
- iconName (issue with Qt 5.10 and new icon property)
-
----
- ui/modules/Common/Form/Tab/TabButton.qml | 8 ++++----
- ui/views/App/Settings/SettingsWindow.qml | 14 +++++++-------
- 2 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/ui/modules/Common/Form/Tab/TabButton.qml b/ui/modules/Common/Form/Tab/TabButton.qml
-index ad220ab2..a47bb20b 100644
---- a/ui/modules/Common/Form/Tab/TabButton.qml
-+++ b/ui/modules/Common/Form/Tab/TabButton.qml
-@@ -12,8 +12,8 @@ Controls.TabButton {
-
- // ---------------------------------------------------------------------------
-
-- property string icon
- property int iconSize: TabButtonStyle.icon.size
-+ property string iconName
-
- readonly property bool _isSelected: parent.parent.currentItem === button
-
-@@ -66,9 +66,9 @@ Controls.TabButton {
- Layout.leftMargin: TabButtonStyle.text.leftPadding
-
- icon: {
-- var icon = button.icon
-- return icon.length
-- ? (icon + '_' + (button._isSelected ? 'selected' : 'normal'))
-+ var iconName = button.iconName
-+ return iconName.length
-+ ? (iconName + '_' + (button._isSelected ? 'selected' : 'normal'))
- : ''
- }
- iconSize: button.iconSize
-diff --git a/ui/views/App/Settings/SettingsWindow.qml b/ui/views/App/Settings/SettingsWindow.qml
-index b8f5a80f..58909544 100644
---- a/ui/views/App/Settings/SettingsWindow.qml
-+++ b/ui/views/App/Settings/SettingsWindow.qml
-@@ -48,43 +48,43 @@ ApplicationWindow {
- id: tabBar
-
- TabButton {
-- icon: 'settings_sip_accounts'
-+ iconName: 'settings_sip_accounts'
- text: qsTr('sipAccountsTab')
- width: implicitWidth
- }
-
- TabButton {
-- icon: 'settings_audio'
-+ iconName: 'settings_audio'
- text: qsTr('audioTab')
- width: implicitWidth
- }
-
- TabButton {
-- icon: 'settings_video'
-+ iconName: 'settings_video'
- text: qsTr('videoTab')
- width: implicitWidth
- }
-
- TabButton {
-- icon: 'settings_call'
-+ iconName: 'settings_call'
- text: qsTr('callsAndChatTab')
- width: implicitWidth
- }
-
- TabButton {
-- icon: 'settings_network'
-+ iconName: 'settings_network'
- text: qsTr('networkTab')
- width: implicitWidth
- }
-
- TabButton {
-- icon: 'settings_advanced'
-+ iconName: 'settings_advanced'
- text: qsTr('uiTab')
- width: implicitWidth
- }
-
- TabButton {
-- icon: 'settings_advanced'
-+ iconName: 'settings_advanced'
- text: qsTr('uiAdvanced')
- width: implicitWidth
- }
---
-2.21.0
-
diff --git a/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch b/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch
new file mode 100644
index 0000000000..215c920e53
--- /dev/null
+++ b/gnu/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch
@@ -0,0 +1,100 @@
+This patch comes from upstream. It corresponds to a patch applied to
+the generated C source code for llhttp included in Node.js 14.16.0
+(see commit 641f786bb1a1f6eb1ff8750782ed939780f2b31a). That commit
+fixes CVE-2020-8287. With this patch, the output of our
+llhttp-bootstrap package matches the files included in Node.js 14.16.0
+exactly.
+
+commit e9b36ea64709c35ca66094d5cf3787f444029601
+Author: Fedor Indutny <fedor@indutny.com>
+Date: Sat Oct 10 19:56:01 2020 -0700
+
+ http: unset `F_CHUNKED` on new `Transfer-Encoding`
+
+ Duplicate `Transfer-Encoding` header should be a treated as a single,
+ but with original header values concatenated with a comma separator. In
+ the light of this, even if the past `Transfer-Encoding` ended with
+ `chunked`, we should be not let the `F_CHUNKED` to leak into the next
+ header, because mere presence of another header indicates that `chunked`
+ is not the last transfer-encoding token.
+
+diff --git a/src/llhttp/http.ts b/src/llhttp/http.ts
+index f4f1a6e..0a0c365 100644
+--- a/src/llhttp/http.ts
++++ b/src/llhttp/http.ts
+@@ -460,11 +460,19 @@ export class HTTP {
+ .match([ ' ', '\t' ], n('header_value_discard_ws'))
+ .otherwise(checkContentLengthEmptiness);
+
++ // Multiple `Transfer-Encoding` headers should be treated as one, but with
++ // values separate by a comma.
++ //
++ // See: https://tools.ietf.org/html/rfc7230#section-3.2.2
++ const toTransferEncoding = this.unsetFlag(
++ FLAGS.CHUNKED,
++ 'header_value_te_chunked');
++
+ n('header_value_start')
+ .otherwise(this.load('header_state', {
+ [HEADER_STATE.UPGRADE]: this.setFlag(FLAGS.UPGRADE, fallback),
+ [HEADER_STATE.TRANSFER_ENCODING]: this.setFlag(
+- FLAGS.TRANSFER_ENCODING, 'header_value_te_chunked'),
++ FLAGS.TRANSFER_ENCODING, toTransferEncoding),
+ [HEADER_STATE.CONTENT_LENGTH]: n('header_value_content_length_once'),
+ [HEADER_STATE.CONNECTION]: n('header_value_connection'),
+ }, 'header_value'));
+@@ -847,6 +855,11 @@ export class HTTP {
+ return span.start(span.end(this.node(next)));
+ }
+
++ private unsetFlag(flag: FLAGS, next: string | Node): Node {
++ const p = this.llparse;
++ return p.invoke(p.code.and('flags', ~flag), this.node(next));
++ }
++
+ private setFlag(flag: FLAGS, next: string | Node): Node {
+ const p = this.llparse;
+ return p.invoke(p.code.or('flags', flag), this.node(next));
+diff --git a/test/request/transfer-encoding.md b/test/request/transfer-encoding.md
+index a7d1681..b0891d6 100644
+--- a/test/request/transfer-encoding.md
++++ b/test/request/transfer-encoding.md
+@@ -353,6 +353,38 @@ off=106 headers complete method=3 v=1/1 flags=200 content_length=0
+ off=106 error code=15 reason="Request has invalid `Transfer-Encoding`"
+ ```
+
++## POST with `chunked` and duplicate transfer-encoding
++
++<!-- meta={"type": "request", "noScan": true} -->
++```http
++POST /post_identity_body_world?q=search#hey HTTP/1.1
++Accept: */*
++Transfer-Encoding: chunked
++Transfer-Encoding: deflate
++
++World
++```
++
++```log
++off=0 message begin
++off=5 len=38 span[url]="/post_identity_body_world?q=search#hey"
++off=44 url complete
++off=54 len=6 span[header_field]="Accept"
++off=61 header_field complete
++off=62 len=3 span[header_value]="*/*"
++off=67 header_value complete
++off=67 len=17 span[header_field]="Transfer-Encoding"
++off=85 header_field complete
++off=86 len=7 span[header_value]="chunked"
++off=95 header_value complete
++off=95 len=17 span[header_field]="Transfer-Encoding"
++off=113 header_field complete
++off=114 len=7 span[header_value]="deflate"
++off=123 header_value complete
++off=125 headers complete method=3 v=1/1 flags=200 content_length=0
++off=125 error code=15 reason="Request has invalid `Transfer-Encoding`"
++```
++
+ ## POST with `chunked` before other transfer-coding (lenient)
+
+ TODO(indutny): should we allow it even in lenient mode? (Consider disabling
diff --git a/gnu/packages/patches/mariadb-CVE-2021-27928.patch b/gnu/packages/patches/mariadb-CVE-2021-27928.patch
new file mode 100644
index 0000000000..39a023c159
--- /dev/null
+++ b/gnu/packages/patches/mariadb-CVE-2021-27928.patch
@@ -0,0 +1,642 @@
+From 7580701e6279900fec40822952a3b874732289cf Mon Sep 17 00:00:00 2001
+From: Sergei Golubchik <serg@mariadb.org>
+Date: Thu, 18 Feb 2021 14:20:48 +0100
+Subject: [PATCH] make @@wsrep_provider and @@wsrep_notify_cmd read-only
+
+this should simplify run-time cluster management
+---
+ mysql-test/suite/galera/disabled.def | 2 +
+ .../galera/include/galera_load_provider.inc | 19 --------
+ .../galera/include/galera_unload_provider.inc | 3 +-
+ .../suite/galera/r/galera_ist_rsync.result | 2 +-
+ .../galera/r/galera_sst_mysqldump.result | 2 +-
+ .../suite/galera/r/mysql-wsrep#33.result | 2 +-
+ .../suite/sys_vars/r/sysvars_wsrep.result | 4 +-
+ .../sys_vars/r/wsrep_notify_cmd_basic.result | 47 -------------------
+ .../sys_vars/r/wsrep_provider_basic.result | 40 ----------------
+ .../r/wsrep_provider_options_basic.result | 46 ------------------
+ .../sys_vars/t/wsrep_notify_cmd_basic.test | 43 -----------------
+ .../sys_vars/t/wsrep_provider_basic.test | 39 ---------------
+ .../t/wsrep_provider_options_basic.test | 41 ----------------
+ mysql-test/suite/wsrep/disabled.def | 2 +
+ mysql-test/suite/wsrep/r/variables.result | 12 ++---
+ mysql-test/suite/wsrep/t/variables.test | 32 +++----------
+ sql/sys_vars.cc | 8 ++--
+ 17 files changed, 25 insertions(+), 319 deletions(-)
+ delete mode 100644 mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result
+ delete mode 100644 mysql-test/suite/sys_vars/r/wsrep_provider_basic.result
+ delete mode 100644 mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result
+ delete mode 100644 mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
+ delete mode 100644 mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
+ delete mode 100644 mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
+
+diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def
+index d940c702d54..83f26e81636 100644
+--- a/mysql-test/suite/galera/disabled.def
++++ b/mysql-test/suite/galera/disabled.def
+@@ -49,3 +49,5 @@ partition : MDEV-19958 Galera test failure on galera.partition
+ query_cache: MDEV-15805 Test failure on galera.query_cache
+ sql_log_bin : MDEV-21491 galera.sql_log_bin
+ versioning_trx_id : MDEV-18590 galera.versioning_trx_id
++galera_wsrep_provider_unset_set: wsrep_provider is read-only for security reasons
++pxc-421: wsrep_provider is read-only for security reasons
+diff --git a/mysql-test/suite/galera/include/galera_load_provider.inc b/mysql-test/suite/galera/include/galera_load_provider.inc
+index 0f843597d9c..28010cc5b71 100644
+--- a/mysql-test/suite/galera/include/galera_load_provider.inc
++++ b/mysql-test/suite/galera/include/galera_load_provider.inc
+@@ -1,25 +1,6 @@
+ --echo Loading wsrep provider ...
+
+ --disable_query_log
+---eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig';
+-
+-#
+-# count occurences of successful node starts in error log
+-#
+-perl;
+- use strict;
+- my $test_log=$ENV{'LOG_FILE'} or die "LOG_FILE not set";
+- my $test_log_copy=$test_log . '.copy';
+- if (-e $test_log_copy) {
+- unlink $test_log_copy;
+- }
+-
+-EOF
+---copy_file $LOG_FILE $LOG_FILE.copy
+-
+-#
+-# now join to the cluster
+-#
+ --eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_orig';
+
+ --enable_query_log
+diff --git a/mysql-test/suite/galera/include/galera_unload_provider.inc b/mysql-test/suite/galera/include/galera_unload_provider.inc
+index cd841f51fbc..ed7e9bc41f0 100644
+--- a/mysql-test/suite/galera/include/galera_unload_provider.inc
++++ b/mysql-test/suite/galera/include/galera_unload_provider.inc
+@@ -1,7 +1,6 @@
+ --echo Unloading wsrep provider ...
+
+ --let $wsrep_cluster_address_orig = `SELECT @@wsrep_cluster_address`
+---let $wsrep_provider_orig = `SELECT @@wsrep_provider`
+ --let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
+ --let $wsrep_error_log_orig = `SELECT @@log_error`
+ if(!$wsrep_log_error_orig)
+@@ -12,4 +11,4 @@ if(!$wsrep_log_error_orig)
+ }
+ --let LOG_FILE= $wsrep_log_error_orig
+
+-SET GLOBAL wsrep_provider = 'none';
++SET GLOBAL wsrep_cluster_address = '';
+diff --git a/mysql-test/suite/galera/r/galera_ist_rsync.result b/mysql-test/suite/galera/r/galera_ist_rsync.result
+index 13f7d898a59..70a87c73df7 100644
+--- a/mysql-test/suite/galera/r/galera_ist_rsync.result
++++ b/mysql-test/suite/galera/r/galera_ist_rsync.result
+@@ -23,7 +23,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
+ INSERT INTO t1 VALUES ('node2_committed_before');
+ COMMIT;
+ Unloading wsrep provider ...
+-SET GLOBAL wsrep_provider = 'none';
++SET GLOBAL wsrep_cluster_address = '';
+ connection node_1;
+ SET AUTOCOMMIT=OFF;
+ START TRANSACTION;
+diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump.result b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
+index 4ed679ba477..145b3a94775 100644
+--- a/mysql-test/suite/galera/r/galera_sst_mysqldump.result
++++ b/mysql-test/suite/galera/r/galera_sst_mysqldump.result
+@@ -30,7 +30,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
+ INSERT INTO t1 VALUES ('node2_committed_before');
+ COMMIT;
+ Unloading wsrep provider ...
+-SET GLOBAL wsrep_provider = 'none';
++SET GLOBAL wsrep_cluster_address = '';
+ connection node_1;
+ SET AUTOCOMMIT=OFF;
+ START TRANSACTION;
+diff --git a/mysql-test/suite/galera/r/mysql-wsrep#33.result b/mysql-test/suite/galera/r/mysql-wsrep#33.result
+index fb0b593cc96..45c6a3f660a 100644
+--- a/mysql-test/suite/galera/r/mysql-wsrep#33.result
++++ b/mysql-test/suite/galera/r/mysql-wsrep#33.result
+@@ -32,7 +32,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
+ INSERT INTO t1 VALUES ('node2_committed_before');
+ COMMIT;
+ Unloading wsrep provider ...
+-SET GLOBAL wsrep_provider = 'none';
++SET GLOBAL wsrep_cluster_address = '';
+ connection node_1;
+ SET AUTOCOMMIT=OFF;
+ START TRANSACTION;
+diff --git a/mysql-test/suite/sys_vars/r/sysvars_wsrep.result b/mysql-test/suite/sys_vars/r/sysvars_wsrep.result
+index 4b6abf85434..f73bfbd13e7 100644
+--- a/mysql-test/suite/sys_vars/r/sysvars_wsrep.result
++++ b/mysql-test/suite/sys_vars/r/sysvars_wsrep.result
+@@ -403,7 +403,7 @@ NUMERIC_MIN_VALUE NULL
+ NUMERIC_MAX_VALUE NULL
+ NUMERIC_BLOCK_SIZE NULL
+ ENUM_VALUE_LIST NULL
+-READ_ONLY NO
++READ_ONLY YES
+ COMMAND_LINE_ARGUMENT REQUIRED
+ GLOBAL_VALUE_PATH NULL
+ VARIABLE_NAME WSREP_ON
+@@ -463,7 +463,7 @@ NUMERIC_MIN_VALUE NULL
+ NUMERIC_MAX_VALUE NULL
+ NUMERIC_BLOCK_SIZE NULL
+ ENUM_VALUE_LIST NULL
+-READ_ONLY NO
++READ_ONLY YES
+ COMMAND_LINE_ARGUMENT REQUIRED
+ GLOBAL_VALUE_PATH NULL
+ VARIABLE_NAME WSREP_PROVIDER_OPTIONS
+diff --git a/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result b/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result
+deleted file mode 100644
+index 056ff8c817b..00000000000
+--- a/mysql-test/suite/sys_vars/r/wsrep_notify_cmd_basic.result
++++ /dev/null
+@@ -1,47 +0,0 @@
+-#
+-# wsrep_notify_cmd
+-#
+-call mtr.add_suppression("WSREP: Failed to get provider options");
+-# save the initial value
+-SET @wsrep_notify_cmd_global_saved = @@global.wsrep_notify_cmd;
+-# default
+-SELECT @@global.wsrep_notify_cmd;
+-@@global.wsrep_notify_cmd
+-
+-
+-# scope
+-SELECT @@session.wsrep_notify_cmd;
+-ERROR HY000: Variable 'wsrep_notify_cmd' is a GLOBAL variable
+-SET @@global.wsrep_notify_cmd='notify_cmd';
+-SELECT @@global.wsrep_notify_cmd;
+-@@global.wsrep_notify_cmd
+-notify_cmd
+-
+-# valid values
+-SET @@global.wsrep_notify_cmd='command';
+-SELECT @@global.wsrep_notify_cmd;
+-@@global.wsrep_notify_cmd
+-command
+-SET @@global.wsrep_notify_cmd='hyphenated-command';
+-SELECT @@global.wsrep_notify_cmd;
+-@@global.wsrep_notify_cmd
+-hyphenated-command
+-SET @@global.wsrep_notify_cmd=default;
+-SELECT @@global.wsrep_notify_cmd;
+-@@global.wsrep_notify_cmd
+-
+-SET @@global.wsrep_notify_cmd=NULL;
+-SELECT @@global.wsrep_notify_cmd;
+-@@global.wsrep_notify_cmd
+-NULL
+-
+-# invalid values
+-SET @@global.wsrep_notify_cmd=1;
+-ERROR 42000: Incorrect argument type to variable 'wsrep_notify_cmd'
+-SELECT @@global.wsrep_notify_cmd;
+-@@global.wsrep_notify_cmd
+-NULL
+-
+-# restore the initial value
+-SET @@global.wsrep_notify_cmd = @wsrep_notify_cmd_global_saved;
+-# End of test
+diff --git a/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result b/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result
+deleted file mode 100644
+index 3e4ac8ca883..00000000000
+--- a/mysql-test/suite/sys_vars/r/wsrep_provider_basic.result
++++ /dev/null
+@@ -1,40 +0,0 @@
+-#
+-# wsrep_provider
+-#
+-# save the initial value
+-SET @wsrep_provider_global_saved = @@global.wsrep_provider;
+-# default
+-SELECT @@global.wsrep_provider;
+-@@global.wsrep_provider
+-none
+-
+-# scope
+-SELECT @@session.wsrep_provider;
+-ERROR HY000: Variable 'wsrep_provider' is a GLOBAL variable
+-SELECT @@global.wsrep_provider;
+-@@global.wsrep_provider
+-none
+-
+-# valid values
+-SET @@global.wsrep_provider=default;
+-SELECT @@global.wsrep_provider;
+-@@global.wsrep_provider
+-none
+-
+-# invalid values
+-SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
+-ERROR 42000: Variable 'wsrep_provider' can't be set to the value of '/invalid/libgalera_smm.so'
+-SET @@global.wsrep_provider=NULL;
+-ERROR 42000: Variable 'wsrep_provider' can't be set to the value of 'NULL'
+-SELECT @@global.wsrep_provider;
+-@@global.wsrep_provider
+-none
+-SET @@global.wsrep_provider=1;
+-ERROR 42000: Incorrect argument type to variable 'wsrep_provider'
+-SELECT @@global.wsrep_provider;
+-@@global.wsrep_provider
+-none
+-
+-# restore the initial value
+-SET @@global.wsrep_provider = @wsrep_provider_global_saved;
+-# End of test
+diff --git a/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result b/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result
+deleted file mode 100644
+index 15949a14e39..00000000000
+--- a/mysql-test/suite/sys_vars/r/wsrep_provider_options_basic.result
++++ /dev/null
+@@ -1,46 +0,0 @@
+-#
+-# wsrep_provider_options
+-#
+-call mtr.add_suppression("WSREP: Failed to get provider options");
+-# default
+-SELECT @@global.wsrep_provider_options;
+-@@global.wsrep_provider_options
+-
+-
+-# scope
+-SELECT @@session.wsrep_provider_options;
+-ERROR HY000: Variable 'wsrep_provider_options' is a GLOBAL variable
+-SET @@global.wsrep_provider_options='option1';
+-SELECT @@global.wsrep_provider_options;
+-@@global.wsrep_provider_options
+-
+-
+-# valid values
+-SET @@global.wsrep_provider_options='name1=value1;name2=value2';
+-ERROR HY000: WSREP (galera) not started
+-SELECT @@global.wsrep_provider_options;
+-@@global.wsrep_provider_options
+-
+-SET @@global.wsrep_provider_options='hyphenated-name:value';
+-ERROR HY000: WSREP (galera) not started
+-SELECT @@global.wsrep_provider_options;
+-@@global.wsrep_provider_options
+-
+-SET @@global.wsrep_provider_options=default;
+-ERROR HY000: WSREP (galera) not started
+-SELECT @@global.wsrep_provider_options;
+-@@global.wsrep_provider_options
+-
+-
+-# invalid values
+-SET @@global.wsrep_provider_options=1;
+-ERROR 42000: Incorrect argument type to variable 'wsrep_provider_options'
+-SELECT @@global.wsrep_provider_options;
+-@@global.wsrep_provider_options
+-
+-SET @@global.wsrep_provider_options=NULL;
+-Got one of the listed errors
+-SELECT @@global.wsrep_provider_options;
+-@@global.wsrep_provider_options
+-
+-# End of test
+diff --git a/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test b/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
+deleted file mode 100644
+index 6d1535ba148..00000000000
+--- a/mysql-test/suite/sys_vars/t/wsrep_notify_cmd_basic.test
++++ /dev/null
+@@ -1,43 +0,0 @@
+---source include/have_wsrep.inc
+-
+---echo #
+---echo # wsrep_notify_cmd
+---echo #
+-
+-call mtr.add_suppression("WSREP: Failed to get provider options");
+-
+---echo # save the initial value
+-SET @wsrep_notify_cmd_global_saved = @@global.wsrep_notify_cmd;
+-
+---echo # default
+-SELECT @@global.wsrep_notify_cmd;
+-
+---echo
+---echo # scope
+---error ER_INCORRECT_GLOBAL_LOCAL_VAR
+-SELECT @@session.wsrep_notify_cmd;
+-SET @@global.wsrep_notify_cmd='notify_cmd';
+-SELECT @@global.wsrep_notify_cmd;
+-
+---echo
+---echo # valid values
+-SET @@global.wsrep_notify_cmd='command';
+-SELECT @@global.wsrep_notify_cmd;
+-SET @@global.wsrep_notify_cmd='hyphenated-command';
+-SELECT @@global.wsrep_notify_cmd;
+-SET @@global.wsrep_notify_cmd=default;
+-SELECT @@global.wsrep_notify_cmd;
+-SET @@global.wsrep_notify_cmd=NULL;
+-SELECT @@global.wsrep_notify_cmd;
+-
+---echo
+---echo # invalid values
+---error ER_WRONG_TYPE_FOR_VAR
+-SET @@global.wsrep_notify_cmd=1;
+-SELECT @@global.wsrep_notify_cmd;
+-
+---echo
+---echo # restore the initial value
+-SET @@global.wsrep_notify_cmd = @wsrep_notify_cmd_global_saved;
+-
+---echo # End of test
+diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
+deleted file mode 100644
+index 1190ab41bb0..00000000000
+--- a/mysql-test/suite/sys_vars/t/wsrep_provider_basic.test
++++ /dev/null
+@@ -1,39 +0,0 @@
+---source include/have_wsrep.inc
+-
+---echo #
+---echo # wsrep_provider
+---echo #
+-
+---echo # save the initial value
+-SET @wsrep_provider_global_saved = @@global.wsrep_provider;
+-
+---echo # default
+-SELECT @@global.wsrep_provider;
+-
+---echo
+---echo # scope
+---error ER_INCORRECT_GLOBAL_LOCAL_VAR
+-SELECT @@session.wsrep_provider;
+-SELECT @@global.wsrep_provider;
+-
+---echo
+---echo # valid values
+-SET @@global.wsrep_provider=default;
+-SELECT @@global.wsrep_provider;
+-
+---echo
+---echo # invalid values
+---error ER_WRONG_VALUE_FOR_VAR
+-SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
+---error ER_WRONG_VALUE_FOR_VAR
+-SET @@global.wsrep_provider=NULL;
+-SELECT @@global.wsrep_provider;
+---error ER_WRONG_TYPE_FOR_VAR
+-SET @@global.wsrep_provider=1;
+-SELECT @@global.wsrep_provider;
+-
+---echo
+---echo # restore the initial value
+-SET @@global.wsrep_provider = @wsrep_provider_global_saved;
+-
+---echo # End of test
+diff --git a/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test b/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
+deleted file mode 100644
+index 6eb3a94b6a4..00000000000
+--- a/mysql-test/suite/sys_vars/t/wsrep_provider_options_basic.test
++++ /dev/null
+@@ -1,41 +0,0 @@
+---source include/have_wsrep.inc
+-
+---echo #
+---echo # wsrep_provider_options
+---echo #
+-
+-call mtr.add_suppression("WSREP: Failed to get provider options");
+-
+---echo # default
+-SELECT @@global.wsrep_provider_options;
+-
+---echo
+---echo # scope
+---error ER_INCORRECT_GLOBAL_LOCAL_VAR
+-SELECT @@session.wsrep_provider_options;
+---error 0,ER_WRONG_ARGUMENTS
+-SET @@global.wsrep_provider_options='option1';
+-SELECT @@global.wsrep_provider_options;
+-
+---echo
+---echo # valid values
+---error ER_WRONG_ARGUMENTS
+-SET @@global.wsrep_provider_options='name1=value1;name2=value2';
+-SELECT @@global.wsrep_provider_options;
+---error ER_WRONG_ARGUMENTS
+-SET @@global.wsrep_provider_options='hyphenated-name:value';
+-SELECT @@global.wsrep_provider_options;
+---error ER_WRONG_ARGUMENTS
+-SET @@global.wsrep_provider_options=default;
+-SELECT @@global.wsrep_provider_options;
+-
+---echo
+---echo # invalid values
+---error ER_WRONG_TYPE_FOR_VAR
+-SET @@global.wsrep_provider_options=1;
+-SELECT @@global.wsrep_provider_options;
+---error ER_WRONG_ARGUMENTS,ER_WRONG_ARGUMENTS
+-SET @@global.wsrep_provider_options=NULL;
+-SELECT @@global.wsrep_provider_options;
+-
+---echo # End of test
+diff --git a/mysql-test/suite/wsrep/disabled.def b/mysql-test/suite/wsrep/disabled.def
+index 11577bfe8b0..3d204db6945 100644
+--- a/mysql-test/suite/wsrep/disabled.def
++++ b/mysql-test/suite/wsrep/disabled.def
+@@ -10,3 +10,5 @@
+ #
+ ##############################################################################
+
++
++mdev_6832: wsrep_provider is read-only for security reasons
+diff --git a/mysql-test/suite/wsrep/r/variables.result b/mysql-test/suite/wsrep/r/variables.result
+index a9988fd1628..e57440125ee 100644
+--- a/mysql-test/suite/wsrep/r/variables.result
++++ b/mysql-test/suite/wsrep/r/variables.result
+@@ -14,7 +14,6 @@ SET SESSION wsrep_replicate_myisam= ON;
+ ERROR HY000: Variable 'wsrep_replicate_myisam' is a GLOBAL variable and should be set with SET GLOBAL
+ SET GLOBAL wsrep_replicate_myisam= ON;
+ SET GLOBAL wsrep_replicate_myisam= OFF;
+-SET GLOBAL wsrep_provider=none;
+ #
+ # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of
+ # variables when using "_"
+@@ -151,7 +150,6 @@ wsrep_local_state_comment #
+ # Should show nothing.
+ SHOW STATUS LIKE 'x';
+ Variable_name Value
+-SET GLOBAL wsrep_provider=none;
+
+ SHOW STATUS LIKE 'wsrep_local_state_uuid';
+ Variable_name Value
+@@ -160,7 +158,6 @@ wsrep_local_state_uuid #
+ SHOW STATUS LIKE 'wsrep_last_committed';
+ Variable_name Value
+ wsrep_last_committed #
+-SET GLOBAL wsrep_provider=none;
+
+ #
+ # MDEV#6206: wsrep_slave_threads subtracts from max_connections
+@@ -174,7 +171,7 @@ SELECT @@global.wsrep_slave_threads;
+ 1
+ SELECT @@global.wsrep_cluster_address;
+ @@global.wsrep_cluster_address
+-
++gcomm://
+ SELECT @@global.wsrep_on;
+ @@global.wsrep_on
+ 1
+@@ -183,14 +180,14 @@ Variable_name Value
+ Threads_connected 1
+ SHOW STATUS LIKE 'wsrep_thread_count';
+ Variable_name Value
+-wsrep_thread_count 0
++wsrep_thread_count 2
+
+ SELECT @@global.wsrep_provider;
+ @@global.wsrep_provider
+ libgalera_smm.so
+ SELECT @@global.wsrep_cluster_address;
+ @@global.wsrep_cluster_address
+-
++gcomm://
+ SELECT @@global.wsrep_on;
+ @@global.wsrep_on
+ 1
+@@ -199,11 +196,10 @@ Variable_name Value
+ Threads_connected 1
+ SHOW STATUS LIKE 'wsrep_thread_count';
+ Variable_name Value
+-wsrep_thread_count 0
++wsrep_thread_count 2
+
+ # Setting wsrep_cluster_address triggers the creation of
+ # applier/rollbacker threads.
+-SET GLOBAL wsrep_cluster_address= 'gcomm://';
+ # Wait for applier thread to get created 1.
+ # Wait for applier thread to get created 2.
+ SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
+diff --git a/mysql-test/suite/wsrep/t/variables.test b/mysql-test/suite/wsrep/t/variables.test
+index f2c3a0a3b78..fd352b61a3a 100644
+--- a/mysql-test/suite/wsrep/t/variables.test
++++ b/mysql-test/suite/wsrep/t/variables.test
+@@ -23,7 +23,7 @@ SET GLOBAL wsrep_replicate_myisam= ON;
+
+ # Reset it back.
+ SET GLOBAL wsrep_replicate_myisam= OFF;
+-SET GLOBAL wsrep_provider=none;
++#SET GLOBAL wsrep_provider=none;
+
+ --echo #
+ --echo # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of
+@@ -32,9 +32,6 @@ SET GLOBAL wsrep_provider=none;
+
+ CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*");
+
+---disable_query_log
+-eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+---enable_query_log
+
+ --replace_column 2 #
+ SHOW GLOBAL STATUS LIKE 'wsrep%';
+@@ -50,11 +47,9 @@ SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
+ SHOW STATUS LIKE 'x';
+
+ # Reset it back.
+-SET GLOBAL wsrep_provider=none;
++#SET GLOBAL wsrep_provider=none;
+
+---disable_query_log
+-eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+---enable_query_log
++#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+
+ # The following 2 variables are used by mariabackup
+ # SST.
+@@ -66,7 +61,7 @@ SHOW STATUS LIKE 'wsrep_local_state_uuid';
+ SHOW STATUS LIKE 'wsrep_last_committed';
+
+ # Reset it back.
+-SET GLOBAL wsrep_provider=none;
++#SET GLOBAL wsrep_provider=none;
+
+ --echo
+ --echo #
+@@ -74,9 +69,7 @@ SET GLOBAL wsrep_provider=none;
+ --echo #
+ call mtr.add_suppression("WSREP: Failed to get provider options");
+
+---disable_query_log
+-eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+---enable_query_log
++#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+
+ --replace_regex /.*libgalera_smm.*/libgalera_smm.so/
+ SELECT @@global.wsrep_provider;
+@@ -87,9 +80,7 @@ SHOW STATUS LIKE 'threads_connected';
+ SHOW STATUS LIKE 'wsrep_thread_count';
+ --echo
+
+---disable_query_log
+-eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+---enable_query_log
++#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+
+ --replace_regex /.*libgalera_smm.*/libgalera_smm.so/
+ SELECT @@global.wsrep_provider;
+@@ -101,7 +92,7 @@ SHOW STATUS LIKE 'wsrep_thread_count';
+
+ --echo # Setting wsrep_cluster_address triggers the creation of
+ --echo # applier/rollbacker threads.
+-SET GLOBAL wsrep_cluster_address= 'gcomm://';
++#SET GLOBAL wsrep_cluster_address= 'gcomm://';
+
+ --echo # Wait for applier thread to get created 1.
+ --let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
+@@ -162,15 +153,6 @@ SET @@global.wsrep_sst_auth= NULL;
+ SELECT @@global.wsrep_sst_auth;
+ SET @@global.wsrep_sst_auth= @wsrep_sst_auth_saved;
+
+-# Reset (for mtr internal checks)
+-
+---disable_query_log
+-SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved;
+-eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
+-SET GLOBAL wsrep_cluster_address= @wsrep_cluster_address_saved;
+-SET GLOBAL wsrep_provider_options= @wsrep_provider_options_saved;
+---enable_query_log
+-
+ --source include/galera_wait_ready.inc
+
+ --echo # End of test.
+diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
+index 64040243df0..8c67a4d432a 100644
+--- a/sql/sys_vars.cc
++++ b/sql/sys_vars.cc
+@@ -5669,8 +5669,8 @@ static Sys_var_tz Sys_time_zone(
+
+ static Sys_var_charptr_fscs Sys_wsrep_provider(
+ "wsrep_provider", "Path to replication provider library",
+- PREALLOCATED GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG),
+- DEFAULT(WSREP_NONE),
++ PREALLOCATED READ_ONLY GLOBAL_VAR(wsrep_provider), CMD_LINE(REQUIRED_ARG),
++ DEFAULT(WSREP_NONE),
+ NO_MUTEX_GUARD, NOT_IN_BINLOG,
+ ON_CHECK(wsrep_provider_check), ON_UPDATE(wsrep_provider_update));
+
+@@ -5886,8 +5886,8 @@ static Sys_var_ulong Sys_wsrep_max_ws_rows (
+
+ static Sys_var_charptr Sys_wsrep_notify_cmd(
+ "wsrep_notify_cmd", "",
+- GLOBAL_VAR(wsrep_notify_cmd),CMD_LINE(REQUIRED_ARG),
+- DEFAULT(""));
++ READ_ONLY GLOBAL_VAR(wsrep_notify_cmd), CMD_LINE(REQUIRED_ARG),
++ DEFAULT(""));
+
+ static Sys_var_mybool Sys_wsrep_certify_nonPK(
+ "wsrep_certify_nonPK", "Certify tables with no primary key",
+--
+2.31.0
+
diff --git a/gnu/packages/patches/mediastreamer2-srtp2.patch b/gnu/packages/patches/mediastreamer2-srtp2.patch
deleted file mode 100644
index f6d494facb..0000000000
--- a/gnu/packages/patches/mediastreamer2-srtp2.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001
-From: Danmei Chen <danmei.chen@belledonne-communications.com>
-Date: Fri, 19 Jan 2018 10:04:07 +0100
-Subject: [PATCH] add compability with srtp2
-
----
- cmake/FindSRTP.cmake | 24 ++++++++++++++++++++----
- src/CMakeLists.txt | 1 +
- src/crypto/ms_srtp.c | 10 ++--------
- src/utils/srtp_prefix.h | 41 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 64 insertions(+), 12 deletions(-)
- create mode 100644 src/utils/srtp_prefix.h
-
-diff --git a/cmake/FindSRTP.cmake b/cmake/FindSRTP.cmake
-index 988b846a..f720ce7e 100644
---- a/cmake/FindSRTP.cmake
-+++ b/cmake/FindSRTP.cmake
-@@ -31,20 +31,36 @@ set(_SRTP_ROOT_PATHS
- )
-
- find_path(SRTP_INCLUDE_DIRS
-- NAMES srtp/srtp.h
-+ NAMES srtp2/srtp.h
- HINTS _SRTP_ROOT_PATHS
- PATH_SUFFIXES include
- )
-
- if(SRTP_INCLUDE_DIRS)
- set(HAVE_SRTP_SRTP_H 1)
--endif()
--
--find_library(SRTP_LIBRARIES
-+ set(SRTP_VERSION 2)
-+ find_library(SRTP_LIBRARIES
-+ NAMES srtp2
-+ HINTS ${_SRTP_ROOT_PATHS}
-+ PATH_SUFFIXES bin lib
-+ )
-+else()
-+ find_path(SRTP_INCLUDE_DIRS
-+ NAMES srtp/srtp.h
-+ HINTS _SRTP_ROOT_PATHS
-+ PATH_SUFFIXES include
-+ )
-+ if(SRTP_INCLUDE_DIRS)
-+ set(HAVE_SRTP_SRTP_H 1)
-+ set(SRTP_VERSION 1)
-+ endif()
-+ find_library(SRTP_LIBRARIES
- NAMES srtp
- HINTS ${_SRTP_ROOT_PATHS}
- PATH_SUFFIXES bin lib
- )
-+endif()
-+
-
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(SRTP
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index da429764..c46faa62 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -183,6 +183,7 @@ set(VOIP_SOURCE_FILES_C
- utils/pcap_sender.c
- utils/pcap_sender.h
- utils/stream_regulator.c
-+ utils/srtp_prefix.h
- voip/audioconference.c
- voip/audiostream.c
- voip/bandwidthcontroller.c
-diff --git a/src/crypto/ms_srtp.c b/src/crypto/ms_srtp.c
-index 5a510c99..67810316 100644
---- a/src/crypto/ms_srtp.c
-+++ b/src/crypto/ms_srtp.c
-@@ -25,6 +25,7 @@
- #include "mediastreamer2/ms_srtp.h"
- #include "mediastreamer2/mediastream.h"
-
-+
- #ifdef HAVE_SRTP
-
- /*srtp defines all this stuff*/
-@@ -34,13 +35,7 @@
- #undef PACKAGE_TARNAME
- #undef PACKAGE_VERSION
-
--#if defined(MS2_WINDOWS_PHONE)
--// Windows phone doesn't use make install
--#include <srtp.h>
--#else
--#include <srtp/srtp.h>
--#endif
--
-+#include "srtp_prefix.h"
-
- #include "ortp/b64.h"
-
-@@ -352,7 +347,6 @@ int ms_srtp_init(void)
- srtp_init_done++;
- }else{
- ms_fatal("Couldn't initialize SRTP library: %d.", st);
-- err_reporting_init("mediastreamer2");
- }
- }else srtp_init_done++;
- return (int)st;
-diff --git a/src/utils/srtp_prefix.h b/src/utils/srtp_prefix.h
-new file mode 100644
-index 00000000..68bde496
---- /dev/null
-+++ b/src/utils/srtp_prefix.h
-@@ -0,0 +1,41 @@
-+/*
-+ mediastreamer2 library - modular sound and video processing and streaming
-+ Copyright (C) 2006-2014 Belledonne Communications, Grenoble
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ This library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with this library; if not, write to the Free Software
-+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+*/
-+#ifndef __SRTP2_H__
-+#define __SRTP2_H__
-+
-+#if defined(MS2_WINDOWS_PHONE)
-+// Windows phone doesn't use make install
-+#include <srtp.h>
-+#elif SRTP_VERSION==1
-+#include <srtp/srtp.h>
-+#else
-+#include <srtp2/srtp.h>
-+#define err_status_t srtp_err_status_t
-+#define err_status_ok srtp_err_status_ok
-+#define crypto_policy_t srtp_crypto_policy_t
-+#define crypto_policy_set_aes_cm_256_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80
-+#define crypto_policy_set_aes_cm_128_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32
-+#define crypto_policy_set_aes_cm_128_null_auth srtp_crypto_policy_set_aes_cm_128_null_auth
-+#define crypto_policy_set_null_cipher_hmac_sha1_80 srtp_crypto_policy_set_null_cipher_hmac_sha1_80
-+#define crypto_policy_set_aes_cm_128_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80
-+#define crypto_policy_set_aes_cm_256_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32
-+#define ssrc_t srtp_ssrc_t
-+#endif
-+
-+#endif
---
-2.21.0
-
diff --git a/gnu/packages/patches/opendht-fix-jami.patch b/gnu/packages/patches/opendht-fix-jami.patch
deleted file mode 100644
index 9718a84a41..0000000000
--- a/gnu/packages/patches/opendht-fix-jami.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From e2b39dd3a0742853e00f9c3e8c46c911da20bed7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
-Date: Tue, 30 Jun 2020 10:42:49 -0400
-Subject: [PATCH 1/4] http/request: make terminate public
-
----
- include/opendht/http.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/include/opendht/http.h b/include/opendht/http.h
-index cc8d5f9..46b722c 100644
---- a/include/opendht/http.h
-+++ b/include/opendht/http.h
-@@ -294,6 +294,7 @@ public:
- * User action to cancel the Request and call the completion callbacks.
- */
- void cancel();
-+ void terminate(const asio::error_code& ec);
-
- private:
- using OnCompleteCb = std::function<void()>;
-@@ -320,8 +321,6 @@ private:
-
- void connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, HandlerCb cb = {});
-
-- void terminate(const asio::error_code& ec);
--
- void post();
-
- void handle_request(const asio::error_code& ec);
---
-2.27.0
-
diff --git a/gnu/packages/patches/pidgin-vv-gst.patch b/gnu/packages/patches/pidgin-vv-gst.patch
deleted file mode 100644
index e0553dd119..0000000000
--- a/gnu/packages/patches/pidgin-vv-gst.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Name: Gary Kramlich
-Date: 2020-07-12
-Source: https://keep.imfreedom.org/pidgin/pidgin/rev/39ac50435cfb
-
-diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
---- a/libpurple/mediamanager.c
-+++ b/libpurple/mediamanager.c
-@@ -2231,6 +2231,7 @@
- purple_media_manager_unregister_gst_device(PurpleMediaManager *manager,
- GstDevice *device)
- {
-+#ifdef USE_VV
- GList *i;
- gchar *name;
- gchar *device_class;
-@@ -2277,6 +2278,7 @@
-
- g_free(name);
- g_free(device_class);
-+#endif /* USE_VV */
- }
-
- static gboolean
-@@ -2304,7 +2306,7 @@
- static void
- purple_media_manager_init_device_monitor(PurpleMediaManager *manager)
- {
--#if GST_CHECK_VERSION(1, 4, 0)
-+#if GST_CHECK_VERSION(1, 4, 0) && defined(USE_VV)
- GstBus *bus;
- GList *i;
-
-@@ -2334,6 +2336,7 @@
- PurpleMediaElementType type)
- {
- GList *result = NULL;
-+#ifdef USE_VV
- GList *i;
-
- for (i = manager->priv->elements; i; i = i->next) {
-@@ -2347,6 +2350,7 @@
- result = g_list_prepend(result, info);
- }
- }
-+#endif /* USE_VV */
-
- return result;
- }
diff --git a/gnu/packages/patches/pyqt-public-sip.patch b/gnu/packages/patches/pyqt-public-sip.patch
deleted file mode 100644
index 44cdcb6371..0000000000
--- a/gnu/packages/patches/pyqt-public-sip.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-https://sources.debian.org/data/main/p/pyqt5/5.11.3+dfsg-1/debian/patches/public_sip.diff
-
-From: Dmitry Shachnev <mitya57@debian.org>
-Date: Tue, 3 Jul 2018 09:46:42 +0300
-Subject: Use the public version of sip module
-
-Per https://www.debian.org/doc/debian-policy/#convenience-copies-of-code.
----
- configure.py | 2 +-
- designer/pluginloader.cpp | 2 +-
- qmlscene/pluginloader.cpp | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/configure.py b/configure.py
-index 32d03a0..3c43a14 100644
---- a/configure.py
-+++ b/configure.py
-@@ -2440,7 +2440,7 @@ def get_sip_flags(target_config):
- the target configuration.
- """
-
-- sip_flags = ['-n', 'PyQt5.sip']
-+ sip_flags = ['-n', 'sip']
-
- # If we don't check for signed interpreters, we exclude the 'VendorID'
- # feature
-diff --git a/designer/pluginloader.cpp b/designer/pluginloader.cpp
-index f41d391..3ca8b11 100644
---- a/designer/pluginloader.cpp
-+++ b/designer/pluginloader.cpp
-@@ -167,7 +167,7 @@ bool PyCustomWidgets::importPlugins(const QString &dir, const QStringList &plugi
- // Make sure we have sip.unwrapinstance.
- if (!sip_unwrapinstance)
- {
-- sip_unwrapinstance = getModuleAttr("PyQt5.sip", "unwrapinstance");
-+ sip_unwrapinstance = getModuleAttr("sip", "unwrapinstance");
-
- if (!sip_unwrapinstance)
- return true;
-diff --git a/qmlscene/pluginloader.cpp b/qmlscene/pluginloader.cpp
-index e14b946..140e80c 100644
---- a/qmlscene/pluginloader.cpp
-+++ b/qmlscene/pluginloader.cpp
-@@ -412,9 +412,9 @@ PyObject *PyQt5QmlPlugin::getModuleAttr(const char *module, const char *attr)
- void PyQt5QmlPlugin::getSipAPI()
- {
- #if defined(SIP_USE_PYCAPSULE)
-- sip = (const sipAPIDef *)PyCapsule_Import("PyQt5.sip._C_API", 0);
-+ sip = (const sipAPIDef *)PyCapsule_Import("sip._C_API", 0);
- #else
-- PyObject *c_api = getModuleAttr("PyQt5.sip", "_C_API");
-+ PyObject *c_api = getModuleAttr("sip", "_C_API");
-
- if (c_api)
- {
diff --git a/gnu/packages/patches/qemu-build-info-manual.patch b/gnu/packages/patches/qemu-build-info-manual.patch
index c837040d45..f2bee30ab0 100644
--- a/gnu/packages/patches/qemu-build-info-manual.patch
+++ b/gnu/packages/patches/qemu-build-info-manual.patch
@@ -90,7 +90,7 @@ index ebd85d59f9..1243839461 100644
+ output: 'QEMU.info',
+ install: true,
+ install_dir: get_option('infodir'),
-+ command: [makeinfo, '@INPUT0@', '--output=@OUTPUT@'])
++ command: [makeinfo, '--no-split', '@INPUT0@', '--output=@OUTPUT@'])
+ alias_target('texi', sphinxtexi)
+ alias_target('info', sphinxinfo)
+ endif
diff --git a/gnu/packages/patches/qemu-glibc-2.30.patch b/gnu/packages/patches/qemu-glibc-2.30.patch
new file mode 100644
index 0000000000..1b74dee4ac
--- /dev/null
+++ b/gnu/packages/patches/qemu-glibc-2.30.patch
@@ -0,0 +1,57 @@
+This patch was taken from NixOS
+https://raw.githubusercontent.com/Mindavi/nixpkgs/1a737743a829746e48f4869ac517ff29c23c9d09/pkgs/tools/security/afl/qemu-patches/syscall-glibc2_30.diff
+It is based on an unmerged patch against american-fuzzy-lop and was
+never merged upstream because the author was unable to sign Google's CLA.
+Based on https://github.com/google/AFL/commit/6c917e3d63a2a0685d58c3518524f9615b001893.patch
+
+--- qemu-2.10.0-clean/linux-user/syscall.c 2020-03-12 18:47:47.898592169 +0100
++++ qemu-2.10.0/linux-user/syscall.c 2020-03-13 09:13:42.461809699 +0100
+@@ -34,6 +34,7 @@
+ #include <sys/resource.h>
+ #include <sys/swap.h>
+ #include <linux/capability.h>
++#include <linux/sockios.h> // https://lkml.org/lkml/2019/6/3/988
+ #include <sched.h>
+ #include <sys/timex.h>
+ #ifdef __ia64__
+@@ -256,7 +257,9 @@ static type name (type1 arg1,type2 arg2,
+ #endif
+
+ #ifdef __NR_gettid
+-_syscall0(int, gettid)
++// taken from https://patchwork.kernel.org/patch/10862231/
++#define __NR_sys_gettid __NR_gettid
++_syscall0(int, sys_gettid)
+ #else
+ /* This is a replacement for the host gettid() and must return a host
+ errno. */
+@@ -6219,7 +6222,7 @@ static void *clone_func(void *arg)
+ cpu = ENV_GET_CPU(env);
+ thread_cpu = cpu;
+ ts = (TaskState *)cpu->opaque;
+- info->tid = gettid();
++ info->tid = sys_gettid();
+ task_settid(ts);
+ if (info->child_tidptr)
+ put_user_u32(info->tid, info->child_tidptr);
+@@ -6363,9 +6366,9 @@ static int do_fork(CPUArchState *env, un
+ mapping. We can't repeat the spinlock hack used above because
+ the child process gets its own copy of the lock. */
+ if (flags & CLONE_CHILD_SETTID)
+- put_user_u32(gettid(), child_tidptr);
++ put_user_u32(sys_gettid(), child_tidptr);
+ if (flags & CLONE_PARENT_SETTID)
+- put_user_u32(gettid(), parent_tidptr);
++ put_user_u32(sys_gettid(), parent_tidptr);
+ ts = (TaskState *)cpu->opaque;
+ if (flags & CLONE_SETTLS)
+ cpu_set_tls (env, newtls);
+@@ -11402,7 +11405,7 @@ abi_long do_syscall(void *cpu_env, int n
+ break;
+ #endif
+ case TARGET_NR_gettid:
+- ret = get_errno(gettid());
++ ret = get_errno(sys_gettid());
+ break;
+ #ifdef TARGET_NR_readahead
+ case TARGET_NR_readahead:
diff --git a/gnu/packages/patches/runc-CVE-2019-5736.patch b/gnu/packages/patches/runc-CVE-2019-5736.patch
deleted file mode 100644
index f629fcbfb4..0000000000
--- a/gnu/packages/patches/runc-CVE-2019-5736.patch
+++ /dev/null
@@ -1,343 +0,0 @@
-Fix CVE-2019-5736:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5736
-https://seclists.org/oss-sec/2019/q1/119
-
-Patch copied from upstream source repository:
-
-https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b
-
-From 0a8e4117e7f715d5fbeef398405813ce8e88558b Mon Sep 17 00:00:00 2001
-From: Aleksa Sarai <asarai@suse.de>
-Date: Wed, 9 Jan 2019 13:40:01 +1100
-Subject: [PATCH] nsenter: clone /proc/self/exe to avoid exposing host binary
- to container
-
-There are quite a few circumstances where /proc/self/exe pointing to a
-pretty important container binary is a _bad_ thing, so to avoid this we
-have to make a copy (preferably doing self-clean-up and not being
-writeable).
-
-We require memfd_create(2) -- though there is an O_TMPFILE fallback --
-but we can always extend this to use a scratch MNT_DETACH overlayfs or
-tmpfs. The main downside to this approach is no page-cache sharing for
-the runc binary (which overlayfs would give us) but this is far less
-complicated.
-
-This is only done during nsenter so that it happens transparently to the
-Go code, and any libcontainer users benefit from it. This also makes
-ExtraFiles and --preserve-fds handling trivial (because we don't need to
-worry about it).
-
-Fixes: CVE-2019-5736
-Co-developed-by: Christian Brauner <christian.brauner@ubuntu.com>
-Signed-off-by: Aleksa Sarai <asarai@suse.de>
----
- libcontainer/nsenter/cloned_binary.c | 268 +++++++++++++++++++++++++++
- libcontainer/nsenter/nsexec.c | 11 ++
- 2 files changed, 279 insertions(+)
- create mode 100644 libcontainer/nsenter/cloned_binary.c
-
-diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c
-new file mode 100644
-index 000000000..c8a42c23f
---- /dev/null
-+++ b/libcontainer/nsenter/cloned_binary.c
-@@ -0,0 +1,268 @@
-+/*
-+ * Copyright (C) 2019 Aleksa Sarai <cyphar@cyphar.com>
-+ * Copyright (C) 2019 SUSE LLC
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the "License");
-+ * you may not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an "AS IS" BASIS,
-+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#define _GNU_SOURCE
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <stdbool.h>
-+#include <string.h>
-+#include <limits.h>
-+#include <fcntl.h>
-+#include <errno.h>
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <sys/vfs.h>
-+#include <sys/mman.h>
-+#include <sys/sendfile.h>
-+#include <sys/syscall.h>
-+
-+/* Use our own wrapper for memfd_create. */
-+#if !defined(SYS_memfd_create) && defined(__NR_memfd_create)
-+# define SYS_memfd_create __NR_memfd_create
-+#endif
-+#ifdef SYS_memfd_create
-+# define HAVE_MEMFD_CREATE
-+/* memfd_create(2) flags -- copied from <linux/memfd.h>. */
-+# ifndef MFD_CLOEXEC
-+# define MFD_CLOEXEC 0x0001U
-+# define MFD_ALLOW_SEALING 0x0002U
-+# endif
-+int memfd_create(const char *name, unsigned int flags)
-+{
-+ return syscall(SYS_memfd_create, name, flags);
-+}
-+#endif
-+
-+/* This comes directly from <linux/fcntl.h>. */
-+#ifndef F_LINUX_SPECIFIC_BASE
-+# define F_LINUX_SPECIFIC_BASE 1024
-+#endif
-+#ifndef F_ADD_SEALS
-+# define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
-+# define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
-+#endif
-+#ifndef F_SEAL_SEAL
-+# define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */
-+# define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */
-+# define F_SEAL_GROW 0x0004 /* prevent file from growing */
-+# define F_SEAL_WRITE 0x0008 /* prevent writes */
-+#endif
-+
-+#define RUNC_SENDFILE_MAX 0x7FFFF000 /* sendfile(2) is limited to 2GB. */
-+#ifdef HAVE_MEMFD_CREATE
-+# define RUNC_MEMFD_COMMENT "runc_cloned:/proc/self/exe"
-+# define RUNC_MEMFD_SEALS \
-+ (F_SEAL_SEAL | F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE)
-+#endif
-+
-+static void *must_realloc(void *ptr, size_t size)
-+{
-+ void *old = ptr;
-+ do {
-+ ptr = realloc(old, size);
-+ } while(!ptr);
-+ return ptr;
-+}
-+
-+/*
-+ * Verify whether we are currently in a self-cloned program (namely, is
-+ * /proc/self/exe a memfd). F_GET_SEALS will only succeed for memfds (or rather
-+ * for shmem files), and we want to be sure it's actually sealed.
-+ */
-+static int is_self_cloned(void)
-+{
-+ int fd, ret, is_cloned = 0;
-+
-+ fd = open("/proc/self/exe", O_RDONLY|O_CLOEXEC);
-+ if (fd < 0)
-+ return -ENOTRECOVERABLE;
-+
-+#ifdef HAVE_MEMFD_CREATE
-+ ret = fcntl(fd, F_GET_SEALS);
-+ is_cloned = (ret == RUNC_MEMFD_SEALS);
-+#else
-+ struct stat statbuf = {0};
-+ ret = fstat(fd, &statbuf);
-+ if (ret >= 0)
-+ is_cloned = (statbuf.st_nlink == 0);
-+#endif
-+ close(fd);
-+ return is_cloned;
-+}
-+
-+/*
-+ * Basic wrapper around mmap(2) that gives you the file length so you can
-+ * safely treat it as an ordinary buffer. Only gives you read access.
-+ */
-+static char *read_file(char *path, size_t *length)
-+{
-+ int fd;
-+ char buf[4096], *copy = NULL;
-+
-+ if (!length)
-+ return NULL;
-+
-+ fd = open(path, O_RDONLY | O_CLOEXEC);
-+ if (fd < 0)
-+ return NULL;
-+
-+ *length = 0;
-+ for (;;) {
-+ int n;
-+
-+ n = read(fd, buf, sizeof(buf));
-+ if (n < 0)
-+ goto error;
-+ if (!n)
-+ break;
-+
-+ copy = must_realloc(copy, (*length + n) * sizeof(*copy));
-+ memcpy(copy + *length, buf, n);
-+ *length += n;
-+ }
-+ close(fd);
-+ return copy;
-+
-+error:
-+ close(fd);
-+ free(copy);
-+ return NULL;
-+}
-+
-+/*
-+ * A poor-man's version of "xargs -0". Basically parses a given block of
-+ * NUL-delimited data, within the given length and adds a pointer to each entry
-+ * to the array of pointers.
-+ */
-+static int parse_xargs(char *data, int data_length, char ***output)
-+{
-+ int num = 0;
-+ char *cur = data;
-+
-+ if (!data || *output != NULL)
-+ return -1;
-+
-+ while (cur < data + data_length) {
-+ num++;
-+ *output = must_realloc(*output, (num + 1) * sizeof(**output));
-+ (*output)[num - 1] = cur;
-+ cur += strlen(cur) + 1;
-+ }
-+ (*output)[num] = NULL;
-+ return num;
-+}
-+
-+/*
-+ * "Parse" out argv and envp from /proc/self/cmdline and /proc/self/environ.
-+ * This is necessary because we are running in a context where we don't have a
-+ * main() that we can just get the arguments from.
-+ */
-+static int fetchve(char ***argv, char ***envp)
-+{
-+ char *cmdline = NULL, *environ = NULL;
-+ size_t cmdline_size, environ_size;
-+
-+ cmdline = read_file("/proc/self/cmdline", &cmdline_size);
-+ if (!cmdline)
-+ goto error;
-+ environ = read_file("/proc/self/environ", &environ_size);
-+ if (!environ)
-+ goto error;
-+
-+ if (parse_xargs(cmdline, cmdline_size, argv) <= 0)
-+ goto error;
-+ if (parse_xargs(environ, environ_size, envp) <= 0)
-+ goto error;
-+
-+ return 0;
-+
-+error:
-+ free(environ);
-+ free(cmdline);
-+ return -EINVAL;
-+}
-+
-+static int clone_binary(void)
-+{
-+ int binfd, memfd;
-+ ssize_t sent = 0;
-+
-+#ifdef HAVE_MEMFD_CREATE
-+ memfd = memfd_create(RUNC_MEMFD_COMMENT, MFD_CLOEXEC | MFD_ALLOW_SEALING);
-+#else
-+ memfd = open("/tmp", O_TMPFILE | O_EXCL | O_RDWR | O_CLOEXEC, 0711);
-+#endif
-+ if (memfd < 0)
-+ return -ENOTRECOVERABLE;
-+
-+ binfd = open("/proc/self/exe", O_RDONLY | O_CLOEXEC);
-+ if (binfd < 0)
-+ goto error;
-+
-+ sent = sendfile(memfd, binfd, NULL, RUNC_SENDFILE_MAX);
-+ close(binfd);
-+ if (sent < 0)
-+ goto error;
-+
-+#ifdef HAVE_MEMFD_CREATE
-+ int err = fcntl(memfd, F_ADD_SEALS, RUNC_MEMFD_SEALS);
-+ if (err < 0)
-+ goto error;
-+#else
-+ /* Need to re-open "memfd" as read-only to avoid execve(2) giving -EXTBUSY. */
-+ int newfd;
-+ char *fdpath = NULL;
-+
-+ if (asprintf(&fdpath, "/proc/self/fd/%d", memfd) < 0)
-+ goto error;
-+ newfd = open(fdpath, O_RDONLY | O_CLOEXEC);
-+ free(fdpath);
-+ if (newfd < 0)
-+ goto error;
-+
-+ close(memfd);
-+ memfd = newfd;
-+#endif
-+ return memfd;
-+
-+error:
-+ close(memfd);
-+ return -EIO;
-+}
-+
-+int ensure_cloned_binary(void)
-+{
-+ int execfd;
-+ char **argv = NULL, **envp = NULL;
-+
-+ /* Check that we're not self-cloned, and if we are then bail. */
-+ int cloned = is_self_cloned();
-+ if (cloned > 0 || cloned == -ENOTRECOVERABLE)
-+ return cloned;
-+
-+ if (fetchve(&argv, &envp) < 0)
-+ return -EINVAL;
-+
-+ execfd = clone_binary();
-+ if (execfd < 0)
-+ return -EIO;
-+
-+ fexecve(execfd, argv, envp);
-+ return -ENOEXEC;
-+}
-diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c
-index 28269dfc0..7750af35e 100644
---- a/libcontainer/nsenter/nsexec.c
-+++ b/libcontainer/nsenter/nsexec.c
-@@ -534,6 +534,9 @@ void join_namespaces(char *nslist)
- free(namespaces);
- }
-
-+/* Defined in cloned_binary.c. */
-+extern int ensure_cloned_binary(void);
-+
- void nsexec(void)
- {
- int pipenum;
-@@ -549,6 +552,14 @@ void nsexec(void)
- if (pipenum == -1)
- return;
-
-+ /*
-+ * We need to re-exec if we are not in a cloned binary. This is necessary
-+ * to ensure that containers won't be able to access the host binary
-+ * through /proc/self/exe. See CVE-2019-5736.
-+ */
-+ if (ensure_cloned_binary() < 0)
-+ bail("could not ensure we are a cloned binary");
-+
- /* Parse all of the netlink configuration. */
- nl_parse(pipenum, &config);
-
diff --git a/gnu/packages/patches/upx-CVE-2021-20285.patch b/gnu/packages/patches/upx-CVE-2021-20285.patch
new file mode 100644
index 0000000000..1d47b2a8bb
--- /dev/null
+++ b/gnu/packages/patches/upx-CVE-2021-20285.patch
@@ -0,0 +1,76 @@
+From 3781df9da23840e596d5e9e8493f22666802fe6c Mon Sep 17 00:00:00 2001
+From: John Reiser <jreiser@BitWagon.com>
+Date: Fri, 11 Dec 2020 13:38:18 -0800
+Subject: [PATCH] Check DT_REL/DT_RELA, DT_RELSZ/DT_RELASZ
+
+https://github.com/upx/upx/issues/421
+ modified: p_lx_elf.cpp
+---
+ src/p_lx_elf.cpp | 34 +++++++++++++++++++++++++++++-----
+ 1 file changed, 29 insertions(+), 5 deletions(-)
+
+diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp
+index 182db192..3a4101cf 100644
+--- a/src/p_lx_elf.cpp
++++ b/src/p_lx_elf.cpp
+@@ -2222,8 +2222,20 @@ bool PackLinuxElf32::canPack()
+ int z_rsz = dt_table[Elf32_Dyn::DT_RELSZ];
+ if (z_rel && z_rsz) {
+ unsigned rel_off = get_te32(&dynseg[-1+ z_rel].d_val);
++ if ((unsigned)file_size <= rel_off) {
++ char msg[70]; snprintf(msg, sizeof(msg),
++ "bad Elf32_Dynamic[DT_REL] %#x\n",
++ rel_off);
++ throwCantPack(msg);
++ }
+ Elf32_Rel *rp = (Elf32_Rel *)&file_image[rel_off];
+ unsigned relsz = get_te32(&dynseg[-1+ z_rsz].d_val);
++ if ((unsigned)file_size <= relsz) {
++ char msg[70]; snprintf(msg, sizeof(msg),
++ "bad Elf32_Dynamic[DT_RELSZ] %#x\n",
++ relsz);
++ throwCantPack(msg);
++ }
+ Elf32_Rel *last = (Elf32_Rel *)(relsz + (char *)rp);
+ for (; rp < last; ++rp) {
+ unsigned r_va = get_te32(&rp->r_offset);
+@@ -2562,14 +2574,26 @@ PackLinuxElf64::canPack()
+ int z_rel = dt_table[Elf64_Dyn::DT_RELA];
+ int z_rsz = dt_table[Elf64_Dyn::DT_RELASZ];
+ if (z_rel && z_rsz) {
+- unsigned rel_off = get_te64(&dynseg[-1+ z_rel].d_val);
++ upx_uint64_t rel_off = get_te64(&dynseg[-1+ z_rel].d_val);
++ if ((u64_t)file_size <= rel_off) {
++ char msg[70]; snprintf(msg, sizeof(msg),
++ "bad Elf64_Dynamic[DT_RELA] %#llx\n",
++ rel_off);
++ throwCantPack(msg);
++ }
+ Elf64_Rela *rp = (Elf64_Rela *)&file_image[rel_off];
+- unsigned relsz = get_te64(&dynseg[-1+ z_rsz].d_val);
++ upx_uint64_t relsz = get_te64(&dynseg[-1+ z_rsz].d_val);
++ if ((u64_t)file_size <= relsz) {
++ char msg[70]; snprintf(msg, sizeof(msg),
++ "bad Elf64_Dynamic[DT_RELASZ] %#llx\n",
++ relsz);
++ throwCantPack(msg);
++ }
+ Elf64_Rela *last = (Elf64_Rela *)(relsz + (char *)rp);
+ for (; rp < last; ++rp) {
+- unsigned r_va = get_te64(&rp->r_offset);
++ upx_uint64_t r_va = get_te64(&rp->r_offset);
+ if (r_va == user_init_ava) { // found the Elf64_Rela
+- unsigned r_info = get_te64(&rp->r_info);
++ upx_uint64_t r_info = get_te64(&rp->r_info);
+ unsigned r_type = ELF64_R_TYPE(r_info);
+ if (Elf64_Ehdr::EM_AARCH64 == e_machine
+ && R_AARCH64_RELATIVE == r_type) {
+@@ -2581,7 +2605,7 @@ PackLinuxElf64::canPack()
+ }
+ else {
+ char msg[50]; snprintf(msg, sizeof(msg),
+- "bad relocation %#x DT_INIT_ARRAY[0]",
++ "bad relocation %#llx DT_INIT_ARRAY[0]",
+ r_info);
+ throwCantPack(msg);
+ }
diff --git a/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch b/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch
index 6988e65872..23f651b5eb 100644
--- a/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch
+++ b/gnu/packages/patches/vtk-fix-freetypetools-build-failure.patch
@@ -17,20 +17,16 @@ diff --git a/Rendering/FreeType/vtkFreeTypeTools.cxx b/Rendering/FreeType/vtkFre
index c54289dc60..03b899c4da 100644
--- a/Rendering/FreeType/vtkFreeTypeTools.cxx
+++ b/Rendering/FreeType/vtkFreeTypeTools.cxx
-@@ -387,11 +387,8 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMapCache()
+@@ -378,8 +378,7 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMapCache()
}
-
+
//----------------------------------------------------------------------------
-FT_CALLBACK_DEF(FT_Error)
--vtkFreeTypeToolsFaceRequester(FTC_FaceID face_id,
-- FT_Library lib,
-- FT_Pointer request_data,
-- FT_Face* face)
+-vtkFreeTypeToolsFaceRequester(
+static FT_Error vtkFreeTypeToolsFaceRequester(
-+ FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face)
+ FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face)
{
#if VTK_FTFC_DEBUG_CD
- printf("vtkFreeTypeToolsFaceRequester()\n");
---
+--
2.30.1
diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2021-30004.patch b/gnu/packages/patches/wpa-supplicant-CVE-2021-30004.patch
new file mode 100644
index 0000000000..8c8ba93355
--- /dev/null
+++ b/gnu/packages/patches/wpa-supplicant-CVE-2021-30004.patch
@@ -0,0 +1,115 @@
+From a0541334a6394f8237a4393b7372693cd7e96f15 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 13 Mar 2021 18:19:31 +0200
+Subject: ASN.1: Validate DigestAlgorithmIdentifier parameters
+
+The supported hash algorithms do not use AlgorithmIdentifier parameters.
+However, there are implementations that include NULL parameters in
+addition to ones that omit the parameters. Previous implementation did
+not check the parameters value at all which supported both these cases,
+but did not reject any other unexpected information.
+
+Use strict validation of digest algorithm parameters and reject any
+unexpected value when validating a signature. This is needed to prevent
+potential forging attacks.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/tls/pkcs1.c | 21 +++++++++++++++++++++
+ src/tls/x509v3.c | 20 ++++++++++++++++++++
+ 2 files changed, 41 insertions(+)
+
+diff --git a/src/tls/pkcs1.c b/src/tls/pkcs1.c
+index bbdb0d7..5761dfe 100644
+--- a/src/tls/pkcs1.c
++++ b/src/tls/pkcs1.c
+@@ -244,6 +244,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk,
+ os_free(decrypted);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestInfo",
++ hdr.payload, hdr.length);
+
+ pos = hdr.payload;
+ end = pos + hdr.length;
+@@ -265,6 +267,8 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk,
+ os_free(decrypted);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "PKCS #1: DigestAlgorithmIdentifier",
++ hdr.payload, hdr.length);
+ da_end = hdr.payload + hdr.length;
+
+ if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) {
+@@ -273,6 +277,23 @@ int pkcs1_v15_sig_ver(struct crypto_public_key *pk,
+ os_free(decrypted);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "PKCS #1: Digest algorithm parameters",
++ next, da_end - next);
++
++ /*
++ * RFC 5754: The correct encoding for the SHA2 algorithms would be to
++ * omit the parameters, but there are implementation that encode these
++ * as a NULL element. Allow these two cases and reject anything else.
++ */
++ if (da_end > next &&
++ (asn1_get_next(next, da_end - next, &hdr) < 0 ||
++ !asn1_is_null(&hdr) ||
++ hdr.payload + hdr.length != da_end)) {
++ wpa_printf(MSG_DEBUG,
++ "PKCS #1: Unexpected digest algorithm parameters");
++ os_free(decrypted);
++ return -1;
++ }
+
+ if (!asn1_oid_equal(&oid, hash_alg)) {
+ char txt[100], txt2[100];
+diff --git a/src/tls/x509v3.c b/src/tls/x509v3.c
+index a8944dd..df337ec 100644
+--- a/src/tls/x509v3.c
++++ b/src/tls/x509v3.c
+@@ -1964,6 +1964,7 @@ int x509_check_signature(struct x509_certificate *issuer,
+ os_free(data);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "X509: DigestInfo", hdr.payload, hdr.length);
+
+ pos = hdr.payload;
+ end = pos + hdr.length;
+@@ -1985,6 +1986,8 @@ int x509_check_signature(struct x509_certificate *issuer,
+ os_free(data);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "X509: DigestAlgorithmIdentifier",
++ hdr.payload, hdr.length);
+ da_end = hdr.payload + hdr.length;
+
+ if (asn1_get_oid(hdr.payload, hdr.length, &oid, &next)) {
+@@ -1992,6 +1995,23 @@ int x509_check_signature(struct x509_certificate *issuer,
+ os_free(data);
+ return -1;
+ }
++ wpa_hexdump(MSG_MSGDUMP, "X509: Digest algorithm parameters",
++ next, da_end - next);
++
++ /*
++ * RFC 5754: The correct encoding for the SHA2 algorithms would be to
++ * omit the parameters, but there are implementation that encode these
++ * as a NULL element. Allow these two cases and reject anything else.
++ */
++ if (da_end > next &&
++ (asn1_get_next(next, da_end - next, &hdr) < 0 ||
++ !asn1_is_null(&hdr) ||
++ hdr.payload + hdr.length != da_end)) {
++ wpa_printf(MSG_DEBUG,
++ "X509: Unexpected digest algorithm parameters");
++ os_free(data);
++ return -1;
++ }
+
+ if (x509_sha1_oid(&oid)) {
+ if (signature->oid.oid[6] != 5 /* sha-1WithRSAEncryption */) {
+--
+cgit v0.12
+
diff --git a/gnu/packages/patches/zstd-CVE-2021-24031_CVE-2021-24032.patch b/gnu/packages/patches/zstd-CVE-2021-24031_CVE-2021-24032.patch
new file mode 100644
index 0000000000..48b5eb18eb
--- /dev/null
+++ b/gnu/packages/patches/zstd-CVE-2021-24031_CVE-2021-24032.patch
@@ -0,0 +1,68 @@
+Description: fix race condition allowing attackers to access destination file
+ This commit addresses https://github.com/facebook/zstd/issues/2491.
+ .
+ Note that a downside of this solution is that it is global: `umask()` affects
+ all file creation calls in the process. I believe this is safe since
+ `fileio.c` functions should only ever be used in the zstd binary, and these
+ are (almost) the only files ever created by zstd, and AIUI they're only
+ created in a single thread. So we can get away with messing with global state.
+ .
+ Note that this doesn't change the permissions of files created by `dibio.c`.
+ I'm not sure what those should be...
+Author: W. Felix Handte <w@felixhandte.com>
+Origin: upstream
+Bug: https://github.com/facebook/zstd/issues/2491
+Bug-Debian: https://github.com/facebook/zstd/issues/2491
+Applied-Upstream: commit:a774c5797399040af62db21d8a9b9769e005430e
+Reviewed-by: Étienne Mollier <etienne.mollier@mailoo.org>
+Last-Update: 2021-03-03
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/programs/fileio.c
++++ b/programs/fileio.c
+@@ -606,11 +606,11 @@ FIO_openDstFile(FIO_prefs_t* const prefs
+ FIO_remove(dstFileName);
+ } }
+
+- { FILE* const f = fopen( dstFileName, "wb" );
++ { const int old_umask = UTIL_umask(0177); /* u-x,go-rwx */
++ FILE* const f = fopen( dstFileName, "wb" );
++ UTIL_umask(old_umask);
+ if (f == NULL) {
+ DISPLAYLEVEL(1, "zstd: %s: %s\n", dstFileName, strerror(errno));
+- } else if(srcFileName != NULL && strcmp (srcFileName, stdinmark)) {
+- chmod(dstFileName, 00600);
+ }
+ return f;
+ }
+--- a/programs/util.c
++++ b/programs/util.c
+@@ -54,6 +54,15 @@ int UTIL_getFileStat(const char* infilen
+ return 1;
+ }
+
++int UTIL_umask(int mode) {
++#if PLATFORM_POSIX_VERSION > 0
++ return umask(mode);
++#else
++ /* do nothing, fake return value */
++ return mode;
++#endif
++}
++
+ int UTIL_setFileStat(const char *filename, stat_t *statbuf)
+ {
+ int res = 0;
+--- a/programs/util.h
++++ b/programs/util.h
+@@ -136,6 +136,10 @@ int UTIL_isSameFile(const char* file1, c
+ int UTIL_compareStr(const void *p1, const void *p2);
+ int UTIL_isCompressedFile(const char* infilename, const char *extensionList[]);
+ const char* UTIL_getFileExtension(const char* infilename);
++/**
++ * Wraps umask(). Does nothing when the platform doesn't have that concept.
++ */
++int UTIL_umask(int mode);
+
+ #ifndef _MSC_VER
+ U32 UTIL_isFIFO(const char* infilename);
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 437000b7c0..689d03afc8 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -299,13 +299,6 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
(license (list license:bsd-3
license:gpl2))))
-(define-public poppler-qt4
- (package/inherit poppler
- (name "poppler-qt4")
- (inputs `(("qt-4" ,qt-4)
- ,@(package-inputs poppler)))
- (synopsis "Qt4 frontend for the Poppler PDF rendering library")))
-
(define-public poppler-qt5
(package/inherit poppler
(name "poppler-qt5")
@@ -316,14 +309,14 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
(define-public python-poppler-qt5
(package
(name "python-poppler-qt5")
- (version "0.24.2")
+ (version "21.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-poppler-qt5" version))
(sha256
(base32
- "0l69llw1fzwz8y90q0qp9q5pifbrqjjbwii7di54dwghw5fc6w1r"))))
+ "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))))
(build-system python-build-system)
(arguments
`(;; There are no tests. The check phase just causes a rebuild.
@@ -346,7 +339,7 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("python-sip" ,python-sip)
+ `(("python-sip" ,python-sip-4)
("python-pyqt" ,python-pyqt)
("poppler-qt5" ,poppler-qt5)
("qtbase" ,qtbase)))
diff --git a/gnu/packages/pep.scm b/gnu/packages/pep.scm
index 2bcedf9979..289796a377 100644
--- a/gnu/packages/pep.scm
+++ b/gnu/packages/pep.scm
@@ -81,21 +81,6 @@ shell provides options to redirect the output into a pipe or a file.")
(file-name (string-append name "-" version))
(sha256 (base32 checksum)))))))
-(define sequoia4pEp
- ;; Currently pEp Engine requires sequoia in not-so-current version
- (package/inherit sequoia
- (name "sequoia")
- (version "0.15.0-pEp")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/sequoia-pgp/sequoia.git")
- (commit "0eb1b6cd846ea8c36b3dfdf01ec88383fc64f2fe")))
- (sha256
- (base32 "06dqs9whwp9lfibwp8dqm0aw4nm3s3v4jp2n4fz51zcvsld40nfh"))
- (file-name (git-file-name name version))))))
-
(define-public pep-engine
(package
(name "pep-engine")
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 117acd5d1a..a761ebffcf 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -1096,14 +1096,14 @@ classes in its inheritance tree in one single call.")
(define-public perl-test-output
(package
(name "perl-test-output")
- (version "1.031")
+ (version "1.033")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/"
"Test-Output-" version ".tar.gz"))
(sha256
(base32
- "193y1xjvgc1p9pdgdwps2127knvpz9wc1xh6gmr74y3ihmqz7f7q"))))
+ "0vjm62c7g3xxs3h4lba55dnpr4pg71yrhkdg5b9glxdh80klia7n"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-capture-tiny" ,perl-capture-tiny)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 23c3d38f2f..4d54912a56 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
@@ -2213,7 +2213,7 @@ Password Generator\".")
(define-public perl-crypt-rijndael
(package
(name "perl-crypt-rijndael")
- (version "1.15")
+ (version "1.16")
(source
(origin
(method url-fetch)
@@ -2221,7 +2221,7 @@ Password Generator\".")
"mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-"
version ".tar.gz"))
(sha256
- (base32 "0qs1b6ma4sj0ip5d8544fzgc1bbankc4qlmznp8hay8dk5arp650"))))
+ (base32 "0h2dr1bd15y0sipxsdh1k4hx5bccywn15haj0xpjmf0471g0hh35"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Crypt-Rijndael")
(synopsis "Crypt::CBC compliant Rijndael encryption module")
@@ -3771,15 +3771,14 @@ for CRC-CCITT, CRC-16 and CRC-32.")
(define-public perl-digest-hmac
(package
(name "perl-digest-hmac")
- (version "1.03")
+ (version "1.04")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/"
+ (uri (string-append "mirror://cpan/authors/id/A/AR/ARODLAND/"
"Digest-HMAC-" version ".tar.gz"))
(sha256
- (base32
- "0naavabbm1c9zgn325ndy66da4insdw9l3mrxwxdfi7i7xnjrirv"))))
+ (base32 "1m4fn0w3hb4vn7k5kja508a5hjmcrm28zhdpjkbl8p17m9b83g6n"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Digest-HMAC")
(synopsis "Keyed-Hashing for Message Authentication")
@@ -6700,14 +6699,14 @@ Moose and is optimised for rapid startup.")
(define-public perl-moose
(package
(name "perl-moose")
- (version "2.2012")
+ (version "2.2015")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
"Moose-" version ".tar.gz"))
(sha256
(base32
- "0s9m2pskc8h1k94pbvx0lvf0xgv9xca349isbcsrqdqnkmxf9fs6"))))
+ "05gma3q3l15igqrqi8ax8v5cmmvy7s939q3xzs45l1rc7sfx6yd6"))))
(build-system perl-build-system)
(native-inputs
`(("perl-cpan-meta-check" ,perl-cpan-meta-check)
@@ -6806,14 +6805,14 @@ private methods are not.")
(define-public perl-moosex-getopt
(package
(name "perl-moosex-getopt")
- (version "0.74")
+ (version "0.75")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
"MooseX-Getopt-" version ".tar.gz"))
(sha256
- (base32 "091crga5gjyhj2lz55w3ba37xq6pmjg5dx5xccsrzghy8cxxzq0x"))))
+ (base32 "1j7b2jnf0blxr4czp3vfcnv1h5zj601mrfdm92g1wf5wn9dvxwv3"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)
@@ -8135,16 +8134,16 @@ designed for the more complex job, such as @code{Params::Validate}")
(define-public perl-params-util
(package
(name "perl-params-util")
- (version "1.07")
+ (version "1.102")
(source
(origin
(method url-fetch)
(uri (string-append
- "mirror://cpan/authors/id/A/AD/ADAMK/Params-Util-"
+ "mirror://cpan/authors/id/R/RE/REHSACK/Params-Util-"
version ".tar.gz"))
(sha256
(base32
- "0v67sx93yhn7xa0nh9mnbf8mixf54czk6wzrjsp6dzzr5hzyrw9h"))))
+ "00kl154zisf2zsl8yl6xa6yw54nhd9cja5d5fyigs96vhasb36s9"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Params-Util")
(synopsis "Simple, compact and correct param-checking functions")
@@ -8285,14 +8284,14 @@ file names.")
(define-public perl-path-tiny
(package
(name "perl-path-tiny")
- (version "0.108")
+ (version "0.118")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
"Path-Tiny-" version ".tar.gz"))
(sha256
(base32
- "1x9zf8r3cynf4vqlycyyspsr70v4zw6bk9bkgvfpvsxkw8mlhj9w"))))
+ "1zdhc3azw6wn21db3yyygs57vlqkx72ipyd8sa21m72c1y6qs4rj"))))
(build-system perl-build-system)
(arguments
`(#:tests? #f)) ; Tests require additional test modules to be packaged
@@ -8310,7 +8309,7 @@ with file paths.")
(define-public perl-pdf-api2
(package
(name "perl-pdf-api2")
- (version "2.038")
+ (version "2.039")
(source (origin
(method url-fetch)
(uri (string-append
@@ -8318,7 +8317,7 @@ with file paths.")
version ".tar.gz"))
(sha256
(base32
- "02dxz798sx0ncdphjrfvfl2a3c1lkplyriyk4psq99q2kdsc8ivl"))))
+ "08x1anlvmxwym081flkrz7wr9q89y9wbq8ajqk72xsbzhhc479rn"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-exception" ,perl-test-exception)
@@ -11153,14 +11152,14 @@ files, using JSON::PP and/or CPAN::Meta::YAML.")
(define-public perl-scalar-list-utils
(package
(name "perl-scalar-list-utils")
- (version "1.53")
+ (version "1.56")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
"Scalar-List-Utils-" version ".tar.gz"))
(sha256
- (base32 "16dfpnrcf5846j998rdd6gra16m9030rnz9fpsh1hfzvcsq8ch5x"))))
+ (base32 "0nxb29x7i2w6kjxq188n131b56bsqj1ykrxjcjp6sgpv81ym7f0m"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Scalar-List-Utils")
(synopsis "Common Scalar and List utility subroutines")
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 4d679c7f02..c0c8632d9a 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -240,14 +240,14 @@ data as produced by digital cameras.")
(define-public libgphoto2
(package
(name "libgphoto2")
- (version "2.5.26")
+ (version "2.5.27")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
version "/libgphoto2-" version ".tar.bz2"))
(sha256
(base32
- "1m5wxap3x9z6x8s2gj3sw9lqwlmbgz00dv6z3h3qk15prfizwh3p"))))
+ "1ms06b3dj1p33aypcb16gg5pn7fylbylsk9cnnqa0j29qiw59f7q"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
@@ -271,14 +271,14 @@ from digital cameras.")
(define-public gphoto2
(package
(name "gphoto2")
- (version "2.5.26")
+ (version "2.5.27")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
"/gphoto2-" version ".tar.bz2"))
(sha256
(base32
- "0bxbcn31xalsvjp8fra324hf2105y3ps7zlyfz11v71j0lxj2lvn"))))
+ "0f4d3q381jnnkcqkb2dj1k709skp65qihl5xm80zandvl69lw19h"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -355,15 +355,16 @@ and a wide variety of other metadata.")
(define-public libpano13
(package
(name "libpano13")
- (version "2.9.19")
+ (version "2.9.20_rc3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/panotools/libpano13/"
- "libpano13-" version "/"
- "libpano13-" version ".tar.gz"))
+ "libpano13-" (first
+ (string-split version #\_))
+ "/libpano13-" version ".tar.gz"))
(sha256
(base32
- "1a4m3plmfcrrplqs9zfzhc5apibn10m5sajpizm1sd3q74w5fwq3"))))
+ "12cv4886l1czfjwy7k6ipgf3zjksgwhdjzr2s9fdg33vqcv2hlrv"))))
(build-system cmake-build-system)
(inputs
`(("libjpeg" ,libjpeg-turbo)
diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm
index 11d2b1827d..1c325e0c3d 100644
--- a/gnu/packages/popt.scm
+++ b/gnu/packages/popt.scm
@@ -91,7 +91,7 @@ similar to getopt(3), it contains a number of enhancements, including:
- popt allows users to alias command line arguments;
- - popt provides convience functions for parsing strings into argv[] style
+ - popt provides convenience functions for parsing strings into argv[] style
arrays.")
(license x11)))
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index af02fd91a9..4662a1e717 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -189,19 +189,6 @@ to @code{IOStreams}.")
;; The library is bsd-2, but documentation and tests include other licenses.
(license (list bsd-2 bsd-3 psfl))))
-(define-public fmt-6
- (package
- (inherit fmt)
- (name "fmt")
- (version "6.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
- version "/fmt-" version ".zip"))
- (sha256
- (base32 "06l8g59frbsbwj15kg6x2bbn6p8yidh6wzsigdhbdjncvm1agzll"))))))
-
(define-public source-highlight
(package
(name "source-highlight")
diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index 259fe163b5..15e671b2c2 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2018, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -71,14 +72,13 @@ installed with a newer @code{pip} or with wheel's own command line utility.")
(define-public python-toml
(package
(name "python-toml")
- (version "0.10.1")
+ (version "0.10.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "toml" version))
(sha256
- (base32
- "03wbqm5cn685cwx2664hjdpz370njl7lf0yal8s0dkp5w4mn2swj"))))
+ (base32 "13z6rff86bzdpl094x0vmfvls779931xj90dlbs9kpfm138s3gdk"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;no tests suite in release
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 2f449bf0eb..961d245630 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -627,14 +628,14 @@ friendly library for concurrency and async I/O in Python.")
(define-public python-pytest-flake8
(package
(name "python-pytest-flake8")
- (version "1.0.6")
+ (version "1.0.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-flake8" version))
(sha256
(base32
- "09vhn7r77s1yiqnlwfvh5585f904zpyd6620a90dpccfr1cbp0hv"))))
+ "0syx68xk5ss3hgp3nr2y122w0fgkzr5936ghsqrkymh3m5hrf9gh"))))
(build-system python-build-system)
(propagated-inputs
`(("python-flake8" ,python-flake8)))
@@ -1183,6 +1184,28 @@ any Python VM with basically no runtime overhead.")
;; mypyc/lib-rt/getargs.c
(license (list license:expat license:psfl))))
+(define-public python-pyannotate
+ (package
+ (name "python-pyannotate")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyannotate" version))
+ (sha256
+ (base32
+ "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-mypy-extensions" ,python-mypy-extensions)
+ ("python-six" ,python-six)))
+ (home-page
+ "https://github.com/dropbox/pyannotate")
+ (synopsis "Auto-generate PEP-484 annotations")
+ (description "This package, PyAnnotate, is used to auto-generate PEP-484
+annotations.")
+ (license license:asl2.0)))
+
(define-public python-eradicate
(package
(name "python-eradicate")
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 2065e6e38f..30062f43c5 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,14 +31,141 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx))
+(define-public python-multivolumefile
+ (package
+ (name "python-multivolumefile")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "multivolumefile" version))
+ (sha256
+ (base32
+ "0j46wab4b09s3favjzp3zs1cn2sn8pr7qyngs5wn31hpqqxbbz76"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pep517" ,python-pep517)
+ ("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)
+ ("python-coverage" ,python-coverage)
+ ("python-coveralls" ,python-coveralls)
+ ("python-pyannotate" ,python-pyannotate)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "https://github.com/miurahr/multivolume")
+ (synopsis "Treat multiple files as one")
+ (description "MultiVolumefile is a Python library that provides a
+file-object abstraction, making it possible to use multiple files as if they
+were a single file.")
+ (license license:lgpl2.1+)))
+
+(define-public python-bcj-cffi
+ (package
+ (name "python-bcj-cffi")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "bcj-cffi" version))
+ (sha256
+ (base32
+ "1jcczrb8zgg6w7v76w1wpz3nw75fghk3xwxkn09ll7kck7sdf68d"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-cffi" ,python-cffi)
+ ("python-toml" ,python-toml)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-coverage" ,python-coverage)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "https://github.com/miurahr/bcj-cffi")
+ (synopsis "Branch / Call /Jump CFFI library in Python")
+ (description "This package provides an implementation of the Branch / Call /
+Jump conversion filter by CFFI for Python.")
+ (license license:lgpl2.1+)))
+
+(define-public python-ppmd-cffi
+ (package
+ (name "python-ppmd-cffi")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ppmd-cffi" version))
+ (sha256
+ (base32
+ "01wcd9l6pp6hivdmd275qh9dhcwficjqfl67hxix5n07vvq7jzz0"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-cffi" ,python-cffi)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)
+ ("python-pep517" ,python-pep517)
+ ("python-coverage" ,python-coverage)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "https://github.com/miurahr/ppmd")
+ (synopsis "Prediction by Partial Matching compression library")
+ (description "PPMd is a compression algorithm library using the Prediction
+by Partial Matching statistical technique. It is used in RAR and 7-Zip as one of
+several possible methods.")
+ (license license:lgpl2.1+)))
+
+(define-public python-py7zr
+ (package
+ (name "python-py7zr")
+ (version "0.14.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "py7zr" version))
+ (sha256
+ (base32
+ "1zmgp7yax328fj8yj8pj4l7yh78hp727j6wk12vfi6nmi82wl32i"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-bcj-cffi" ,python-bcj-cffi)
+ ("python-multivolumefile" ,python-multivolumefile)
+ ("python-ppmd-cffi" ,python-ppmd-cffi)
+ ("python-pycryptodome" ,python-pycryptodome)
+ ("python-pyzstd" ,python-pyzstd)
+ ("python-texttable" ,python-texttable)
+ ("python-zstandard" ,python-zstandard)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm/next)
+ ("python-coverage" ,python-coverage)
+ ("python-coveralls" ,python-coveralls)
+ ("python-libarchive-c" ,python-libarchive-c)
+ ("python-py-cpuinfo" ,python-py-cpuinfo)
+ ("python-pyannotate" ,python-pyannotate)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-benchmark" ,python-pytest-benchmark)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-remotedata" ,python-pytest-remotedata)
+ ("python-pytest-timeout" ,python-pytest-timeout)))
+ (home-page "https://github.com/miurahr/py7zr")
+ (synopsis "7-zip in Python")
+ (description "This package provides py7zr, which implements 7-zip
+archive compression, decompression, encryption and decryption in
+Python.")
+ (license license:lgpl2.1+)))
+
(define-public python-lzo
(package
(name "python-lzo")
@@ -288,13 +416,13 @@ wrapper. It provides a backport of the @code{Path} object.")
(define-public python-zstandard
(package
(name "python-zstandard")
- (version "0.13.0")
+ (version "0.15.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "zstandard" version))
(sha256
- (base32 "0q9msi00s93iqm8vzd839r7yc51gz54z90h5bckqyjdxa6vxijz5"))))
+ (base32 "0by9z7nxnkzhmza075q6q91rs8lnpf91129k8ppv7kymbwshipjj"))))
(build-system python-build-system)
(native-inputs
`(("python-hypothesis" ,python-hypothesis)))
@@ -304,3 +432,21 @@ wrapper. It provides a backport of the @code{Path} object.")
the Zstandard compression library. A C extension and CFFI interface are
provided.")
(license license:bsd-3)))
+
+(define-public python-pyzstd
+ (package
+ (name "python-pyzstd")
+ (version "0.14.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyzstd" version))
+ (sha256
+ (base32
+ "1d3mngs45w2p490vrq5ymd2wz4lp15phmks1ilcx4k7amgibml3d"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/animalize/pyzstd")
+ (synopsis "Zstandard bindings for Python")
+ (description "This package provides Python bindings to the Zstandard (zstd)
+compression library. The API is similar to Python's bz2/lzma/zlib module.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0f67046f75..c79fa1bfc4 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -623,9 +623,6 @@ over a different origin than that of the web application.")
@code{urllib} and @code{urlparse} modules for manipulating URLs.")
(license license:unlicense)))
-(define-public python2-furl
- (package-with-python2 python-furl))
-
(define-public python-httplib2
(package
(name "python-httplib2")
@@ -1017,9 +1014,6 @@ support for Flask. This is based on the Python babel module as well as pytz -
both of which are installed automatically if you install this library.")
(license license:bsd-3)))
-(define-public python2-flask-babel
- (package-with-python2 python-flask-babel))
-
(define-public python-flask-cors
(package
(name "python-flask-cors")
@@ -1108,7 +1102,9 @@ storage.")
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six)
- ("python-webencodings" ,python-webencodings)))
+ ("python-webencodings" ,python-webencodings)
+ ;; Required by Calibre 5.
+ ("python-chardet" ,python-chardet)))
(arguments
`(#:test-target "check"))
(home-page
@@ -1694,14 +1690,14 @@ connection to each user.")
(define-public python-tornado-6
(package
(name "python-tornado")
- (version "6.0.4")
+ (version "6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tornado" version))
(sha256
(base32
- "1p5n7sw4580pkybywg93p8ddqdj9lhhy72rzswfa801vlidx9qhg"))))
+ "14cpzdv6p6qvk6vn02krdh5rcfdi174ifdbr5s6lcnymgcfyiiik"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -2935,9 +2931,6 @@ and Jinja2 template engine. It is called a micro framework because it does not
presume or force a developer to use a particular tool or library.")
(license license:bsd-3)))
-(define-public python2-flask
- (package-with-python2 python-flask))
-
(define-public python-flask-wtf
(package
(name "python-flask-wtf")
@@ -2970,9 +2963,6 @@ presume or force a developer to use a particular tool or library.")
upload, and reCAPTCHA.")
(license license:bsd-3)))
-(define-public python2-flask-wtf
- (package-with-python2 python-flask-wtf))
-
(define-public python-flask-multistatic
(package
(name "python-flask-multistatic")
@@ -2993,9 +2983,6 @@ upload, and reCAPTCHA.")
for overriding static files.")
(license license:gpl3+)))
-(define-public python2-flask-multistatic
- (package-with-python2 python-flask-multistatic))
-
(define-public python-cookies
(package
(name "python-cookies")
@@ -3610,9 +3597,6 @@ It comes with safe defaults and easily configurable options.")
"Minify @code{text/html} MIME type responses when using @code{Flask}.")
(license license:bsd-3)))
-(define-public python2-flask-htmlmin
- (package-with-python2 python-flask-htmlmin))
-
(define-public python-jsmin
(package
(name "python-jsmin")
@@ -3666,9 +3650,6 @@ handles the common tasks of logging in, logging out, and remembering your
users' sessions over extended periods of time.")
(license license:expat)))
-(define-public python2-flask-login
- (package-with-python2 python-flask-login))
-
(define-public python-oauth2client
(package
(name "python-oauth2client")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 79eac0ec7f..30ad6b9435 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -43,7 +43,7 @@
;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
-;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2017, 2019, 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2018 Ethan R. Jones <ethanrjones97@gmail.com
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
@@ -992,9 +992,6 @@ concepts.")
@code{subprocess} feature.")
(license license:expat)))
-(define-public python2-sh
- (package-with-python2 python-sh))
-
(define-public python-cftime
(package
(name "python-cftime")
@@ -1988,7 +1985,7 @@ human-friendly syntax.")
(build-system python-build-system)
(home-page "https://github.com/scour-project/scour")
(synopsis "Scour is an SVG optimizer/cleaner written in Python")
- (description "The goal of Scour is to output a file that renderes
+ (description "The goal of Scour is to output a file that renders
identically at a fraction of the size by removing a lot of redundant
information created by most SVG editors. Optimization options are typically
lossless but can be tweaked for more aggressive cleaning.")
@@ -3815,7 +3812,7 @@ to deprecate classes, functions or methods.")
(define-public python-pygithub
(package
(name "python-pygithub")
- (version "1.43.8")
+ (version "1.54.1")
(source
;; We fetch from the Git repo because there are no tests in the PyPI
;; archive.
@@ -3826,30 +3823,24 @@ to deprecate classes, functions or methods.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1625v558xga5mwhl9jqmibywy5qafmg1vqrirqz6zfq1la1d22mw"))))
+ (base32 "1nl74bp5ikdnrc8xq0qr25ryl1mvarf0xi43k8w5jzlrllhq0nkq"))))
(build-system python-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- ;; Some tests rely on the network.
- (add-after 'unpack 'disable-failing-tests
- (lambda _
- (substitute* "tests/Issue142.py"
- (("testDecodeJson") "disabled_testDecodeJson"))
- #t))
- (add-before 'check 'prepare-for-tests
- (lambda _
- (for-each (lambda (f)
- (chmod f #o666))
- (find-files "./tests"))
- (system* "python" "-m" "lib2to3" "-w" "-n" "tests")
- (setenv "PYTHONPATH"
- (string-append "./tests:" (getenv "PYTHONPATH")))
- #t)))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest"))
+ #t)))))
(propagated-inputs
- `(("python-deprecated" ,python-deprecated)
+ `(("python-cryptography" ,python-cryptography)
+ ("python-deprecated" ,python-deprecated)
("python-pyjwt" ,python-pyjwt)
("python-requests" ,python-requests)))
- (native-inputs `(("python-httpretty" ,python-httpretty)))
+ (native-inputs
+ `(("python-httpretty" ,python-httpretty)
+ ("python-pytest" ,python-pytest)))
(home-page "https://pygithub.readthedocs.io/en/latest/")
(synopsis "Python library for the GitHub API")
(description "This library allows managing GitHub resources such as
@@ -5604,14 +5595,14 @@ a simple netcat replacement with chaining support.")
(define-public python-pycodestyle
(package
(name "python-pycodestyle")
- (version "2.6.0")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycodestyle" version))
(sha256
(base32
- "0bhr6ia0hmgx3nhgibc9pmkzhlh1zcqk707i5fbxgs702ll7v2n5"))))
+ "1vqwmzmjdv331kmfq3q9j3as2x7r2r49lf83r9w4147pdg8c32f3"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -5865,13 +5856,13 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python-pikepdf
(package
(name "python-pikepdf")
- (version "2.9.0")
+ (version "2.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pikepdf" version))
(sha256
- (base32 "1dx84gvxf8js5988b20dwpg0xd7by2bczjlrdh3cpppwaaxx5nx9"))))
+ (base32 "09wfj1hjvj3r9gv7ywrqd7h3d0bz64bvils8sm3ghj90jhalb03s"))))
(build-system python-build-system)
(arguments
`(#:tests? #false)) ;require python-xmp-toolkit
@@ -6431,9 +6422,6 @@ graphics library with support for multiple backends including image buffers,
PNG, PostScript, PDF, and SVG file output.")
(license license:bsd-3)))
-(define-public python2-cairocffi
- (package-with-python2 python-cairocffi))
-
(define-public python-decorator
(package
(name "python-decorator")
@@ -7392,14 +7380,14 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
(define-public python-backcall
(package
(name "python-backcall")
- (version "0.1.0")
+ (version "0.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "backcall" version))
(sha256
(base32
- "1r01dqch3f8fdj3n6fviw8hxqrs6w5v0qw4izmvqzry1w9dxiv1q"))))
+ "07jy4562lvnhkk6kfr3cphmizy88anlhmbwb8kdzlz2ypqkvzgaw"))))
(build-system python-build-system)
(home-page "https://github.com/takluyver/backcall/")
(synopsis "Specifications for callback functions passed in to an API")
@@ -7643,24 +7631,69 @@ computing.")
(define-public python-urwid
(package
(name "python-urwid")
- (version "2.1.0")
+ (version "2.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "urwid" version))
(sha256
(base32
- "11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8"))))
+ "1bky2bra6673xx8jy0826znw6cmxs89wcwwzda8d025j3jffx2sq"))))
(build-system python-build-system)
(home-page "http://urwid.org")
(synopsis "Console user interface library for Python")
(description
"Urwid is a curses-based UI/widget library for Python. It includes many
features useful for text console applications.")
+ (properties `((python2-variant . ,(delay python2-urwid))))
(license license:lgpl2.1+)))
(define-public python2-urwid
- (package-with-python2 python-urwid))
+ (let ((base (package-with-python2
+ (strip-python2-variant python-urwid))))
+ (package/inherit base
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "urwid" version))
+ (sha256
+ (base32
+ "11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8")))))))
+
+(define-public python-urwid-readline
+ (package
+ (name "python-urwid-readline")
+ (version "0.12")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rr-/urwid_readline")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0sq5qgxj7gcfww3ww7idr87isnmp0hi36n241b3q395x1zafdv22"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "python" "-m" "pytest"))
+ #t)))))
+ (propagated-inputs
+ `(("python-urwid" ,python-urwid)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/rr-/urwid_readline")
+ (synopsis "Text input widget for urwid that supports readline shortcuts")
+ (description
+ "This package provides a textbox edit widget for @code{python-urwid} that
+supports @code{readline} shortcuts.")
+ (license license:expat)))
(define-public python-urwidtrees
(package
@@ -7806,14 +7839,14 @@ the GObject Introspection bindings to libnotify for non-GTK applications.")
(define-public python-beautifulsoup4
(package
(name "python-beautifulsoup4")
- (version "4.9.1")
+ (version "4.9.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "beautifulsoup4" version))
(sha256
(base32
- "1mvzlw3pzbhsvl3z8784s5h7iiflm2hggiy1fxyrrxwnbc8lvk3k"))))
+ "09gbd49mwz86k572r1231x2rdp82p42zlnw0bz9b9mfi58r9wwl4"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -7849,14 +7882,14 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.")
(define-public python-soupsieve
(package
(name "python-soupsieve")
- (version "2.0.1")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "soupsieve" version))
(sha256
(base32
- "0ch2rhvsbwfpvzm4kzy81rclbzr533yv83hzg1gx55byfa0w37d5"))))
+ "1k70gpn2d3vgdyxbdy536dgm4kchcraxz6lmgsfg3324iy2789q5"))))
(build-system python-build-system)
(arguments `(#:tests? #f))
;;XXX: 2 tests fail currently despite claming they were to be
@@ -8487,13 +8520,13 @@ applications.")
(define-public python-pyzmq
(package
(name "python-pyzmq")
- (version "17.1.2")
+ (version "22.0.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyzmq" version))
(sha256
- (base32 "1pyxxrz60f88ffm0y6vpbx3q8jcr9ybz8fcilihwzwhh36n84ax7"))))
+ (base32 "0bgrn65cxfz1c1sjrgyq5dy1mkhppxxbizd5wvrl03cq4zhkrxpp"))))
(build-system python-build-system)
(arguments
`(#:configure-flags
@@ -8576,14 +8609,14 @@ PEP 8.")
(define-public python-pyflakes
(package
(name "python-pyflakes")
- (version "2.2.0")
+ (version "2.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyflakes" version))
(sha256
(base32
- "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim"))))
+ "1ny10364ciqh4ripasj4zzv4145l21l3s85m3qlrvfq5pk58xg7m"))))
(build-system python-build-system)
(home-page
"https://github.com/pyflakes/pyflakes")
@@ -8623,13 +8656,13 @@ complexity of Python source code.")
(define-public python-flake8
(package
(name "python-flake8")
- (version "3.8.4")
+ (version "3.9.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "flake8" version))
(sha256
(base32
- "0fvcrsbyzjpcli8ldbpsdbpmf238nkvwc1dy4hy82lf63rvfinma"))))
+ "1w65iyjnrwipv4dbcqxh725ri7mdx01d6pjyggd97c0j5cvkx1vq"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -8702,6 +8735,34 @@ design problems in your program. It contains warnings that don't belong
in pyflakes and pycodestyle.")
(license license:expat)))
+(define-public python-flake8-continuation
+ (package
+ (name "python-flake8-continuation")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flake8-continuation" version))
+ (sha256
+ (base32
+ "0dzaw8jr7yhlabxhrblnrizxx17xa9ngjnbr1kidg5lapq6b9q1y"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-flake8" ,python-flake8)
+ ("python-pycodestyle" ,python-pycodestyle)
+ ("python-six" ,python-six)))
+ (home-page "https://github.com/planetlabs/flake8-continuation")
+ (synopsis "Flake8 Line Continuation Plugin")
+ (description "A Flake8 plugin that checks for the line continuation
+style to be in the preferred method according to PEP-8, specifically:
+@quotation
+The preferred way of wrapping long lines is by using Python's implied
+line continuation inside parentheses, brackets and braces. Long lines
+can be broken over multiple lines by wrapping expressions in parentheses.
+These should be used in preference to using a backslash for line continuation.
+@end quotation")
+ (license license:asl2.0)))
+
(define-public python-flake8-implicit-str-concat
(package
(name "python-flake8-implicit-str-concat")
@@ -8840,6 +8901,25 @@ first-class forward references that stub files use.")
lints.")
(license license:bsd-2)))
+(define-public python-flake8-quotes
+ (package
+ (name "python-flake8-quotes")
+ (version "3.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flake8-quotes" version))
+ (sha256
+ (base32
+ "0ph5s6lxgpzz4an0ax6s5xjqypqmngwr5b1i0h9pqhzghplic49z"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-flake8" ,python-flake8)))
+ (home-page "https://github.com/zheller/flake8-quotes/")
+ (synopsis "Flake8 lint for quotes")
+ (description "This package provides a Flake8 lint for quotes.")
+ (license license:expat)))
+
(define-public python-autoflake
(package
(name "python-autoflake")
@@ -8891,14 +8971,14 @@ Python.")
(define-public python-markdown
(package
(name "python-markdown")
- (version "3.2.1")
+ (version "3.3.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Markdown" version))
(sha256
(base32
- "00k91gwhxnm8jdnm2v5xjz9irj6dbi7afywz2hpakqdbxs1ydzlh"))))
+ "0jbs73nincha8fkfxx267sfxac6pl0ckszjbqbb8gk4dhs8v9d9i"))))
(build-system python-build-system)
(native-inputs
`(("python-nose" ,python-nose)
@@ -9540,9 +9620,6 @@ tasks, sockets, files, locks, and queues.")
designed to efficiently cope with extremely large amounts of data.")
(license license:bsd-3)))
-(define-public python2-tables
- (package-with-python2 python-tables))
-
(define-public python-sniffio
(package
(name "python-sniffio")
@@ -9699,13 +9776,13 @@ implementations of ASN.1-based codecs and protocols.")
(define-public python-ipaddress
(package
(name "python-ipaddress")
- (version "1.0.22")
+ (version "1.0.23")
(source (origin
(method url-fetch)
(uri (pypi-uri "ipaddress" version))
(sha256
(base32
- "0b570bm6xqpjwqis15pvdy6lyvvzfndjvkynilcddjj5x98wfimi"))))
+ "1qp743h30s04m3cg3yk3fycad930jv17q7dsslj4mfw0jlvf1y5p"))))
(build-system python-build-system)
(home-page "https://github.com/phihag/ipaddress")
(synopsis "IP address manipulation library")
@@ -10423,9 +10500,6 @@ interactive computing.")
notebooks.")
(license license:bsd-3)))
-(define-public python2-widgetsnbextension
- (package-with-python2 python-widgetsnbextension))
-
(define-public python-ipywidgets
(package
(name "python-ipywidgets")
@@ -10453,9 +10527,6 @@ widgets are used. Users gain control of their data and can visualize changes
in the data.")
(license license:bsd-3)))
-(define-public python2-ipywidgets
- (package-with-python2 python-ipywidgets))
-
(define-public python-jupyter-console
(package
(name "python-jupyter-console")
@@ -11081,13 +11152,13 @@ minimal and fast API targeting the following uses:
(define-public python-icalendar
(package
(name "python-icalendar")
- (version "4.0.5")
+ (version "4.0.7")
(source (origin
(method url-fetch)
(uri (pypi-uri "icalendar" version))
(sha256
(base32
- "14ynjj65kfmlcvpb7k097w789wvxncd3cr3xz5m1jz9yl9v6vv5q"))))
+ "19574j3jwssm2dkqykih4568xqfgjsa3hcd79yl5s2vfys3qvh8g"))))
(build-system python-build-system)
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
@@ -13290,13 +13361,13 @@ It uses LR parsing and does extensive error checking.")
(define-public python-tabulate
(package
(name "python-tabulate")
- (version "0.8.7")
+ (version "0.8.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "tabulate" version))
(sha256
(base32
- "01shi7bmj09f0bcm5s0c9skys063lzp76p0n4a2xmg041ni269yv"))))
+ "19qkdz8xwk5jxa5xn53mnk76qnh4ysm81vzj664jw1b0azr167gb"))))
(build-system python-build-system)
(arguments
;; FIXME: The pypi release tarball is missing a 'test/common.py'
@@ -14247,20 +14318,17 @@ control protocol to script against the Tor process and read descriptor data
relays publish about themselves.")
(license license:lgpl3)))
-(define-public python2-stem
- (package-with-python2 python-stem))
-
(define-public python-pyserial
(package
(name "python-pyserial")
- (version "3.4")
+ (version "3.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyserial" version))
(sha256
(base32
- "09y68bczw324a4jb9a1cfwrbjhq179vnfkkkrybbksp0vqgl0bbf"))))
+ "1nyd4m4mnrz8scbfqn4zpq8gnbl4x42w5zz62vcgpzqd2waf0xrw"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; FIXME: 3/49 tests are failing.
@@ -14674,9 +14742,6 @@ This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js}
to Python.")
(license license:expat)))
-(define-public python2-graphql-core
- (package-with-python2 python-graphql-core))
-
(define-public python-graphql-relay
(package
(name "python-graphql-relay")
@@ -15319,9 +15384,6 @@ protocols written in pure Python.")
;; Can be used with either license.
(license (list license:asl2.0 license:gpl2+))))
-(define-public python2-dulwich
- (package-with-python2 python-dulwich))
-
(define-public python-pbkdf2
(package
(name "python-pbkdf2")
@@ -15573,7 +15635,7 @@ specified to apply on the key before comparison (e.g. @code{string.lower})).")
;;https://bitbucket.org/fdik/pypeg/issues/36/test-failures-on-py35
'(#:tests? #f))
(home-page "https://fdik.org/pyPEG/")
- (synopsis "Parsering Expression Grammars in Python")
+ (synopsis "Parsing Expression Grammars in Python")
(description "PyPEG is an intrinsic parser interpreter framework for
Python. It is based on Parsing Expression Grammars, PEG. With pyPEG you can
parse many formal languages.")
@@ -16291,9 +16353,6 @@ exception message with a traceback that points to the culprit.")
make common patterns shorter and easier.")
(license license:bsd-2)))
-(define-public python2-utils
- (package-with-python2 python-utils))
-
(define-public python-diff-match-patch
(package
(name "python-diff-match-patch")
@@ -18322,13 +18381,13 @@ user's @file{~/Trash} directory.")
(define-public python-yamllint
(package
(name "python-yamllint")
- (version "1.26.0")
+ (version "1.26.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "yamllint" version))
(sha256
- (base32 "11qhs1jk9pwvyk5k3q5blh9sq42dh1ywdf1f3i2zixf7hncwir5h"))))
+ (base32 "090krlxj7az0d9yl8i20vjrqi66dfxx7y5xakjhxzsfp7qmldnc7"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pathspec" ,python-pathspec)
@@ -20505,14 +20564,14 @@ of Python libraries for building Python applications.")
(define-public python-astor
(package
(name "python-astor")
- (version "0.7.1")
+ (version "0.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astor" version))
(sha256
(base32
- "13gv6f2xz9i564byp21gcpc0l3w4cs23k1wbcam8kky2ls3hvhwm"))))
+ "0ppscdzzvxpznclkmhhj53iz314x3pfv4yc7c6gwxqgljgdgyvka"))))
(build-system python-build-system)
;; FIXME: There are two errors and two test failures.
(arguments `(#:tests? #f))
@@ -20929,6 +20988,64 @@ by Igor Pavlov.")
(define-public python2-pylzma
(package-with-python2 python-pylzma))
+(define-public python-ifaddr
+ (package
+ (name "python-ifaddr")
+ (version "0.1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ifaddr" version))
+ (sha256
+ (base32
+ "150sxdlicwrphmhnv03ykxplyd2jdrxz0mikgnivavgilrn8m7hz"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "nosetests"))))))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://github.com/pydron/ifaddr")
+ (synopsis "Network interface and IP address enumeration library")
+ (description "This package provides a network interface and IP address
+enumeration library in Python.")
+ (license license:expat)))
+
+(define-public python-zeroconf
+ (package
+ (name "python-zeroconf")
+ (version "0.28.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "zeroconf" version))
+ (sha256
+ (base32
+ "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(("python-ifaddr" ,python-ifaddr)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ ;; Networking isn't available for these tests.
+ (invoke "nosetests" "-v"
+ "--exclude" "test_integration_with_listener_ipv6"
+ "--exclude" "test_launch_and_close_v6_only"
+ "--exclude" "test_launch_and_close_v4_v6"
+ "--exclude" "test_launch_and_close"))))))
+ (home-page "https://github.com/jstasiak/python-zeroconf")
+ (synopsis "Pure Python mDNS service discovery")
+ (description
+ "Pure Python multicast DNS (mDNS) service discovery library (Bonjour/Avahi
+compatible).")
+ (license license:lgpl2.1+)))
+
(define-public python2-zeroconf
(package
(name "python2-zeroconf")
@@ -23465,12 +23582,12 @@ dates in almost any string formats commonly found on web pages.")
;; This invokation is taken from tox.ini.
(invoke "nosetests" "-d" "-v" "tests/"))))))
(home-page "https://github.com/akesterson/dpath-python")
- (synopsis "Filesystem-like pathing and searching for dictionaries")
+ (synopsis "File-system-like pathing and searching for dictionaries")
(description
"@code{python-dpath} is a library for accessing and searching
dictionaries via /slashed/paths ala xpath.
-Basically it lets you glob over a dictionary as if it were a filesystem. It
+Basically it lets you glob over a dictionary as if it were a file system. It
allows you to specify globs (ala the bash eglob syntax, through some advanced
fnmatch.fnmatch magic) to access dictionary elements, and provides some
facility for filtering those results.")
@@ -23688,7 +23805,7 @@ cleanly print different types of messages.")
"NestedText is a file format for holding data that is to be entered, edited, or
viewed by people. It allows data to be organized into a nested collection of
dictionaries, lists, and strings. In this way it is similar to JSON and YAML, but
-without the complexity and risk of YAML and without the syntatic clutter of JSON.
+without the complexity and risk of YAML and without the syntactic clutter of JSON.
NestedText is both simple and natural. Only a small number of concepts and rules must
be kept in mind when creating it. It is easily created, modified, or viewed with
a text editor and easily understood and used by both programmers and non-programmers.")
@@ -24272,3 +24389,75 @@ number of words, syllables, and sentences.")
"This package provides a Python library that can parse OPML, FOAF, and
iGoogle subscription lists.")
(license license:expat)))
+
+(define-public python-smartypants
+ (package
+ (name "python-smartypants")
+ (version "2.0.1")
+ (source
+ (origin
+ ;; There's no source tarball for 2.0.1 on PyPI.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/leohemsted/smartypants.py")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00p1gnb9pzb3svdq3c5b9b332gsp50wrqqa39gj00m133zadanjp"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ ;; Its `setup.py test` doesn't report failure with exit status, so
+ ;; we use `nose` instead.
+ (lambda _
+ (invoke "nosetests" "-v" "--exclude=^load_tests$"))))))
+ (native-inputs
+ ;; For tests.
+ `(("python-docutils" ,python-docutils)
+ ("python-nose" ,python-nose)
+ ("python-pygments" ,python-pygments)))
+ (home-page "https://github.com/leohemsted/smartypants.py")
+ (synopsis "Translate punctuation characters into smart quotes")
+ (description
+ "@command{smartpants} can perform the following transformations:
+@enumerate
+@item Straight quotes ( \" and ' ) into \"curly\" quote HTML entities
+@item Backticks-style quotes (``like this'') into \"curly\" quote HTML
+entities
+@item Dashes (-- and ---) into en- and em-dash entities
+@item Three consecutive dots (... or . . .) into an ellipsis entity
+@end enumerate")
+ (license license:bsd-3)))
+
+(define-public python-typogrify
+ (package
+ (name "python-typogrify")
+ (version "2.0.7")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "typogrify" version))
+ (sha256
+ (base32
+ "0f6b2gnnxjbx1fbmkcscc6qjr4hi78kwm1wx4b766ha3va66dr4b"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "nosetests" "-v"))))))
+ (propagated-inputs
+ `(("python-smartypants" ,python-smartypants)))
+ (native-inputs
+ ;; For tests.
+ `(("python-nose" ,python-nose)))
+ (home-page "https://github.com/mintchaos/typogrify")
+ (synopsis "Filters to transform text into typographically-improved HTML")
+ (description
+ "@code{typogrify} provides a set of custom filters that automatically
+apply various transformations to plain text in order to yield
+typographically-improved HTML. While often used in conjunction with Jinja and
+Django template systems, the filters can be used in any environment.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index d718b520bd..fb1a3b598e 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -88,6 +89,7 @@
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
@@ -277,210 +279,6 @@ other text such as code. The syntax uses the syntax of the Django template
system, and the core design of Django is reused in Grantlee.")
(license license:lgpl2.1+)))
-(define-public qt-4
- (package
- (name "qt")
- (version "4.8.7")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://download.qt-project.org/archive/qt/"
- (string-copy version 0 (string-rindex version #\.))
- "/" version
- "/qt-everywhere-opensource-src-"
- version ".tar.gz"))
- (sha256
- (base32
- "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
- (patches (search-patches "qt4-ldflags.patch"))
- (modules '((guix build utils)))
- (snippet
- ;; Remove webkit module, which is not built.
- '(begin (delete-file-recursively "src/3rdparty/webkit")
- #t))))
- (build-system gnu-build-system)
- (propagated-inputs
- `(("mesa" ,mesa)))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("bluez" ,bluez)
- ("cups" ,cups)
- ("dbus" ,dbus)
- ("double-conversion" ,double-conversion)
- ("expat" ,expat)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("glib" ,glib)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("icu4c" ,icu4c)
- ("jasper" ,jasper)
- ("libinput" ,libinput-minimal)
- ("libmng" ,libmng)
- ("libpci" ,pciutils)
- ("libpng" ,libpng)
- ("libtiff" ,libtiff)
- ("libwebp" ,libwebp)
- ("libx11" ,libx11)
- ("libxcomposite" ,libxcomposite)
- ("libxcursor" ,libxcursor)
- ("libxext" ,libxext)
- ("libxfixes" ,libxfixes)
- ("libxi" ,libxi)
- ("libxinerama" ,libxinerama)
- ("libxkbcommon" ,libxkbcommon)
- ("libxml2" ,libxml2)
- ("libxrandr" ,libxrandr)
- ("libxrender" ,libxrender)
- ("libxslt" ,libxslt)
- ("libxtst" ,libxtst)
- ("mtdev" ,mtdev)
- ("mariadb-dev" ,mariadb "dev")
- ("nss" ,nss)
- ("postgresql" ,postgresql)
- ("pulseaudio" ,pulseaudio)
- ("pcre2" ,pcre2)
- ("sqlite" ,sqlite)
- ("udev" ,eudev)
- ("unixodbc" ,unixodbc)
- ("wayland" ,wayland)
- ("xcb-util" ,xcb-util)
- ("xcb-util-image" ,xcb-util-image)
- ("xcb-util-keysyms" ,xcb-util-keysyms)
- ("xcb-util-renderutil" ,xcb-util-renderutil)
- ("xcb-util-wm" ,xcb-util-wm)
- ("zlib" ,zlib)
- ("libjpeg" ,libjpeg-turbo)
- ("libsm" ,libsm)
- ("openssl" ,openssl-1.0)))
- (native-inputs
- `(;; XXX: The JavaScriptCore engine does not build with the C++11 standard.
- ;; We could build it with -std=gnu++98, but then we'll get in trouble with
- ;; ICU later. Just keep using GCC 5 for now.
- ("gcc@5" ,gcc-5)
- ("bison" ,bison)
- ("flex" ,flex)
- ("gperf" ,gperf)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("python" ,python-2)
- ("ruby" ,ruby)
- ("which" ,(@ (gnu packages base) which))))
- ;; Note: there are 37 MiB of examples and a '-exampledir' configure flags,
- ;; but we can't make them a separate output because "out" and "examples"
- ;; would refer to each other.
- (outputs '("out" ;112MiB core + 37MiB examples
- "doc")) ;280MiB of HTML + code
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'set-paths 'hide-default-gcc
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((gcc (assoc-ref inputs "gcc")))
- ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
- ;; conflicts with the GCC 5 input.
- (setenv "CPLUS_INCLUDE_PATH"
- (string-join
- (delete (string-append gcc "/include/c++")
- (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
- ":"))
- #t)))
- (replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc")))
- (substitute* '("configure")
- (("/bin/pwd") (which "pwd")))
- (substitute* "src/corelib/global/global.pri"
- (("/bin/ls") (which "ls")))
-
- (invoke
- "./configure"
- "-verbose"
- "-prefix" out
- "-nomake" "examples demos"
- ;; Note: Don't pass '-docdir' since 'qmake' and
- ;; libQtCore would record its value, thereby defeating
- ;; the whole point of having a separate output.
- "-datadir" (string-append out "/share/qt-" ,version
- "/data")
- "-importdir" (string-append out "/lib/qt-4"
- "/imports")
- "-plugindir" (string-append out "/lib/qt-4"
- "/plugins")
- "-translationdir" (string-append out "/share/qt-" ,version
- "/translations")
- "-demosdir" (string-append out "/share/qt-" ,version
- "/demos")
- "-examplesdir" (string-append out "/share/qt-" ,version
- "/examples")
- "-opensource"
- "-confirm-license"
- ;; explicitly link with dbus instead of dlopening it
- "-dbus-linked"
- ;; Skip the webkit module; it fails to build on armhf
- ;; and, apart from that, may pose security risks.
- "-no-webkit"
- ;; don't use the precompiled headers
- "-no-pch"
- ;; drop special machine instructions not supported
- ;; on all instances of the target
- ,@(if (string-prefix? "x86_64"
- (or (%current-target-system)
- (%current-system)))
- '()
- '("-no-mmx"
- "-no-3dnow"
- "-no-sse"
- "-no-sse2"))
- "-no-sse3"
- "-no-ssse3"
- "-no-sse4.1"
- "-no-sse4.2"
- "-no-avx"))))
- (add-after
- 'install 'move-doc
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Because of qt4-documentation-path.patch, documentation ends up
- ;; being installed in OUT. Move it to the right place.
- (let* ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc"))
- (olddoc (string-append out "/doc"))
- (docdir (string-append doc "/share/doc/qt-" ,version)))
- (mkdir-p (dirname docdir))
-
- ;; Note: We can't use 'rename-file' here because OUT and DOC are
- ;; different "devices" due to bind-mounts.
- (copy-recursively olddoc docdir)
- (delete-file-recursively olddoc)
- #t))))))
- (native-search-paths
- (list (search-path-specification
- (variable "QMAKEPATH")
- (files '("lib/qt5")))
- (search-path-specification
- (variable "QML2_IMPORT_PATH")
- (files '("lib/qt5/qml")))
- (search-path-specification
- (variable "QT_PLUGIN_PATH")
- (files '("lib/qt5/plugins")))
- (search-path-specification
- (variable "XDG_DATA_DIRS")
- (files '("share")))
- (search-path-specification
- (variable "XDG_CONFIG_DIRS")
- (files '("etc/xdg")))))
- (home-page "https://www.qt.io/")
- (synopsis "Cross-platform GUI library")
- (description "Qt is a cross-platform application and UI framework for
-developers using C++ or QML, a CSS & JavaScript like language.")
- (license (list license:lgpl2.1 license:lgpl3))
-
- ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS;
- ;; see <http://hydra.gnu.org/build/112828>.
- ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
- (supported-systems (delete "mips64el-linux" %supported-systems))))
-
(define (qt5-urls component version)
"Return a list of URLs for VERSION of the Qt5 COMPONENT."
;; We can't use a mirror:// scheme because these URLs are not exact copies:
@@ -2011,6 +1809,42 @@ and binaries removed, and adds modular support for using system libraries.")
(define-public python-sip
(package
(name "python-sip")
+ (version "5.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (list (pypi-uri "sip" version)
+ (string-append "https://www.riverbankcomputing.com/static/"
+ "Downloads/sip/" version
+ "/sip-" version ".tar.gz")))
+ (sha256
+ (base32
+ "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python" ,python-wrapper)))
+ (propagated-inputs
+ `(("python-toml" ,python-toml)
+ ("python-packaging" ,python-packaging)))
+ (home-page "https://www.riverbankcomputing.com/software/sip/intro")
+ (synopsis "Python binding creator for C and C++ libraries")
+ (description
+ "SIP is a tool to create Python bindings for C and C++ libraries. It
+was originally developed to create PyQt, the Python bindings for the Qt
+toolkit, but can be used to create bindings for any C or C++ library.
+
+SIP comprises a code generator and a Python module. The code generator
+processes a set of specification files and generates C or C++ code, which
+is then compiled to create the bindings extension module. The SIP Python
+module provides support functions to the automatically generated code.")
+ ;; There is a choice between a python like license, gpl2 and gpl3.
+ ;; For compatibility with pyqt, we need gpl3.
+ (license license:gpl3)))
+
+(define-public python-sip-4
+ (package
+ (inherit python-sip)
+ (name "python-sip")
(version "4.19.24")
(source
(origin
@@ -2025,6 +1859,7 @@ and binaries removed, and adds modular support for using system libraries.")
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-wrapper)))
+ (propagated-inputs `())
(arguments
`(#:tests? #f ; no check target
#:imported-modules ((guix build python-build-system)
@@ -2047,27 +1882,8 @@ and binaries removed, and adds modular support for using system libraries.")
"--bindir" bin
"--destdir" lib
"--incdir" include)))))))
- (home-page "https://www.riverbankcomputing.com/software/sip/intro")
- (synopsis "Python binding creator for C and C++ libraries")
- (description
- "SIP is a tool to create Python bindings for C and C++ libraries. It
-was originally developed to create PyQt, the Python bindings for the Qt
-toolkit, but can be used to create bindings for any C or C++ library.
-
-SIP comprises a code generator and a Python module. The code generator
-processes a set of specification files and generates C or C++ code, which
-is then compiled to create the bindings extension module. The SIP Python
-module provides support functions to the automatically generated code.")
- ;; There is a choice between a python like license, gpl2 and gpl3.
- ;; For compatibility with pyqt, we need gpl3.
(license license:gpl3)))
-(define-public python2-sip
- (package/inherit python-sip
- (name "python2-sip")
- (native-inputs
- `(("python" ,python-2)))))
-
(define-public python-pyqt
(package
(name "python-pyqt")
@@ -2081,17 +1897,17 @@ module provides support functions to the automatically generated code.")
(string-append "https://www.riverbankcomputing.com/static/"
"Downloads/PyQt5/" version "/PyQt5-"
version ".tar.gz")))
- (file-name (string-append "PyQt5-"version ".tar.gz"))
+ (file-name (string-append "PyQt5-" version ".tar.gz"))
(sha256
(base32
"1z74295i69cha52llsqffzhb5zz7qnbjc64h8qg21l91jgf0harp"))
- (patches (search-patches "pyqt-configure.patch"
- "pyqt-public-sip.patch"))))
+ (patches (search-patches "pyqt-configure.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("qtbase" ,qtbase))) ; for qmake
(propagated-inputs
- `(("python-sip" ,python-sip)))
+ `(("python-sip" ,python-sip)
+ ("python-pyqt5-sip" ,python-pyqt5-sip)))
(inputs
`(("python" ,python-wrapper)
("qtbase" ,qtbase)
@@ -2160,6 +1976,25 @@ framework. The bindings are implemented as a set of Python modules and
contain over 620 classes.")
(license license:gpl3)))
+(define-public python-pyqt5-sip
+ (package
+ (name "python-pyqt5-sip")
+ (version "12.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyQt5_sip" version))
+ (sha256
+ (base32
+ "1gg032ys4pccwkdzmdryadc9a4lq85nr05pag9swrsdykbdl9s9h"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;; No test code.
+ (home-page "https://www.riverbankcomputing.com/software/sip/")
+ (synopsis "Sip module support for PyQt5")
+ (description "Sip module support for PyQt5")
+ (license license:lgpl2.1+)))
+
(define-public python-pyqtwebengine
(package
(name "python-pyqtwebengine")
@@ -2253,85 +2088,28 @@ itself.")
(inputs
(alist-delete "qtwebkit" (package-inputs python-pyqt)))))
-(define-public python2-pyqt
- (package/inherit python-pyqt
- (name "python2-pyqt")
- (propagated-inputs
- `(("python-enum34" ,python2-enum34)
- ("python-sip" ,python2-sip)))
- (native-inputs
- `(("python-sip" ,python2-sip)
- ("qtbase" ,qtbase)))
- (inputs
- `(("python" ,python-2)
- ("python2-enum34" ,python2-enum34)
- ,@(alist-delete "python" (package-inputs python-pyqt))))))
-
-(define-public python2-pyqtwebengine
- (package/inherit
- python-pyqtwebengine
- (name "python2-pyqtwebengine")
- (native-inputs
- `(("python" ,python-2)
- ("python-sip" ,python2-sip)
- ;; qtbase is required for qmake
- ("qtbase" ,qtbase)))
+(define-public python-pyqt-builder
+ (package
+ (name "python-pyqt-builder")
+ (version "1.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyQt-builder" version))
+ (sha256
+ (base32
+ "0nh0054c54ji3sm6d268fccf0y5f613spswwgwqd3rnn816hnljl"))))
+ (build-system python-build-system)
(inputs
- `(("python" ,python-2)
- ("python-sip" ,python2-sip)
- ("python-pyqt" ,python2-pyqt)
- ("qtbase" ,qtbase)
- ("qtsvg" ,qtsvg)
- ("qtdeclarative" ,qtdeclarative)
- ("qtwebchannel" ,qtwebchannel)
- ("qtwebengine" ,qtwebengine)))))
-
-(define-public python2-pyqt-4
- (package (inherit python-pyqt)
- (name "python2-pyqt")
- (version "4.12.3")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "mirror://sourceforge/pyqt/PyQt4/"
- "PyQt-" version "/PyQt4_gpl_x11-"
- version ".tar.gz"))
- (sha256
- (base32
- "0wnlasg62rm5d39nq1yw4namcx2ivxgzl93r5f2vb9s0yaz5l3x0"))))
- (native-inputs
- `(("qt" ,qt-4)))
- (inputs `(("python" ,python-2)))
- (propagated-inputs
- `(("python-sip" ,python2-sip)))
- (arguments
- `(#:tests? #f ; no check target
- #:modules ((srfi srfi-1)
- ,@%gnu-build-system-modules)
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (sip (string-append out "/share/sip"))
- (python (assoc-ref inputs "python"))
- (python-version
- (last (string-split python #\-)))
- (python-major+minor
- (string-join
- (take (string-split python-version #\.) 2)
- "."))
- (lib (string-append out "/lib/python"
- python-major+minor
- "/site-packages")))
- (invoke "python" "configure.py"
- "--confirm-license"
- "--bindir" bin
- "--destdir" lib
- "--sipdir" sip)))))))
- (license (list license:gpl2 license:gpl3)))) ; choice of either license
+ `(("python-sip" ,python-sip)))
+ (home-page "https://www.riverbankcomputing.com/static/Docs/PyQt-builder/")
+ (synopsis "PEP 517 compliant PyQt build system")
+ (description "PyQt-builder is a tool for generating Python bindings for C++
+libraries that use the Qt application framework. The bindings are built on
+top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.")
+ ;; Either version 2 or 3, but no other version. See the file
+ ;; 'pyqtbuild/builder.py' in the source distribution for more information.
+ (license (list license:gpl2 license:gpl3))))
(define-public python-qtpy
(package
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 3378b36adb..e6d5ef0203 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Charlie Ritter <chewzerita@posteo.net>
;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 João Pedro Simas <jpsimas@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,6 +29,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
+ #:use-module (gnu packages admin)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
@@ -35,6 +37,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
@@ -48,14 +51,17 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages gps)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
+ #:use-module (gnu packages javascript)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
@@ -67,6 +73,7 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
@@ -165,6 +172,53 @@ To install the rtl-sdr udev rules, you must extend 'udev-service-type' with
this package. E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}")
(license license:gpl2+)))
+(define-public airspyhf
+ (package
+ (name "airspyhf")
+ (version "1.6.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/airspy/airspyhf")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0n699i5a9fzzhf80fcjlqq6p2a013rzlwmwv4nmwfafy6c8cr924"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libusb" ,libusb)))
+ (arguments
+ '(#:configure-flags '("-DINSTALL_UDEV_RULES=ON")
+ #:tests? #f ; No tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "tools/CMakeLists.txt"
+ (("DESTINATION \"/etc/udev/")
+ (string-append "DESTINATION \""
+ (assoc-ref outputs "out")
+ "/lib/udev/")))))
+ (add-after 'fix-paths 'fix-udev-rules
+ (lambda _
+ (substitute* "tools/52-airspyhf.rules"
+ ;; The plugdev group does not exist; use dialout as in
+ ;; the hackrf package.
+ (("GROUP=\"plugdev\"")
+ "GROUP=\"dialout\"")))))))
+ (home-page "https://github.com/airspy/airspyhf")
+ (synopsis "Software defined radio driver for Airspy HF+")
+ (description
+ "This package provides the driver and utilities for controlling the Airspy
+HF+ Software Defined Radio (SDR) over USB.
+
+To install the airspyhf udev rules, you must extend @code{udev-service-type}
+with this package. E.g.: @code{(udev-rules-service 'airspyhf airspyhf)}")
+ (license license:bsd-3)))
+
(define-public chirp
(package
(name "chirp")
@@ -286,32 +340,27 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
(define-public gnuradio
(package
(name "gnuradio")
- (version "3.8.0.0")
+ (version "3.9.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.gnuradio.org/releases/gnuradio/"
"gnuradio-" version ".tar.xz"))
(sha256
- (base32 "0aw55gf5549b0fz2qdi7vplcmaf92bj34h40s34b2ycnqasv900r"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Delete bundled volk to use the shared one.
- (delete-file-recursively "volk")
- #t))))
+ (base32 "1jvm9xd0l2pz1fww4zii6hl7ccnvy256nrf70ljb594n7j9j49ha"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("ghostscript" ,ghostscript)
+ ("js-mathjax" ,js-mathjax)
("orc" ,orc)
("pkg-config" ,pkg-config)
+ ("pybind11" ,pybind11)
("python-cheetah" ,python-cheetah)
("python-mako" ,python-mako)
("python-pyzmq" ,python-pyzmq)
("python-scipy" ,python-scipy)
("python-sphinx" ,python-sphinx)
- ("swig" ,swig)
("texlive" ,(texlive-union (list texlive-amsfonts
texlive-latex-amsmath
;; TODO: Add newunicodechar.
@@ -329,6 +378,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
("gsm" ,gsm)
("gtk+" ,gtk+)
("jack" ,jack-1)
+ ("libsndfile" ,libsndfile)
("log4cpp" ,log4cpp)
("pango" ,pango)
("portaudio" ,portaudio)
@@ -343,6 +393,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
("python-pyyaml" ,python-pyyaml)
("qtbase" ,qtbase)
("qwt" ,qwt)
+ ("sdl" ,sdl)
("volk" ,volk)
("zeromq" ,zeromq)))
(arguments
@@ -355,7 +406,9 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
(guix build glib-or-gtk-build-system)
(guix build python-build-system))
#:configure-flags
- '("-DENABLE_INTERNAL_VOLK=OFF")
+ (list (string-append "-DMATHJAX2_ROOT="
+ (assoc-ref %build-inputs "js-mathjax")
+ "/share/javascript/mathjax"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
@@ -371,8 +424,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
(substitute* "cmake/Modules/GrPython.cmake"
(("dist-packages")
"site-packages"))
- (substitute* '("gr-vocoder/swig/vocoder_swig.i"
- "gr-vocoder/include/gnuradio/vocoder/codec2.h"
+ (substitute* '("gr-vocoder/include/gnuradio/vocoder/codec2.h"
"gr-vocoder/include/gnuradio/vocoder/freedv_api.h")
(("<codec2/")
"<"))
@@ -384,6 +436,19 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
"/bin/Xvfb :1 &"))
(setenv "DISPLAY" ":1")
#t))
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (invoke "ctest" "-j" (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")
+ "--output-on-failure"
+ ;;disable broken tests
+ "-E" (string-join
+ '(;; https://github.com/gnuradio/gnuradio/issues/3871
+ "qa_header_payload_demux"
+ ;; https://github.com/gnuradio/gnuradio/issues/4348
+ "qa_packet_headerparser_b")
+ "|"))))
(add-after 'install 'wrap-python
(assoc-ref python:%standard-phases 'wrap))
(add-after 'wrap-python 'wrap-glib-or-gtk
@@ -424,40 +489,45 @@ environment.")
(license license:gpl3+)))
(define-public gnuradio-osmosdr
- (package
- (name "gnuradio-osmosdr")
- (version "0.2.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.osmocom.org/gr-osmosdr")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1aqj5cylipmmjh1x1kb2j8262hxq6mi86dgb2zphj94wvsab2ghx"))))
- (build-system cmake-build-system)
- (native-inputs
- `(("doxygen" ,doxygen)
- ("pkg-config" ,pkg-config)
- ("python" ,python)
- ("python-mako" ,python-mako)
- ("python-six" ,python-six)
- ("swig" ,swig)))
- (inputs
- `(("boost" ,boost)
- ("fftwf" ,fftwf)
- ("gmp" ,gmp)
- ("gnuradio" ,gnuradio)
- ("hackrf" ,hackrf)
- ("log4cpp" ,log4cpp)
- ("rtl-sdr" ,rtl-sdr)
- ("volk" ,volk)))
- (synopsis "GNU Radio block for interfacing with various radio hardware")
- (description "This is a block for GNU Radio allowing to use a common API
+ ;; No tag for version supporting Gnuradio 3.9; use commit.
+ (let ((commit "a100eb024c0210b95e4738b6efd836d48225bd03")
+ (revision "0"))
+ (package
+ (name "gnuradio-osmosdr")
+ (version (git-version "0.2.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.osmocom.org/gr-osmosdr")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pk5gnyznfyy510lbqzg9ijcb1fnhmn547n24aiqyrxd6i6vv1ki"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("pkg-config" ,pkg-config)
+ ("pybind11" ,pybind11)
+ ("python" ,python)
+ ("python-mako" ,python-mako)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("airspyhf" ,airspyhf)
+ ("boost" ,boost)
+ ("fftwf" ,fftwf)
+ ("gmp" ,gmp)
+ ("gnuradio" ,gnuradio)
+ ("hackrf" ,hackrf)
+ ("libsndfile" ,libsndfile)
+ ("log4cpp" ,log4cpp)
+ ("rtl-sdr" ,rtl-sdr)
+ ("volk" ,volk)))
+ (synopsis "GNU Radio block for interfacing with various radio hardware")
+ (description "This is a block for GNU Radio allowing to use a common API
to access different radio hardware.")
- (home-page "https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR")
- (license license:gpl3+)))
+ (home-page "https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR")
+ (license license:gpl3+))))
(define-public libosmo-dsp
(package
@@ -504,36 +574,39 @@ primitives for SDR (Software Defined Radio).")
(license license:gpl2+)))
(define-public gnuradio-iqbalance
- (package
- (name "gnuradio-iqbalance")
- (version "0.38.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.osmocom.org/gr-iqbal")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0ksagwz05p3b0702q7ljq7013xmp0ijp30my9z6s3p7ja8dj42s3"))))
- (build-system cmake-build-system)
- (native-inputs
- `(("doxygen" ,doxygen)
- ("pkg-config" ,pkg-config)
- ("python" ,python)
- ("python-numpy" ,python-numpy)
- ("python-six" ,python-six)
- ("swig" ,swig)))
- (inputs
- `(("boost" ,boost)
- ("fftwf" ,fftwf)
- ("gmp" ,gmp)
- ("gnuradio" ,gnuradio)
- ("libosmo-dsp" ,libosmo-dsp)
- ("log4cpp" ,log4cpp)
- ("volk" ,volk)))
- (synopsis "GNU Radio block to correct IQ imbalance")
- (description
+ ;; No tag for version supporting Gnuradio 3.9; use commit.
+ (let ((commit "fbee239a6fb36dd2fb564f6e6a0d393c4bc844db")
+ (revision "0"))
+ (package
+ (name "gnuradio-iqbalance")
+ (version (git-version "0.38.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.osmocom.org/gr-iqbal")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12p193ngcs65nd3lynry119nhv40mikamqkw37wdln7lawx3nw7p"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("pkg-config" ,pkg-config)
+ ("pybind11" ,pybind11)
+ ("python" ,python)
+ ("python-numpy" ,python-numpy)
+ ("python-six" ,python-six)))
+ (inputs
+ `(("boost" ,boost)
+ ("fftwf" ,fftwf)
+ ("gmp" ,gmp)
+ ("gnuradio" ,gnuradio)
+ ("libosmo-dsp" ,libosmo-dsp)
+ ("log4cpp" ,log4cpp)
+ ("volk" ,volk)))
+ (synopsis "GNU Radio block to correct IQ imbalance")
+ (description
"This is a GNU Radio block to correct IQ imbalance in quadrature
receivers. It's composed of two main block:
@itemize
@@ -541,8 +614,8 @@ receivers. It's composed of two main block:
@item Optimize: Attempts to auto-detect the phase and amplitude error to feed
to the fix block above.
@end itemize")
- (home-page "https://git.osmocom.org/gr-iqbal/")
- (license license:gpl3+)))
+ (home-page "https://git.osmocom.org/gr-iqbal/")
+ (license license:gpl3+))))
(define-public gqrx
(package
@@ -569,6 +642,7 @@ to the fix block above.
("gnuradio-iqbalance" ,gnuradio-iqbalance)
("gnuradio-osmosdr" ,gnuradio-osmosdr)
("jack" ,jack-1)
+ ("libsndfile" ,libsndfile)
("log4cpp" ,log4cpp)
("portaudio" ,portaudio)
("pulseaudio" ,pulseaudio)
@@ -822,7 +896,7 @@ users.")
(package
(inherit hamlib)
(name "wsjtx-hamlib")
- (version "2.3.0")
+ (version "2.3.1")
(source
(origin
(method git-fetch)
@@ -831,7 +905,7 @@ users.")
(commit (string-append "wsjtx-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0ampwqs7p0g8pdnwpdrbvwyqag065n96amgb3v4z332nw0nxvm10"))))
+ (base32 "0m4yzjcqs7a1w4lghyyckpkiy96jxdjijddxarqr3a37cl2rz23j"))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@@ -843,20 +917,12 @@ users.")
"--with-lua-binding"
"--with-python-binding"
"--with-tcl-binding"
- "--with-xml-support")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-tests
- (lambda _
- (substitute* "tests/testloc.c"
- (("dmmm2dec\\(deg, mmm, nesw\\);")
- "dmmm2dec(deg, mmm, 0, nesw);"))
- #t)))))))
+ "--with-xml-support")))))
(define-public wsjtx
(package
(name "wsjtx")
- (version "2.3.0")
+ (version "2.3.1")
(source
(origin
(method git-fetch)
@@ -865,7 +931,7 @@ users.")
(commit (string-append "wsjtx-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qf8r88ssara3pddvd3jpv5phzxwnanvdj00dxgmzq0c2jqcy2a8"))))
+ (base32 "0mdr4l7zii08615yn7z91spnvnqm5i9390bra9lz3aqyxrsiim91"))))
(build-system qt-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)
@@ -1400,3 +1466,112 @@ Compatible hardware/software:
@item Icom IC-9700
@end itemize\n")
(license license:expat)))
+
+(define-public dream
+ (package
+ (name "dream")
+ (version "2.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/drm/dream/" version
+ "/dream-" version "-svn808.tar.gz"))
+ (sha256
+ (base32 "01dv6gvljz64zrjbr08mybr9aicvpq2c6qskww46lngdjyhk8xs1"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("faad2" ,faad2)
+ ("fftw" ,fftw)
+ ("libsndfile" ,libsndfile)
+ ("libpcap" ,libpcap)
+ ("opus" ,opus)
+ ("pulseaudio" ,pulseaudio)
+ ("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)
+ ("qtwebkit" ,qtwebkit)
+ ("qwt" ,qwt)
+ ("speexdsp" ,speexdsp)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "dream.pro"
+ (("target\\.path = /usr/bin")
+ (string-append "target.path = "
+ (assoc-ref outputs "out") "/bin"))
+ (("documentation\\.path = /usr/share/man/man1")
+ (string-append "documentation.path = "
+ (assoc-ref outputs "out")
+ "/share/man/man1"))
+ (("/usr/include/pulse/")
+ (string-append (assoc-ref inputs "pulseaudio")
+ "/include/pulse/"))
+ (("/usr/include/sndfile\\.h")
+ (string-append (assoc-ref inputs "libsndfile")
+ "/include/sndfile.h"))
+ (("/usr/include/opus/")
+ (string-append (assoc-ref inputs "opus")
+ "/include/opus/"))
+ (("/usr/include/speex/")
+ (string-append (assoc-ref inputs "speexdsp")
+ "/include/speex/"))
+ (("/usr/include/qwt/")
+ (string-append (assoc-ref inputs "qwt")
+ "/include/qwt/"))
+ (("\\$\\$OUT_PWD/include/neaacdec\\.h")
+ (string-append (assoc-ref inputs "faad2")
+ "/include/neaacdec.h")))))
+ (replace 'configure
+ (lambda _
+ (invoke "qmake"))))))
+ (home-page "https://sourceforge.net/projects/drm/")
+ (synopsis "Digital Radio Mondiale receiver")
+ (description
+ "Dream is a software implementation of a Digital Radio Mondiale (DRM)
+receiver.")
+ (license license:gpl2+)))
+
+(define-public welle-io
+ (package
+ (name "welle-io")
+ (version "2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/albrechtl/welle.io")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("faad2" ,faad2)
+ ("fftwf" ,fftwf)
+ ("lame" ,lame)
+ ("libusb" ,libusb)
+ ("mpg123" ,mpg123)
+ ("rtl-sdr" ,rtl-sdr)
+ ("qtbase" ,qtbase)
+ ("qtcharts" ,qtcharts)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtgraphicaleffects" ,qtgraphicaleffects)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtquickcontrols2" ,qtquickcontrols2)))
+ (arguments
+ `(#:configure-flags '("-DRTLSDR=ON")
+ #:tests? #f))
+ (home-page "https://www.welle.io/")
+ (synopsis "DAB and DAB+ software radio")
+ (description
+ "@code{welle.io} is a Digital Audio Broadcasting (DAB and DAB+) software
+defined radio with support for rtl-sdr.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 0841c1fd8d..0baed8fc17 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -61,7 +61,7 @@
(version "2.0.15")
(source (origin
(method url-fetch)
- (uri (string-append "http://download.librdf.org/source/" name
+ (uri (string-append "https://download.librdf.org/source/" name
"-" version ".tar.gz"))
(patches
(search-patches "raptor2-heap-overflow.patch"))
@@ -76,7 +76,7 @@
("zlib" ,zlib)))
(arguments
`(#:parallel-tests? #f))
- (home-page "http://librdf.org/raptor/")
+ (home-page "https://librdf.org/raptor/")
(synopsis "RDF syntax library")
(description "Raptor is a C library providing a set of parsers and
serialisers that generate Resource Description Framework (RDF) triples
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 806c6cf873..300726764e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7159,7 +7159,7 @@ by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular:
(define-public ruby-rexml
(package
(name "ruby-rexml")
- (version "3.2.4")
+ (version "3.2.5")
(source
(origin
(method git-fetch) ;no tests in distributed gem
@@ -7168,8 +7168,7 @@ by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular:
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "0rhjjbkaq2f2cs8hyr2i4yjqpcyl8m0wmr2cypa401m3fvz4221i"))))
+ (base32 "13n6vaa80drqic2wri4q6k22qzvsn683vp5s8c9dllil6x04kn0x"))))
(build-system ruby-build-system)
(synopsis "XML toolkit for Ruby")
(description "Inspired by Electric XML library for Java, REXML aims to be
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index c7840e1a20..3952a17908 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -1460,5 +1460,9 @@ move around."
(rust-bootstrapped-package rust-1.49 "1.50.0"
"0pjs7j62maiyvkmhp9zrxl528g2n0fphp4rq6ap7aqdv0a6qz5wm"))
+(define-public rust-1.51
+ (rust-bootstrapped-package rust-1.50 "1.51.0"
+ "0ixqkqglv3isxbvl4ldr4byrkx692wghsz3fasy1pn5kr2prnsvs"))
+
;; TODO(staging): Bump this variable to the latest packaged rust.
(define-public rust rust-1.45)
diff --git a/gnu/packages/scsi.scm b/gnu/packages/scsi.scm
index 803f49931e..4c3bfd7e33 100644
--- a/gnu/packages/scsi.scm
+++ b/gnu/packages/scsi.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
-;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,14 +27,14 @@
(define-public sg3-utils
(package
(name "sg3-utils")
- (version "1.45")
+ (version "1.46")
(source (origin
(method url-fetch)
(uri (string-append "http://sg.danny.cz/sg/p/sg3_utils-"
version ".tar.xz"))
(sha256
(base32
- "1vmjb17y33a73sv7jg8fzs6bhr7yh2k9sba81sjiyf1pvi3vbnn7"))))
+ "185rlxppnsmi6q7garfhglmw31gji2ff24xg2yjk3klk1fqnihjr"))))
(build-system gnu-build-system)
(home-page "http://sg.danny.cz/sg/sg3_utils.html")
(synopsis "SCSI device utilities")
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index d458747872..0d603ad360 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -420,14 +420,14 @@ bibliographic data and simple document and bibtex retrieval.")
(define-public ugrep
(package
(name "ugrep")
- (version "3.1.4")
+ (version "3.1.11")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Genivia/ugrep")
(commit (string-append "v" version))))
(sha256
- (base32 "1ydnpdhn1mp2pnbqzvwabrp573626k89kbv97fax6y1bz2pamrg4"))
+ (base32 "1g3sxnrcaz1jxwa8nwrxpr63g4y0ha5zcf10053ciy9wjh6wqs1w"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet
@@ -446,13 +446,13 @@ bibliographic data and simple document and bibtex retrieval.")
("pcre2" ,pcre2)
("zlib" ,zlib)))
(arguments
- `(#:tests? #f ;; No script for re-building the binary test input-files
+ `(#:tests? #f ; no way to rebuild the binary input files
#:test-target "test"
#:phases
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
- ;; unpatch shepengs in tests
+ ;; Unpatch shebangs in tests.
(substitute* '("tests/Hello.bat"
"tests/Hello.sh")
(("#!/gnu/store/.*/bin/sh") "#!/bin/sh")))))))
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index f47619aa55..accab82419 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -631,9 +631,6 @@ implementing a Relying Party.")
;; files for internal use, so they are not really a bundled dependency.
(license (list license:bsd-2 license:asl2.0))))
-(define-public python2-fido2
- (package-with-python2 python-fido2))
-
(define-public python-yubikey-manager
(package
(name "python-yubikey-manager")
@@ -670,6 +667,3 @@ that after installing this package, you might still need to add appropriate
udev rules to your system configuration to be able to configure the YubiKey as
an unprivileged user.")
(license license:bsd-2)))
-
-(define-public python2-yubikey-manager
- (package-with-python2 python-yubikey-manager))
diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm
index bd8c6248d9..b75a622c64 100644
--- a/gnu/packages/sequoia.scm
+++ b/gnu/packages/sequoia.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +23,7 @@
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages check) ;; python-pytest
#:use-module (gnu packages crates-io)
@@ -203,3 +205,77 @@
several crates, providing both a low-level and a high-level API for dealing
with OpenPGP data.")
(license license:gpl2+)))
+
+(define-public sequoia4pEp
+ ;; Currently pEp Engine requires sequoia in not-so-current version
+ (package/inherit sequoia
+ (name "sequoia")
+ (version "0.15.0-pEp")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/sequoia-pgp/sequoia.git")
+ (commit "0eb1b6cd846ea8c36b3dfdf01ec88383fc64f2fe")))
+ (sha256
+ (base32 "06dqs9whwp9lfibwp8dqm0aw4nm3s3v4jp2n4fz51zcvsld40nfh"))
+ (file-name (git-file-name name version))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sequoia)
+ ((#:cargo-inputs _)
+ `(("rust-anyhow" ,rust-anyhow-1)
+ ("rust-base64" ,rust-base64-0.11)
+ ("rust-bzip2" ,rust-bzip2-0.3)
+ ("rust-capnp" ,rust-capnp-0.10)
+ ("rust-capnp-rpc" ,rust-capnp-rpc-0.10)
+ ("rust-chrono" ,rust-chrono-0.4)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-crossterm" ,rust-crossterm-0.13)
+ ("rust-dirs" ,rust-dirs-2)
+ ("rust-flate2" ,rust-flate2-1)
+ ("rust-fs2" ,rust-fs2-0.4)
+ ("rust-futures" ,rust-futures-0.1)
+ ("rust-http" ,rust-http-0.1)
+ ("rust-hyper" ,rust-hyper-0.12)
+ ("rust-hyper-tls" ,rust-hyper-tls-0.3)
+ ("rust-idna" ,rust-idna-0.2)
+ ("rust-itertools" ,rust-itertools-0.8)
+ ("rust-lalrpop" ,rust-lalrpop-0.17)
+ ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-memsec" ,rust-memsec-0.5)
+ ("rust-native-tls" ,rust-native-tls-0.2)
+ ("rust-nettle" ,rust-nettle-7)
+ ("rust-percent-encoding" ,rust-percent-encoding-2)
+ ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quickcheck" ,rust-quickcheck-0.9)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-rpassword" ,rust-rpassword-4)
+ ("rust-rusqlite" ,rust-rusqlite-0.19)
+ ("rust-sha2" ,rust-sha2-0.8)
+ ("rust-syn" ,rust-syn-1)
+ ("rust-tempfile" ,rust-tempfile-3)
+ ("rust-thiserror" ,rust-thiserror-1)
+ ("rust-tokio" ,rust-tokio-0.1)
+ ("rust-tokio-core" ,rust-tokio-core-0.1)
+ ("rust-tokio-io" ,rust-tokio-io-0.1)
+ ("rust-unicode-normalization" ,rust-unicode-normalization-0.1)
+ ("rust-url" ,rust-url-2)
+ ("rust-zbase32" ,rust-zbase32-0.1)))
+ ((#:cargo-development-inputs _)
+ `(("rust-assert-cli" ,rust-assert-cli-0.6)
+ ("rust-colored" ,rust-colored-1)
+ ("rust-filetime" ,rust-filetime-0.2)))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'unpin-deps
+ (lambda _
+ (substitute* (find-files "." "Cargo.toml")
+ (("= \"<") "= \"")
+ (("= \"=") "= \""))
+ #t))))))
+ (properties `((hidden? . #t)))))
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index c348bfde94..5ab3642dea 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -825,14 +825,14 @@ Shell (pdksh).")
(define-public oil
(package
(name "oil")
- (version "0.8.7")
+ (version "0.8.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.gz"))
(sha256
- (base32 "0yxd020jkwhhvq2l8hd9npp2vn6fvm11f0izfzwdl2npbnc976jr"))))
+ (base32 "1g3xk160x9k5smfc9k8nnxcj7w1nacmnhnpmm72am9rjp1vpv9h1"))))
(build-system gnu-build-system)
(arguments
`(#:strip-binaries? #f ; strip breaks the binary
@@ -940,7 +940,7 @@ files and text.")
(define-public nushell
(package
(name "nushell")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method git-fetch)
@@ -949,7 +949,7 @@ files and text.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0kbynyk4c0r2qi78mdchx6d0d0c7phz2sxj5cqwsz4gjziibhr7j"))))
+ (base32 "0x7r8ipvypf6py2h03pdqr8pal6vyp6mskvss1rr8f0bcy3gr725"))))
(build-system cargo-build-system)
(arguments
`(#:rust ,rust-1.47
@@ -961,38 +961,39 @@ files and text.")
("rust-futures" ,rust-futures-0.3)
("rust-itertools" ,rust-itertools-0.10)
("rust-log" ,rust-log-0.4)
- ("rust-nu-cli" ,rust-nu-cli-0.28)
- ("rust-nu-command" ,rust-nu-command-0.28)
- ("rust-nu-data" ,rust-nu-data-0.28)
- ("rust-nu-engine" ,rust-nu-engine-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-parser" ,rust-nu-parser-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
- ("rust-nu-plugin-binaryview" ,rust-nu-plugin-binaryview-0.28)
- ("rust-nu-plugin-chart" ,rust-nu-plugin-chart-0.28)
- ("rust-nu-plugin-fetch" ,rust-nu-plugin-fetch-0.28)
- ("rust-nu-plugin-from-bson" ,rust-nu-plugin-from-bson-0.28)
- ("rust-nu-plugin-from-sqlite" ,rust-nu-plugin-from-sqlite-0.28)
- ("rust-nu-plugin-inc" ,rust-nu-plugin-inc-0.28)
- ("rust-nu-plugin-match" ,rust-nu-plugin-match-0.28)
- ("rust-nu-plugin-post" ,rust-nu-plugin-post-0.28)
- ("rust-nu-plugin-ps" ,rust-nu-plugin-ps-0.28)
- ("rust-nu-plugin-s3" ,rust-nu-plugin-s3-0.28)
- ("rust-nu-plugin-selector" ,rust-nu-plugin-selector-0.28)
- ("rust-nu-plugin-start" ,rust-nu-plugin-start-0.28)
- ("rust-nu-plugin-sys" ,rust-nu-plugin-sys-0.28)
- ("rust-nu-plugin-textview" ,rust-nu-plugin-textview-0.28)
- ("rust-nu-plugin-to-bson" ,rust-nu-plugin-to-bson-0.28)
- ("rust-nu-plugin-to-sqlite" ,rust-nu-plugin-to-sqlite-0.28)
- ("rust-nu-plugin-tree" ,rust-nu-plugin-tree-0.28)
- ("rust-nu-plugin-xpath" ,rust-nu-plugin-xpath-0.28)
+ ("rust-nu-cli" ,rust-nu-cli-0.29)
+ ("rust-nu-command" ,rust-nu-command-0.29)
+ ("rust-nu-data" ,rust-nu-data-0.29)
+ ("rust-nu-engine" ,rust-nu-engine-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-parser" ,rust-nu-parser-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
+ ("rust-nu-plugin-binaryview" ,rust-nu-plugin-binaryview-0.29)
+ ("rust-nu-plugin-chart" ,rust-nu-plugin-chart-0.29)
+ ("rust-nu-plugin-fetch" ,rust-nu-plugin-fetch-0.29)
+ ("rust-nu-plugin-from-bson" ,rust-nu-plugin-from-bson-0.29)
+ ("rust-nu-plugin-from-sqlite" ,rust-nu-plugin-from-sqlite-0.29)
+ ("rust-nu-plugin-inc" ,rust-nu-plugin-inc-0.29)
+ ("rust-nu-plugin-match" ,rust-nu-plugin-match-0.29)
+ ("rust-nu-plugin-post" ,rust-nu-plugin-post-0.29)
+ ("rust-nu-plugin-ps" ,rust-nu-plugin-ps-0.29)
+ ("rust-nu-plugin-s3" ,rust-nu-plugin-s3-0.29)
+ ("rust-nu-plugin-selector" ,rust-nu-plugin-selector-0.29)
+ ("rust-nu-plugin-start" ,rust-nu-plugin-start-0.29)
+ ("rust-nu-plugin-sys" ,rust-nu-plugin-sys-0.29)
+ ("rust-nu-plugin-textview" ,rust-nu-plugin-textview-0.29)
+ ("rust-nu-plugin-to-bson" ,rust-nu-plugin-to-bson-0.29)
+ ("rust-nu-plugin-to-sqlite" ,rust-nu-plugin-to-sqlite-0.29)
+ ("rust-nu-plugin-tree" ,rust-nu-plugin-tree-0.29)
+ ("rust-nu-plugin-xpath" ,rust-nu-plugin-xpath-0.29)
("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4))
#:cargo-development-inputs
(("rust-dunce" ,rust-dunce-1)
- ("rust-nu-test-support" ,rust-nu-test-support-0.28)
+ ("rust-hamcrest2" ,rust-hamcrest2-0.3)
+ ("rust-nu-test-support" ,rust-nu-test-support-0.29)
("rust-serial-test" ,rust-serial-test-0.5))))
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1016,17 +1017,17 @@ directory. These values can be piped through a series of steps, in a series
of commands called a ``pipeline''.")
(license license:expat)))
-(define-public rust-nu-ansi-term-0.28
+(define-public rust-nu-ansi-term-0.29
(package
(name "rust-nu-ansi-term")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-ansi-term" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0j4ybp1bmlj9lakrp21i180c26x0i9ird08xshsr6607g8nvc73f"))))
+ (base32 "0zlcma4kg6rsfp5sgfp3yy717bdrn9nq32rdi2nabpwg3qa9mmkb"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -1040,23 +1041,24 @@ of commands called a ``pipeline''.")
underline).")
(license license:expat)))
-(define-public rust-nu-cli-0.28
+(define-public rust-nu-cli-0.29
(package
(name "rust-nu-cli")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-cli" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0wz3n4b7sz5zynwhs2gn11w1b9cji231f613r23j64a8y26hdzhn"))))
+ (base32 "0ya95r54k59h0gyz2wgj8y2lhddnk3aw7ww1npzcbfsy1xi1zvi5"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-arboard" ,rust-arboard-1)
- ("rust-async-recursion" ,rust-async-recursion-0.3)
+ ("rust-async-recursion"
+ ,rust-async-recursion-0.3)
("rust-async-trait" ,rust-async-trait-0.1)
("rust-base64" ,rust-base64-0.13)
("rust-bigdecimal" ,rust-bigdecimal-0.2)
@@ -1066,11 +1068,13 @@ underline).")
("rust-chrono" ,rust-chrono-0.4)
("rust-chrono-tz" ,rust-chrono-tz-0.5)
("rust-clap" ,rust-clap-2)
- ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+ ("rust-codespan-reporting"
+ ,rust-codespan-reporting-0.11)
("rust-csv" ,rust-csv-1)
("rust-ctrlc" ,rust-ctrlc-3)
("rust-derive-new" ,rust-derive-new-0.5)
- ("rust-directories-next" ,rust-directories-next-2)
+ ("rust-directories-next"
+ ,rust-directories-next-2)
("rust-dirs-next" ,rust-dirs-next-2)
("rust-dtparse" ,rust-dtparse-1)
("rust-dunce" ,rust-dunce-1)
@@ -1092,20 +1096,21 @@ underline).")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
("rust-meval" ,rust-meval-0.2)
- ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
- ("rust-nu-command" ,rust-nu-command-0.28)
- ("rust-nu-data" ,rust-nu-data-0.28)
- ("rust-nu-engine" ,rust-nu-engine-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-json" ,rust-nu-json-0.28)
- ("rust-nu-parser" ,rust-nu-parser-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-stream" ,rust-nu-stream-0.28)
- ("rust-nu-table" ,rust-nu-table-0.28)
- ("rust-nu-test-support" ,rust-nu-test-support-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+ ("rust-nu-command" ,rust-nu-command-0.29)
+ ("rust-nu-data" ,rust-nu-data-0.29)
+ ("rust-nu-engine" ,rust-nu-engine-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-json" ,rust-nu-json-0.29)
+ ("rust-nu-parser" ,rust-nu-parser-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-stream" ,rust-nu-stream-0.29)
+ ("rust-nu-table" ,rust-nu-table-0.29)
+ ("rust-nu-test-support"
+ ,rust-nu-test-support-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-num-format" ,rust-num-format-0.4)
("rust-num-traits" ,rust-num-traits-0.2)
@@ -1113,28 +1118,31 @@ underline).")
("rust-pin-utils" ,rust-pin-utils-0.1)
("rust-pretty-hex" ,rust-pretty-hex-0.2)
("rust-ptree" ,rust-ptree-0.3)
- ("rust-query-interface" ,rust-query-interface-0.3)
- ("rust-quick-xml" ,rust-quick-xml-0.21)
+ ("rust-query-interface"
+ ,rust-query-interface-0.3)
("rust-quickcheck" ,rust-quickcheck-1)
("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
+ ("rust-quick-xml" ,rust-quick-xml-0.21)
("rust-rand" ,rust-rand-0.8)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-roxmltree" ,rust-roxmltree-0.14)
("rust-rusqlite" ,rust-rusqlite-0.24)
("rust-rust-embed" ,rust-rust-embed-5)
- ("rust-rustyline" ,rust-rustyline-6)
+ ("rust-rustyline" ,rust-rustyline-8)
("rust-serde" ,rust-serde-1)
("rust-serde-bytes" ,rust-serde-bytes-0.11)
("rust-serde-ini" ,rust-serde-ini-0.2)
("rust-serde-json" ,rust-serde-json-1)
- ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.7)
+ ("rust-serde-urlencoded"
+ ,rust-serde-urlencoded-0.7)
("rust-serde-yaml" ,rust-serde-yaml-0.8)
("rust-sha2" ,rust-sha2-0.9)
("rust-shadow-rs" ,rust-shadow-rs-0.5)
("rust-shadow-rs" ,rust-shadow-rs-0.5)
("rust-shellexpand" ,rust-shellexpand-2)
- ("rust-strip-ansi-escapes" ,rust-strip-ansi-escapes-0.1)
+ ("rust-strip-ansi-escapes"
+ ,rust-strip-ansi-escapes-0.1)
("rust-sxd-document" ,rust-sxd-document-0.3)
("rust-sxd-xpath" ,rust-sxd-xpath-0.4)
("rust-tempfile" ,rust-tempfile-3)
@@ -1145,7 +1153,8 @@ underline).")
("rust-toml" ,rust-toml-0.5)
("rust-trash" ,rust-trash-1)
("rust-umask" ,rust-umask-1)
- ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+ ("rust-unicode-segmentation"
+ ,rust-unicode-segmentation-1)
("rust-url" ,rust-url-2)
("rust-users" ,rust-users-0.11)
("rust-uuid" ,rust-uuid-0.8)
@@ -1156,23 +1165,24 @@ underline).")
(description "CLI for nushell")
(license license:expat)))
-(define-public rust-nu-command-0.28
+(define-public rust-nu-command-0.29
(package
(name "rust-nu-command")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-command" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0n6967w99m4zi52lfb57ycckammcc4im92yl5v2a2r6avnxrby1d"))))
+ (base32 "0nydc7vyrhfw99bimjs6061zgcqqi8hjjx20sq3qn2njgk1p730l"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-arboard" ,rust-arboard-1)
- ("rust-async-recursion" ,rust-async-recursion-0.3)
+ ("rust-async-recursion"
+ ,rust-async-recursion-0.3)
("rust-async-trait" ,rust-async-trait-0.1)
("rust-base64" ,rust-base64-0.13)
("rust-bigdecimal" ,rust-bigdecimal-0.2)
@@ -1182,12 +1192,14 @@ underline).")
("rust-chrono" ,rust-chrono-0.4)
("rust-chrono-tz" ,rust-chrono-tz-0.5)
("rust-clap" ,rust-clap-2)
- ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+ ("rust-codespan-reporting"
+ ,rust-codespan-reporting-0.11)
("rust-crossterm" ,rust-crossterm-0.19)
("rust-csv" ,rust-csv-1)
("rust-ctrlc" ,rust-ctrlc-3)
("rust-derive-new" ,rust-derive-new-0.5)
- ("rust-directories-next" ,rust-directories-next-2)
+ ("rust-directories-next"
+ ,rust-directories-next-2)
("rust-dirs-next" ,rust-dirs-next-2)
("rust-dtparse" ,rust-dtparse-1)
("rust-dunce" ,rust-dunce-1)
@@ -1208,21 +1220,23 @@ underline).")
("rust-itertools" ,rust-itertools-0.10)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
+ ("rust-md5" ,rust-md5-0.7)
("rust-meval" ,rust-meval-0.2)
("rust-minus" ,rust-minus-3)
- ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
- ("rust-nu-data" ,rust-nu-data-0.28)
- ("rust-nu-engine" ,rust-nu-engine-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-json" ,rust-nu-json-0.28)
- ("rust-nu-parser" ,rust-nu-parser-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-stream" ,rust-nu-stream-0.28)
- ("rust-nu-table" ,rust-nu-table-0.28)
- ("rust-nu-test-support" ,rust-nu-test-support-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+ ("rust-nu-data" ,rust-nu-data-0.29)
+ ("rust-nu-engine" ,rust-nu-engine-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-json" ,rust-nu-json-0.29)
+ ("rust-nu-parser" ,rust-nu-parser-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-stream" ,rust-nu-stream-0.29)
+ ("rust-nu-table" ,rust-nu-table-0.29)
+ ("rust-nu-test-support"
+ ,rust-nu-test-support-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-num-format" ,rust-num-format-0.4)
("rust-num-traits" ,rust-num-traits-0.2)
@@ -1230,7 +1244,8 @@ underline).")
("rust-pin-utils" ,rust-pin-utils-0.1)
("rust-pretty-hex" ,rust-pretty-hex-0.2)
("rust-ptree" ,rust-ptree-0.3)
- ("rust-query-interface" ,rust-query-interface-0.3)
+ ("rust-query-interface"
+ ,rust-query-interface-0.3)
("rust-quick-xml" ,rust-quick-xml-0.21)
("rust-rand" ,rust-rand-0.7)
("rust-rayon" ,rust-rayon-1)
@@ -1238,17 +1253,19 @@ underline).")
("rust-roxmltree" ,rust-roxmltree-0.14)
("rust-rusqlite" ,rust-rusqlite-0.24)
("rust-rust-embed" ,rust-rust-embed-5)
- ("rust-rustyline" ,rust-rustyline-7)
+ ("rust-rustyline" ,rust-rustyline-8)
("rust-serde" ,rust-serde-1)
("rust-serde-bytes" ,rust-serde-bytes-0.11)
("rust-serde-ini" ,rust-serde-ini-0.2)
("rust-serde-json" ,rust-serde-json-1)
- ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.7)
+ ("rust-serde-urlencoded"
+ ,rust-serde-urlencoded-0.7)
("rust-serde-yaml" ,rust-serde-yaml-0.8)
("rust-sha2" ,rust-sha2-0.9)
("rust-shadow-rs" ,rust-shadow-rs-0.5)
("rust-shellexpand" ,rust-shellexpand-2)
- ("rust-strip-ansi-escapes" ,rust-strip-ansi-escapes-0.1)
+ ("rust-strip-ansi-escapes"
+ ,rust-strip-ansi-escapes-0.1)
("rust-sxd-document" ,rust-sxd-document-0.3)
("rust-sxd-xpath" ,rust-sxd-xpath-0.4)
("rust-tempfile" ,rust-tempfile-3)
@@ -1259,7 +1276,8 @@ underline).")
("rust-toml" ,rust-toml-0.5)
("rust-trash" ,rust-trash-1)
("rust-umask" ,rust-umask-1)
- ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+ ("rust-unicode-segmentation"
+ ,rust-unicode-segmentation-1)
("rust-url" ,rust-url-2)
("rust-users" ,rust-users-0.11)
("rust-uuid" ,rust-uuid-0.8)
@@ -1270,17 +1288,17 @@ underline).")
(description "CLI for nushell")
(license license:expat)))
-(define-public rust-nu-data-0.28
+(define-public rust-nu-data-0.29
(package
(name "rust-nu-data")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-data" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1gq0izbpaw4lp92ia3d3i14x649r1s6jscabm6xdi2qcxfb420kz"))))
+ (base32 "1niljv9vm42py1hmf8na03xbxb4vvypmrxk765ih9m2jg2zq9386"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -1289,22 +1307,25 @@ underline).")
("rust-byte-unit" ,rust-byte-unit-4)
("rust-chrono" ,rust-chrono-0.4)
("rust-derive-new" ,rust-derive-new-0.5)
- ("rust-directories-next" ,rust-directories-next-2)
+ ("rust-directories-next"
+ ,rust-directories-next-2)
("rust-dirs-next" ,rust-dirs-next-2)
("rust-getset" ,rust-getset-0.1)
("rust-indexmap" ,rust-indexmap-1)
("rust-log" ,rust-log-0.4)
- ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-table" ,rust-nu-table-0.28)
- ("rust-nu-test-support" ,rust-nu-test-support-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-table" ,rust-nu-table-0.29)
+ ("rust-nu-test-support"
+ ,rust-nu-test-support-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-num-format" ,rust-num-format-0.4)
("rust-num-traits" ,rust-num-traits-0.2)
- ("rust-query-interface" ,rust-query-interface-0.3)
+ ("rust-query-interface"
+ ,rust-query-interface-0.3)
("rust-serde" ,rust-serde-1)
("rust-toml" ,rust-toml-0.5)
("rust-users" ,rust-users-0.11))))
@@ -1313,24 +1334,27 @@ underline).")
(description "CLI for nushell")
(license license:expat)))
-(define-public rust-nu-engine-0.28
+(define-public rust-nu-engine-0.29
(package
(name "rust-nu-engine")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-engine" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "135bwcqvb8vhg417yzz90bj396f9hwpbqrdi9kw8fvmfz573z32s"))))
+ (base32 "1wz033zamlakpca5k2bgal2ykd5ia76g5fw3r5xzb6jb63q7xqhf"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-async-recursion" ,rust-async-recursion-0.3)
+ (("rust-async-recursion"
+ ,rust-async-recursion-0.3)
("rust-async-trait" ,rust-async-trait-0.1)
("rust-bytes" ,rust-bytes-0.5)
+ ("rust-codespan-reporting"
+ ,rust-codespan-reporting-0.11)
("rust-derive-new" ,rust-derive-new-0.5)
("rust-dirs-next" ,rust-dirs-next-2)
("rust-dunce" ,rust-dunce-1)
@@ -1345,15 +1369,15 @@ underline).")
("rust-indexmap" ,rust-indexmap-1)
("rust-itertools" ,rust-itertools-0.10)
("rust-log" ,rust-log-0.4)
- ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
- ("rust-nu-data" ,rust-nu-data-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-parser" ,rust-nu-parser-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-stream" ,rust-nu-stream-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+ ("rust-nu-data" ,rust-nu-data-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-parser" ,rust-nu-parser-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-stream" ,rust-nu-stream-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-parking-lot" ,rust-parking-lot-0.11)
("rust-rayon" ,rust-rayon-1)
("rust-serde" ,rust-serde-1)
@@ -1363,34 +1387,36 @@ underline).")
("rust-termcolor" ,rust-termcolor-1)
("rust-trash" ,rust-trash-1)
("rust-umask" ,rust-umask-1)
- ("rust-users" ,rust-users-0.11))))
+ ("rust-users" ,rust-users-0.11)
+ ("rust-which" ,rust-which-4))))
(home-page "https://www.nushell.sh")
(synopsis "Core commands for nushell")
(description "Core commands for nushell")
(license license:expat)))
-(define-public rust-nu-errors-0.28
+(define-public rust-nu-errors-0.29
(package
(name "rust-nu-errors")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-errors" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1zb5mmhzjh5cd27ry4z0vgw99ic9k3badxy3ywjk72nzpr5ra303"))))
+ (base32 "1xxdirdd57x20irn1z1p2987cyyi8l6k6shlblikjjf97d8kjk0n"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bigdecimal" ,rust-bigdecimal-0.2)
- ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+ ("rust-codespan-reporting"
+ ,rust-codespan-reporting-0.11)
("rust-derive-new" ,rust-derive-new-0.5)
("rust-getset" ,rust-getset-0.1)
("rust-glob" ,rust-glob-0.3)
- ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-serde" ,rust-serde-1)
@@ -1402,23 +1428,24 @@ underline).")
(description "Core error subsystem for Nushell")
(license license:expat)))
-(define-public rust-nu-json-0.28
+(define-public rust-nu-json-0.29
(package
(name "rust-nu-json")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-json" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "02w1lp7mp1fg7rf5zpdzllvsmd0jlgmig50xxag6a901ic85ddr7"))))
+ (base32 "1c1xj96gmyznqys3mxgnir4jf88npg4jkcwh9xa420agb03n9gzh"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
+ ("rust-linked-hash-map"
+ ,rust-linked-hash-map-0.5)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1))))
@@ -1427,33 +1454,36 @@ underline).")
(description "This package is a fork of @code{serde-hjson}.")
(license license:expat)))
-(define-public rust-nu-parser-0.28
+(define-public rust-nu-parser-0.29
(package
(name "rust-nu-parser")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-parser" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0sixgfj7nsg66gmsqchydkqbhf3dzg5igvcri7dz6qdadi578wb5"))))
+ (base32 "1cmqx4gw7xg6ag58y7pq94prwkagc40wcrxbk2vzqj206h97xvmi"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bigdecimal" ,rust-bigdecimal-0.2)
- ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+ ("rust-codespan-reporting"
+ ,rust-codespan-reporting-0.11)
("rust-derive-new" ,rust-derive-new-0.5)
- ("rust-derive-is-enum-variant" ,rust-derive-is-enum-variant-0.1)
+ ("rust-derive-is-enum-variant"
+ ,rust-derive-is-enum-variant-0.1)
("rust-dunce" ,rust-dunce-1)
("rust-indexmap" ,rust-indexmap-1)
("rust-itertools" ,rust-itertools-0.10)
("rust-log" ,rust-log-0.4)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-test-support" ,rust-nu-test-support-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-test-support"
+ ,rust-nu-test-support-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-serde" ,rust-serde-1)
@@ -1464,10 +1494,10 @@ underline).")
(description "Nushell parser")
(license license:expat)))
-(define-public rust-nu-plugin-0.28
+(define-public rust-nu-plugin-0.29
(package
(name "rust-nu-plugin")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
@@ -1475,19 +1505,19 @@ underline).")
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1bkxkffcywaam8r55v8ciq42mgimgxzl4x8vb5qzx49a5gjb1831"))))
+ (base32 "03qqvh4jhpzwb1mh4f8pz2m88sa825giz5g7lr2l96nb0qfya19j"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bigdecimal" ,rust-bigdecimal-0.2)
("rust-indexmap" ,rust-indexmap-1)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-nu-test-support"
- ,rust-nu-test-support-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ,rust-nu-test-support-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1))))
@@ -1496,17 +1526,17 @@ underline).")
(description "Nushell Plugin")
(license license:expat)))
-(define-public rust-nu-plugin-binaryview-0.28
+(define-public rust-nu-plugin-binaryview-0.29
(package
(name "rust-nu-plugin-binaryview")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_binaryview" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "055pc3idf1jsrks0hpx55vazaivxdjfncvbqjjsp89dk1011a3yp"))))
+ (base32 "0x7g9lncglbpdjxk1r47k49ha9yir03znis6zs7i25qwsb2sgynz"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -1514,11 +1544,11 @@ underline).")
(("rust-crossterm" ,rust-crossterm-0.19)
("rust-image" ,rust-image-0.22)
("rust-neso" ,rust-neso-0.5)
- ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-pretty-hex" ,rust-pretty-hex-0.2)
("rust-rawkey" ,rust-rawkey-0.1))))
(home-page "https://www.nushell.sh")
@@ -1527,29 +1557,29 @@ underline).")
"This package provides a binary viewer plugin for Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-chart-0.28
+(define-public rust-nu-plugin-chart-0.29
(package
(name "rust-nu-plugin-chart")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_chart" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "114kg6vspympi2fr14sgvwnlinwa7s2vwv8f9a9p1kwqg4qa281s"))))
+ (base32 "1b4zqnm788728jzqxcipik4x3lgj8yf0cjpxznbb10bgyfdp0jxk"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-crossterm" ,rust-crossterm-0.19)
- ("rust-nu-cli" ,rust-nu-cli-0.28)
- ("rust-nu-data" ,rust-nu-data-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-cli" ,rust-nu-cli-0.29)
+ ("rust-nu-data" ,rust-nu-data-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-tui" ,rust-tui-0.14))))
(home-page "https://www.nushell.sh")
(synopsis "Plugin to display charts")
@@ -1557,17 +1587,17 @@ underline).")
"This package provides a plugin to display charts in Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-fetch-0.28
+(define-public rust-nu-plugin-fetch-0.29
(package
(name "rust-nu-plugin-fetch")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_fetch" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1v7pc58m8gi5zscvyviy8j5zbn30hxqlb37c0grgda7635vqhq31"))))
+ (base32 "086z2a2fmi4v95kg6bgzp1ylilbbflxnf242vnkmw6ys5gs8g4dy"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -1575,10 +1605,10 @@ underline).")
(("rust-base64" ,rust-base64-0.13)
("rust-futures" ,rust-futures-0.3)
("rust-mime" ,rust-mime-0.3)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-surf" ,rust-surf-2)
("rust-url" ,rust-url-2))))
(home-page "https://www.nushell.sh")
@@ -1586,28 +1616,28 @@ underline).")
(description "This package provides a URL fetch plugin for Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-from-bson-0.28
+(define-public rust-nu-plugin-from-bson-0.29
(package
(name "rust-nu-plugin-from-bson")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_from_bson" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "13k11dh2pc48181qcbqwwgwwqh5d2g99p0rq4ly75l5jwyyazi73"))))
+ (base32 "02932wzrqrg4777cm1lpncig9cxn7s80fmlrkavrkw9dh2lnbbms"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bigdecimal" ,rust-bigdecimal-0.2)
("rust-bson" ,rust-bson-0.14)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-traits" ,rust-num-traits-0.2))))
(home-page "https://www.nushell.sh")
(synopsis "Converter plugin to the bson format for Nushell")
@@ -1616,27 +1646,27 @@ underline).")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-from-sqlite-0.28
+(define-public rust-nu-plugin-from-sqlite-0.29
(package
(name "rust-nu-plugin-from-sqlite")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_from_sqlite" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0mpaz3vn7zf1ijccfd9rgrzl0fr3fci6j16w7a81x6dh7pqavxgn"))))
+ (base32 "1mnavx7pa5isic2rnrxd8462axh826rimscjpjxq4nk77wkzp5s8"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bigdecimal" ,rust-bigdecimal-0.2)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-rusqlite" ,rust-rusqlite-0.24)
("rust-tempfile" ,rust-tempfile-3))))
@@ -1647,28 +1677,28 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-inc-0.28
+(define-public rust-nu-plugin-inc-0.29
(package
(name "rust-nu-plugin-inc")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_inc" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1dbayv8gcjpz46xgvh9b1pka2ygyhyalk1xzh43cvaccqn4qafrb"))))
+ (base32 "0w0dmqa6rv12whpmsvli5nb7pnazrhdp08x2fzrabz60rq1qsfx9"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ (("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-nu-test-support"
- ,rust-nu-test-support-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ,rust-nu-test-support-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-semver" ,rust-semver-0.11))))
(home-page "https://www.nushell.sh")
(synopsis "Version incrementer plugin for Nushell")
@@ -1677,25 +1707,25 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-match-0.28
+(define-public rust-nu-plugin-match-0.29
(package
(name "rust-nu-plugin-match")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_match" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1d19hwrrmbwxx3nn7gjs2wvzf6wfhdai9jsq35n7bgjx2qyip0ma"))))
+ (base32 "0hmxhd3z7p88xg5g75kljl0g6rp5k22ff0k9f2a6j9j7y3rrdlmb"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ (("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-regex" ,rust-regex-1))))
(home-page "https://www.nushell.sh")
(synopsis "Regex match plugin for Nushell")
@@ -1703,27 +1733,27 @@ Nushell.")
"This package provides a regex match plugin for Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-post-0.28
+(define-public rust-nu-plugin-post-0.29
(package
(name "rust-nu-plugin-post")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_post" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1jha85gl422p9knr0m4xdx353nmm00zrj5yh9w2gdyzs6hbzf80q"))))
+ (base32 "1d2198ks2cw6phg1hdsz75rqh5l49whcsl5hl21g86y2j5sl0hpd"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-base64" ,rust-base64-0.13)
("rust-futures" ,rust-futures-0.3)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-serde-json" ,rust-serde-json-1)
("rust-surf" ,rust-surf-1)
@@ -1733,27 +1763,27 @@ Nushell.")
(description "This package is an HTTP POST plugin for Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-ps-0.28
+(define-public rust-nu-plugin-ps-0.29
(package
(name "rust-nu-plugin-ps")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_ps" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0akgz7wi85ny2cfkcs9bn4hc97d4wdh9ayrzd6zasmird5kl1lv8"))))
+ (base32 "00dy60fnii1iifv0rh1xm77jn37l068np46fp3izbsbq642vzf7m"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-futures" ,rust-futures-0.3)
("rust-futures-timer" ,rust-futures-timer-3)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-sysinfo" ,rust-sysinfo-0.16))))
(home-page "https://www.nushell.sh")
@@ -1762,80 +1792,80 @@ Nushell.")
"This package provides a process list plugin for Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-s3-0.28
+(define-public rust-nu-plugin-s3-0.29
(package
(name "rust-nu-plugin-s3")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_s3" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "02b71ljsi7z2nbpm9djaxvdg7ql6xn0mqibpnzql0d39wfb0bxc2"))))
+ (base32 "00856l98gmmnv5bfg1vd6mqyk0zpkdrd1xgxqfi2c9nmsy2b1qfa"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-futures" ,rust-futures-0.3)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-s3handler" ,rust-s3handler-0.6))))
(home-page "https://www.nushell.sh")
(synopsis "S3 plugin for Nushell")
(description "This package is an S3 plugin for Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-selector-0.28
+(define-public rust-nu-plugin-selector-0.29
(package
(name "rust-nu-plugin-selector")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_selector" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0g1sjlvylclhhp41h6xx6vaa10478albjgh3n7kg3p0s6i8db5a7"))))
+ (base32 "14hn8plcax4kljq5kw96881pngs7w2gy11k3hs1pmaxhr0bi6c8h"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-nipper" ,rust-nipper-0.1)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28))))
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29))))
(home-page "https://www.nushell.sh")
(synopsis "Web scraping using CSS selector")
(description
"This package provides web scraping using CSS selector.")
(license license:expat)))
-(define-public rust-nu-plugin-start-0.28
+(define-public rust-nu-plugin-start-0.29
(package
(name "rust-nu-plugin-start")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_start" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1gqn6b1jpxcfx81c5c4yfs52gzxp9viyqj7hjs7fqvf5czi0bmz7"))))
+ (base32 "002cjbdh4zn81zhc5a0gklfxdjslqbcbp1wcx5ijzpch40c5dyzj"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-glob" ,rust-glob-0.3)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-open" ,rust-open-1)
("rust-url" ,rust-url-2))))
(home-page "https://www.nushell.sh")
@@ -1845,10 +1875,10 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-sys-0.28
+(define-public rust-nu-plugin-sys-0.29
(package
(name "rust-nu-plugin-sys")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
@@ -1856,17 +1886,17 @@ Nushell.")
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
- (base32 "16igj4z9f7kfy3x71ki3vaqdx6064l3k718vqfpabffjkz9qpfp5"))))
+ (base32 "0s2jyaff4lngm1c5446618r5761d8dcbpsrs7p7vzp6g2dic1w69"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-futures" ,rust-futures-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-sysinfo" ,rust-sysinfo-0.16))))
(home-page "https://www.nushell.sh")
@@ -1874,28 +1904,28 @@ Nushell.")
(description "This package provides a system info plugin for Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-textview-0.28
+(define-public rust-nu-plugin-textview-0.29
(package
(name "rust-nu-plugin-textview")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_textview" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "07m3x9bkq1qliicnshgs6yi6q5fbl6d6gxcd60kqcavkvdknnf8m"))))
+ (base32 "19kwh6rn0xk340yk0w1r3dfm328s9jqln8hgfqw5m3lld1hh1a4v"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bat" ,rust-bat-0.17)
- ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
- ("rust-nu-data" ,rust-nu-data-0.28)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+ ("rust-nu-data" ,rust-nu-data-0.29)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-term-size" ,rust-term-size-0.3)
("rust-url" ,rust-url-2))))
(home-page "https://www.nushell.sh")
@@ -1904,27 +1934,27 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-to-bson-0.28
+(define-public rust-nu-plugin-to-bson-0.29
(package
(name "rust-nu-plugin-to-bson")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_to_bson" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1rq2kwzrby8rh57gq4s4ljj4fgfgblrhjncjycpmkw2jzn7sa6xi"))))
+ (base32 "1j019frp663s511b7z9sz5vh77pvz0nn3w2asrk50xlyj5hfig55"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bson" ,rust-bson-0.14)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-traits" ,rust-num-traits-0.2))))
(home-page "https://www.nushell.sh")
(synopsis "Converter plugin to the bson format for Nushell")
@@ -1933,27 +1963,27 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-to-sqlite-0.28
+(define-public rust-nu-plugin-to-sqlite-0.29
(package
(name "rust-nu-plugin-to-sqlite")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_to_sqlite" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0q07fv4i4rkzjna54mkcri5bfngqkkmpfj3vmiyzib0x84pvzfjf"))))
+ (base32 "0p86iyag0ci15i1nqyb74kp1lax9mgm73w5g3qkp2v97lihv12pf"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-hex" ,rust-hex-0.4)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-rusqlite" ,rust-rusqlite-0.24)
("rust-tempfile" ,rust-tempfile-3))))
@@ -1964,26 +1994,26 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-tree-0.28
+(define-public rust-nu-plugin-tree-0.29
(package
(name "rust-nu-plugin-tree")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_tree" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0xifcyg0z025n6w0cqjnmrjcbynv437dkxpsxgbvm4iybj558590"))))
+ (base32 "096l86ci540v0aj9xrvwd4ccgg388kabz4rbg88nrpw0rlacrbc3"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-derive-new" ,rust-derive-new-0.5)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-ptree" ,rust-ptree-0.3))))
(home-page "https://www.nushell.sh")
(synopsis "Tree viewer plugin for Nushell")
@@ -1991,27 +2021,27 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-plugin-xpath-0.28
+(define-public rust-nu-plugin-xpath-0.29
(package
(name "rust-nu-plugin-xpath")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu_plugin_xpath" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0mwajr07489kgv2yhxsk0laydf8m8p736npvkcbsjxaxydnv5a5a"))))
+ (base32 "0459awkffb2sydd2l5gbcx1kz466qkigb1bxn5ka208y9k5qz54v"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-bigdecimal" ,rust-bigdecimal-0.2)
("rust-indexmap" ,rust-indexmap-1)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-plugin" ,rust-nu-plugin-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-plugin" ,rust-nu-plugin-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-sxd-document" ,rust-sxd-document-0.3)
("rust-sxd-xpath" ,rust-sxd-xpath-0.4))))
(home-page "https://www.nushell.sh")
@@ -2019,17 +2049,17 @@ Nushell.")
(description "Traverses XML")
(license license:expat)))
-(define-public rust-nu-protocol-0.28
+(define-public rust-nu-protocol-0.29
(package
(name "rust-nu-protocol")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-protocol" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0khpg2dnapyyimyq4ys1nfs1xzysxq2nb1ka2lmjfgdxrbwzrqnj"))))
+ (base32 "1iii3r37dcl7sf870qrzfkdc1iylbbkcycp1k5ifjvd5yxlkfpxx"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -2041,8 +2071,8 @@ Nushell.")
("rust-getset" ,rust-getset-0.1)
("rust-indexmap" ,rust-indexmap-1)
("rust-log" ,rust-log-0.4)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-num-integer" ,rust-num-integer-0.1)
("rust-num-traits" ,rust-num-traits-0.2)
@@ -2056,17 +2086,17 @@ Nushell.")
(description "Core values and protocols for Nushell")
(license license:expat)))
-(define-public rust-nu-source-0.28
+(define-public rust-nu-source-0.29
(package
(name "rust-nu-source")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-source" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "13a590iff8bg6p38xs1hh5krmii6qz2w5k7ak57dyh3r3vbhvmmd"))))
+ (base32 "1m8phdw9iwawsq0ip4zn2w8ggjjr45z1ny2sgdb3h1y1awpnvdbq"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -2083,46 +2113,46 @@ Nushell.")
Nushell.")
(license license:expat)))
-(define-public rust-nu-stream-0.28
+(define-public rust-nu-stream-0.29
(package
(name "rust-nu-stream")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-stream" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "02dl4d9gzl2jhg71hfc04x9j4p29iwwcyvm6m9pihwfpwb3q2bhj"))))
+ (base32 "15zx16s4wb23316ih4wqnnpajh1qz5vckpzk3k41qqkmar1w4sah"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-futures" ,rust-futures-0.3)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28))))
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29))))
(home-page "https://www.nushell.sh")
(synopsis "Nushell stream")
(description "This package provides Nushell stream.")
(license license:expat)))
-(define-public rust-nu-table-0.28
+(define-public rust-nu-table-0.29
(package
(name "rust-nu-table")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-table" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "15yd0wrl0y0rmjdvq2gmk97nxppdy5r424vy8v85gk876g82gi1s"))))
+ (base32 "1ihrr2406v5yjdfm699q6alx5bh49q8d04x1dzvn6qydgmf6r8z6"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-nu-ansi-term" ,rust-nu-ansi-term-0.28)
+ (("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
("rust-regex" ,rust-regex-1)
("rust-unicode-width" ,rust-unicode-width-0.1))))
(home-page "https://www.nushell.sh")
@@ -2130,17 +2160,17 @@ Nushell.")
(description "Nushell table printing")
(license license:expat)))
-(define-public rust-nu-test-support-0.28
+(define-public rust-nu-test-support-0.29
(package
(name "rust-nu-test-support")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "nu-test-support" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1qphsvr1wpn26ak5g4bj106csm8bia12srpv1dwy4zif42if57gm"))))
+ (base32 "0dlmhrskpdp82a6064srx1c4bqvfz66madx2i6cgxg56d7x38km6"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -2150,11 +2180,12 @@ Nushell.")
("rust-dunce" ,rust-dunce-1)
("rust-getset" ,rust-getset-0.1)
("rust-glob" ,rust-glob-0.3)
+ ("rust-hamcrest2" ,rust-hamcrest2-0.3)
("rust-indexmap" ,rust-indexmap-1)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
- ("rust-nu-value-ext" ,rust-nu-value-ext-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
+ ("rust-nu-value-ext" ,rust-nu-value-ext-0.29)
("rust-num-bigint" ,rust-num-bigint-0.3)
("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://www.nushell.sh")
@@ -2163,10 +2194,10 @@ Nushell.")
tests.")
(license license:expat)))
-(define-public rust-nu-value-ext-0.28
+(define-public rust-nu-value-ext-0.29
(package
(name "rust-nu-value-ext")
- (version "0.28.0")
+ (version "0.29.0")
(source
(origin
(method url-fetch)
@@ -2174,16 +2205,16 @@ tests.")
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0kwx2s4gyss8gmj72kl0y2yzq5injwv9g9n53bal339b81dd7v90"))))
+ (base32 "1riq3xg6cqwrfb55bwva13m5dn4d7d71g2825dn7z2i96f6vylwi"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-indexmap" ,rust-indexmap-1)
("rust-itertools" ,rust-itertools-0.10)
- ("rust-nu-errors" ,rust-nu-errors-0.28)
- ("rust-nu-protocol" ,rust-nu-protocol-0.28)
- ("rust-nu-source" ,rust-nu-source-0.28)
+ ("rust-nu-errors" ,rust-nu-errors-0.29)
+ ("rust-nu-protocol" ,rust-nu-protocol-0.29)
+ ("rust-nu-source" ,rust-nu-source-0.29)
("rust-num-traits" ,rust-num-traits-0.2))))
(home-page "https://www.nushell.sh")
(synopsis "@code{Extension} traits for values in Nushell")
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 687a3c10cf..093f6f957b 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@@ -55,15 +55,16 @@
(define-public flite
(package
(name "flite")
- (version "2.1")
+ (version "2.2")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "http://www.festvox.org/" name "/packed/" name
- "-" version "/" name "-" version "-release.tar.bz2"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/festvox/flite")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "119b7l7pjb1l5raqq24p8rmhdqni49vjh2mgdryrfr575rm3yg67"))))
+ (base32 "1n0p81jzndzc1rzgm66kw9ls189ricy5v1ps11y0p2fk1p56kbjf"))))
(build-system gnu-build-system)
(arguments
;; XXX:
diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm
index eeb77749d8..a48d724488 100644
--- a/gnu/packages/sqlite.scm
+++ b/gnu/packages/sqlite.scm
@@ -65,6 +65,7 @@
(sha256
(base32
"1bj936svd8i5g25xd1bj52hj4zca01fgl3sqkj86z9q5pkz4wa32"))))
+ (replacement sqlite/fixed)
(build-system gnu-build-system)
(inputs `(("readline" ,readline)))
(native-inputs (if (hurd-target?)
@@ -122,6 +123,27 @@ widely deployed SQL database engine in the world. The source code for SQLite
is in the public domain.")
(license license:public-domain)))
+(define-public sqlite/fixed
+ (package
+ (inherit sqlite)
+ (version "3.32.3")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((numeric-version
+ (match (string-split version #\.)
+ ((first-digit other-digits ...)
+ (string-append first-digit
+ (string-pad-right
+ (string-concatenate
+ (map (cut string-pad <> 2 #\0)
+ other-digits))
+ 6 #\0))))))
+ (string-append "https://sqlite.org/2020/sqlite-autoconf-"
+ numeric-version ".tar.gz")))
+ (sha256
+ (base32
+ "0rlbaq177gcgk5dswd3akbhv2nvvzljrbhgy18hklbhw7h90f5d3"))))))
+
;; Column metadata support was added to the regular 'sqlite' package with
;; commit fad5b1a6d8d9c36bea5785ae4fbc1beb37e644d7.
(define-public sqlite-with-column-metadata
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 68590e2fe5..fae10d0e16 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -403,48 +403,57 @@ libssh library.")
(deprecated-package "guile3.0-ssh" guile-ssh))
(define-public corkscrew
- (package
- (name "corkscrew")
- (version "2.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/patpadgett/corkscrew")
- (commit (string-append "v" version))))
- (sha256
- (base32 "0g4pkczrc1zqpnxyyjwcjmyzdj5qqcpzwf1bm3965zdwp94bpppf"))
- (file-name (git-file-name name version))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- ;; Replace configure phase as the ./configure script does not like
- ;; CONFIG_SHELL and SHELL passed as parameters.
- (lambda* (#:key outputs build target #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bash (which "bash"))
- ;; Set --build and --host flags as the provided config.guess
- ;; is not able to detect them.
- (flags `(,(string-append "--prefix=" out)
- ,(string-append "--build=" build)
- ,(string-append "--host=" (or target build)))))
- (setenv "CONFIG_SHELL" bash)
- (apply invoke bash "./configure" flags))))
- (add-after 'install 'install-documentation
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (doc (string-append out "/share/doc/" ,name "-" ,version)))
- (install-file "README.markdown" doc)
- #t))))))
- (home-page "https://github.com/patpadgett/corkscrew")
- (synopsis "SSH tunneling through HTTP(S) proxies")
- (description
- "Corkscrew tunnels SSH connections through most HTTP and HTTPS proxies.
-Proxy authentication is only supported through the plain-text HTTP basic
-authentication scheme.")
- (license license:gpl2+)))
+ ;; The last 2.0 release hails from 2009. Use a fork (submitted upstream as
+ ;; <https://github.com/patpadgett/corkscrew/pull/5>) that adds now-essential
+ ;; IPv6 and TLS support.
+ (let ((revision "0")
+ (commit "268b71e88ee51fddceab96d665b327394f1feb12"))
+ (package
+ (name "corkscrew")
+ (version (git-version "2.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rtgill82/corkscrew")
+ (commit commit)))
+ (sha256
+ (base32 "1rylbimlfig3ii4bqr4r058lkc43pqkxnxqpqdpm31blh3xs0dcw"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--enable-ssl")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'update-metadata
+ (lambda _
+ (substitute* "configure.ac"
+ ;; Our version differs significantly.
+ (("2.0") (string-append ,version " (Guix)")))
+ (substitute* "corkscrew.c"
+ ;; This domain's since been squat.
+ (("\\(agroman@agroman\\.net\\)")
+ (format #f "<~a>" ,(package-home-page this-package))))))
+ (add-after 'install 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/" ,name "-" ,version)))
+ (install-file "README.md" doc)
+ #t))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("openssl" ,openssl)))
+ (home-page "https://github.com/patpadgett/corkscrew")
+ (synopsis "SSH tunneling through HTTP(S) proxies")
+ (description
+ "Corkscrew tunnels SSH connections through most HTTP and HTTPS proxies.
+It supports proxy authentication through the HTTP basic authentication scheme
+with optional @acronym{TLS, Transport-Level Security} to protect credentials.")
+ (license license:gpl2+))))
(define-public mosh
(package
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 27f3bfa8ef..fb14526f98 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -710,14 +710,14 @@ analysis.")
(define-public r-survival
(package
(name "r-survival")
- (version "3.2-9")
+ (version "3.2-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "survival" version))
(sha256
(base32
- "1dkpdci2lvx141193wd69445y65w8k2pa89lc3l83i5jaj56svdn"))))
+ "19fg7mrrr6chbixq10kwwl5clry2y57v6zl24jlmxx2ylis0vjzd"))))
(build-system r-build-system)
(propagated-inputs
`(("r-matrix" ,r-matrix)))
@@ -1733,14 +1733,14 @@ database.")
(define-public r-dbplyr
(package
(name "r-dbplyr")
- (version "2.1.0")
+ (version "2.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "dbplyr" version))
(sha256
(base32
- "1sm0fixfr3bkq18p804mfbfz9z5z801dhzkrpq0spr25jkhpf26l"))))
+ "025wqpmxdhzblb0pf58m3qh5h6bf5x8qvkf47vyl1cjsp13wz95b"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
@@ -2681,13 +2681,13 @@ vectors.")
(define-public r-catools
(package
(name "r-catools")
- (version "1.18.1")
+ (version "1.18.2")
(source (origin
(method url-fetch)
(uri (cran-uri "caTools" version))
(sha256
(base32
- "1yf98x2gaf84y9m32xrg84g384zlfwsdw7wvywdljpgdpvzs9szz"))))
+ "14q2ry8gaszjl0m97qg62dxv5bpj6k02qwyi7q2lnxgcmwai3mkm"))))
(properties `((upstream-name . "caTools")))
(build-system r-build-system)
(propagated-inputs
@@ -2842,13 +2842,13 @@ a column in data frame.")
(define-public r-rsqlite
(package
(name "r-rsqlite")
- (version "2.2.4")
+ (version "2.2.5")
(source (origin
(method url-fetch)
(uri (cran-uri "RSQLite" version))
(sha256
(base32
- "050s7gv42v43d15yqj2sdrh82iikfpm32idfnw4nbjjjnlcg7wxf"))))
+ "14cxqh8j5v2rqs6yiargy1miycvx7xj47lppvpnnchi5plimlvyy"))))
(properties `((upstream-name . "RSQLite")))
(build-system r-build-system)
(propagated-inputs
@@ -2916,13 +2916,13 @@ ldap, and also supports cookies, redirects, authentication, etc.")
(define-public r-xml
(package
(name "r-xml")
- (version "3.99-0.5")
+ (version "3.99-0.6")
(source (origin
(method url-fetch)
(uri (cran-uri "XML" version))
(sha256
(base32
- "19jkpnbjx2ij0h7rxi13sqnjnwsap6wywmd4gnhfnqpic1rrnlk0"))))
+ "0qibvacbfm7gl41ylway3vdyi1qbpa211d48rg3k5i30d48rbf58"))))
(properties
`((upstream-name . "XML")))
(build-system r-build-system)
@@ -3402,17 +3402,18 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.")
(define-public r-e1071
(package
(name "r-e1071")
- (version "1.7-4")
+ (version "1.7-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "e1071" version))
(sha256
(base32
- "02935xcscjhb0jmnvh44hxlpjcgladrcr0gpz1jxq07m0qdqgaz6"))))
+ "0blfnv3m5k5xm9bfx1v5awvagqlhqaqpabrvzplf4244c3j259qa"))))
(build-system r-build-system)
(propagated-inputs
- `(("r-class" ,r-class)))
+ `(("r-class" ,r-class)
+ ("r-proxy" ,r-proxy)))
(home-page "https://cran.r-project.org/web/packages/e1071")
(synopsis "Miscellaneous functions for probability theory")
(description
@@ -4142,14 +4143,14 @@ existing packages provide.")
(define-public r-sfsmisc
(package
(name "r-sfsmisc")
- (version "1.1-8")
+ (version "1.1-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "sfsmisc" version))
(sha256
(base32
- "198zpkz1gvw954ym8669svrk81yb49j6fyk5i6a7dw07z3snlmdn"))))
+ "1skxahq5jgqdsllpsavzrcpz8l0yj3mfzcf70as8d33jxbiaa4s4"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/sfsmisc")
(synopsis "Utilities from \"Seminar fuer Statistik\" ETH Zurich")
@@ -5377,14 +5378,14 @@ first and second order derivatives.")
(define-public r-sn
(package
(name "r-sn")
- (version "1.6-2")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "sn" version))
(sha256
(base32
- "179xb7yb8br99aa5awm2yxsy0v5w1kdhv6a7ifaliz2y64677m1g"))))
+ "0sl8qzy9isy5fq8qxh1fg5285jzgy895nbgz8gdq5d0r6zdwrmmb"))))
(build-system r-build-system)
(propagated-inputs
`(("r-mnormt" ,r-mnormt)
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 709b3dd603..55a95792cb 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -143,7 +143,7 @@
(description
"[incr Tcl] is a widely used object-oriented system for Tcl. The name is
a play on C++, and [incr Tcl] provides a similar object model, including
-multiple inheritence and public and private classes and variables.")
+multiple inheritance and public and private classes and variables.")
(license license:public-domain)))
(define-public expect
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 82d1dc463c..e6bfe6c4f2 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -611,8 +611,8 @@ Telegram instant messenger.")
#:include-regexp ("\\.h$")))
args))))))
(synopsis "Parse tl scheme to tlo")
- (description "TL-Parser is a tl scheme to tlo file parser. It was formely
-a part of telegram-cli, but now being maintained separately.")
+ (description "TL-Parser is a tl scheme to tlo file parser. It was
+formerly a part of telegram-cli, but now being maintained separately.")
(home-page "https://github.com/vysheng/tl-parser")
(license license:gpl2+))))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 5c8d247e68..af7148bf84 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
;;;
@@ -723,7 +723,7 @@ your calls and messages.")
(define-public pjproject
(package
(name "pjproject")
- (version "2.10")
+ (version "2.11")
(source
(origin
(method git-fetch)
@@ -733,12 +733,8 @@ your calls and messages.")
(file-name (git-file-name name version))
(sha256
(base32
- "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))
+ "1kn9g1x1vmh4130ghph8mldz5m89gsjs4vpdzlzm98m3808gk5an"))
(modules '((guix build utils)))
- ;; The patches upstream status can be tracked at:
- ;; https://github.com/pjsip/pjproject/pull/2501.
- (patches (search-patches "pjproject-correct-the-cflags-field.patch"
- "pjproject-fix-pkg-config-ldflags.patch"))
(snippet
'(begin
;; Remove bundled libraries.
@@ -746,8 +742,7 @@ your calls and messages.")
(substitute* "aconfigure.ac"
(("third_party/build/os-auto.mak") ""))
(substitute* "Makefile"
- (("third_party/build") ""))
- #t))))
+ (("third_party/build") ""))))))
(build-system gnu-build-system)
(outputs '("out" "debug" "static"))
(arguments
@@ -785,8 +780,7 @@ your calls and messages.")
;; Make all the files writable to prevent the following error:
;; "autom4te: cannot open aconfigure: Permission denied".
(lambda _
- (for-each make-file-writable (find-files "."))
- #t))
+ (for-each make-file-writable (find-files "."))))
(add-before 'build 'build-dep
(lambda _ (invoke "make" "dep")))
;; The check phases is moved after the install phase so to
@@ -800,8 +794,7 @@ your calls and messages.")
(with-directory-excursion out
(for-each (lambda (f)
(rename-file f (string-append s "/" (basename f))))
- (find-files "." "\\.a$")))
- #t)))
+ (find-files "." "\\.a$"))))))
(add-after 'install 'check
(assoc-ref %standard-phases 'check))
(add-before 'patch-source-shebangs 'autoconf
@@ -844,8 +837,7 @@ your calls and messages.")
;; Disable the pjnath and pjsua tests, which require an actual
;; network and an actual sound card, respectively.
(("pjnath-test pjmedia-test pjsip-test pjsua-test")
- "pjmedia-test pjsip-test"))
- #t)))))
+ "pjmedia-test pjsip-test")))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c0f4ff0fcd..dfc92c3174 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
@@ -15,6 +15,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -342,14 +343,23 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use.
"--with-system-teckit"
"--with-system-xpdf"
"--with-system-zlib"
- "--with-system-zziplib")
-
- ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
- ;; XXX FIXME fix luajit properly on mips64 and aarch64.
+ "--with-system-zziplib"
+ ;; LuaJIT is not ported to powerpc64le* yet.
+ ,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
+ (%current-system)))
+ '("--disable-luajittex"
+ "--disable-mfluajit")
+ '()))
+
+ ;; Disable tests on some architectures to cope with a failure of
+ ;; luajiterr.test.
+ ;; XXX FIXME fix luajit properly on these architectures.
#:tests? ,(let ((s (or (%current-target-system)
(%current-system))))
(not (or (string-prefix? "aarch64" s)
- (string-prefix? "mips64" s))))
+ (string-prefix? "mips64" s)
+ (string-prefix? "powerpc64le" s))))
+
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'configure-ghostscript-executable
@@ -2510,6 +2520,10 @@ formats.")
"eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex"
"csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex"
"luacsplain luatex"
+ ,@(if (string-prefix? "powerpc64le"
+ (or (%current-target-system)
+ (%current-system)))
+ '("luajittex") '())
"cont-en xetex" "cont-en pdftex" "pdfcsplain xetex"
"pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex"
"mptopdf pdftex" "uplatex euptex" "jadetex pdftex"
@@ -6738,8 +6752,7 @@ produce either PostScript or PDF output.")
"1vz9zg7s5w52xr323zgglzprfrvba2zvyzf6b8vrdf4wdghlpv4z"))))
(build-system trivial-build-system)
(arguments
- `(#:modules ((guix build utils)
- (ice-9 match))
+ `(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
@@ -7796,3 +7809,172 @@ support packages. Others are cmbright, hvmath and kerkis.")
(license (list license:silofl1.1 ;for Arev Sans
license:lppl1.3a ;for TeX support files
license:gpl2)))) ;for ams-mdbch.sty
+
+(define-public texlive-mathdesign
+ (package
+ (inherit (simple-texlive-package
+ "texlive-mathdesign"
+ (list "/doc/fonts/mathdesign/"
+ "/dvips/mathdesign/"
+ "/fonts/enc/dvips/mathdesign/"
+ "/fonts/map/dvips/mathdesign/"
+ "/fonts/tfm/public/mathdesign/"
+ "/fonts/type1/public/mathdesign/"
+ "/fonts/vf/public/mathdesign/"
+ "/tex/latex/mathdesign/")
+ (base32
+ "0jcby2sd0l3ank2drxc0qcf5d1cwa8idzh4g91h4nxk8zrzxj8nr")
+ #:trivial? #t))
+ (home-page "https://www.ctan.org/pkg/mathdesign")
+ (synopsis "Mathematical fonts to fit with particular text fonts")
+ (description "The Math Design project offers free mathematical
+fonts that match with existing text fonts. To date, three free font
+families are available: Adobe Utopia, URW Garamond and Bitstream
+Charter. Mathdesign covers the whole LaTeX glyph set including AMS
+symbols. Both roman and bold versions of these symbols can be used.
+Moreover, there is a choice between three greek fonts (two of them
+created by the Greek Font Society).")
+ (license license:gpl2+)))
+
+(define-public texlive-bera
+ (package
+ (inherit (simple-texlive-package
+ "texlive-bera"
+ (list "/doc/fonts/bera/"
+ "/fonts/afm/public/bera/"
+ "/fonts/map/dvips/bera/"
+ "/fonts/tfm/public/bera/"
+ "/fonts/type1/public/bera/"
+ "/fonts/vf/public/bera/"
+ "/tex/latex/bera/")
+ (base32
+ "1pkmhhr6ah44xhipjr7nianv03hr4w4bn45xcvp264yw6ymqzqwr")
+ #:trivial? #t))
+ (home-page "https://www.ctan.org/pkg/bera")
+ (synopsis "Bera fonts")
+ (description "The @code{bera} package contains the Bera Type 1
+fonts and files to use the fonts with LaTeX. Bera is a set of three
+font families: Bera Serif (a slab-serif Roman), Bera Sans (a Frutiger
+descendant) and Bera Mono (monospaced/typewriter). The Bera family is
+a repackaging, for use with TeX, of the Bitstream Vera family.")
+ (license license:silofl1.1)))
+
+(define-public texlive-fourier
+ (package
+ (inherit (simple-texlive-package
+ "texlive-fourier"
+ (list "/doc/fonts/fourier/"
+ "/fonts/afm/public/fourier/"
+ "/fonts/map/dvips/fourier/"
+ "/fonts/tfm/public/fourier/"
+ "/fonts/type1/public/fourier/"
+ "/fonts/vf/public/fourier/"
+ "/tex/latex/fourier/")
+ (base32
+ "1vs2xdx6f6hd01zlslx3y93g3dsa7k3yhqpnhgkizgjmz0r9ipz1")
+ #:trivial? #t))
+ (home-page "https://www.ctan.org/pkg/fourier")
+ (synopsis "Utopia fonts for LaTeX documents")
+ (description "Fourier-GUTenberg is a LaTeX typesetting system
+which uses Adobe Utopia as its standard base font. Fourier-GUTenberg
+provides all complementary typefaces needed to allow Utopia based TeX
+typesetting including an extensive mathematics set and several other
+symbols. The system is absolutely stand-alone; apart from Utopia and
+Fourier no other typefaces are required. Utopia is a registered
+trademark of Adobe Systems Incorporated.")
+ (license license:lppl)))
+
+(define-public texlive-utopia
+ (package
+ (inherit (simple-texlive-package
+ "texlive-utopia"
+ (list "/doc/fonts/utopia/"
+ "/fonts/afm/adobe/utopia/"
+ "/fonts/tfm/adobe/utopia/"
+ "/fonts/type1/adobe/utopia/"
+ "/fonts/vf/adobe/utopia/")
+ (base32
+ "113wgkfz4z0ls2grxxfj17l42a1yv9r5ipcd0156xnfsrqvqzxfc")
+ #:trivial? #t))
+ (home-page "https://www.ctan.org/pkg/utopia")
+ (synopsis "Adobe Utopia fonts")
+ (description "The Adobe Standard Encoding set of the Utopia font
+family, as contributed to the X Consortium. The set comprises upright
+and italic shapes in medium and bold weights. Macro support and
+matching maths fonts are provided by the @code{fourier} and
+@code{mathdesign} font packages.")
+ (license (license:fsf-free
+ "http://mirrors.ctan.org/fonts/utopia/README"))))
+
+(define-public texlive-fontaxes
+ (package
+ (name "texlive-fontaxes")
+ (version "1.0e")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (texlive-ref "latex" "fontaxes"))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "19mhp9l7cjw0sbq55c9lz0l2pffkyhyir3i63jqynifjmglbgkl7"))))
+ (build-system texlive-build-system)
+ (arguments '(#:tex-directory "latex/fontaxes"))
+ (home-page "http://www.ctan.org/pkg/fontaxes")
+ (synopsis "Additional font axes for LaTeX")
+ (description "The @code{fontaxes} package adds several new font
+axes on top of LaTeX's New Font Selection Scheme (NFSS). In
+particular, it splits the shape axis into a primary and a secondary
+shape axis and it adds three new axes to deal with the different
+figure versions offered by many professional fonts.")
+ (license license:lppl1.3+)))
+
+(define-public texlive-mweights
+ (package
+ (inherit (simple-texlive-package
+ "texlive-mweights"
+ (list "/doc/latex/mweights/"
+ "/tex/latex/mweights/")
+ (base32
+ "1k2xclk54q3xgn48hji23q52nivkzgwf0s30bmm6k83f7v57qv8h")
+ #:trivial? #t))
+ (home-page "https://www.ctan.org/pkg/mweights")
+ (synopsis "Support for multiple-weight font packages")
+ (description "Many font families available for use with LaTeX are
+available at multiple weights. Many Type 1-oriented support packages
+for such fonts re-define the standard @code{\\mddefault} or
+@code{\\bfdefault} macros. This can create difficulties if the weight
+desired for one font family is not available for another font family,
+or if it differs from the weight desired for another font family. The
+@code{mweights} package provides a solution to these difficulties.")
+ (license license:lppl)))
+
+(define-public texlive-cabin
+ (package
+ (inherit (simple-texlive-package
+ "texlive-cabin"
+ (list "/doc/fonts/cabin/"
+ "/fonts/enc/dvips/cabin/"
+ "/fonts/map/dvips/cabin/"
+ "/fonts/opentype/impallari/cabin/"
+ "/fonts/tfm/impallari/cabin/"
+ "/fonts/type1/impallari/cabin/"
+ "/fonts/vf/impallari/cabin/"
+ "/tex/latex/cabin/")
+ (base32
+ "0dfq9gqch80iyvp58spmpmqfc9h61sjvnddm81ba0af1p8ag8sfg")
+ #:trivial? #t))
+ (home-page "https://www.ctan.org/pkg/cabin")
+ (synopsis "Humanist Sans Serif font with LaTeX support")
+ (description "Cabin is a humanist sans with four weights, true
+italics and small capitals. According to its designer, Pablo
+Impallari, Cabin was inspired by the typefaces of Edward Johnston and
+Eric Gill. Cabin incorporates modern proportions, optical adjustments
+and some elements of the geometric sans. @code{cabin.sty} supports
+use of the font under LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX. It uses
+the @code{mweights} package to manage the user's view of all those
+font weights. An @code{sfdefault} option is provided to enable Cabin
+as the default text font. The @code{fontaxes} package is required for
+use with [pdf]LaTeX.")
+ (license (list license:silofl1.1 ;for Cabin
+ license:lppl)))) ;for support files
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index c671095793..3af1aec94b 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -965,7 +965,7 @@ The basic features of Geany are:
(define-public fe
(package
(name "fe")
- ;; Stable release is 1.8. However, this development version
+ ;; Stable release is 1.9. However, this development version
;; introduces support for UTF-8.
(version "2.0")
(source (origin
@@ -974,7 +974,7 @@ The basic features of Geany are:
"fe-" version ".tar.gz"))
(sha256
(base32
- "1hwws7si1752z6hp61zxznvgsb6846lp8zl1hn5ddhsbafwalwb9"))))
+ "10mk5wc3dsdp46b3hkjyd740gcdv6m1gvlr3p8xjxf55b3vfs0la"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 20ce76d8d0..d6ebb59a1e 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -97,14 +97,14 @@ expressions.")
(define-public python-pytzdata
(package
(name "python-pytzdata")
- (version "2019.3")
+ (version "2020.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytzdata" version))
(sha256
(base32
- "0ppfc6kz4p41mxyqxq1g1zp6gvns99g6b344qj6ih0x9vxy6zh7s"))))
+ "0h0md0ldhb8ghlwjslkzh3wcj4fxg3n43bj5sghqs2m06nri7yiy"))))
(build-system python-build-system)
;; XXX: The PyPI distribution contains no tests, and the upstream
;; repository lacks a setup.py! How to build from git?
@@ -123,14 +123,15 @@ expressions.")
(define-public python-pytz
(package
(name "python-pytz")
- (version "2020.4")
+ ;; This package should be kept in sync with tzdata in (gnu packages base).
+ (version "2021.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytz" version))
(sha256
(base32
- "0s72lz9q7rm2xgl2in0nvhn5cp0cyrxa257fpj2919g0s797ssry"))))
+ "1nn459q7zg20n75akxl3ljkykgw1ydc8nb05rx1y4f5zjh4ak943"))))
(build-system python-build-system)
(home-page "http://pythonhosted.org/pytz")
(synopsis "Python timezone library")
@@ -448,9 +449,6 @@ converting dates, times, and timestamps. It implements and updates the
datetime type.")
(license asl2.0)))
-(define-public python2-arrow
- (package-with-python2 python-arrow))
-
(define-public python-aniso8601
(package
(name "python-aniso8601")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index c10975ed52..423612f4b6 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -251,7 +251,7 @@ living in the same process.")
(description
"GnuTLS is a secure communications library implementing the SSL, TLS
and DTLS protocols. It is provided in the form of a C library to support the
-protocols, as well as to parse and write X.5009, PKCS 12, OpenPGP and other
+protocols, as well as to parse and write X.509, PKCS #12, OpenPGP and other
required structures.")
(license license:lgpl2.1+)
(properties '((ftp-server . "ftp.gnutls.org")
@@ -434,7 +434,7 @@ required structures.")
(define-public openssl/fixed
(package
(inherit openssl)
- (version "1.1.1j")
+ (version "1.1.1k")
(source (origin
(method url-fetch)
(uri (list (string-append "https://www.openssl.org/source/openssl-"
@@ -447,7 +447,7 @@ required structures.")
(patches (search-patches "openssl-1.1-c-rehash-in.patch"))
(sha256
(base32
- "1gw17520vh13izy1xf5q0a2fqgcayymjjj5bk0dlkxndfnszrwma"))))))
+ "1rdfzcrxy9y38wqdw5942vmdax9hjhgrprzxm42csal7p5shhal9"))))))
(define-public openssl-1.0
(package
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 95a31f80fd..b8355600b3 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
-;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
@@ -228,7 +228,7 @@ them, etc., by attaching to the corresponding pane in tmux.")
(define-public tmux-xpanes
(package
(name "tmux-xpanes")
- (version "4.1.2")
+ (version "4.1.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -237,7 +237,7 @@ them, etc., by attaching to the corresponding pane in tmux.")
(file-name (git-file-name name version))
(sha256
(base32
- "0vm5mi6dqdbg0b5qh4r8sr1plpc00jryd8a2qxpp3a72cigjvvf0"))))
+ "09fmnn1q76r1l4cv7clmfr3j9cjmd053kq238d0qj2i486948ivv"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash)))
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 6387e84a3d..f88ea68436 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -236,3 +237,41 @@ and various scenery elements.")
"This is an animated, color, ANSI-text telnet server that renders a loop
of the Nyan Cat / Poptart Cat animation.")
(license license:ncsa)))
+
+(define-public cbonsai
+ (package
+ (name "cbonsai")
+ (version "1.0.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/jallbrit/cbonsai.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0a5lqc0il0dq26j4wxg1z2siqanra2905x9akwi86zriq65ayb77"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No test suite
+ #:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; No ./configure script
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/" ,name "-"
+ ,(package-version this-package))))
+ (install-file "README.md" doc)))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (home-page "https://gitlab.com/jallbrit/cbonsai")
+ (synopsis "Grow bonsai trees in a terminal")
+ (description "Cbonsai is a bonsai tree generator using ASCII art. It
+creates, colors, and positions a bonsai tree, and is configurable.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 33f3fb21c0..2743ba456d 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -96,14 +96,14 @@ over IRC, instant messaging, network games, and most server software.")
(define-public libupnp
(package
(name "libupnp")
- (version "1.14.2")
+ (version "1.14.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/pupnp/pupnp/releases/download"
"/release-" version "/libupnp-" version".tar.bz2"))
(sha256
- (base32 "0w62sn95fnp12qwz5nid6ksg2h9k0k6rinz00p8m3jd4j5dh9qzz"))))
+ (base32 "16hlcpffmqd4rja57m6km1dpx3abgv91vvmb8971vfg6gd0glzr2"))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(build-system gnu-build-system)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 137c7c8336..e7fa6e6777 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -172,14 +172,14 @@ as well as the classic centralized workflow.")
(define-public git
(package
(name "git")
- (version "2.31.0")
+ (version "2.31.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "0h4sg3xqa9pd2agrd7m18sqg319ls978d39qswyf30rjvg5n5wg8"))))
+ "10367n5sv4nsgaxy486pbp7nscx34vjk8vrb06jm9ffm8ix42qcz"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@@ -196,7 +196,7 @@ as well as the classic centralized workflow.")
version ".tar.xz"))
(sha256
(base32
- "1v40wwj130k76xf2w6vwhvfpkk765q1gcy5bqcrqssxf66ydqp8q"))))
+ "00n7vbfmd3ywgjksgwrszwj0l2niba64qkaq07ra4p8mawy483ax"))))
;; For subtree documentation.
("asciidoc" ,asciidoc-py3)
("docbook-xsl" ,docbook-xsl)
@@ -2330,7 +2330,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
(define-public grokmirror
(package
(name "grokmirror")
- (version "2.0.5")
+ (version "2.0.8")
(source
(origin
(method git-fetch)
@@ -2340,7 +2340,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
- (base32 "006ar3kc6fw1sq300ar9np4a63qzzsdama6cv30wh65v5mqw1mnv"))))
+ (base32 "0zfiwjw02df3mzpawp9jx61iwp0nhcf6y03cs8022l0hkvc7blbr"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no test suite
@@ -2722,7 +2722,7 @@ interrupted, published, and collaborated on while in progress.")
(define-public git-lfs
(package
(name "git-lfs")
- (version "2.13.2")
+ (version "2.13.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2731,7 +2731,7 @@ interrupted, published, and collaborated on while in progress.")
(file-name (git-file-name name version))
(sha256
(base32
- "0gfpzdya48phwln61746ii78sq55mhzj938lz8x062xkkcsdvbf4"))))
+ "0r7dmqhkhz91d3n7qfpny483x8f1n88yya22j2fvx75rgg33z2sg"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/git-lfs/git-lfs"
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2a213a10cf..571dbb70c6 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2016, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Feng Shu <tumashu@163.com>
-;;; Copyright © 201–72021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
@@ -286,7 +286,7 @@ video and audio streams from a DVD.")
(define-public svt-hevc
(package
(name "svt-hevc")
- (version "1.4.3")
+ (version "1.5.0")
(source
(origin
(method git-fetch)
@@ -296,7 +296,7 @@ video and audio streams from a DVD.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1sqh3dciqm2p1b66kngcpxqy5fx3ramxlxy8gfcbdwn2i3rsqhs7"))))
+ (base32 "038r3x3axil895vh2dq6223623ybrc45vn58vfmfb7cikz68sy23"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; Test script is stand-alone
@@ -381,7 +381,7 @@ video decode, encode and filtering on Intel's Gen graphics hardware platforms.")
#t))))))
(native-inputs
`(("dash" ,dash)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(inputs
`(("glew" ,glew)
@@ -707,7 +707,7 @@ old-fashioned output methods with powerful ascii-art renderer.")
(define-public celluloid
(package
(name "celluloid")
- (version "0.20")
+ (version "0.21")
(source
(origin
(method url-fetch)
@@ -715,7 +715,7 @@ old-fashioned output methods with powerful ascii-art renderer.")
"/releases/download/v" version
"/celluloid-" version ".tar.xz"))
(sha256
- (base32 "0kjjv2pcdvwcn4yi8kbpsca7pnx6cx6xdznv7ppqm0fssx68qyb3"))))
+ (base32 "1dvyf21iv9hrgv99szc24386vkacmhidm5b4d31hqqjs3b6di692"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("intltool" ,intltool)
@@ -772,7 +772,7 @@ television and DVD. It is also known as AC-3.")
(define-public libaom
(package
(name "libaom")
- (version "2.0.2")
+ (version "3.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -781,7 +781,7 @@ television and DVD. It is also known as AC-3.")
(file-name (git-file-name name version))
(sha256
(base32
- "0f3i983s9yvh9zc6mpy1ck5sjcg9l09lpw9v4md3mv8gbih9f0z0"))))
+ "178rq1d7i9q4lg40bipkyhdrk18j9wi5k5avpa5bls0zm7g5ifsx"))))
(build-system cmake-build-system)
(native-inputs
`(("perl" ,perl)
@@ -1995,7 +1995,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(define-public mpv
(package
(name "mpv")
- (version "0.33.0")
+ (version "0.33.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2004,7 +2004,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(file-name (git-file-name name version))
(sha256
(base32
- "06cmycd2gb826kf2zv470w6nhzyk9sdhjydsdiinbgb902lzcpfy"))))
+ "06rw1f55zcsj78ql8w70j9ljp2qb1pv594xj7q9cmq7i92a7hq45"))))
(build-system waf-build-system)
(native-inputs
`(("perl" ,perl) ; for zsh completion file
@@ -2179,14 +2179,14 @@ To load this plugin, specify the following option when starting mpv:
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2021.03.03")
+ (version "2021.04.07")
(source (origin
(method url-fetch)
(uri (string-append "https://youtube-dl.org/downloads/latest/"
"youtube-dl-" version ".tar.gz"))
(sha256
(base32
- "11z2v8mdii0bl13850mc6hgz80d0kgzb4hdxyikc3wa4jqfwrq7f"))
+ "02d51l6gdjr3zhhi7ydf5kzv8dv4jzq0ygja7zb2h9k7hnl0l27m"))
(snippet
'(begin
;; Delete the pre-generated files, except for the man page
@@ -2686,7 +2686,7 @@ for use with HTML5 video.")
(define-public avidemux
(package
(name "avidemux")
- (version "2.7.6")
+ (version "2.7.8")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2694,7 +2694,7 @@ for use with HTML5 video.")
"avidemux_" version ".tar.gz"))
(sha256
(base32
- "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s"))
+ "00blv5455ry3bb86zyzk1xmq3rbqmbif62khc0kq3whza97l12k2"))
(patches (search-patches "avidemux-install-to-lib.patch"))))
(build-system cmake-build-system)
(native-inputs
@@ -2727,7 +2727,7 @@ for use with HTML5 video.")
#:phases
;; Make sure files inside the included ffmpeg tarball are
;; patch-shebanged.
- (let ((ffmpeg "ffmpeg-4.2.3"))
+ (let ((ffmpeg "ffmpeg-4.2.4"))
(modify-phases %standard-phases
(add-before 'patch-source-shebangs 'unpack-ffmpeg
(lambda _
@@ -4757,7 +4757,7 @@ transcode or reformat the videos in any way, producing perfect backups.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/AOMediaCodec/SVT-AV1")
+ (url "https://gitlab.com/AOMediaCodec/SVT-AV1.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -4783,7 +4783,7 @@ transcode or reformat the videos in any way, producing perfect backups.")
(description "SVT-AV1 is an AV1 codec implementation. The encoder is a
work-in-progress, aiming to support video-on-demand and live streaming
applications. It only supports Intel-compatible CPUs (x86).")
- (home-page "https://github.com/AOMediaCodec/SVT-AV1")
+ (home-page "https://gitlab.com/AOMediaCodec/SVT-AV1")
(license license:bsd-2)))
(define-public svt-vp9
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index d559364d32..231fae9298 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 HiPhish <hiphish@posteo.de>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019, 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -71,7 +71,7 @@
(define-public vim
(package
(name "vim")
- (version "8.2.2067")
+ (version "8.2.2689")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -80,7 +80,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "02cd953h69k9klrcwi756namwg39ka7if9ccc399ihb1l5f3kr66"))))
+ "0l0hkr8cw7fdsfc5zzcxx3q1wmv9k3hrgalvffq0l69lviqdgh0p"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@@ -132,6 +132,8 @@
((".*Test_open_term_from_cmd.*" line)
(string-append line "return\n"))
((".*Test_terminal_postponed_scrollback.*" line)
+ (string-append line "return\n"))
+ ((".*Test_combining_double_width.*" line)
(string-append line "return\n")))
(substitute* "src/testdir/test_popupwin.vim"
((".*Test_popup_drag_termwin.*" line)
@@ -840,7 +842,7 @@ through its msgpack-rpc API.")
(define-public vim-asyncrun
(package
(name "vim-asyncrun")
- (version "2.7.5")
+ (version "2.8.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -849,7 +851,7 @@ through its msgpack-rpc API.")
(file-name (git-file-name name version))
(sha256
(base32
- "02fiqf4rcrxbcgvj02mpd78wkxsrnbi54aciwh9fv5mnz5ka249m"))))
+ "0mxsmjv497h6w8dxw0zvqginlx0yvrvrx4z3jhq2x3y2dfvpcm41"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index fabac5b984..64e5c88fd1 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -12,12 +12,13 @@
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
-;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,6 +43,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
@@ -97,6 +99,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages readline)
#:use-module (gnu packages selinux)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sphinx)
@@ -984,7 +987,7 @@ Debian or a derivative using @command{debootstrap}.")
(native-inputs
`(("glib" ,glib "bin") ; glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("vala" ,vala)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
@@ -1065,64 +1068,48 @@ manage system or application containers.")
(define-public libvirt
(package
(name "libvirt")
- (version "5.8.0")
+ (version "7.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
- (base32 "0m8cqaqflvys5kaqpvb0qr4k365j09jc5xk6x70yvg8qkcl2hcz2"))
- (patches
- (search-patches "libvirt-create-machine-cgroup.patch"))))
- (build-system gnu-build-system)
+ (base32 "1l6i1rz1v9rnp61sgzlrlbsfh03208dbm3b259i0jl5sqz85kx01"))
+ (patches (search-patches "libvirt-add-install-prefix.patch"))))
+ (build-system meson-build-system)
(arguments
`(#:configure-flags
- (list "--with-qemu"
- "--with-qemu-user=nobody"
- "--with-qemu-group=kvm"
- "--with-polkit"
- (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/"
+ (list "-Ddriver_qemu=enabled"
+ "-Dqemu_user=nobody"
+ "-Dqemu_group=kvm"
+ "-Dstorage_disk=enabled"
+ "-Dstorage_dir=enabled"
+ "-Dpolkit=enabled"
+ "-Dnls=enabled" ;translations
+ (string-append "-Ddocdir=" (assoc-ref %outputs "out") "/share/doc/"
,name "-" ,version)
+ "-Dbash_completion=enabled"
+ (string-append "-Dinstall_prefix=" (assoc-ref %outputs "out"))
"--sysconfdir=/etc"
"--localstatedir=/var")
+ #:meson ,meson-0.55
#:phases
(modify-phases %standard-phases
- (add-before 'configure 'fix-BOURNE_SHELL-definition
- ;; BOURNE_SHELL is hard-#defined to ‘/bin/sh’, causing test failures.
- (lambda _
- (substitute* "config.h.in"
- (("/bin/sh") (which "sh")))
- #t))
- (add-before 'configure 'patch-libtirpc-file-names
- (lambda* (#:key inputs #:allow-other-keys)
- ;; libvirt uses an m4 macro instead of pkg-config to determine where
- ;; the RPC headers are located. Tell it to look in the right place.
- (substitute* "configure"
- (("/usr/include/tirpc") ;defined in m4/virt-xdr.m4
- (string-append (assoc-ref inputs "libtirpc")
- "/include/tirpc")))
- #t))
(add-before 'configure 'disable-broken-tests
(lambda _
- (let ((tests (list "commandtest" ; hangs idly
- "qemuxml2argvtest" ; fails
- "qemuhotplugtest" ; fails
- "virnetsockettest" ; tries to network
- "virshtest"))) ; fails
- (substitute* "tests/Makefile.in"
- (((format #f "(~a)\\$\\(EXEEXT\\)" (string-join tests "|")))
+ (let ((tests (list "commandtest" ; hangs idly
+ "qemuxml2argvtest" ; fails
+ "virnetsockettest"))) ; tries to network
+ (substitute* "tests/meson.build"
+ (((format #f ".*'name': '(~a)'.*" (string-join tests "|")))
""))
#t)))
- (replace 'install
- ;; Since the sysconfdir and localstatedir should be /etc and /var
- ;; at runtime, we must prevent writing to them at installation
- ;; time.
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "install"
- "sysconfdir=/tmp/etc"
- "localstatedir=/tmp/var"
- make-flags))))))
+ (add-before 'install 'no-polkit-magic
+ ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
+ (lambda _
+ (setenv "PKEXEC_UID" "something")
+ #t)))))
(inputs
`(("libxml2" ,libxml2)
("eudev" ,eudev)
@@ -1131,25 +1118,32 @@ manage system or application containers.")
("dbus" ,dbus)
("libpcap" ,libpcap)
("libnl" ,libnl)
+ ("libssh2" ,libssh2) ;optional
("libtirpc" ,libtirpc) ;for <rpc/rpc.h>
("libuuid" ,util-linux "lib")
("lvm2" ,lvm2) ;for libdevmapper
("curl" ,curl)
("openssl" ,openssl)
+ ("readline" ,readline)
("cyrus-sasl" ,cyrus-sasl)
("libyajl" ,libyajl)
("audit" ,audit)
("dmidecode" ,dmidecode)
("dnsmasq" ,dnsmasq)
("ebtables" ,ebtables)
+ ("parted" ,parted)
("iproute" ,iproute)
("iptables" ,iptables)))
(native-inputs
- `(("xsltproc" ,libxslt)
+ `(("bash-completion" ,bash-completion)
+ ("gettext" ,gettext-minimal)
+ ("xsltproc" ,libxslt)
("perl" ,perl)
("pkg-config" ,pkg-config)
("polkit" ,polkit)
- ("python" ,python-wrapper)))
+ ("python" ,python-wrapper)
+ ("python-docutils" ,python-docutils) ;for rst2html
+ ("rpcsvc-proto" ,rpcsvc-proto))) ;for rpcgen
(home-page "https://libvirt.org")
(synopsis "Simple API for virtualization")
(description "Libvirt is a C toolkit to interact with the virtualization
@@ -1161,15 +1155,15 @@ to integrate other virtualization mechanisms if needed.")
(define-public libvirt-glib
(package
(name "libvirt-glib")
- (version "3.0.0")
+ (version "4.0.0")
(source (origin
(method url-fetch)
(uri (string-append "ftp://libvirt.org/libvirt/glib/"
- "libvirt-glib-" version ".tar.gz"))
+ "libvirt-glib-" version ".tar.xz"))
(sha256
(base32
- "1zpbv4ninc57c9rw4zmmkvvqn7154iv1qfr20kyxn8xplalqrzvz"))))
- (build-system gnu-build-system)
+ "1gdcvqz88qkp402zra9csc6391f2xki1270x683n6ixakl3gf8w4"))))
+ (build-system meson-build-system)
(inputs
`(("openssl" ,openssl)
("cyrus-sasl" ,cyrus-sasl)
@@ -1203,14 +1197,14 @@ three libraries:
(define-public python-libvirt
(package
(name "python-libvirt")
- (version "5.8.0")
+ (version "7.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
version ".tar.gz"))
(sha256
- (base32 "0kyz3lx49d8p75mvbzinxc1zgs8g7adn77y9bm15b8b4ad9zl5s6"))))
+ (base32 "1ryfimhf47s9k4n0gys233bh15l68fccs2bvj8bjwqjm9k2vmhy0"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1242,7 +1236,7 @@ virtualization library.")
(define-public virt-manager
(package
(name "virt-manager")
- (version "2.2.1")
+ (version "3.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://virt-manager.org/download/sources"
@@ -1250,11 +1244,10 @@ virtualization library.")
version ".tar.gz"))
(sha256
(base32
- "06ws0agxlip6p6n3n43knsnjyd91gqhh2dadgc33wl9lx1k8vn6g"))))
+ "11kvpzcmyir91qz0dsnk7748jbb4wr8mrc744w117qc91pcy6vrb"))))
(build-system python-build-system)
(arguments
`(#:use-setuptools? #f ; uses custom distutils 'install' command
- #:test-target "test_ui"
#:tests? #f ; TODO The tests currently fail
; RuntimeError: Loop condition wasn't
; met
@@ -1272,12 +1265,6 @@ virtualization library.")
(substitute* "virtinst/buildconfig.py"
(("/usr") (assoc-ref outputs "out")))
#t))
- (add-after 'unpack 'fix-qemu-img-reference
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "virtconv/formats.py"
- (("/usr(/bin/qemu-img)" _ suffix)
- (string-append (assoc-ref inputs "qemu") suffix)))
- #t))
(add-after 'unpack 'fix-default-uri
(lambda* (#:key inputs #:allow-other-keys)
;; Xen is not available for now - so only patch qemu.
@@ -1308,11 +1295,12 @@ virtualization library.")
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "HOME" "/tmp")
+ (setenv "XDG_CACHE_HOME" "/tmp")
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
;; Dogtail requires that Assistive Technology support be enabled
(setenv "GTK_MODULES" "gail:atk-bridge")
- (invoke "dbus-run-session" "--" "python" "setup.py" "test_ui"))
+ (invoke "dbus-run-session" "--" "pytest" "--uitests"))
#t))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
@@ -1342,7 +1330,9 @@ virtualization library.")
("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
("perl" ,perl) ; pod2man
("intltool" ,intltool)
+ ("rst2man" ,python-docutils)
;; The following are required for running the tests
+ ;; ("python-pytest" ,python-pytest)
;; ("python-dogtail" ,python-dogtail)
;; ("xvfb" ,xorg-server-for-tests)
;; ("dbus" ,dbus)
@@ -1564,17 +1554,16 @@ monitor/GPU.")
(define-public runc
(package
(name "runc")
- (version "1.0.0-rc6")
+ (version "1.0.0-rc93")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/opencontainers/runc/releases/"
"download/v" version "/runc.tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
- (patches (search-patches "runc-CVE-2019-5736.patch"))
(sha256
(base32
- "1c7832dq70slkjh8qp2civ1wxhhdd2hrx84pq7db1mmqc9fdr3cc"))))
+ "0b90r1bkvlqli53ca1yc1l488dba0isd3i6l7nlhszxi8p7hzvkh"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/opencontainers/runc"
@@ -1584,35 +1573,27 @@ monitor/GPU.")
#:tests? #f
#:phases
(modify-phases %standard-phases
- (replace 'unpack
- (lambda* (#:key source import-path #:allow-other-keys)
- ;; Unpack the tarball into 'runc' instead of 'runc-1.0.0-rc5'.
- (let ((dest (string-append "src/" import-path)))
- (mkdir-p dest)
- (invoke "tar" "-C" (string-append "src/" import-path)
- "--strip-components=1"
- "-xvf" source))))
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
- ;; XXX: requires 'go-md2man'.
- ;; (invoke "make" "man")
- (invoke "make"))))
- ;; (replace 'check
- ;; (lambda _
- ;; (invoke "make" "localunittest")))
+ (invoke "make" "all" "man"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "localunittest"))))
(replace 'install
(lambda* (#:key import-path outputs #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(let ((out (assoc-ref outputs "out")))
- (invoke "make" "install" "install-bash"
+ (invoke "make" "install" "install-bash" "install-man"
(string-append "PREFIX=" out)))))))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("go-md2man" ,go-github-com-go-md2man)
+ ("pkg-config" ,pkg-config)))
(inputs
`(("libseccomp" ,libseccomp)))
(synopsis "Open container initiative runtime")
- (home-page "https://www.opencontainers.org/")
+ (home-page "https://opencontainers.org/")
(description
"@command{runc} is a command line client for running applications
packaged according to the
@@ -1624,7 +1605,7 @@ Open Container Initiative specification.")
(define-public umoci
(package
(name "umoci")
- (version "0.4.6")
+ (version "0.4.7")
(source
(origin
(method url-fetch)
@@ -1633,7 +1614,7 @@ Open Container Initiative specification.")
version "/umoci.tar.xz"))
(file-name (string-append "umoci-" version ".tar.xz"))
(sha256
- (base32 "06q7xfwnqysc013hapx31jhlzmyg8qb467qfkynj673qc7p9bd6h"))))
+ (base32 "0fvljj9k4f83wbqzd8nbijz0p1zaq633f8yxyvl5sy3wjf03ffk9"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/opencontainers/umoci"
@@ -1670,7 +1651,7 @@ Open Container Initiative (OCI) image layout and its tagged images.")
(define-public skopeo
(package
(name "skopeo")
- (version "1.2.1")
+ (version "1.2.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1679,7 +1660,7 @@ Open Container Initiative (OCI) image layout and its tagged images.")
(file-name (git-file-name name version))
(sha256
(base32
- "1y9pmijazbgxzriymrm7zrifmkd1x1wad9b3zjcj7zwr6c999dhg"))))
+ "03sznybn3rqjyplc6w4b7mfa6gas8db15p5vnmfm1xqw72ldylgc"))))
(build-system go-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 2ea04acaa2..4eccd2c64f 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -683,7 +683,7 @@ WireGuard was added to Linux 5.6.")
(define-public wireguard-tools
(package
(name "wireguard-tools")
- (version "1.0.20210223")
+ (version "1.0.20210315")
(source
(origin
(method git-fetch)
@@ -692,7 +692,7 @@ WireGuard was added to Linux 5.6.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1pz7rir7bzj7rv1lqy45pqnr6jxsb4war31f9492757fql7kcrf4"))))
+ (base32 "1an5gm2dv111n3fylbrnyynxmi2d3iwf2b46zq08hc54kzazxcml"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 4e78c7555d..24bca093a6 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -173,14 +173,14 @@ older or slower computers and embedded systems.")
(define-public links
(package
(name "links")
- (version "2.21")
+ (version "2.22")
(source (origin
(method url-fetch)
(uri (string-append "http://links.twibright.com/download/"
"links-" version ".tar.bz2"))
(sha256
(base32
- "0qqdcghsdqm7l6kyi0k752ws3ak5crw85pqkcb11wy67j62yspi8"))))
+ "0k88qbmq0mf6zmk2v158c0rxvqbi7ysn58xyf4qqw7kz79mrhr03"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -591,40 +591,12 @@ vim editor and also easily configurable during runtime. Vimb is mostly keyboard
driven and does not detract you from your daily work.")
(license license:gpl3+)))
-;; Nyxt 2 pre-release 5 is incompatible with the new nickname "class*" of defclass-star.
-;; Use the older commit then.
-(define sbcl-hu.dwim.defclass-star--no-nickname
- (let ((commit "2cf30b37006824ec912cf7732fe6c4f4b414597f"))
- (package
- (name "sbcl-hu.dwim.defclass-star")
- ;; We used to set version from the date when it was a darcs repo, so we
- ;; keep the year so that package gets updated on previous installs.
- (version (git-version "2015-07-09" "1" commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/hu-dwim/hu.dwim.defclass-star")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0zmzvwgcp6lpkqxnfphd05v20xqsvz392mx1v98469kavh4zd7hf"))))
- (build-system asdf-build-system/sbcl)
- (native-inputs
- `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
- (arguments
- '(#:tests? #f))
- (home-page "https://github.com/hu-dwim/hu.dwim.defclass-star")
- (synopsis "See sbcl-hu.dwim.defclass-star")
- (description "See sbcl-hu.dwim.defclass-star.")
- (license license:public-domain))))
-
(define-public nyxt
(package
(name "nyxt")
;; Package the pre-release because latest stable 1.5.0 does not build
;; anymore.
- (version "2-pre-release-5")
+ (version "2-pre-release-6")
(source
(origin
(method git-fetch)
@@ -635,7 +607,7 @@ driven and does not detract you from your daily work.")
(commit version)))
(sha256
(base32
- "1sdafyhiicasd4wyzqnzdyrr16mz55y4b2hf5ya6i7nvm2vyhywl"))
+ "0kcqp3p070i6x2jj27h8pxzvmhrzsl4kl3vkc8m76abkxc9lvn03"))
(file-name (git-file-name "nyxt" version))))
(build-system gnu-build-system)
(arguments
@@ -696,6 +668,8 @@ driven and does not detract you from your daily work.")
("cl-calispel" ,sbcl-calispel)
("cl-containers" ,sbcl-cl-containers)
("cl-css" ,sbcl-cl-css)
+ ("cl-custom-hash-table" ,sbcl-custom-hash-table)
+ ("cl-html-diff" ,sbcl-cl-html-diff)
("cl-json" ,sbcl-cl-json)
("cl-markup" ,sbcl-cl-markup)
("cl-ppcre" ,sbcl-cl-ppcre)
@@ -704,16 +678,15 @@ driven and does not detract you from your daily work.")
("cluffer" ,sbcl-cluffer)
("dexador" ,sbcl-dexador)
("enchant" ,sbcl-enchant)
+ ("file-attributes" ,sbcl-file-attributes)
("fset" ,sbcl-fset)
- ;; TODO: Use latest upstream for 2 pre-release 6 onward.
- ("hu.dwim.defclass-star" ,sbcl-hu.dwim.defclass-star--no-nickname)
+ ("hu.dwim.defclass-star" ,sbcl-hu.dwim.defclass-star)
("iolib" ,sbcl-iolib)
("local-time" ,sbcl-local-time)
("log4cl" ,sbcl-log4cl)
("mk-string-metrics" ,sbcl-mk-string-metrics)
("moptilities" ,sbcl-moptilities)
("named-readtables" ,sbcl-named-readtables)
- ("osicat" ,sbcl-osicat)
("parenscript" ,sbcl-parenscript)
("plump" ,sbcl-plump)
("quri" ,sbcl-quri)
@@ -726,7 +699,6 @@ driven and does not detract you from your daily work.")
("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)
("trivial-types" ,sbcl-trivial-types)
("unix-opts" ,sbcl-unix-opts)
- ("usocket" ,sbcl-usocket)
;; WebKitGTK deps
("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
("cl-webkit" ,sbcl-cl-webkit)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b3be3b734e..bb5196b9f2 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
@@ -22,7 +22,7 @@
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2019, 2020 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018, 2019 Julien Lepiller <julien@lepiller.eu>
@@ -367,14 +367,14 @@ the same, being completely separated from the Internet.")
;; ’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.8")
+ (version "1.19.9")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
- "01cb6hsaik1sfjihbrldmwrcn54gk4plfy350sl1b4rml6qik29h"))))
+ "0hfqqyfgqa6wqazmb3d434nb3r5p8szfisa0m6nfh9lqdbqdyd9f"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)
("pcre" ,pcre)
@@ -457,9 +457,9 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(define-public nginx-documentation
;; This documentation should be relevant for the current nginx package.
- (let ((version "1.19.8")
- (revision 2673)
- (changeset "4398fd0f0341"))
+ (let ((version "1.19.9")
+ (revision 2696)
+ (changeset "f85798c1c70a"))
(package
(name "nginx-documentation")
(version (simple-format #f "~A-~A-~A" version revision changeset))
@@ -471,7 +471,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
(file-name (string-append name "-" version))
(sha256
(base32
- "1pds76h19fadmymyr6pnfh72ql6vizpv2628lqcrpqhxgwa6hcbg"))))
+ "1ksl32jw6h3qzyxxlsdjag7fcjvk3md3hdxn6ljs8pr2nhk1v6cs"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no test suite
@@ -1331,18 +1331,17 @@ parser written in ANSI C and a small validating JSON generator.")
(define-public libwebsockets
(package
(name "libwebsockets")
- (version "1.3")
+ (version "4.1.6")
(source (origin
;; The project does not publish tarballs, so we have to take
;; things from Git.
(method git-fetch)
(uri (git-reference
(url "https://github.com/warmcat/libwebsockets")
- (commit (string-append "v" version
- "-chrome37-firefox30"))))
+ (commit (string-append "v" version))))
(sha256
(base32
- "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
+ "0x56v4hsx92vm1zibfmnqb5g3v23kzciffn3fjlsc3sly2pknhsg"))
(file-name (string-append name "-" version))))
(build-system cmake-build-system)
@@ -4071,7 +4070,7 @@ is limited to http and https.")
(define-public perl-net-http
(package
(name "perl-net-http")
- (version "6.20")
+ (version "6.21")
(source (origin
(method url-fetch)
(uri (string-append
@@ -4079,7 +4078,7 @@ is limited to http and https.")
"Net-HTTP-" version ".tar.gz"))
(sha256
(base32
- "07lzfycza7qqxli18xgsnqwiwxapl0b64z33wfw62aai4hm7nllj"))))
+ "1i7fk6q1iaxzgf82mjd5hg77hvy7dbb79488cijg16dyfrds6nip"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-io-socket-ssl" ,perl-io-socket-ssl)
@@ -4685,14 +4684,14 @@ their web site.")
(define-public python-feedparser
(package
(name "python-feedparser")
- (version "5.2.1")
+ (version "6.0.2")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "feedparser" version ".tar.bz2"))
+ (uri (pypi-uri "feedparser" version ".tar.gz"))
(sha256
(base32
- "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
+ "0x0hm9brh3j71645pydvlkrwxaaca9dnwd7xahwjyjaz882s200v"))))
(build-system python-build-system)
(arguments
'(#:tests? #f))
@@ -4706,11 +4705,32 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
license:freebsd-doc)))) ; documentation
(define-public python2-feedparser
- (package-with-python2 python-feedparser))
+ (package
+ (name "python2-feedparser")
+ (version "5.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "feedparser" version ".tar.bz2"))
+ (sha256
+ (base32
+ "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f
+ #:python ,python-2))
+ (home-page
+ "https://github.com/kurtmckee/feedparser")
+ (synopsis "Parse feeds in Python")
+ (description
+ "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
+CDF, Atom 0.3, and Atom 1.0 feeds.")
+ (license (list license:bsd-2 ; source code
+ license:freebsd-doc)))) ; documentation
(define-public guix-data-service
- (let ((commit "b7ba8d0c2ca3aca9ba5b5f9f27b9778ee949d20e")
- (revision "25"))
+ (let ((commit "df2a0a73f1f35ea53ba6c07a6ad4c5347ba12b8f")
+ (revision "27"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4722,7 +4742,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
(file-name (git-file-name name version))
(sha256
(base32
- "0brv64bsqysl7dncz067blwvmqrlx99c2kwrgpz6k0nqv8nzsa28"))))
+ "1ss1prr98zdjkm97w24rd04lfnnvcw6xs0gwxqgd40briqisaa5g"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
@@ -4781,15 +4801,15 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
#t)))
(delete 'strip)))) ; As the .go files aren't compatible
(inputs
- `(("guix" ,guile3.0-guix)
- ("guile-fibers" ,guile3.0-fibers)
- ("guile-json" ,guile3.0-json)
- ("guile-email" ,guile3.0-email)
+ `(("guix" ,guix)
+ ("guile-fibers" ,guile-fibers)
+ ("guile-json" ,guile-json-4)
+ ("guile-email" ,guile-email)
("guile-prometheus" ,guile-prometheus)
- ("guile-squee" ,guile3.0-squee)
+ ("guile-squee" ,guile-squee)
("ephemeralpg" ,ephemeralpg)
("util-linux" ,util-linux)
- ("postgresql" ,postgresql-11)
+ ("postgresql" ,postgresql-13)
("sqitch" ,sqitch)))
(native-inputs
`(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
@@ -5888,14 +5908,14 @@ tools like SSH (Secure Shell) to reach the outside world.")
(define-public stunnel
(package
(name "stunnel")
- (version "5.58")
+ (version "5.59")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.stunnel.org/downloads/stunnel-"
version ".tar.gz"))
(sha256
- (base32 "0y9vjzjqi340vy6h321r1cskb7l6a4prr9d2ysixqzjpjv04rhfl"))))
+ (base32 "17yf2n47j5hw2y9527mrkx3j7q9jk5vvg46m3hgp1wg8dggpcxqk"))))
(build-system gnu-build-system)
(native-inputs
;; For tests.
@@ -6209,9 +6229,6 @@ response. This exists to cover all kinds of HTTP scenarios. All endpoint respo
JSON-encoded.")
(license license:isc)))
-(define-public python2-httpbin
- (package-with-python2 python-httpbin))
-
(define-public python-pytest-httpbin
(package
(name "python-pytest-httpbin")
@@ -6311,27 +6328,31 @@ message stream (in a web server that is per connection).")
(define-public python-httpretty
(package
(name "python-httpretty")
- (version "0.9.6")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "httpretty" version))
(sha256
- (base32 "1p1rb4mpngh0632xrmdfhvc8yink519yfkqz97d2ww3y0x2jvd81"))))
+ (base32 "1dg0nfl7i9kjnq98ww98x2afzav4mpgiwzvjc43ily1x9my94g75"))))
(build-system python-build-system)
- (propagated-inputs
- `(("python-six" ,python-six)))
+ (arguments
+ `(#:tests? #f ; Tests require network access.
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "nosetests"))
+ #t)))))
(native-inputs
`(("python-coverage" ,python-coverage)
- ("python-httplib2" ,python-httplib2)
- ("python-mock" ,python-mock)
+ ("python-eventlet" ,python-eventlet)
("python-nose" ,python-nose)
- ("python-nose-randomly" ,python-nose-randomly)
("python-rednose" ,python-rednose)
("python-requests" ,python-requests)
("python-sure" ,python-sure)
- ("python-tornado" ,python-tornado)
- ("python-urllib3" ,python-urllib3)))
+ ("python-tornado" ,python-tornado)))
(home-page "https://httpretty.readthedocs.io")
(synopsis "HTTP client mock for Python")
(description "@code{httpretty} is a helper for faking web requests,
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index bda05cc715..083c8ccb08 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;;
@@ -174,7 +174,7 @@ engine that uses Wayland for graphics output.")
("docbook-xsl" ,docbook-xsl)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
@@ -226,14 +226,14 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
(define-public webkitgtk
(package
(name "webkitgtk")
- (version "2.30.5")
+ (version "2.32.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
"webkitgtk-" version ".tar.xz"))
(sha256
(base32
- "07vzbbnvz69rn9pciji4axfpclp98bpj4a0br2z0gbn5wc4an3bx"))
+ "1w3b0w8izp0i070grhv19j631sdcd0mcqnjnax13k8mdx7dg8zcx"))
(patches (search-patches "webkitgtk-share-store.patch"
"webkitgtk-bind-all-fonts.patch"))))
(build-system cmake-build-system)
@@ -244,6 +244,9 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
#:configure-flags (list
"-DPORT=GTK"
"-DENABLE_GTKDOC=ON" ; No doc by default
+ ;; Requires libmanette, new dependency added in 2.32.0.
+ ;; TODO Decide if we should enable this
+ "-DENABLE_GAMEPAD=OFF"
"-DUSE_SYSTEMD=OFF"
(string-append ; uses lib64 by default
"-DLIB_INSTALL_DIR="
@@ -301,7 +304,7 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
- ("gtk-doc" ,gtk-doc) ; For documentation generation
+ ("gtk-doc" ,gtk-doc/stable) ; For documentation generation
("docbook-xml" ,docbook-xml) ; For documentation generation
("ruby" ,ruby)))
(propagated-inputs
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 3d85392394..90896c2b89 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -44,6 +44,7 @@
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 qblade <qblade@protonmail.com>
+;;; Copyright © 2021 lasnesne <lasnesne@lagunposprasihopre.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1569,7 +1570,7 @@ modules for building a Wayland compositor.")
(define-public waybar
(package
(name "waybar")
- (version "0.9.4")
+ (version "0.9.5")
(source
(origin
(method git-fetch)
@@ -1578,10 +1579,10 @@ modules for building a Wayland compositor.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy"))))
+ (base32 "1kzrgqaclfk6gcwhknxn28xl74gm5swipgn8kk8avacb4nsw1l9q"))))
(build-system meson-build-system)
(inputs `(("date" ,date)
- ("fmt" ,fmt-6)
+ ("fmt" ,fmt)
("gtk-layer-shell" ,gtk-layer-shell)
("gtkmm" ,gtkmm)
("jsoncpp" ,jsoncpp)
@@ -1590,7 +1591,7 @@ modules for building a Wayland compositor.")
("libmpdclent" ,libmpdclient)
("libnl" ,libnl)
("pulseaudio" ,pulseaudio)
- ("spdlog" ,spdlog-1.7)
+ ("spdlog" ,spdlog)
("wayland" ,wayland)))
(native-inputs
`(("gcc" ,gcc-8) ; for #include <filesystem>
@@ -2400,3 +2401,90 @@ for wayland conceptually based on the X11 window manager
(description "libucl implements a configuration language that is easy to
read and write, and compatible with JSON.")
(license license:bsd-2)))
+
+(define-public hikari
+ (package
+ (name "hikari")
+ (version "2.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hikari.acmelabs.space/releases/"
+ "hikari-" version ".tar.gz"))
+ (sha256
+ (base32 "1d023cphzi15k434n60l1rp5awxmdijvsxfrm59fmsvd5rjxh9q7"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("bmake" ,bmake)
+ ("pkg-config" ,pkg-config)
+ ("wayland-protocols" ,wayland-protocols)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("libinput" ,libinput)
+ ("libucl" ,libucl)
+ ("libxkbcommon" ,libxkbcommon)
+ ("pam" ,linux-pam)
+ ("pango" ,pango)
+ ("wayland" ,wayland)
+ ("wlroots" ,wlroots)))
+ (arguments
+ `(#:tests? #f ; no tests
+ #:make-flags
+ (list
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ (string-append "CC=" ,(cc-for-target))
+ "WITH_XWAYLAND=YES"
+ "WITH_SCREENCOPY=YES"
+ "WITH_LAYERSHELL=YES"
+ "WITH_VIRTUAL_INPUT=YES")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key inputs outputs make-flags #:allow-other-keys)
+ (apply invoke "bmake" make-flags)))
+ (replace 'install
+ (lambda* (#:key inputs outputs make-flags #:allow-other-keys)
+ (apply invoke "bmake" "install" make-flags))))))
+ (home-page "https://hikari.acmelabs.space/")
+ (synopsis "Stacking Wayland compositor with tiling capabilities")
+ (description
+ "Hikari is a stacking Wayland compositor with additional tiling
+capabilities. It is heavily inspired by the Calm Window manager(cwm).")
+ (license license:bsd-2)))
+
+(define-public wlogout
+ (package
+ (name "wlogout")
+ (version "1.1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ArtsyMacaw/wlogout")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1swhzkqkzli59c89pvrakfvicd00x7ga860c3x2pbb4y3xziqfvi"))))
+ (build-system meson-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("scdoc" ,scdoc)))
+ (inputs
+ `(("gtk-layer-shell" ,gtk-layer-shell)
+ ("gtk+" ,gtk+)))
+ (arguments
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "main.c"
+ (("/usr/share") (string-append out "/share"))
+ (("/etc") (string-append out "/etc"))))
+ #t)))))
+ (home-page "https://github.com/ArtsyMacaw/wlogout")
+ (synopsis "Logout menu for Wayland")
+ (description "wlogout is a logout menu for Wayland environments.")
+ (license license:expat)))
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 56ac53edec..725ea0afd6 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -1473,7 +1473,7 @@ less if you are working in front of the screen at night.")
(define-public xscreensaver
(package
(name "xscreensaver")
- (version "5.44")
+ (version "5.45")
(source
(origin
(method url-fetch)
@@ -1481,7 +1481,7 @@ less if you are working in front of the screen at night.")
(string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
version ".tar.gz"))
(sha256
- (base32 "15bv05vpfjwsrqbazrjmm382jd7vvw0mp6y9vasn6wvxzjf0in3k"))))
+ (base32 "03fmyjlwjinzv7mih6n07glmys8s877snd8zijk2c0ds6rkxy5kh"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
@@ -2249,7 +2249,7 @@ Wayland.")
(define-public autocutsel
(package
(name "autocutsel")
- (version "0.10.0")
+ (version "0.10.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/sigmike/autocutsel"
@@ -2257,7 +2257,7 @@ Wayland.")
"autocutsel-" version ".tar.gz"))
(sha256
(base32
- "0gsys2dzh4az51ndcsabhlbbrjn2nm75lnjr45kg6r8sm8q66dx2"))))
+ "05zb85imp42birvrc320q20r98qddc5vxx169dnl753l5za0czpi"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f)) ; no "check" target
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index dc65567835..38240d7b9f 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -313,7 +313,7 @@ upstream occasionally.")
(define-public exo
(package
(name "exo")
- (version "4.16.0")
+ (version "4.16.1")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -321,7 +321,7 @@ upstream occasionally.")
"exo-" version ".tar.bz2"))
(sha256
(base32
- "1k5sfm9cmg8k5zzzv0wb2cciqwwklnpfzcpak7wa32lsxl7b0x8r"))))
+ "0fxm2aczzbi0z4y6x24934964y9jg4cl4frvlnjc5zqmccjsr3aj"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -463,7 +463,7 @@ applications menu, workspace switcher and more.")
(define-public xfce4-battery-plugin
(package
(name "xfce4-battery-plugin")
- (version "1.1.3")
+ (version "1.1.4")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -471,7 +471,7 @@ applications menu, workspace switcher and more.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "18s0s004nidii8cc3ldp5n3jajc18vwn9vhkhmhy3lbbs520mghj"))))
+ "08n2cig9r2lccwvmk6v9vjiz0xqcp6x30m5b3q702v0m6ylg4z8h"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
@@ -765,7 +765,7 @@ like appearance, display, keyboard and mouse settings.")
(define-public thunar
(package
(name "thunar")
- (version "4.16.3")
+ (version "4.16.6")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -773,7 +773,7 @@ like appearance, display, keyboard and mouse settings.")
"thunar-" version ".tar.bz2"))
(sha256
(base32
- "0wpzs7r79aayg4zbxy514fbkabac1hhvw522cjjr453gva4xq92m"))))
+ "1dq238m2bh938gpb058cr2xmhy6f3qkyyya9l0ya95kiwqzislyb"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1206,7 +1206,7 @@ of data to either CD/DVD/BD.")
(define-public mousepad
(package
(name "mousepad")
- (version "0.5.3")
+ (version "0.5.4")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/mousepad/"
@@ -1214,7 +1214,7 @@ of data to either CD/DVD/BD.")
version ".tar.bz2"))
(sha256
(base32
- "1a6a3x4h6aisjm59i0afx1w50035s76zjr4a6p9ja5bax6wqn877"))))
+ "189aljqgkrspqk9498izgvssw08pgkyvf7hc7ddmzfhcblp4j3yr"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '(;; Use the GSettings keyfile backend rather than
@@ -1761,7 +1761,7 @@ mounted or when unmounting fails.")
(define-public xfce4-netload-plugin
(package
(name "xfce4-netload-plugin")
- (version "1.3.2")
+ (version "1.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1770,7 +1770,7 @@ mounted or when unmounting fails.")
"/xfce4-netload-plugin-" version ".tar.bz2"))
(sha256
(base32
- "0p91875n6s8n88l7wb4w9prqly3wvkyilnr7zq0ppq71rwjh9r12"))))
+ "036pvhfv1iynvj75va0xl8hpvnfckabyqm9jv56pb40p2072cxkc"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)
@@ -1916,7 +1916,7 @@ freedesktop.org specification.")
(define-public xfce4-systemload-plugin
(package
(name "xfce4-systemload-plugin")
- (version "1.2.4")
+ (version "1.3.1")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@@ -1925,13 +1925,14 @@ freedesktop.org specification.")
"/xfce4-systemload-plugin-" version ".tar.bz2"))
(sha256
(base32
- "0dcqg13phlcri4i4g9752m4zfkcmidiqpjv4s3l3pfiwjbgvhc85"))))
+ "0lknh5l30qs5c69wwjcblbyhczvdbxs59fqkb8mpqbfm05w01lan"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
- `(("libxfce4ui" ,libxfce4ui)
+ `(("libgtop" ,libgtop)
+ ("libxfce4ui" ,libxfce4ui)
("xfce4-panel" ,xfce4-panel)))
(home-page
"https://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin")
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 2a72fc6ad2..1c34fe499a 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -28,6 +28,9 @@
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -76,6 +79,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
+ #:use-module (guix utils)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config))
@@ -98,7 +102,7 @@
`(#:glib-or-gtk? #t))
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
- ("gtk-doc" ,gtk-doc)
+ ("gtk-doc" ,gtk-doc/stable)
("pkg-config" ,pkg-config)))
(inputs
`(("appstream-glib" ,appstream-glib)
@@ -214,6 +218,48 @@ hierarchical form with variable field lengths.")
project (but it is usable outside of the Gnome platform).")
(license license:x11)))
+(define-public libxlsxwriter
+ (package
+ (name "libxlsxwriter")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jmcnamara/libxlsxwriter")
+ (commit (string-append "RELEASE_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dsqv4qdd582fhwj6m80iz50gkyw4m8n9h4mkd2871csa03sbilf"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove bundled minizip source
+ '(begin
+ (delete-file-recursively "third_party/minizip")
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ "USE_STANDARD_TMPFILE=1"
+ "USE_SYSTEM_MINIZIP=1")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)))) ; no configure script
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (inputs
+ `(("minizip" ,minizip)))
+ (home-page "https://github.com/jmcnamara/libxlsxwriter")
+ (synopsis "C library for creating Excel XLSX files")
+ (description
+ "Libxlsxwriter is a C library that can be used to write text, numbers,
+formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
+ (license (list license:bsd-2
+ license:public-domain)))) ; third_party/md5
+
;; This is the latest stable release.
(define-public libxmlplusplus
(package
@@ -2008,6 +2054,60 @@ efficiently all input elements (for example in SOAP processors). This
package is in maintenance mode.")
(license (license:non-copyleft "file:///LICENSE.txt"))))
+(define-public java-xmlpull-api-v1
+ (package
+ (name "java-xmlpull-api-v1")
+ (version "1.1.3.4b")
+ (source (origin
+ ;; The package is originally from Extreme! Lab, but the website
+ ;; is now gone. This repositories contains the sources of the
+ ;; latest version.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aslom/xmlpull-api-v1")
+ ;; No releases, this is the latest commit
+ (commit "abeaa4aa87b2625af70c32f658f44e11355fe568")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "15bdqxfncnakskna4m9gsh4f9iczxy83qxn2anqiqd15z406a5ih"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ (delete-file-recursively "lib")
+ (mkdir-p "lib")
+ ;; prevents a failure in "dist_lite"
+ (substitute* "build.xml"
+ (("README.html") "README.md"))))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:test-target "junit"
+ #:build-target "dist"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/" ,name "-" ,version))
+ (java (string-append out "/share/java"))
+ (project (string-append
+ "xmlpull_"
+ ,(string-join (string-split version #\.) "_"))))
+ (mkdir-p doc)
+ (copy-recursively (string-append "build/dist/" project "/doc/")
+ doc)
+ (mkdir-p java)
+ (copy-file (string-append "build/dist/" project "/" project ".jar")
+ (string-append java "/" project ".jar")))
+ )))))
+ (home-page "https://github.com/aslom/xmlpull-api-v1")
+ (synopsis "XML pull parsing API")
+ (description "XmlPull v1 API is a simple to use XML pull parsing API. XML
+pull parsing allows incremental (sometimes called streaming) parsing of XML
+where application is in control - the parsing can be interrupted at any given
+moment and resumed when application is ready to consume more input.")
+ (license license:public-domain)))
+
(define-public java-dom4j
(package
(name "java-dom4j")
@@ -2217,7 +2317,7 @@ outputting XML data from Java code.")
(define-public java-xstream
(package
(name "java-xstream")
- (version "1.4.15")
+ (version "1.4.16")
(source
(origin
(method git-fetch)
@@ -2229,7 +2329,7 @@ outputting XML data from Java code.")
version)))))
(file-name (git-file-name name version))
(sha256
- (base32 "1178qryrjwjp44439pi5dxzd32896r5zs429z1qhlc09951r7mi9"))))
+ (base32 "16k2mc63h2fw7lxv74qmhg4p8q9hfrw114daa6nxwnpv08cnq755"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "xstream.jar"
@@ -2244,6 +2344,7 @@ outputting XML data from Java code.")
("java-joda-time" ,java-joda-time)
("java-jettison" ,java-jettison)
("java-xom" ,java-xom)
+ ("java-mxparser" ,java-mxparser)
("java-xpp3" ,java-xpp3)
("java-dom4j" ,java-dom4j)
("java-stax2-api" ,java-stax2-api)
@@ -2256,6 +2357,48 @@ outputting XML data from Java code.")
and back again.")
(license license:bsd-3)))
+(define-public java-mxparser
+ (package
+ (name "java-mxparser")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/x-stream/mxparser")
+ (commit (string-append "v-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i3jrjbz4hgf62fm1ix7nlcmhi4kcv4flqsfvh7a3l2v7nsp5ryb"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "mxparser.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t)))))
+ (propagated-inputs
+ `(("java-xmlpull-api-v1" ,java-xmlpull-api-v1)))
+ (native-inputs
+ `(("java-junit" ,java-junit)))
+ (home-page "https://github.com/x-stream/mxparser")
+ (synopsis "Streaming pull XML parser forked from @code{java-xpp3}")
+ (description "Xml Pull Parser (in short XPP) is a streaming pull XML
+parser and should be used when there is a need to process quickly and
+efficiently all input elements (for example in SOAP processors). This
+package is a stable XmlPull parsing engine that is based on ideas from XPP
+and in particular XPP2 but completely revised and rewritten to take the best
+advantage of JIT JVMs.
+
+MXParser is a fork of xpp3_min 1.1.7 containing only the parser with merged
+changes of the Plexus fork. It is an implementation of the XMLPULL V1 API
+(parser only).")
+ (license (license:non-copyleft "file://LICENSE.txt"))))
+
(define-public xmlrpc-c
(package
(name "xmlrpc-c")
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index b34b990f32..763a4434e4 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
@@ -80,7 +80,7 @@
(define %rotated-files
;; Syslog files subject to rotation.
'("/var/log/messages" "/var/log/secure" "/var/log/debug"
- "/var/log/maillog"))
+ "/var/log/maillog" "/var/log/mcron.log"))
(define %default-rotations
(list (log-rotation ;syslog files
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index f50bcfdcb4..24b3ea785b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1815,7 +1816,11 @@ proxy of 'guix-daemon'...~%")
raise a deprecation warning if the 'compression-level' field was used."
(match (%guix-publish-configuration-compression-level config)
(#f
- '(("gzip" 3)))
+ ;; Default to low compression levels when there's no cache so that users
+ ;; get good bandwidth by default.
+ (if (guix-publish-configuration-cache config)
+ '(("gzip" 5) ("zstd" 19))
+ '(("gzip" 3) ("zstd" 3)))) ;zstd compresses faster
(level
(warn-about-deprecation 'compression-level properties
#:replacement 'compression)
@@ -2304,7 +2309,11 @@ This service is not part of @var{%base-services}."
(auto-login kmscon-configuration-auto-login
(default #f))
(hardware-acceleration? kmscon-configuration-hardware-acceleration?
- (default #f))) ; #t causes failure
+ (default #f)) ; #t causes failure
+ (font-engine kmscon-configuration-font-engine
+ (default "pango"))
+ (font-size kmscon-configuration-font-size
+ (default 12)))
(define kmscon-service-type
(shepherd-service-type
@@ -2315,13 +2324,17 @@ This service is not part of @var{%base-services}."
(login-program (kmscon-configuration-login-program config))
(login-arguments (kmscon-configuration-login-arguments config))
(auto-login (kmscon-configuration-auto-login config))
- (hardware-acceleration? (kmscon-configuration-hardware-acceleration? config)))
+ (hardware-acceleration? (kmscon-configuration-hardware-acceleration? config))
+ (font-engine (kmscon-configuration-font-engine config))
+ (font-size (kmscon-configuration-font-size config)))
(define kmscon-command
#~(list
#$(file-append kmscon "/bin/kmscon") "--login"
"--vt" #$virtual-terminal
"--no-switchvt" ;Prevent a switch to the virtual terminal.
+ "--font-engine" #$font-engine
+ "--font-size" #$(number->string font-size)
#$@(if hardware-acceleration? '("--hwaccel") '())
"--login" "--"
#$login-program #$@login-arguments
diff --git a/gnu/services/ci.scm b/gnu/services/ci.scm
new file mode 100644
index 0000000000..0b18521e76
--- /dev/null
+++ b/gnu/services/ci.scm
@@ -0,0 +1,127 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018, 2019, 2020, 2021 Christopher Baines <mail@cbaines.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu services ci)
+ #:use-module (guix gexp)
+ #:use-module (guix records)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages ci)
+ #:use-module (gnu services)
+ #:use-module (gnu services base)
+ #:use-module (gnu services shepherd)
+ #:use-module (gnu services admin)
+ #:use-module (gnu system shadow)
+ #:use-module (ice-9 match)
+ #:export (laminar-configuration
+ laminar-configuration?
+ laminar-configuration-home-directory
+ laminar-configuration-bind-http
+ laminar-configuration-bind-rpc
+ laminar-configuration-title
+ laminar-configuration-keep-rundirs
+ laminar-configuration-archive-url
+ laminar-configuration-base-url
+
+ laminar-service-type))
+
+;;;; Commentary:
+;;;
+;;; This module implements a service that to run instances of Laminar, a
+;;; continuous integration tool.
+;;;
+;;;; Code:
+
+(define-record-type* <laminar-configuration>
+ laminar-configuration make-laminar-configuration
+ laminar-configuration?
+ (laminar laminars-configuration-laminar
+ (default laminar))
+ (home-directory laminar-configuration-home-directory
+ (default "/var/lib/laminar"))
+ (bind-http laminar-configuration-bind-http
+ (default "*:8080"))
+ (bind-rpc laminar-configuration-bind-rpc
+ (default "unix-abstract:laminar"))
+ (title laminar-configuration-title
+ (default "Laminar"))
+ (keep-rundirs laminar-keep-rundirs
+ (default 0))
+ (archive-url laminar-archive-url
+ (default #f))
+ (base-url laminar-base-url
+ (default #f)))
+
+(define laminar-shepherd-service
+ (match-lambda
+ (($ <laminar-configuration> laminar home-directory
+ bind-http bind-rpc
+ title keep-rundirs archive-url
+ base-url)
+ (list (shepherd-service
+ (documentation "Run Laminar.")
+ (provision '(laminar))
+ (requirement '(networking))
+ (start #~(make-forkexec-constructor
+ (list #$(file-append laminar "/sbin/laminard"))
+ #:environment-variables
+ `(,(string-append "LAMINAR_HOME="
+ #$home-directory)
+ ,(string-append "LAMINAR_BIND_HTTP="
+ #$bind-http)
+ ,(string-append "LAMINAR_TITLE="
+ #$title)
+ ,(string-append "LAMINAR_KEEP_RUNDIRS="
+ #$(number->string
+ keep-rundirs))
+ ,@(if #$archive-url
+ (list
+ (string-append "LAMINAR_ARCHIVE_URL="
+ #$archive-url))
+ '())
+ ,@(if #$base-url
+ (list
+ (string-append "LAMINAR_BASE_URL="
+ #$base-url))
+ '()))
+ #:user "laminar"
+ #:group "laminar"))
+ (stop #~(make-kill-destructor)))))))
+
+(define (laminar-account config)
+ "Return the user accounts and user groups for CONFIG."
+ (list (user-group
+ (name "laminar")
+ (system? #t))
+ (user-account
+ (name "laminar")
+ (group "laminar")
+ (system? #t)
+ (comment "Laminar privilege separation user")
+ (home-directory (laminar-configuration-home-directory config))
+ (shell #~(string-append #$shadow "/sbin/nologin")))))
+
+(define laminar-service-type
+ (service-type
+ (name 'laminar)
+ (extensions
+ (list
+ (service-extension shepherd-root-service-type laminar-shepherd-service)
+ (service-extension account-service-type laminar-account)))
+ (default-value (laminar-configuration))
+ (description
+ "Run the Laminar continuous integration service.")))
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm
index 317d877459..9de36eb1c9 100644
--- a/gnu/services/cuirass.scm
+++ b/gnu/services/cuirass.scm
@@ -66,9 +66,11 @@
cuirass-remote-server-configuration make-cuirass-remote-server-configuration
cuirass-remote-server-configuration?
(backend-port cuirass-remote-server-configuration-backend-port ;int
- (default #f))
+ (default 5555))
+ (log-port cuirass-remote-server-configuration-log-port ;int
+ (default 5556))
(publish-port cuirass-remote-server-configuration-publish-port ;int
- (default #f))
+ (default 5557))
(log-file cuirass-remote-server-log-file ;string
(default "/var/log/cuirass-remote-server.log"))
(cache cuirass-remote-server-configuration-cache ;string
@@ -143,6 +145,7 @@
(requirement '(guix-daemon postgres postgres-roles networking))
(start #~(make-forkexec-constructor
(list (string-append #$cuirass "/bin/cuirass")
+ "register"
"--cache-directory" #$cache-directory
"--specifications"
#$(scheme-file "cuirass-specs.scm" specs)
@@ -174,19 +177,15 @@
(requirement '(cuirass))
(start #~(make-forkexec-constructor
(list (string-append #$cuirass "/bin/cuirass")
- "--cache-directory" #$cache-directory
+ "web"
"--database" #$database
- "--web"
- "--port" #$(number->string port)
"--listen" #$host
- "--interval" #$(number->string interval)
+ "--port" #$(number->string port)
#$@(if parameters
(list (string-append
"--parameters="
parameters))
'())
- #$@(if use-substitutes? '("--use-substitutes") '())
- #$@(if fallback? '("--fallback") '())
#$@extra-options)
#:user #$user
@@ -203,7 +202,8 @@
(provision '(cuirass-remote-server))
(requirement '(avahi-daemon cuirass))
(start #~(make-forkexec-constructor
- (list (string-append #$cuirass "/bin/remote-server")
+ (list (string-append #$cuirass "/bin/cuirass")
+ "remote-server"
(string-append "--database=" #$database)
(string-append "--cache=" #$cache)
(string-append "--user=" #$user)
@@ -330,7 +330,7 @@
(log-file cuirass-remote-worker-log-file ;string
(default "/var/log/cuirass-remote-worker.log"))
(publish-port cuirass-remote-worker-configuration-publish-port ;int
- (default #f))
+ (default 5558))
(public-key cuirass-remote-worker-configuration-public-key ;string
(default #f))
(private-key cuirass-remote-worker-configuration-private-key ;string
@@ -347,7 +347,8 @@ CONFIG."
(provision '(cuirass-remote-worker))
(requirement '(avahi-daemon guix-daemon networking))
(start #~(make-forkexec-constructor
- (list (string-append #$cuirass "/bin/remote-worker")
+ (list (string-append #$cuirass "/bin/cuirass")
+ "remote-worker"
(string-append "--workers="
#$(number->string workers))
#$@(if server
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index c0f6371104..81f692e437 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -159,7 +159,7 @@
(define (serialize-free-form-args field-name val)
(serialize-field field-name
(string-join
- (map (match-lambda ((k . v) (format #t "~a=~a" k v))) val)
+ (map (match-lambda ((k . v) (format #f "~a=~a" k v))) val)
" ")))
(define-configuration dict-configuration
diff --git a/gnu/services/sysctl.scm b/gnu/services/sysctl.scm
index aaea7cc30d..80ed2ff46f 100644
--- a/gnu/services/sysctl.scm
+++ b/gnu/services/sysctl.scm
@@ -25,6 +25,8 @@
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:export (sysctl-configuration
+ sysctl-configuration-sysctl
+ sysctl-configuration-settings
sysctl-service-type
%default-sysctl-settings))
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index f3df0b979f..8cb5633165 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -163,7 +163,7 @@ protocol.")
(define* (git-daemon-service #:key (config (git-daemon-configuration)))
"Return a service that runs @command{git daemon}, a simple TCP server to
-expose repositories over the Git protocol for annoymous access.
+expose repositories over the Git protocol for anonymous access.
The optional @var{config} argument should be a
@code{<git-daemon-configuration>} object, by default it allows read-only
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index aa688a4328..bfcdfe7421 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -840,8 +840,9 @@ of index files."
(requirement '(networking))
(start #~(make-forkexec-constructor
'(#$(file-append package "/sbin/fcgiwrap")
- "-s" #$socket)
- #:user #$user #:group #$group))
+ "-s" #$socket)
+ #:user #$user #:group #$group
+ #:log-file "/var/log/fcgiwrap.log"))
(stop #~(make-kill-destructor)))))))
(define fcgiwrap-activation
@@ -863,7 +864,7 @@ of index files."
(extensions
(list (service-extension shepherd-root-service-type
fcgiwrap-shepherd-service)
- (service-extension account-service-type
+ (service-extension account-service-type
fcgiwrap-accounts)
(service-extension activation-service-type
fcgiwrap-activation)))
@@ -1946,24 +1947,24 @@ root=/srv/gemini
(documentation "Run the agate Gemini server.")
(start (let ((agate (file-append package "/bin/agate")))
#~(make-forkexec-constructor
- (list #$agate
- "--content" #$content
- "--cert" #$cert
- "--key" #$key
- "--addr" #$@addr
+ (list #$agate
+ "--content" #$content
+ "--cert" #$cert
+ "--key" #$key
+ "--addr" #$@addr
#$@(if lang
(list "--lang" lang)
'())
- #$@(if hostname
- (list "--hostname" hostname)
- '())
- #$@(if silent? '("--silent") '())
- #$@(if serve-secret? '("--serve-secret") '())
- #$@(if log-ip? '("--log-ip") '()))
- #:user #$user #:group #$group
- #:log-file #$log-file)))
+ #$@(if hostname
+ (list "--hostname" hostname)
+ '())
+ #$@(if silent? '("--silent") '())
+ #$@(if serve-secret? '("--serve-secret") '())
+ #$@(if log-ip? '("--log-ip") '()))
+ #:user #$user #:group #$group
+ #:log-file #$log-file)))
(stop #~(make-kill-destructor)))))))
-
+
(define agate-accounts
(match-lambda
(($ <agate-configuration> _ _ _ _ _
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 60611dc77d..17d983ff8d 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -68,6 +68,8 @@
%default-xorg-modules
%default-xorg-fonts
+ %default-xorg-server-arguments
+
xorg-wrapper
xorg-start-command
xinitrc
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 3d0935b3af..1efae7ff06 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -88,6 +88,13 @@
;;;
;;; Code:
+;; By default, the msize value is 8 KiB, which according to QEMU is
+;; insufficient and would degrade performance. The msize value should roughly
+;; match the bandwidth of the system's IO (see:
+;; https://wiki.qemu.org/Documentation/9psetup#msize). Use 100 MiB as a
+;; conservative default.
+(define %default-msize-value (* 100 (expt 2 20))) ;100 MiB
+
(define %linux-vm-file-systems
;; File systems mounted for 'derivation-in-linux-vm'. These are shared with
;; the host over 9p.
@@ -103,21 +110,23 @@
(type "9p")
(needed-for-boot? #t)
(flags '(read-only))
- (options "trans=virtio,cache=loose")
+ (options (format #f "trans=virtio,cache=loose,msize=~a"
+ %default-msize-value))
(check? #f))
(file-system
(mount-point "/xchg")
(device "xchg")
(type "9p")
(needed-for-boot? #t)
- (options "trans=virtio")
+ (options (format #f "trans=virtio,msize=~a" %default-msize-value))
(check? #f))
(file-system
(mount-point "/tmp")
(device "tmp")
(type "9p")
(needed-for-boot? #t)
- (options "trans=virtio,cache=loose")
+ (options (format #f "trans=virtio,cache=loose,msize=~a"
+ %default-msize-value))
(check? #f))))
(define not-config?
@@ -581,7 +590,8 @@ the operating system."
(type "9p")
(flags (if writable? '() '(read-only)))
(options (string-append "trans=virtio"
- (if writable? "" ",cache=loose")))
+ (if writable? "" ",cache=loose")
+ ",msize=" (number->string %default-msize-value)))
(check? #f)
(create-mount-point? #t)))))
diff --git a/gnu/tests/ci.scm b/gnu/tests/ci.scm
new file mode 100644
index 0000000000..a8b39fcd01
--- /dev/null
+++ b/gnu/tests/ci.scm
@@ -0,0 +1,128 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu tests ci)
+ #:use-module (gnu tests)
+ #:use-module (gnu system)
+ #:use-module (gnu system file-systems)
+ #:use-module (gnu system shadow)
+ #:use-module (gnu system vm)
+ #:use-module (gnu services)
+ #:use-module (gnu services ci)
+ #:use-module (gnu services web)
+ #:use-module (gnu services networking)
+ #:use-module (guix gexp)
+ #:use-module (guix store)
+ #:export (%test-laminar))
+
+
+(define %laminar-os
+ ;; Operating system under test.
+ (simple-operating-system
+ (service dhcp-client-service-type)
+ (service laminar-service-type)))
+
+(define* (run-laminar-test #:optional (http-port 8080))
+ "Run tests in %LAMINAR-OS, which has laminar running and listening on
+HTTP-PORT."
+ (define os
+ (marionette-operating-system
+ %laminar-os
+ #:imported-modules '((gnu services herd)
+ (guix combinators))))
+
+ (define vm
+ (virtual-machine
+ (operating-system os)
+ (port-forwardings `((,http-port . 8080)))))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (srfi srfi-11) (srfi srfi-64)
+ (ice-9 match)
+ (gnu build marionette)
+ (web uri)
+ (web client)
+ (web response))
+
+ (define marionette
+ ;; Forward the guest's HTTP-PORT, where laminar is listening, to
+ ;; port 8080 in the host.
+ (make-marionette (list #$vm)))
+
+ (mkdir #$output)
+ (chdir #$output)
+
+ (test-begin "laminar")
+
+ (test-assert "service running"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (start-service 'laminar))
+ marionette))
+
+ (define* (retry-on-error f #:key times delay)
+ (let loop ((attempt 1))
+ (match (catch
+ #t
+ (lambda ()
+ (cons #t
+ (f)))
+ (lambda args
+ (cons #f
+ args)))
+ ((#t . return-value)
+ return-value)
+ ((#f . error-args)
+ (if (>= attempt times)
+ error-args
+ (begin
+ (sleep delay)
+ (loop (+ 1 attempt))))))))
+
+ (test-equal "http-get"
+ 200
+ (retry-on-error
+ (lambda ()
+ (let-values (((response text)
+ (http-get #$(format
+ #f
+ "http://localhost:~A/"
+ http-port)
+ ;; TODO: Why does decoding fail?
+ #:decode-body? #f)))
+ (response-code response)))
+ #:times 10
+ #:delay 5))
+
+ (test-end)
+ (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+ (gexp->derivation "laminar-test" test))
+
+(define %test-laminar
+ (system-test
+ (name "laminar")
+ (description "Connect to a running Laminar server.")
+ (value (run-laminar-test))))
diff --git a/gnu/tests/cuirass.scm b/gnu/tests/cuirass.scm
deleted file mode 100644
index ea5db34515..0000000000
--- a/gnu/tests/cuirass.scm
+++ /dev/null
@@ -1,299 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020, 2021 Mathieu Othacehe <othacehe@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu tests cuirass)
- #:use-module (gnu tests)
- #:use-module (gnu system)
- #:use-module (gnu system vm)
- #:use-module (gnu system install)
- #:use-module (gnu packages databases)
- #:use-module (gnu packages guile)
- #:use-module (gnu packages version-control)
- #:use-module (gnu services)
- #:use-module (gnu services avahi)
- #:use-module (gnu services base)
- #:use-module (gnu services cuirass)
- #:use-module (gnu services databases)
- #:use-module (gnu services networking)
- #:use-module (gnu system nss)
- #:use-module (guix channels)
- #:use-module (guix gexp)
- #:use-module (guix store)
- #:export (%cuirass-test
- %cuirass-remote-test))
-
-(define %derivation-file
- (scheme-file
- "derivation.scm"
- '(begin
- (use-modules (guix)
- (srfi srfi-1)
- (ice-9 match))
-
- (define (derivation->alist store drv)
- `((#:derivation . ,(derivation-file-name drv))
- (#:log . ,(log-file store (derivation-file-name drv)))
- (#:outputs . ,(filter-map (lambda (res)
- (match res
- ((name . path)
- `(,name . ,path))))
- (derivation->output-paths drv)))
- (#:nix-name . ,(derivation-name drv))
- (#:system . ,(derivation-system drv))
- (#:max-silent-time . 3600)
- (#:timeout . 3600)))
-
- (define (cuirass-jobs store arguments)
- (let* ((file (plain-file "test" "this is a test derivation"))
- (job-name "test-job")
- (drv (run-with-store store
- (gexp->derivation
- job-name
- #~(begin
- (mkdir #$output)
- (symlink #$file
- (string-append #$output "/file")))))))
- (list (lambda ()
- `((#:job-name . ,job-name)
- ,@(derivation->alist store drv)))))))))
-
-(define git-service
- ;; Create a Git repository to host Cuirass' specification.
- (simple-service
- 'create-git-directory activation-service-type
- #~(begin
- (let* ((git (string-append #$git "/bin/git"))
- (main "/tmp/cuirass-main")
- (file (string-append main "/build-aux/cuirass/gnu-system.scm")))
- (mkdir-p (dirname file))
- (with-directory-excursion main
- (copy-file #$%derivation-file file)
- (invoke git "config" "--global" "user.email"
- "charlie@example.org")
- (invoke git "config" "--global" "user.name" "A U Thor")
- (invoke git "init")
- (invoke git "add" ".")
- (invoke git "commit" "-m" "That's a commit."))))))
-
-(define cow-service
- ;; The Guix-daemon & Cuirass will complain if the store is
- ;; read-only. Create a store overlay to solve this issue.
- (simple-service
- 'mount-cow-store activation-service-type
- #~(begin
- (use-modules (guix build syscalls)
- (guix build utils))
- (mkdir-p "/rw-store")
- (mount "none" "/rw-store" "tmpfs")
-
- (mkdir-p "/rw-store/upper")
- (mkdir-p "/rw-store/work")
- (mount "none" "/gnu/store" "overlay" 0
- "lowerdir=/gnu/store,upperdir=/rw-store/upper,workdir=/rw-store/work"))))
-
-(define %cuirass-specs
- #~(list
- '((#:name . "test")
- (#:load-path-inputs . ())
- (#:package-path-inputs . ())
- (#:proc-input . "main")
- (#:proc-file . "build-aux/cuirass/gnu-system.scm")
- (#:proc . cuirass-jobs)
- (#:proc-args . ())
- (#:inputs . (((#:name . "main")
- (#:url . "file:///tmp/cuirass-main/")
- (#:load-path . ".")
- (#:branch . "master")
- (#:no-compile? . #t))))
- (#:build-outputs . ())
- (#:priority . 1))))
-
-(define* (cuirass-services #:key remote-build?)
- (list
- (service cuirass-service-type
- (cuirass-configuration
- (specifications %cuirass-specs)
- (remote-server (and remote-build?
- (cuirass-remote-server-configuration)))
- (host "0.0.0.0")
- (use-substitutes? #t)))))
-
-(define (run-cuirass-test name os)
- (define os*
- (let ((modules '((gnu services herd)
- (guix combinators)
- (guix build syscalls)
- (guix build utils))))
- (marionette-operating-system
- os
- #:imported-modules modules)))
-
- (define cuirass-web-port 8081)
- (define forward-port 5000)
-
- (define vm
- (virtual-machine
- (operating-system os*)
- (memory-size 1024)
- (port-forwardings `((,forward-port . ,cuirass-web-port)))))
-
- (define test
- (with-extensions (list guile-json-4)
- (with-imported-modules '((gnu build marionette))
- #~(begin
- (use-modules (srfi srfi-11) (srfi srfi-64)
- (gnu build marionette)
- (ice-9 match)
- (ice-9 rdelim)
- (json)
- (rnrs bytevectors)
- (web client) (web response))
-
- (define marionette
- (make-marionette (list #$vm)))
-
- (define (query path)
- (http-get
- (format #f "http://localhost:~a~a"
- #$(number->string forward-port)
- path)))
-
- (define* (retry f #:key times delay)
- (let loop ((attempt 1))
- (let ((result (f)))
- (cond
- (result result)
- (else
- (if (>= attempt times)
- #f
- (begin
- (sleep delay)
- (loop (+ 1 attempt)))))))))
-
- (mkdir #$output)
- (chdir #$output)
-
- (test-begin "cuirass")
-
- ;; XXX: Shepherd reads the config file *before* binding its
- ;; control socket, so /var/run/shepherd/socket might not exist yet
- ;; when the 'marionette' service is started.
- (test-assert "shepherd socket ready"
- (marionette-eval
- `(begin
- (use-modules (gnu services herd))
- (let loop ((i 10))
- (cond ((file-exists? (%shepherd-socket-file))
- #t)
- ((> i 0)
- (sleep 1)
- (loop (- i 1)))
- (else
- 'failure))))
- marionette))
-
- ;; Wait for cuirass to be up and running.
- (test-assert "cuirass running"
- (marionette-eval
- '(begin
- (use-modules (gnu services herd))
- (start-service 'cuirass)
- #t)
- marionette))
-
- (test-assert "cuirass-web running"
- (begin
- (wait-for-tcp-port #$cuirass-web-port marionette)
- (retry
- (lambda ()
- (let-values (((response text)
- (query "/")))
- (eq? (response-code response) 200)))
- #:times 5
- #:delay 5)))
-
- (test-assert "cuirass-web evaluation"
- (begin
- (retry
- (lambda ()
- (let-values (((response text)
- (query "/api/evaluation?id=1")))
- (let ((result
- (false-if-exception
- (json-string->scm
- (utf8->string text)))))
- (eq? (and result
- (assoc-ref result "id"))
- 1))))
- #:times 5
- #:delay 5)))
-
- ;; Even though there's a store overlay, the Guix database is not
- ;; initialized, meaning that we won't be able to perform the
- ;; build. Check at least that it is queued.
- (test-assert "cuirass-web build queued"
- (begin
- (retry
- (lambda ()
- (let-values (((response text)
- (query "/api/queue?nr=1")))
- (let ((result
- (json-string->scm
- (utf8->string text))))
- (match (vector->list result)
- ((build)
- (string=? (assoc-ref build "job") "test-job"))
- (else #f)))))
- #:times 5
- #:delay 10)))
-
- (test-end)
- (exit (= (test-runner-fail-count (test-runner-current)) 0))))))
-
- (gexp->derivation name test))
-
-(define %cuirass-test
- (let ((os (operating-system
- (inherit %simple-os)
- (services
- (append (list cow-service
- (service dhcp-client-service-type)
- git-service)
- (cuirass-services)
- (operating-system-user-services %simple-os))))))
- (system-test
- (name "cuirass")
- (description "Connect to a Cuirass server.")
- (value
- (run-cuirass-test name os)))))
-
-(define %cuirass-remote-test
- (let ((os (operating-system
- (inherit %simple-os)
- (name-service-switch %mdns-host-lookup-nss)
- (services
- (append (list (service avahi-service-type)
- cow-service
- (service dhcp-client-service-type)
- git-service)
- (cuirass-services #:remote-build? #t)
- (operating-system-user-services %simple-os))))))
- (system-test
- (name "cuirass-remote")
- (description "Connect to a Cuirass server with remote build.")
- (value (run-cuirass-test name os)))))
diff --git a/gnu/tests/file-sharing.scm b/gnu/tests/file-sharing.scm
new file mode 100644
index 0000000000..9a8ee6a593
--- /dev/null
+++ b/gnu/tests/file-sharing.scm
@@ -0,0 +1,271 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Simon South <simon@simonsouth.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;;;
+;;; The Transmission Daemon service.
+;;;
+
+(define-module (gnu tests file-sharing)
+ #:use-module (gnu packages bittorrent)
+ #:use-module (gnu services)
+ #:use-module (gnu services file-sharing)
+ #:use-module (gnu services networking)
+ #:use-module (gnu system vm)
+ #:use-module (gnu tests)
+ #:use-module (guix gexp)
+ #:export (%test-transmission-daemon))
+
+(define %transmission-daemon-user "transmission")
+(define %transmission-daemon-group "transmission")
+
+(define %transmission-daemon-config-dir "/var/lib/transmission-daemon")
+(define %transmission-daemon-watch-dir
+ (string-append %transmission-daemon-config-dir "/watch"))
+(define %transmission-daemon-incomplete-dir
+ (string-append %transmission-daemon-config-dir "/incomplete"))
+
+(define %transmission-daemon-settings-file
+ (string-append %transmission-daemon-config-dir "/settings.json"))
+
+(define %transmission-daemon-peer-port 51000) ; default is 51413
+
+(define %transmission-daemon-rpc-port 9999) ; default is 9091
+(define %transmission-daemon-rpc-username "test-username")
+(define %transmission-daemon-rpc-password "test-password")
+
+(define %transmission-daemon-test-configuration
+ (transmission-daemon-configuration
+ (incomplete-dir-enabled? #t)
+ (incomplete-dir %transmission-daemon-incomplete-dir)
+
+ (watch-dir-enabled? #t)
+ (watch-dir %transmission-daemon-watch-dir)
+
+ (peer-port-random-on-start? #f)
+ (peer-port %transmission-daemon-peer-port)
+
+ (rpc-enabled? #t)
+ (rpc-port %transmission-daemon-rpc-port)
+ (rpc-whitelist-enabled? #f)
+ (rpc-authentication-required? #t)
+ (rpc-username %transmission-daemon-rpc-username)
+ (rpc-password (transmission-password-hash %transmission-daemon-rpc-password
+ "yEK0q3.X"))))
+
+(define (run-transmission-daemon-test)
+ (define os
+ (marionette-operating-system
+ (simple-operating-system
+ (service dhcp-client-service-type)
+ (service transmission-daemon-service-type
+ %transmission-daemon-test-configuration))
+ #:imported-modules '((gnu services herd)
+ (json parser))
+ #:requirements '(transmission-daemon)))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (gnu build marionette)
+ (srfi srfi-64))
+
+ (define marionette
+ (make-marionette
+ (list #$(virtual-machine
+ (operating-system os)
+ (port-forwardings
+ `((9091 . ,%transmission-daemon-rpc-port)))))))
+
+ (mkdir #$output)
+ (chdir #$output)
+
+ (test-begin "transmission-daemon")
+
+ ;; Make sure the "transmission" user and group have been created.
+ (test-assert "\"transmission\" user exists"
+ (marionette-eval
+ '(begin
+ (getpwnam #$%transmission-daemon-user)
+ #t)
+ marionette))
+ (test-assert "\"transmission\" group exists"
+ (marionette-eval
+ '(begin
+ (getgrnam #$%transmission-daemon-group)
+ #t)
+ marionette))
+
+ ;; Make sure Transmission Daemon's configuration directory has been
+ ;; created with the correct ownership and permissions.
+ (test-assert "configuration directory exists"
+ (marionette-eval
+ '(eq? (stat:type (stat #$%transmission-daemon-config-dir))
+ 'directory)
+ marionette))
+ (test-assert "configuration directory has correct ownership"
+ (marionette-eval
+ '(let ((config-dir (stat #$%transmission-daemon-config-dir))
+ (transmission-user (getpwnam #$%transmission-daemon-user)))
+ (and (eqv? (stat:uid config-dir)
+ (passwd:uid transmission-user))
+ (eqv? (stat:gid config-dir)
+ (passwd:gid transmission-user))))
+ marionette))
+ (test-assert "configuration directory has expected permissions"
+ (marionette-eval
+ '(eqv? (stat:perms (stat #$%transmission-daemon-config-dir))
+ #o750)
+ marionette))
+
+ ;; Make sure the incomplete-downloads and watch directories have been
+ ;; created with the correct ownership and permissions.
+ (test-assert "incomplete-downloads directory exists"
+ (marionette-eval
+ '(eq? (stat:type (stat #$%transmission-daemon-incomplete-dir))
+ 'directory)
+ marionette))
+ (test-assert "incomplete-downloads directory has correct ownership"
+ (marionette-eval
+ '(let ((incomplete-dir
+ (stat #$%transmission-daemon-incomplete-dir))
+ (transmission-user
+ (getpwnam #$%transmission-daemon-user)))
+ (and (eqv? (stat:uid incomplete-dir)
+ (passwd:uid transmission-user))
+ (eqv? (stat:gid incomplete-dir)
+ (passwd:gid transmission-user))))
+ marionette))
+ (test-assert
+ "incomplete-downloads directory has expected permissions"
+ (marionette-eval
+ '(eqv? (stat:perms (stat #$%transmission-daemon-incomplete-dir))
+ #o750)
+ marionette))
+
+ (test-assert "watch directory exists"
+ (marionette-eval
+ '(eq? (stat:type (stat #$%transmission-daemon-watch-dir))
+ 'directory)
+ marionette))
+ (test-assert "watch directory has correct ownership"
+ (marionette-eval
+ '(let ((watch-dir (stat #$%transmission-daemon-watch-dir))
+ (transmission-user (getpwnam #$%transmission-daemon-user)))
+ (and (eqv? (stat:uid watch-dir)
+ (passwd:uid transmission-user))
+ (eqv? (stat:gid watch-dir)
+ (passwd:gid transmission-user))))
+ marionette))
+ (test-assert "watch directory has expected permissions"
+ (marionette-eval
+ '(eqv? (stat:perms (stat #$%transmission-daemon-watch-dir))
+ #o770)
+ marionette))
+
+ ;; Make sure the settings file has been created and appears valid.
+ (test-assert "settings file exists"
+ (marionette-eval
+ '(file-exists? #$%transmission-daemon-settings-file)
+ marionette))
+ (test-assert "settings file is valid JSON"
+ (marionette-eval
+ '(begin
+ (use-modules (json parser))
+ (with-input-from-file #$%transmission-daemon-settings-file
+ (lambda ()
+ (json->scm)))
+ #t)
+ marionette))
+ (test-assert "settings file contains a non-empty JSON object"
+ (marionette-eval
+ '(begin
+ (use-modules (json parser)
+ (srfi srfi-1))
+ (let ((settings (with-input-from-file
+ #$%transmission-daemon-settings-file
+ (lambda ()
+ (json->scm)))))
+ (and (list? settings)
+ (not (null? settings))
+ (every pair? settings))))
+ marionette))
+
+ ;; Make sure Transmission Daemon is running.
+ (test-assert "transmission-daemon is running"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (live-service-running
+ (find (lambda (live-service)
+ (memq 'transmission-daemon
+ (live-service-provision live-service)))
+ (current-services))))
+ marionette))
+
+ ;; Make sure the daemon is listening for peer connections.
+ (test-assert "transmission-daemon is listening for peers"
+ (wait-for-tcp-port #$%transmission-daemon-peer-port marionette))
+
+ ;; Make sure the daemon is listening for RPC-client connections.
+ (test-assert "transmission-daemon is listening for RPC clients"
+ (wait-for-tcp-port #$%transmission-daemon-rpc-port marionette))
+
+ ;; Make sure the RPC-authentication settings are honored.
+ (test-assert "transmission-daemon requires RPC authentication"
+ (let ((transmission-remote
+ (string-append #+transmission "/bin/transmission-remote")))
+ (with-error-to-port (%make-void-port "w")
+ (lambda ()
+ (not (zero? (system* transmission-remote
+ "--session-info")))))))
+ (test-assert "transmission-daemon rejects incorrect RPC credentials"
+ (let ((transmission-remote
+ (string-append #+transmission "/bin/transmission-remote"))
+ (wrong-auth-string
+ (string-append #$%transmission-daemon-rpc-username
+ ":"
+ "wrong-"
+ #$%transmission-daemon-rpc-password)))
+ (with-error-to-port (%make-void-port "w")
+ (lambda ()
+ (not (zero? (system* transmission-remote
+ "--auth" wrong-auth-string
+ "--session-info")))))))
+ (test-assert "transmission-daemon accepts correct RPC credentials"
+ (let ((transmission-remote
+ (string-append #+transmission "/bin/transmission-remote"))
+ (auth-string
+ (string-append #$%transmission-daemon-rpc-username
+ ":"
+ #$%transmission-daemon-rpc-password)))
+ (with-output-to-port (%make-void-port "w")
+ (lambda ()
+ (zero? (system* transmission-remote
+ "--auth" auth-string
+ "--session-info"))))))
+
+ (test-end)
+ (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+ (gexp->derivation "transmission-daemon-test" test))
+
+(define %test-transmission-daemon
+ (system-test
+ (name "transmission-daemon")
+ (description "Test a running Transmission Daemon service.")
+ (value (run-transmission-daemon-test))))
diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm
index 5d04af38fb..9b2b785176 100644
--- a/gnu/tests/nfs.scm
+++ b/gnu/tests/nfs.scm
@@ -410,5 +410,5 @@ directories can be mounted.")
(system-test
(name "nfs-root-fs")
(description "Test that an NFS server can be started and the exported
-directory can be used as root filesystem.")
+directory can be used as root file system.")
(value (run-nfs-root-fs-test))))
diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index e95787ee19..9f9d3a5e26 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -92,10 +93,20 @@
0
(marionette-eval
`(begin
+ (chdir "/tmp")
(system* ,(string-append #$libvirt "/bin/virsh")
"-c" "qemu:///system" "version"))
marionette))
+ (test-eq "connect"
+ 0
+ (marionette-eval
+ `(begin
+ (chdir "/tmp")
+ (system* ,(string-append #$libvirt "/bin/virsh")
+ "-c" "qemu:///system" "connect"))
+ marionette))
+
(test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm
index 0e2c1cd2ee..8f55796e86 100644
--- a/guix/build-system/go.scm
+++ b/guix/build-system/go.scm
@@ -31,6 +31,7 @@
go-build
go-build-system
+ go-pseudo-version?
go-version->git-ref))
;; Commentary:
@@ -40,17 +41,19 @@
;;
;; Code:
-(define %go-version-rx
+(define %go-pseudo-version-rx
+ ;; Match only the end of the version string; this is so that matching the
+ ;; more complex leading semantic version pattern is not required.
(make-regexp (string-append
- "(v?[0-9]\\.[0-9]\\.[0-9])" ;"v" prefix can be omitted in version prefix
- "(-|-pre\\.0\\.|-0\\.)" ;separator
- "([0-9]{14})-" ;timestamp
- "([0-9A-Fa-f]{12})"))) ;commit hash
+ "([0-9]{14}-)" ;timestamp
+ "([0-9A-Fa-f]{12})" ;commit hash
+ "(\\+incompatible)?$"))) ;optional +incompatible tag
(define (go-version->git-ref version)
"Parse VERSION, a \"pseudo-version\" as defined at
<https://golang.org/ref/mod#pseudo-versions>, and extract the commit hash from
-it, defaulting to full VERSION if a pseudo-version pattern is not recognized."
+it, defaulting to full VERSION (stripped from the \"+incompatible\" suffix if
+present) if a pseudo-version pattern is not recognized."
;; A module version like v1.2.3 is introduced by tagging a revision in the
;; underlying source repository. Untagged revisions can be referred to
;; using a "pseudo-version" like v0.0.0-yyyymmddhhmmss-abcdefabcdef, where
@@ -65,11 +68,16 @@ it, defaulting to full VERSION if a pseudo-version pattern is not recognized."
(if (string-suffix? "+incompatible" version)
(string-drop-right version 13)
version))
- (match (regexp-exec %go-version-rx version)))
+ (match (regexp-exec %go-pseudo-version-rx version)))
(if match
- (match:substring match 4)
+ (match:substring match 2)
version)))
+(define (go-pseudo-version? version)
+ "True if VERSION is a Go pseudo-version, i.e., a version string made of a
+commit hash and its date rather than a proper release tag."
+ (regexp-exec %go-pseudo-version-rx version))
+
(define %go-build-system-modules
;; Build-side modules imported and used by default.
`((guix build go-build-system)
diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm
index a8c5eed09b..98f63f87ef 100644
--- a/guix/build-system/node.scm
+++ b/guix/build-system/node.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
+;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,7 +18,6 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix build-system node)
- #:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix derivations)
@@ -25,28 +25,21 @@
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
- #:export (npm-meta-uri
- %node-build-system-modules
+ #:export (%node-build-system-modules
node-build
node-build-system))
-(define (npm-meta-uri name)
- "Return a URI string for the metadata of node module NAME found in the npm
-registry."
- (string-append "https://registry.npmjs.org/" name))
-
(define %node-build-system-modules
;; Build-side modules imported by default.
`((guix build node-build-system)
(guix build json)
- (guix build union)
- ,@%gnu-build-system-modules)) ;; TODO: Might be not needed
+ ,@%gnu-build-system-modules))
(define (default-node)
"Return the default Node package."
;; Lazily resolve the binding to avoid a circular dependency.
(let ((node (resolve-interface '(gnu packages node))))
- (module-ref node 'node)))
+ (module-ref node 'node-lts)))
(define* (lower name
#:key source inputs native-inputs outputs system target
@@ -76,7 +69,7 @@ registry."
(define* (node-build store name inputs
#:key
- (npm-flags ''())
+ (test-target "test")
(tests? #t)
(phases '(@ (guix build node-build-system)
%standard-phases))
@@ -86,8 +79,6 @@ registry."
(guile #f)
(imported-modules %node-build-system-modules)
(modules '((guix build node-build-system)
- (guix build json)
- (guix build union)
(guix build utils))))
"Build SOURCE using NODE and INPUTS."
(define builder
@@ -97,12 +88,10 @@ registry."
#:source ,(match (assoc-ref inputs "source")
(((? derivation? source))
(derivation->output-path source))
- ((source)
- source)
- (source
- source))
+ ((source) source)
+ (source source))
#:system ,system
- #:npm-flags ,npm-flags
+ #:test-target ,test-target
#:tests? ,tests?
#:phases ,phases
#:outputs %outputs
@@ -129,5 +118,5 @@ registry."
(define node-build-system
(build-system
(name 'node)
- (description "The standard Node build system")
+ (description "The Node build system")
(lower lower)))
diff --git a/guix/build/julia-build-system.scm b/guix/build/julia-build-system.scm
index 8f57045a8c..d74acf2a05 100644
--- a/guix/build/julia-build-system.scm
+++ b/guix/build/julia-build-system.scm
@@ -101,7 +101,7 @@ Project.toml)."
(or (getenv "JULIA_LOAD_PATH")
"")))
(setenv "HOME" "/tmp")
- (invoke "julia"
+ (invoke "julia" "--depwarn=yes"
(string-append builddir "packages/"
package "/test/runtests.jl"))))
#t)
diff --git a/guix/build/node-build-system.scm b/guix/build/node-build-system.scm
index 7799f03595..a55cab237c 100644
--- a/guix/build/node-build-system.scm
+++ b/guix/build/node-build-system.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
+;;; Copyright © 2016, 2020 Jelle Licht <jlicht@fsfe.org>
+;;; Copyright © 2019, 2021 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,144 +20,130 @@
(define-module (guix build node-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
- #:use-module (guix build json)
- #:use-module (guix build union)
#:use-module (guix build utils)
+ #:use-module (guix build json)
+ #:use-module (ice-9 ftw)
#:use-module (ice-9 match)
- #:use-module (ice-9 popen)
- #:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-26)
#:export (%standard-phases
node-build))
;; Commentary:
;;
-;; Builder-side code of the standard Node/npm package build procedure.
+;; Builder-side code of the standard Node/NPM package install procedure.
;;
;; Code:
-(define* (read-package-data #:key (filename "package.json"))
- (call-with-input-file filename
- (lambda (port)
- (read-json port))))
+(define (set-home . _)
+ (with-directory-excursion ".."
+ (let loop ((i 0))
+ (let ((dir (string-append "npm-home-" (number->string i))))
+ (if (directory-exists? dir)
+ (loop (1+ i))
+ (begin
+ (mkdir dir)
+ (setenv "HOME" (string-append (getcwd) "/" dir))
+ (format #t "set HOME to ~s~%" (getenv "HOME")))))))
+ #t)
-(define* (build #:key inputs #:allow-other-keys)
- (define (build-from-package-json? package-file)
- (let* ((package-data (read-package-data #:filename package-file))
- (scripts (assoc-ref package-data "scripts")))
- (assoc-ref scripts "build")))
- "Build a new node module using the appropriate build system."
- ;; XXX: Develop a more robust heuristic, allow override
- (cond ((file-exists? "gulpfile.js")
- (invoke "gulp"))
- ((file-exists? "gruntfile.js")
- (invoke "grunt"))
- ((file-exists? "Makefile")
- (invoke "make"))
- ((and (file-exists? "package.json")
- (build-from-package-json? "package.json"))
- (invoke "npm" "run" "build")))
+(define (module-name module)
+ (let* ((package.json (string-append module "/package.json"))
+ (package-meta (call-with-input-file package.json read-json)))
+ (assoc-ref package-meta "name")))
+
+(define (index-modules input-paths)
+ (define (list-modules directory)
+ (append-map (lambda (x)
+ (if (string-prefix? "@" x)
+ (list-modules (string-append directory "/" x))
+ (list (string-append directory "/" x))))
+ (filter (lambda (x)
+ (not (member x '("." ".."))))
+ (or (scandir directory) '()))))
+ (let ((index (make-hash-table (* 2 (length input-paths)))))
+ (for-each (lambda (dir)
+ (let ((nm (string-append dir "/lib/node_modules")))
+ (for-each (lambda (module)
+ (hash-set! index (module-name module) module))
+ (list-modules nm))))
+ input-paths)
+ index))
+
+(define* (patch-dependencies #:key inputs #:allow-other-keys)
+
+ (define index (index-modules (map cdr inputs)))
+
+ (define (resolve-dependencies package-meta meta-key)
+ (fold (lambda (key+value acc)
+ (match key+value
+ ('@ acc)
+ ((key . value) (acons key (hash-ref index key value) acc))))
+ '()
+ (or (assoc-ref package-meta meta-key) '())))
+
+ (with-atomic-file-replacement "package.json"
+ (lambda (in out)
+ (let ((package-meta (read-json in)))
+ (assoc-set! package-meta "dependencies"
+ (append
+ '(@)
+ (resolve-dependencies package-meta "dependencies")
+ (resolve-dependencies package-meta "peerDependencies")))
+ (assoc-set! package-meta "devDependencies"
+ (append
+ '(@)
+ (resolve-dependencies package-meta "devDependencies")))
+ (write-json package-meta out))))
#t)
-(define* (link-npm-dependencies #:key inputs #:allow-other-keys)
- (define (inputs->node-inputs inputs)
- "Filter the directory part from INPUTS."
- (filter (lambda (input)
- (match input
- ((name . _) (node-package? name))))
- inputs))
- (define (inputs->directories inputs)
- "Extract the directory part from INPUTS."
- (match inputs
- (((names . directories) ...)
- directories)))
- (define (make-node-path root)
- (string-append root "/lib/node_modules/"))
-
- (let ((input-node-directories (inputs->directories
- (inputs->node-inputs inputs))))
- (union-build "node_modules"
- (map make-node-path input-node-directories))
+(define* (configure #:key outputs inputs #:allow-other-keys)
+ (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm")))
+ (invoke npm "--offline" "--ignore-scripts" "install")
#t))
-(define configure link-npm-dependencies)
+(define* (build #:key inputs #:allow-other-keys)
+ (let ((package-meta (call-with-input-file "package.json" read-json)))
+ (if (and=> (assoc-ref package-meta "scripts")
+ (lambda (scripts)
+ (assoc-ref scripts "build")))
+ (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm")))
+ (invoke npm "run" "build"))
+ (format #t "there is no build script to run~%"))
+ #t))
-(define* (check #:key tests? #:allow-other-keys)
+(define* (check #:key tests? inputs #:allow-other-keys)
"Run 'npm test' if TESTS?"
(if tests?
- ;; Should only be enabled once we know that there are tests
- (invoke "npm" "test"))
+ (let ((npm (string-append (assoc-ref inputs "node") "/bin/npm")))
+ (invoke npm "test"))
+ (format #t "test suite not run~%"))
#t)
-(define (node-package? name)
- "Check if NAME correspond to the name of an Node package."
- (string-prefix? "node-" name))
+(define* (repack #:key inputs #:allow-other-keys)
+ (invoke "tar" "-czf" "../package.tgz" ".")
+ #t)
(define* (install #:key outputs inputs #:allow-other-keys)
- "Install the node module to the output store item. The module itself is
-installed in a subdirectory of @file{node_modules} and its runtime dependencies
-as defined by @file{package.json} are symlinked into a @file{node_modules}
-subdirectory of the module's directory. Additionally, binaries are installed in
-the @file{bin} directory."
- (let* ((out (assoc-ref outputs "out"))
- (target (string-append out "/lib"))
- (binaries (string-append out "/bin"))
- (data (read-package-data))
- (modulename (assoc-ref data "name"))
- (binary-configuration (match (assoc-ref data "bin")
- (('@ configuration ...) configuration)
- ((? string? configuration) configuration)
- (#f #f)))
- (dependencies (match (assoc-ref data "dependencies")
- (('@ deps ...) deps)
- (#f #f))))
- (mkdir-p target)
- (copy-recursively "." (string-append target "/node_modules/" modulename))
- ;; Remove references to dependencies
- (delete-file-recursively
- (string-append target "/node_modules/" modulename "/node_modules"))
- (cond
- ((string? binary-configuration)
- (begin
- (mkdir-p binaries)
- (symlink (string-append target "/node_modules/" modulename "/"
- binary-configuration)
- (string-append binaries "/" modulename))))
- ((list? binary-configuration)
- (for-each
- (lambda (conf)
- (match conf
- ((key . value)
- (begin
- (mkdir-p (dirname (string-append binaries "/" key)))
- (symlink (string-append target "/node_modules/" modulename "/"
- value)
- (string-append binaries "/" key))))))
- binary-configuration)))
- (when dependencies
- (mkdir-p
- (string-append target "/node_modules/" modulename "/node_modules"))
- (for-each
- (lambda (dependency)
- (let ((dependency (car dependency)))
- (symlink
- (string-append (assoc-ref inputs (string-append "node-" dependency))
- "/lib/node_modules/" dependency)
- (string-append target "/node_modules/" modulename
- "/node_modules/" dependency))))
- dependencies))
+ "Install the node module to the output store item."
+ (let ((out (assoc-ref outputs "out"))
+ (npm (string-append (assoc-ref inputs "node") "/bin/npm")))
+ (invoke npm "--prefix" out
+ "--global"
+ "--offline"
+ "--loglevel" "info"
+ "--production"
+ "install" "../package.tgz")
#t))
-
(define %standard-phases
(modify-phases gnu:%standard-phases
+ (add-after 'unpack 'set-home set-home)
+ (add-before 'configure 'patch-dependencies patch-dependencies)
(replace 'configure configure)
(replace 'build build)
- (replace 'install install)
- (delete 'check)
- (add-after 'install 'check check)
- (delete 'strip)))
+ (replace 'check check)
+ (add-before 'install 'repack repack)
+ (replace 'install install)))
(define* (node-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)
diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm
index 005157b0a4..f59b0c420f 100644
--- a/guix/build/qt-build-system.scm
+++ b/guix/build/qt-build-system.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
@@ -49,25 +49,53 @@
(define (variables-for-wrapping base-directories)
- (define (collect-sub-dirs base-directories subdirectory)
- (filter-map
- (lambda (dir)
- (let ((directory (string-append dir subdirectory)))
- (if (directory-exists? directory) directory #f)))
- base-directories))
-
- (filter
- (lambda (var-to-wrap) (not (null? (last var-to-wrap))))
- (map
- (lambda (var-spec)
- `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec))))
- (list
- ;; these shall match the search-path-specification for Qt and KDE
- ;; libraries
- '("XDG_DATA_DIRS" "/share")
- '("XDG_CONFIG_DIRS" "/etc/xdg")
- '("QT_PLUGIN_PATH" "/lib/qt5/plugins")
- '("QML2_IMPORT_PATH" "/lib/qt5/qml")))))
+ (define (collect-sub-dirs base-directories file-type subdirectory
+ selectors)
+ ;; Append SUBDIRECTORY and each of BASE-DIRECTORIES, and return the subset
+ ;; that exists and has at least one of the SELECTORS sub-directories,
+ ;; unless SELECTORS is the empty list. FILE-TYPE should by 'directory or
+ ;; 'regular file. For the later, it allows searching for plain files
+ ;; rather than directories.
+ (define exists? (match file-type
+ ('directory directory-exists?)
+ ('regular file-exists?)))
+
+ (filter-map (lambda (dir)
+ (let ((directory (string-append dir subdirectory)))
+ (and (exists? directory)
+ (or (null? selectors)
+ (any (lambda (selector)
+ (exists?
+ (string-append directory selector)))
+ selectors))
+ directory)))
+ base-directories))
+
+ (filter-map
+ (match-lambda
+ ((variable file-type directory selectors ...)
+ (match (collect-sub-dirs base-directories file-type directory
+ selectors)
+ (()
+ #f)
+ (directories
+ `(,variable = ,directories)))))
+
+ ;; These shall match the search-path-specification for Qt and KDE
+ ;; libraries.
+ (list '("XDG_DATA_DIRS" directory "/share"
+
+ ;; These are "selectors": consider /share if and only if at least
+ ;; one of these sub-directories exist. This avoids adding
+ ;; irrelevant packages to XDG_DATA_DIRS just because they have a
+ ;; /share sub-directory.
+ "/glib-2.0/schemas" "/sounds" "/themes"
+ "/cursors" "/wallpapers" "/icons" "/mime")
+ '("XDG_CONFIG_DIRS" directory "/etc/xdg")
+ '("QT_PLUGIN_PATH" directory "/lib/qt5/plugins")
+ '("QML2_IMPORT_PATH" directory "/lib/qt5/qml")
+ '("QTWEBENGINEPROCESS_PATH" regular
+ "/lib/qt5/libexec/QtWebEngineProcess"))))
(define* (wrap-all-programs #:key inputs outputs
(qt-wrap-excluded-outputs '())
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 4379768f5e..8886fc0fb9 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -942,7 +943,11 @@ backend device."
;;;
;; From <uapi/linux/random.h>.
-(define RNDADDTOENTCNT #x40045201)
+(define RNDADDTOENTCNT
+ ;; Avoid using %current-system here to avoid depending on host-side code.
+ (if (string-prefix? "powerpc64le" %host-type)
+ #x80045201
+ #x40045201))
(define (add-to-entropy-count port-or-fd n)
"Add N to the kernel's entropy count (the value that can be read from
@@ -1021,6 +1026,7 @@ Turning finalization off shuts down the finalization thread as a side effect."
("mips64" 5055)
("armv7l" 120)
("aarch64" 220)
+ ("ppc64le" 120)
(_ #f))))
(lambda (flags)
"Create a new child process by duplicating the current parent process.
diff --git a/guix/gexp.scm b/guix/gexp.scm
index b9a2483773..afb935761e 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -936,6 +936,7 @@ second element is the derivation to compile them."
(mcached equal?
(mlet %store-monad ((modules (if (pair? modules)
(imported-modules modules
+ #:guile guile
#:system system
#:module-path module-path)
(return #f)))
@@ -1734,21 +1735,26 @@ TARGET, a GNU triplet."
'guile-3.0))
(define* (load-path-expression modules #:optional (path %load-path)
- #:key (extensions '()) system target)
+ #:key (extensions '()) system target
+ (guile (default-guile)))
"Return as a monadic value a gexp that sets '%load-path' and
'%load-compiled-path' to point to MODULES, a list of module names. MODULES
-are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty."
+are searched for in PATH. Return #f when MODULES and EXTENSIONS are empty.
+Assume MODULES are compiled with GUILE."
(if (and (null? modules) (null? extensions))
(with-monad %store-monad
(return #f))
- (mlet %store-monad ((modules (imported-modules modules
- #:module-path path
- #:system system))
- (compiled (compiled-modules modules
- #:extensions extensions
- #:module-path path
- #:system system
- #:target target)))
+ (mlet* %store-monad ((guile (lower-object guile system #:target #f))
+ (compiled (compiled-modules modules
+ #:guile guile
+ #:extensions extensions
+ #:module-path path
+ #:system system
+ #:target target))
+ (modules (imported-modules modules
+ #:guile guile
+ #:module-path path
+ #:system system)))
(return
(gexp (eval-when (expand load eval)
;; Augment the load paths and delete duplicates. Do that
@@ -1794,10 +1800,13 @@ imported modules in its search path. Look up EXP's modules in MODULE-PATH."
(set-load-path
(load-path-expression (gexp-modules exp)
module-path
+ #:guile guile
#:extensions
(gexp-extensions exp)
#:system system
- #:target target)))
+ #:target target))
+ (guile-for-build
+ (lower-object guile system #:target #f)))
(gexp->derivation name
(gexp
(call-with-output-file (ungexp output)
@@ -1820,6 +1829,7 @@ imported modules in its search path. Look up EXP's modules in MODULE-PATH."
#:system system
#:target target
#:module-path module-path
+ #:guile-for-build guile-for-build
;; These derivations are not worth offloading or
;; substituting.
diff --git a/guix/git.scm b/guix/git.scm
index a5103547d3..776b03f33a 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Kyle Meyer <kyle@kyleam.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -185,10 +186,9 @@ make sure no empty directory is left behind."
(lambda ()
(mkdir-p directory)
- (let ((auth-method (%make-auth-ssh-agent)))
- (clone url directory
- (make-clone-options
- #:fetch-options (make-default-fetch-options)))))
+ (clone url directory
+ (make-clone-options
+ #:fetch-options (make-default-fetch-options))))
(lambda _
(false-if-exception (rmdir directory)))))
@@ -210,6 +210,9 @@ corresponding Git object."
(let ((oid (reference-target
(branch-lookup repository branch BRANCH-REMOTE))))
(object-lookup repository oid)))
+ (('symref . symref)
+ (let ((oid (reference-name->oid repository symref)))
+ (object-lookup repository oid)))
(('commit . commit)
(let ((len (string-length commit)))
;; 'object-lookup-prefix' appeared in Guile-Git in Mar. 2018, so we
@@ -341,7 +344,7 @@ definitely available in REPOSITORY, false otherwise."
(define* (update-cached-checkout url
#:key
- (ref '(branch . "master"))
+ (ref '())
recursive?
(check-out? #t)
starting-commit
@@ -357,6 +360,7 @@ provided) as returned by 'commit-relation'.
REF is pair whose key is [branch | commit | tag | tag-or-commit ] and value
the associated data: [<branch name> | <sha1> | <tag name> | <string>].
+If REF is the empty list, the remote HEAD is used.
When RECURSIVE? is true, check out submodules as well, if any.
@@ -375,6 +379,7 @@ it unchanged."
;; made little sense since the cache should be transparent to them. So
;; here we append "origin/" if it's missing and otherwise keep it.
(match ref
+ (() '(symref . "refs/remotes/origin/HEAD"))
(('branch . branch)
`(branch . ,(if (string-prefix? "origin/" branch)
branch
@@ -389,9 +394,8 @@ it unchanged."
;; Only fetch remote if it has not been cloned just before.
(when (and cache-exists?
(not (reference-available? repository ref)))
- (let ((auth-method (%make-auth-ssh-agent)))
- (remote-fetch (remote-lookup repository "origin")
- #:fetch-options (make-default-fetch-options))))
+ (remote-fetch (remote-lookup repository "origin")
+ #:fetch-options (make-default-fetch-options)))
(when recursive?
(update-submodules repository #:log-port log-port))
@@ -435,12 +439,13 @@ it unchanged."
(log-port (%make-void-port "w"))
(cache-directory
(%repository-cache-directory))
- (ref '(branch . "master")))
+ (ref '()))
"Return two values: the content of the git repository at URL copied into a
store directory and the sha1 of the top level commit in this directory. The
reference to be checkout, once the repository is fetched, is specified by REF.
REF is pair whose key is [branch | commit | tag] and value the associated
-data, respectively [<branch name> | <sha1> | <tag name>].
+data, respectively [<branch name> | <sha1> | <tag name>]. If REF is the empty
+list, the remote HEAD is used.
When RECURSIVE? is true, check out submodules as well, if any.
@@ -550,7 +555,7 @@ objects: 'ancestor (meaning that OLD is an ancestor of NEW), 'descendant, or
git-checkout make-git-checkout
git-checkout?
(url git-checkout-url)
- (branch git-checkout-branch (default "master"))
+ (branch git-checkout-branch (default #f))
(commit git-checkout-commit (default #f)) ;#f | tag | commit
(recursive? git-checkout-recursive? (default #f)))
@@ -589,9 +594,11 @@ objects: 'ancestor (meaning that OLD is an ancestor of NEW), 'descendant, or
(match checkout
(($ <git-checkout> url branch commit recursive?)
(latest-repository-commit* url
- #:ref (if commit
- `(tag-or-commit . ,commit)
- `(branch . ,branch))
+ #:ref (cond (commit
+ `(tag-or-commit . ,commit))
+ (branch
+ `(branch . ,branch))
+ (else '()))
#:recursive? recursive?
#:log-port (current-error-port)))))
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index 7bd08c1208..fece84b341 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -31,7 +31,7 @@
#:use-module (srfi srfi-34)
#:use-module (rnrs io ports)
#:use-module (system foreign)
- #:use-module (guix http-client)
+ #:use-module ((guix http-client) #:hide (open-socket-for-uri))
#:use-module (guix ftp-client)
#:use-module (guix utils)
#:use-module (guix memoization)
@@ -66,6 +66,7 @@
%gnu-updater
%gnu-ftp-updater
%savannah-updater
+ %sourceforge-updater
%xorg-updater
%kernel.org-updater
%generic-html-updater))
@@ -242,7 +243,7 @@ network to check in GNU's database."
;; The "-src" pattern is for "TeXmacs-1.0.7.9-src.tar.gz".
;; The "-gnu[0-9]" pattern is for "icecat-38.4.0-gnu1.tar.bz2".
;; Accept underscores as in "PKG_1.2.tar.gz" for some non-GNU packages.
- (make-regexp "^([^.]+)[-_]([0-9]|[^-])+(-(src|gnu[0-9]))?\\.(tar\\.|zip$)"))
+ (make-regexp "^([^.]+)[-_]([0-9]|[^-])+(-(src|[sS]ource|gnu[0-9]))?\\.(tar\\.|zip$)"))
(define %alpha-tarball-rx
(make-regexp "^.*-.*[0-9](-|~)?(alpha|beta|rc|RC|cvs|svn|git)-?[0-9\\.]*\\.tar\\."))
@@ -595,7 +596,7 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)."
(define %package-name-rx
;; Regexp for a package name, e.g., "foo-X.Y". Since TeXmacs uses
;; "TeXmacs-X.Y-src", the `-src' suffix is allowed.
- (make-regexp "^(.*)[-_](([0-9]|\\.)+)(-src)?"))
+ (make-regexp "^(.*)[-_](([0-9]|\\.)+)(-src|\\.src|\\.orig)?"))
(define (gnu-package-name->name+version name+version)
"Return the package name and version number extracted from NAME+VERSION."
@@ -610,11 +611,12 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)."
(define (pure-gnu-package? package)
"Return true if PACKAGE is a non-Emacs and non-GNOME GNU package. This
excludes AucTeX, for instance, whose releases are now uploaded to
-elpa.gnu.org, and all the GNOME packages; EMMS is included though, because its
-releases are on gnu.org."
+elpa.gnu.org, GNU Radio, which has releases at www.gnuradio.org, and all the
+GNOME packages; EMMS is included though, because its releases are on gnu.org."
(and (or (not (string-prefix? "emacs-" (package-name package)))
(gnu-hosted? package))
(not (gnome-package? package))
+ (not (string-prefix? "gnuradio" (package-name package)))
(gnu-package? package)))
(define gnu-hosted?
@@ -636,9 +638,6 @@ releases are on gnu.org."
(lambda (urls)
(map rewrite-url urls))))))
-(define savannah-package?
- (url-prefix-predicate "mirror://savannah/"))
-
(define %savannah-base
;; One of the Savannah mirrors listed at
;; <http://download0.savannah.gnu.org/mirmon/savannah/> that serves valid
@@ -662,6 +661,59 @@ releases are on gnu.org."
#:directory directory)
(cut adjusted-upstream-source <> rewrite))))
+(define (latest-sourceforge-release package)
+ "Return the latest release of PACKAGE."
+ (define (uri-append uri extension)
+ ;; Return URI with EXTENSION appended.
+ (build-uri (uri-scheme uri)
+ #:host (uri-host uri)
+ #:path (string-append (uri-path uri) extension)))
+
+ (define (valid-uri? uri port)
+ ;; Return true if URI is reachable.
+ (false-if-exception
+ (case (response-code (http-head uri #:port port #:keep-alive? #t))
+ ((200 302) #t)
+ (else #f))))
+
+ (let* ((name (package-upstream-name package))
+ (base (string-append "https://sourceforge.net/projects/"
+ name "/files"))
+ (url (string-append base "/latest/download"))
+ (uri (string->uri url))
+ (port (false-if-exception (open-socket-for-uri uri)))
+ (response (and port
+ (http-head uri #:port port #:keep-alive? #t))))
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (and response
+ (= 302 (response-code response))
+ (response-location response)
+ (match (string-tokenize (uri-path (response-location response))
+ (char-set-complement (char-set #\/)))
+ ((_ components ...)
+ (let* ((path (string-join components "/"))
+ (url (string-append "mirror://sourceforge/" path)))
+ (and (release-file? name (basename path))
+
+ ;; Take the heavy-handed approach of probing 3 additional
+ ;; URLs. XXX: Would be nicer if this could be avoided.
+ (let* ((loc (response-location response))
+ (sig (any (lambda (extension)
+ (let ((uri (uri-append loc extension)))
+ (and (valid-uri? uri port)
+ (string-append url extension))))
+ '(".asc" ".sig" ".sign"))))
+ (upstream-source
+ (package name)
+ (version (tarball->version (basename path)))
+ (urls (list url))
+ (signature-urls (and sig (list sig)))))))))))
+ (lambda ()
+ (when port
+ (close-port port))))))
+
(define (latest-xorg-release package)
"Return the latest release of PACKAGE."
(let ((uri (string->uri (origin-uri (package-source package)))))
@@ -705,14 +757,19 @@ releases are on gnu.org."
"ftp.gnu.org" "download.savannah.gnu.org"
"pypi.org" "crates.io" "rubygems.org"
"bioconductor.org")))
- (url-predicate (lambda (url)
- (match (string->uri url)
- (#f #f)
- (uri
- (let ((scheme (uri-scheme uri))
- (host (uri-host uri)))
- (and (memq scheme '(http https))
- (not (member host hosting-sites))))))))))
+ (define http-url?
+ (url-predicate (lambda (url)
+ (match (string->uri url)
+ (#f #f)
+ (uri
+ (let ((scheme (uri-scheme uri))
+ (host (uri-host uri)))
+ (and (memq scheme '(http https))
+ (not (member host hosting-sites)))))))))
+
+ (lambda (package)
+ (or (assoc-ref (package-properties package) 'release-monitoring-url)
+ (http-url? package)))))
(define (latest-html-updatable-release package)
"Return the latest release of PACKAGE. Do that by crawling the HTML page of
@@ -771,6 +828,13 @@ the directory containing its source tarball."
(pred (url-prefix-predicate "mirror://savannah/"))
(latest latest-savannah-release)))
+(define %sourceforge-updater
+ (upstream-updater
+ (name 'sourceforge)
+ (description "Updater for packages hosted on sourceforge.net")
+ (pred (url-prefix-predicate "mirror://sourceforge/"))
+ (latest latest-sourceforge-release)))
+
(define %xorg-updater
(upstream-updater
(name 'xorg)
diff --git a/guix/http-client.scm b/guix/http-client.scm
index 4b4c14ed0b..a2e11a1b73 100644
--- a/guix/http-client.scm
+++ b/guix/http-client.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2012, 2015 Free Software Foundation, Inc.
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -147,6 +147,28 @@ Raise an '&http-get-error' condition if downloading fails."
(uri->string uri) code
(response-reason-phrase resp))))))))))))
+(define-syntax-rule (false-if-networking-error exp)
+ "Return #f if EXP triggers a network related exception as can occur when
+reusing stale cached connections."
+ ;; FIXME: Duplicated from 'with-cached-connection'.
+ (catch #t
+ (lambda ()
+ exp)
+ (lambda (key . args)
+ ;; If PORT was cached and the server closed the connection in the
+ ;; meantime, we get EPIPE. In that case, open a fresh connection and
+ ;; retry. We might also get 'bad-response or a similar exception from
+ ;; (web response) later on, once we've sent the request, or a
+ ;; ERROR/INVALID-SESSION from GnuTLS.
+ (if (or (and (eq? key 'system-error)
+ (= EPIPE (system-error-errno `(,key ,@args))))
+ (and (eq? key 'gnutls-error)
+ (eq? (first args) error/invalid-session))
+ (memq key
+ '(bad-response bad-header bad-header-component)))
+ #f
+ (apply throw key args)))))
+
(define* (http-multiple-get base-uri proc seed requests
#:key port (verify-certificate? #t)
(open-connection guix:open-connection-for-uri)
@@ -185,25 +207,15 @@ returning."
;; Inherit the HTTP proxying property from P.
(set-http-proxy-port?! buffer (http-proxy-port? p))
- (catch #t
- (lambda ()
- (for-each (cut write-request <> buffer)
- batch)
- (put-bytevector p (get))
- (force-output p))
- (lambda (key . args)
- ;; If PORT becomes unusable, open a fresh connection and
- ;; retry.
- (if (or (and (eq? key 'system-error)
- (= EPIPE (system-error-errno `(,key ,@args))))
- (and (eq? key 'gnutls-error)
- (eq? (first args) error/invalid-session)))
- (begin
- (close-port p) ; close the broken port
- (connect #f
- requests
- result))
- (apply throw key args)))))
+ (unless (false-if-networking-error
+ (begin
+ (for-each (cut write-request <> buffer) batch)
+ (put-bytevector p (get))
+ (force-output p)
+ #t))
+ ;; If PORT becomes unusable, open a fresh connection and retry.
+ (close-port p) ; close the broken port
+ (connect #f requests result)))
;; Now start processing responses.
(let loop ((sent batch)
@@ -219,42 +231,27 @@ returning."
(remainder
(connect p remainder result))))
((head tail ...)
- (catch #t
- (lambda ()
- (let* ((resp (read-response p))
- (body (response-body-port resp))
- (result (proc head resp body result)))
- ;; The server can choose to stop responding at any time,
- ;; in which case we have to try again. Check whether
- ;; that is the case. Note that even upon "Connection:
- ;; close", we can read from BODY.
- (match (assq 'connection (response-headers resp))
- (('connection 'close)
- (close-port p)
- (connect #f ;try again
- (drop requests (+ 1 processed))
- result))
- (_
- (loop tail (+ 1 processed) result))))) ;keep going
- (lambda (key . args)
- ;; If PORT was cached and the server closed the connection
- ;; in the meantime, we get EPIPE. In that case, open a
- ;; fresh connection and retry. We might also get
- ;; 'bad-response or a similar exception from (web response)
- ;; later on, once we've sent the request, or a
- ;; ERROR/INVALID-SESSION from GnuTLS.
- (if (or (and (eq? key 'system-error)
- (= EPIPE (system-error-errno `(,key ,@args))))
- (and (eq? key 'gnutls-error)
- (eq? (first args) error/invalid-session))
- (memq key
- '(bad-response bad-header bad-header-component)))
- (begin
- (close-port p)
- (connect #f ; try again
- (drop requests (+ 1 processed))
- result))
- (apply throw key args))))))))))
+ (match (false-if-networking-error (read-response p))
+ ((? response? resp)
+ (let* ((body (response-body-port resp))
+ (result (proc head resp body result)))
+ ;; The server can choose to stop responding at any time,
+ ;; in which case we have to try again. Check whether
+ ;; that is the case. Note that even upon "Connection:
+ ;; close", we can read from BODY.
+ (match (assq 'connection (response-headers resp))
+ (('connection 'close)
+ (close-port p)
+ (connect #f ;try again
+ (drop requests (+ 1 processed))
+ result))
+ (_
+ (loop tail (+ 1 processed) result)))))
+ (#f
+ (close-port p)
+ (connect #f ; try again
+ (drop requests processed)
+ result)))))))))
;;;
diff --git a/guix/import/go.scm b/guix/import/go.scm
index 7452b4c903..bc53f8f558 100644
--- a/guix/import/go.scm
+++ b/guix/import/go.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2021 François Joulaud <francois.joulaud@radiofrance.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,7 +33,7 @@
#:use-module (guix http-client)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix memoization)
- #:autoload (htmlprag) (html->sxml) ;from Guile-Lib
+ #:use-module (htmlprag) ;from Guile-Lib
#:autoload (guix git) (update-cached-checkout)
#:autoload (gcrypt hash) (open-hash-port hash-algorithm sha256)
#:autoload (guix serialization) (write-file)
@@ -42,20 +43,29 @@
#:use-module (ice-9 rdelim)
#:use-module (ice-9 receive)
#:use-module (ice-9 regex)
+ #:use-module (ice-9 textual-ports)
#:use-module ((rnrs io ports) #:select (call-with-port))
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-2)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
- #:use-module (sxml xpath)
+ #:use-module (srfi srfi-34)
+ #:use-module (sxml match)
+ #:use-module ((sxml xpath) #:renamer (lambda (s)
+ (if (eq? 'filter s)
+ 'xfilter
+ s)))
#:use-module (web client)
#:use-module (web response)
#:use-module (web uri)
- #:export (go-path-escape
- go-module->guix-package
+ #:export (go-module->guix-package
go-module-recursive-import))
+;;; Parameterize htmlprag to parse valid HTML more reliably.
+(%strict-tokenizer? #t)
+
;;; Commentary:
;;;
;;; (guix import go) attempts to make it easier to create Guix package
@@ -83,12 +93,18 @@
;;; assumption that there will be no collision.
;;; TODO list
-;;; - get correct hash in vcs->origin
-;;; - print partial result during recursive imports (need to catch
-;;; exceptions)
+;;; - get correct hash in vcs->origin for Mercurial and Subversion
;;; Code:
+(define http-fetch*
+ ;; Like http-fetch, but memoized and returning the body as a string.
+ (memoize (lambda args
+ (call-with-port (apply http-fetch args) get-string-all))))
+
+(define json-fetch*
+ (memoize json-fetch))
+
(define (go-path-escape path)
"Escape a module path by replacing every uppercase letter with an
exclamation mark followed with its lowercase equivalent, as per the module
@@ -98,54 +114,87 @@ https://godoc.org/golang.org/x/mod/module#hdr-Escaped_Paths)."
(string-append "!" (string-downcase (match:substring occurrence))))
(regexp-substitute/global #f "[A-Z]" path 'pre escape 'post))
-(define (go-module-latest-version goproxy-url module-path)
- "Fetch the version number of the latest version for MODULE-PATH from the
-given GOPROXY-URL server."
- (assoc-ref (json-fetch (format #f "~a/~a/@latest" goproxy-url
- (go-path-escape module-path)))
- "Version"))
+;; Prevent inlining of this procedure, which is accessed by unit tests.
+(set! go-path-escape go-path-escape)
+(define (go.pkg.dev-info name)
+ (http-fetch* (string-append "https://pkg.go.dev/" name)))
+
+(define* (go-module-version-string goproxy name #:key version)
+ "Fetch the version string of the latest version for NAME from the given
+GOPROXY server, or for VERSION when specified."
+ (let ((file (if version
+ (string-append "@v/" version ".info")
+ "@latest")))
+ (assoc-ref (json-fetch* (format #f "~a/~a/~a"
+ goproxy (go-path-escape name) file))
+ "Version")))
+
+(define* (go-module-available-versions goproxy name)
+ "Retrieve the available versions for a given module from the module proxy.
+Versions are being returned **unordered** and may contain different versioning
+styles for the same package."
+ (let* ((url (string-append goproxy "/" (go-path-escape name) "/@v/list"))
+ (body (http-fetch* url))
+ (versions (remove string-null? (string-split body #\newline))))
+ (if (null? versions)
+ (list (go-module-version-string goproxy name)) ;latest version
+ versions)))
(define (go-package-licenses name)
"Retrieve the list of licenses that apply to NAME, a Go package or module
-name (e.g. \"github.com/golang/protobuf/proto\"). The data is scraped from
-the https://pkg.go.dev/ web site."
- (let*-values (((url) (string-append "https://pkg.go.dev/" name
- "?tab=licenses"))
- ((response body) (http-get url))
- ;; Extract the text contained in a h2 child node of any
- ;; element marked with a "License" class attribute.
- ((select) (sxpath `(// (* (@ (equal? (class "License"))))
- h2 // *text*))))
- (and (eq? (response-code response) 200)
- (match (select (html->sxml body))
- (() #f) ;nothing selected
- (licenses licenses)))))
-
-(define (go.pkg.dev-info name)
- (http-get (string-append "https://pkg.go.dev/" name)))
-(define go.pkg.dev-info*
- (memoize go.pkg.dev-info))
+name (e.g. \"github.com/golang/protobuf/proto\")."
+ (let* ((body (go.pkg.dev-info (string-append name "?tab=licenses")))
+ ;; Extract the text contained in a h2 child node of any
+ ;; element marked with a "License" class attribute.
+ (select (sxpath `(// (* (@ (equal? (class "License"))))
+ h2 // *text*))))
+ (select (html->sxml body))))
+
+(define (sxml->texi sxml-node)
+ "A very basic SXML to Texinfo converter which attempts to preserve HTML
+formatting and links as text."
+ (sxml-match sxml-node
+ ((strong ,text)
+ (format #f "@strong{~a}" text))
+ ((a (@ (href ,url)) ,text)
+ (format #f "@url{~a,~a}" url text))
+ ((code ,text)
+ (format #f "@code{~a}" text))
+ (,something-else something-else)))
(define (go-package-description name)
"Retrieve a short description for NAME, a Go package name,
-e.g. \"google.golang.org/protobuf/proto\". The data is scraped from the
-https://pkg.go.dev/ web site."
- (let*-values (((response body) (go.pkg.dev-info* name))
- ;; Extract the text contained in a h2 child node of any
- ;; element marked with a "License" class attribute.
- ((select) (sxpath
- `(// (section
- (@ (equal? (class "Documentation-overview"))))
- (p 1)))))
- (and (eq? (response-code response) 200)
- (match (select (html->sxml body))
- (() #f) ;nothing selected
- (((p . strings))
- ;; The paragraph text is returned as a list of strings embedding
- ;; newline characters. Join them and strip the newline
- ;; characters.
- (string-delete #\newline (string-join strings)))))))
+e.g. \"google.golang.org/protobuf/proto\"."
+ (let* ((body (go.pkg.dev-info name))
+ (sxml (html->sxml body))
+ (overview ((sxpath
+ `(//
+ (* (@ (equal? (class "Documentation-overview"))))
+ (p 1))) sxml))
+ ;; Sometimes, the first paragraph just contains images/links that
+ ;; has only "\n" for text. The following filter is designed to
+ ;; omit it.
+ (contains-text? (lambda (node)
+ (remove string-null?
+ (map string-trim-both
+ (filter (node-typeof? '*text*)
+ (cdr node))))))
+ (select-content (sxpath
+ `(//
+ (* (@ (equal? (class "UnitReadme-content"))))
+ div // p ,(xfilter contains-text?))))
+ ;; Fall-back to use content; this is less desirable as it is more
+ ;; verbose, but not every page has an overview.
+ (description (if (not (null? overview))
+ overview
+ (select-content sxml)))
+ (description* (and (not (null? description))
+ (first description))))
+ (match description*
+ (() #f) ;nothing selected
+ ((p elements ...)
+ (apply string-append (filter string? (map sxml->texi elements)))))))
(define (go-package-synopsis module-name)
"Retrieve a short synopsis for a Go module named MODULE-NAME,
@@ -153,17 +202,17 @@ e.g. \"google.golang.org/protobuf\". The data is scraped from
the https://pkg.go.dev/ web site."
;; Note: Only the *module* (rather than package) page has the README title
;; used as a synopsis on the https://pkg.go.dev web site.
- (let*-values (((response body) (go.pkg.dev-info* module-name))
- ;; Extract the text contained in a h2 child node of any
- ;; element marked with a "License" class attribute.
- ((select) (sxpath
- `(// (div (@ (equal? (class "UnitReadme-content"))))
- // h3 *text*))))
- (and (eq? (response-code response) 200)
- (match (select (html->sxml body))
- (() #f) ;nothing selected
- ((title more ...) ;title is the first string of the list
- (string-trim-both title))))))
+ (let* ((url (string-append "https://pkg.go.dev/" module-name))
+ (body (http-fetch* url))
+ ;; Extract the text contained in a h2 child node of any
+ ;; element marked with a "License" class attribute.
+ (select-title (sxpath
+ `(// (div (@ (equal? (class "UnitReadme-content"))))
+ // h3 *text*))))
+ (match (select-title (html->sxml body))
+ (() #f) ;nothing selected
+ ((title more ...) ;title is the first string of the list
+ (string-trim-both title)))))
(define (list->licenses licenses)
"Given a list of LICENSES mostly following the SPDX conventions, return the
@@ -188,13 +237,13 @@ corresponding Guix license or 'unknown-license!"
'unknown-license!)))
licenses))
-(define (fetch-go.mod goproxy-url module-path version)
- "Fetches go.mod from the given GOPROXY-URL server for the given MODULE-PATH
-and VERSION."
- (let ((url (format #f "~a/~a/@v/~a.mod" goproxy-url
+(define (fetch-go.mod goproxy module-path version)
+ "Fetch go.mod from the given GOPROXY server for the given MODULE-PATH
+and VERSION and return an input port."
+ (let ((url (format #f "~a/~a/@v/~a.mod" goproxy
(go-path-escape module-path)
(go-path-escape version))))
- (http-fetch url)))
+ (http-fetch* url)))
(define %go.mod-require-directive-rx
;; A line in a require directive is composed of a module path and
@@ -202,118 +251,119 @@ and VERSION."
;; the end.
(make-regexp
(string-append
- "^[[:blank:]]*"
- "([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)"
- "([[:blank:]]+//.*)?")))
+ "^[[:blank:]]*([^[:blank:]]+)[[:blank:]]+" ;the module path
+ "([^[:blank:]]+)" ;the version
+ "([[:blank:]]+//.*)?"))) ;an optional comment
(define %go.mod-replace-directive-rx
;; ReplaceSpec = ModulePath [ Version ] "=>" FilePath newline
;; | ModulePath [ Version ] "=>" ModulePath Version newline .
(make-regexp
(string-append
- "([^[:blank:]]+)([[:blank:]]+([^[:blank:]]+))?"
- "[[:blank:]]+" "=>" "[[:blank:]]+"
- "([^[:blank:]]+)([[:blank:]]+([^[:blank:]]+))?")))
-
-(define (parse-go.mod port)
- "Parse the go.mod file accessible via the input PORT, returning a list of
-requirements."
- (define-record-type <results>
- (make-results requirements replacements)
- results?
- (requirements results-requirements)
- (replacements results-replacements))
+ "([^[:blank:]]+)" ;the module path
+ "([[:blank:]]+([^[:blank:]]+))?" ;optional version
+ "[[:blank:]]+=>[[:blank:]]+"
+ "([^[:blank:]]+)" ;the file or module path
+ "([[:blank:]]+([^[:blank:]]+))?"))) ;the version (if a module path)
+
+(define (parse-go.mod content)
+ "Parse the go.mod file CONTENT, returning a list of requirements."
;; We parse only a subset of https://golang.org/ref/mod#go-mod-file-grammar
;; which we think necessary for our use case.
- (define (toplevel results)
- "Main parser, RESULTS is a pair of alist serving as accumulator for
- all encountered requirements and replacements."
- (let ((line (read-line port)))
+ (define (toplevel requirements replaced)
+ "This is the main parser. The results are accumulated in THE REQUIREMENTS
+and REPLACED lists."
+ (let ((line (read-line)))
(cond
((eof-object? line)
;; parsing ended, give back the result
- results)
+ (values requirements replaced))
((string=? line "require (")
;; a require block begins, delegate parsing to IN-REQUIRE
- (in-require results))
+ (in-require requirements replaced))
((string=? line "replace (")
;; a replace block begins, delegate parsing to IN-REPLACE
- (in-replace results))
+ (in-replace requirements replaced))
((string-prefix? "require " line)
- ;; a standalone require directive
- (let* ((stripped-line (string-drop line 8))
- (new-results (require-directive results stripped-line)))
- (toplevel new-results)))
+ ;; a require directive by itself
+ (let* ((stripped-line (string-drop line 8)))
+ (call-with-values
+ (lambda ()
+ (require-directive requirements replaced stripped-line))
+ toplevel)))
((string-prefix? "replace " line)
- ;; a standalone replace directive
- (let* ((stripped-line (string-drop line 8))
- (new-results (replace-directive results stripped-line)))
- (toplevel new-results)))
+ ;; a replace directive by itself
+ (let* ((stripped-line (string-drop line 8)))
+ (call-with-values
+ (lambda ()
+ (replace-directive requirements replaced stripped-line))
+ toplevel)))
(#t
;; unrecognised line, ignore silently
- (toplevel results)))))
+ (toplevel requirements replaced)))))
- (define (in-require results)
- (let ((line (read-line port)))
+ (define (in-require requirements replaced)
+ (let ((line (read-line)))
(cond
((eof-object? line)
;; this should never happen here but we ignore silently
- results)
+ (values requirements replaced))
((string=? line ")")
;; end of block, coming back to toplevel
- (toplevel results))
+ (toplevel requirements replaced))
(#t
- (in-require (require-directive results line))))))
+ (call-with-values (lambda ()
+ (require-directive requirements replaced line))
+ in-require)))))
- (define (in-replace results)
- (let ((line (read-line port)))
+ (define (in-replace requirements replaced)
+ (let ((line (read-line)))
(cond
((eof-object? line)
;; this should never happen here but we ignore silently
- results)
+ (values requirements replaced))
((string=? line ")")
;; end of block, coming back to toplevel
- (toplevel results))
+ (toplevel requirements replaced))
(#t
- (in-replace (replace-directive results line))))))
-
- (define (replace-directive results line)
- "Extract replaced modules and new requirements from replace directive
- in LINE and add to RESULTS."
- (match results
- (($ <results> requirements replaced)
- (let* ((rx-match (regexp-exec %go.mod-replace-directive-rx line))
- (module-path (match:substring rx-match 1))
- (version (match:substring rx-match 3))
- (new-module-path (match:substring rx-match 4))
- (new-version (match:substring rx-match 6))
- (new-replaced (alist-cons module-path version replaced))
- (new-requirements
- (if (string-match "^\\.?\\./" new-module-path)
- requirements
- (alist-cons new-module-path new-version requirements))))
- (make-results new-requirements new-replaced)))))
- (define (require-directive results line)
- "Extract requirement from LINE and add it to RESULTS."
+ (call-with-values (lambda ()
+ (replace-directive requirements replaced line))
+ in-replace)))))
+
+ (define (replace-directive requirements replaced line)
+ "Extract replaced modules and new requirements from the replace directive
+in LINE and add them to the REQUIREMENTS and REPLACED lists."
+ (let* ((rx-match (regexp-exec %go.mod-replace-directive-rx line))
+ (module-path (match:substring rx-match 1))
+ (version (match:substring rx-match 3))
+ (new-module-path (match:substring rx-match 4))
+ (new-version (match:substring rx-match 6))
+ (new-replaced (cons (list module-path version) replaced))
+ (new-requirements
+ (if (string-match "^\\.?\\./" new-module-path)
+ requirements
+ (cons (list new-module-path new-version) requirements))))
+ (values new-requirements new-replaced)))
+
+ (define (require-directive requirements replaced line)
+ "Extract requirement from LINE and augment the REQUIREMENTS and REPLACED
+lists."
(let* ((rx-match (regexp-exec %go.mod-require-directive-rx line))
(module-path (match:substring rx-match 1))
- ;; we saw double-quoted string in the wild without escape
- ;; sequences so we just trim the quotes
+ ;; Double-quoted strings were seen in the wild without escape
+ ;; sequences; trim the quotes to be on the safe side.
(module-path (string-trim-both module-path #\"))
(version (match:substring rx-match 2)))
- (match results
- (($ <results> requirements replaced)
- (make-results (alist-cons module-path version requirements) replaced)))))
-
- (let ((results (toplevel (make-results '() '()))))
- (match results
- (($ <results> requirements replaced)
- ;; At last we remove replaced modules from the requirements list
- (fold
- (lambda (replacedelem requirements)
- (alist-delete! (car replacedelem) requirements))
- requirements
- replaced)))))
+ (values (cons (list module-path version) requirements) replaced)))
+
+ (with-input-from-string content
+ (lambda ()
+ (receive (requirements replaced)
+ (toplevel '() '())
+ ;; At last remove the replaced modules from the requirements list.
+ (remove (lambda (r)
+ (assoc (car r) replaced))
+ requirements)))))
;; Prevent inlining of this procedure, which is accessed by unit tests.
(set! parse-go.mod parse-go.mod)
@@ -324,8 +374,10 @@ requirements."
(url-prefix vcs-url-prefix)
(root-regex vcs-root-regex)
(type vcs-type))
+
(define (make-vcs prefix regexp type)
- (%make-vcs prefix (make-regexp regexp) type))
+ (%make-vcs prefix (make-regexp regexp) type))
+
(define known-vcs
;; See the following URL for the official Go equivalent:
;; https://github.com/golang/go/blob/846dce9d05f19a1f53465e62a304dea21b99f910/src/cmd/go/internal/vcs/vcs.go#L1026-L1087
@@ -376,13 +428,27 @@ hence the need to derive this information."
(vcs-qualified-module-path->root-repo-url module-path)
module-path))
-(define (go-module->guix-package-name module-path)
- "Converts a module's path to the canonical Guix format for Go packages."
- (string-downcase (string-append "go-" (string-replace-substring
- (string-replace-substring
- module-path
- "." "-")
- "/" "-"))))
+(define* (go-module->guix-package-name module-path #:optional version)
+ "Converts a module's path to the canonical Guix format for Go packages.
+Optionally include a VERSION string to append to the name."
+ ;; Map dot, slash and underscore characters to hyphens.
+ (let ((module-path* (string-map (lambda (c)
+ (if (member c '(#\. #\/ #\_))
+ #\-
+ c))
+ module-path)))
+ (string-downcase (string-append "go-" module-path*
+ (if version
+ (string-append "-" version)
+ "")))))
+
+(define (strip-.git-suffix/maybe repo-url)
+ "Strip a repository URL '.git' suffix from REPO-URL if hosted at GitHub."
+ (match repo-url
+ ((and (? (cut string-prefix? "https://github.com" <>))
+ (? (cut string-suffix? ".git" <>)))
+ (string-drop-right repo-url 4))
+ (_ repo-url)))
(define-record-type <module-meta>
(make-module-meta import-prefix vcs repo-root)
@@ -396,21 +462,22 @@ hence the need to derive this information."
because goproxy servers don't currently provide all the information needed to
build a package."
;; <meta name="go-import" content="import-prefix vcs repo-root">
- (let* ((port (http-fetch (format #f "https://~a?go-get=1" module-path)))
+ (let* ((meta-data (http-fetch* (format #f "https://~a?go-get=1" module-path)))
(select (sxpath `(// head (meta (@ (equal? (name "go-import"))))
// content))))
- (match (select (call-with-port port html->sxml))
- (() #f) ;nothing selected
+ (match (select (html->sxml meta-data))
+ (() #f) ;nothing selected
(((content content-text))
(match (string-split content-text #\space)
((root-path vcs repo-url)
- (make-module-meta root-path (string->symbol vcs) repo-url)))))))
+ (make-module-meta root-path (string->symbol vcs)
+ (strip-.git-suffix/maybe repo-url))))))))
-(define (module-meta-data-repo-url meta-data goproxy-url)
+(define (module-meta-data-repo-url meta-data goproxy)
"Return the URL where the fetcher which will be used can download the
source."
(if (member (module-meta-vcs meta-data) '(fossil mod))
- goproxy-url
+ goproxy
(module-meta-repo-root meta-data)))
;; XXX: Copied from (guix scripts hash).
@@ -463,6 +530,9 @@ control system is being used."
(method git-fetch)
(uri (git-reference
(url ,vcs-repo-url)
+ ;; This is done because the version field of the package,
+ ;; which the generated quoted expression refers to, has been
+ ;; stripped of any 'v' prefixed.
(commit ,(if (and plain-version? v-prefixed?)
'(string-append "v" version)
'(go-version->git-ref version)))))
@@ -500,48 +570,95 @@ control system is being used."
vcs-type vcs-repo-url)))))
(define* (go-module->guix-package module-path #:key
- (goproxy-url "https://proxy.golang.org"))
- (let* ((latest-version (go-module-latest-version goproxy-url module-path))
- (port (fetch-go.mod goproxy-url module-path latest-version))
- (dependencies (map car (call-with-port port parse-go.mod)))
+ (goproxy "https://proxy.golang.org")
+ version
+ pin-versions?)
+ "Return the package S-expression corresponding to MODULE-PATH at VERSION, a Go package.
+The meta-data is fetched from the GOPROXY server and https://pkg.go.dev/.
+When VERSION is unspecified, the latest version available is used."
+ (let* ((available-versions (go-module-available-versions goproxy module-path))
+ (version* (or version
+ (go-module-version-string goproxy module-path))) ;latest
+ ;; Elide the "v" prefix Go uses.
+ (strip-v-prefix (cut string-trim <> #\v))
+ ;; Pseudo-versions do not appear in the versions list; skip the
+ ;; following check.
+ (_ (unless (or (go-pseudo-version? version*)
+ (member version* available-versions))
+ (error (format #f "error: version ~s is not available
+hint: use one of the following available versions ~a\n"
+ version* available-versions))))
+ (content (fetch-go.mod goproxy module-path version*))
+ (dependencies+versions (parse-go.mod content))
+ (dependencies (if pin-versions?
+ dependencies+versions
+ (map car dependencies+versions)))
(guix-name (go-module->guix-package-name module-path))
(root-module-path (module-path->repository-root module-path))
;; The VCS type and URL are not included in goproxy information. For
;; this we need to fetch it from the official module page.
(meta-data (fetch-module-meta-data root-module-path))
(vcs-type (module-meta-vcs meta-data))
- (vcs-repo-url (module-meta-data-repo-url meta-data goproxy-url))
+ (vcs-repo-url (module-meta-data-repo-url meta-data goproxy))
(synopsis (go-package-synopsis root-module-path))
(description (go-package-description module-path))
(licenses (go-package-licenses module-path)))
(values
`(package
(name ,guix-name)
- ;; Elide the "v" prefix Go uses
- (version ,(string-trim latest-version #\v))
+ (version ,(strip-v-prefix version*))
(source
- ,(vcs->origin vcs-type vcs-repo-url latest-version))
+ ,(vcs->origin vcs-type vcs-repo-url version*))
(build-system go-build-system)
(arguments
'(#:import-path ,root-module-path))
- ,@(maybe-inputs (map go-module->guix-package-name dependencies))
+ ,@(maybe-propagated-inputs
+ (map (match-lambda
+ ((name version)
+ (go-module->guix-package-name name (strip-v-prefix version)))
+ (name
+ (go-module->guix-package-name name)))
+ dependencies))
(home-page ,(format #f "https://~a" root-module-path))
(synopsis ,synopsis)
- (description ,description)
- (license ,(match (and=> licenses list->licenses)
- ((license) license)
- ((licenses ...) `(list ,@licenses))
- (x x))))
- dependencies)))
+ (description ,(and=> description beautify-description))
+ (license ,(match (list->licenses licenses)
+ (() #f) ;unknown license
+ ((license) ;a single license
+ license)
+ ((license ...) ;a list of licenses
+ `(list ,@license)))))
+ (if pin-versions?
+ dependencies+versions
+ dependencies))))
(define go-module->guix-package* (memoize go-module->guix-package))
(define* (go-module-recursive-import package-name
- #:key (goproxy-url "https://proxy.golang.org"))
+ #:key (goproxy "https://proxy.golang.org")
+ version
+ pin-versions?)
+
(recursive-import
package-name
- #:repo->guix-package (lambda* (name . _)
- (go-module->guix-package*
- name
- #:goproxy-url goproxy-url))
- #:guix-name go-module->guix-package-name))
+ #:repo->guix-package
+ (lambda* (name #:key version repo)
+ ;; Disable output buffering so that the following warning gets printed
+ ;; consistently.
+ (setvbuf (current-error-port) 'none)
+ (guard (c ((http-get-error? c)
+ (warning (G_ "Failed to import package ~s.
+reason: ~s could not be fetched: HTTP error ~a (~s).
+This package and its dependencies won't be imported.~%")
+ name
+ (uri->string (http-get-error-uri c))
+ (http-get-error-code c)
+ (http-get-error-reason c))
+ (values '() '())))
+ (receive (package-sexp dependencies)
+ (go-module->guix-package* name #:goproxy goproxy
+ #:version version
+ #:pin-versions? pin-versions?)
+ (values package-sexp dependencies))))
+ #:guix-name go-module->guix-package-name
+ #:version version))
diff --git a/guix/import/print.scm b/guix/import/print.scm
index a2ab810a5c..dcc38abc70 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -79,7 +79,16 @@ when evaluated."
(file-name (origin-file-name source))
(patches (origin-patches source)))
`(origin
- (method ,(procedure-name method))
+ ;; Since 'procedure-name' returns the procedure name within the
+ ;; module where it's defined, not its public name. Thus, try hard to
+ ;; find its public name and use 'procedure-name' as a last resort.
+ (method ,(or (any (lambda (module)
+ (variable-name method module))
+ '((guix download)
+ (guix git-download)
+ (guix hg-download)
+ (guix svn-download)))
+ (procedure-name method)))
(uri (string-append ,@(match (factorize-uri uri version)
((? string? uri) (list uri))
(factorized factorized))))
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 64d1385164..d817318a91 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,6 +58,7 @@
package-names->package-inputs
maybe-inputs
maybe-native-inputs
+ maybe-propagated-inputs
package->definition
spdx-string->license
@@ -169,6 +171,7 @@ of the string VERSION is replaced by the symbol 'version."
("Imlib2" 'license:imlib2)
("IPA" 'license:ipa)
("IPL-1.0" 'license:ibmpl1.0)
+ ("LAL-1.3" 'license:lal1.3)
("LGPL-2.0" 'license:lgpl2.0)
("LGPL-2.0+" 'license:lgpl2.0+)
("LGPL-2.1" 'license:lgpl2.1)
@@ -246,27 +249,34 @@ use in an 'inputs' field of a package definition."
(input (make-input input #f)))
names))
-(define* (maybe-inputs package-names #:optional (output #f))
+(define* (maybe-inputs package-names #:optional (output #f)
+ #:key (type #f))
"Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a
-package definition."
- (match (package-names->package-inputs package-names output)
- (()
- '())
- ((package-inputs ...)
- `((inputs (,'quasiquote ,package-inputs))))))
+package definition. TYPE can be used to specify the type of the inputs;
+either the 'native or 'propagated symbols are accepted. Left unspecified, the
+snippet generated is for regular inputs."
+ (let ((field-name (match type
+ ('native 'native-inputs)
+ ('propagated 'propagated-inputs)
+ (_ 'inputs))))
+ (match (package-names->package-inputs package-names output)
+ (()
+ '())
+ ((package-inputs ...)
+ `((,field-name (,'quasiquote ,package-inputs)))))))
(define* (maybe-native-inputs package-names #:optional (output #f))
- "Given a list of PACKAGE-NAMES, tries to generate the 'inputs' field of a
-package definition."
- (match (package-names->package-inputs package-names output)
- (()
- '())
- ((package-inputs ...)
- `((native-inputs (,'quasiquote ,package-inputs))))))
+ "Same as MAYBE-INPUTS, but for native inputs."
+ (maybe-inputs package-names output #:type 'native))
+
+(define* (maybe-propagated-inputs package-names #:optional (output #f))
+ "Same as MAYBE-INPUTS, but for propagated inputs."
+ (maybe-inputs package-names output #:type 'propagated))
(define* (package->definition guix-package #:optional append-version?/string)
- "If APPEND-VERSION?/STRING is #t, append the package's major+minor
-version. If APPEND-VERSION?/string is a string, append this string."
+ "If APPEND-VERSION?/STRING is #t, append the package's major+minor version.
+If it is the symbol 'full, append the package's complete version. If
+APPEND-VERSION?/string is a string, append this string."
(match guix-package
((or
('package ('name name) ('version version) . rest)
@@ -278,6 +288,8 @@ version. If APPEND-VERSION?/string is a string, append this string."
(string-append name "-" append-version?/string))
((eq? append-version?/string #t)
(string-append name "-" (version-major+minor version)))
+ ((eq? 'full append-version?/string)
+ (string-append name "-" version))
(else name)))
,guix-package))))
@@ -437,8 +449,8 @@ obtain a node's uniquely identifying \"key\"."
"Return a list of package expressions for PACKAGE-NAME and all its
dependencies, sorted in topological order. For each package,
call (REPO->GUIX-PACKAGE NAME :KEYS version repo), which should return a
-package expression and a list of dependencies; call (GUIX-NAME NAME) to
-obtain the Guix package name corresponding to the upstream name."
+package expression and a list of dependencies; call (GUIX-NAME PACKAGE-NAME)
+to obtain the Guix package name corresponding to the upstream name."
(define-record-type <node>
(make-node name version package dependencies)
node?
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 0a36067387..4718ccf83f 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2020 André Batista <nandre@riseup.net>
;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -68,6 +69,7 @@
imlib2
ipa
knuth
+ lal1.3
lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+ llgpl
lppl lppl1.0+ lppl1.1+ lppl1.2 lppl1.2+
lppl1.3 lppl1.3+
@@ -411,6 +413,11 @@ at URI, which may be a file:// URI pointing the package's tree."
"http://www.ctan.org/license/knuth"
"Modification are only permitted under a different name."))
+(define lal1.3
+ (license "Free Art License 1.3"
+ "http://artlibre.org/licence/lal/en/"
+ "https://www.gnu.org/licenses/license-list#FreeArt"))
+
(define lgpl2.0
(license "LGPL 2.0"
"https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html"
diff --git a/guix/lint.scm b/guix/lint.scm
index 311bc94cc3..a7d6bbba4f 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
@@ -170,6 +170,18 @@
(requires-store? lint-checker-requires-store?
(default #f)))
+(define (check-name package)
+ "Check whether PACKAGE's name matches our guidelines."
+ (let ((name (package-name package)))
+ ;; Currently checks only whether the name is too short.
+ (if (and (<= (string-length name) 1)
+ (not (string=? name "r"))) ; common-sense exception
+ (list
+ (make-warning package
+ (G_ "name should be longer than a single character")
+ #:field 'name))
+ '())))
+
(define (properly-starts-sentence? s)
(string-match "^[(\"'`[:upper:][:digit:]]" s))
@@ -1179,21 +1191,32 @@ vulnerability records for PACKAGE by calling PACKAGE-VULNERABILITIES."
(define (check-for-updates package)
"Check if there is an update available for PACKAGE."
- (match (with-networking-fail-safe
- (format #f (G_ "while retrieving upstream info for '~a'")
- (package-name package))
- #f
- (package-latest-release* package))
- ((? upstream-source? source)
- (if (version>? (upstream-source-version source)
- (package-version package))
- (list
- (make-warning package
- (G_ "can be upgraded to ~a")
- (list (upstream-source-version source))
- #:field 'version))
- '()))
- (#f '()))) ; cannot find newer upstream release
+ (match (lookup-updater package)
+ (#f
+ (list (make-warning package (G_ "no updater for ~a")
+ (list (package-name package))
+ #:field 'source)))
+ ((? upstream-updater? updater)
+ (match (with-networking-fail-safe
+ (format #f (G_ "while retrieving upstream info for '~a'")
+ (package-name package))
+ #f
+ (package-latest-release package))
+ ((? upstream-source? source)
+ (if (version>? (upstream-source-version source)
+ (package-version package))
+ (list
+ (make-warning package
+ (G_ "can be upgraded to ~a")
+ (list (upstream-source-version source))
+ #:field 'version))
+ '()))
+ (#f ;cannot find upstream release
+ (list (make-warning package
+ (G_ "updater '~a' failed to find \
+upstream releases")
+ (list (upstream-updater-name updater))
+ #:field 'source)))))))
(define (check-archival package)
@@ -1264,7 +1287,8 @@ try again later")
((? origin? origin)
;; Since "save" origins are not supported for non-VCS source, all
;; we can do is tell whether a given tarball is available or not.
- (if (origin-hash origin) ;XXX: for ungoogled-chromium
+ (if (and=> (origin-hash origin) ;XXX: for ungoogled-chromium
+ content-hash-value) ;& icecat
(let ((hash (origin-hash origin)))
(match (lookup-content (content-hash-value hash)
(symbol->string
@@ -1446,6 +1470,10 @@ them for PACKAGE."
(define %local-checkers
(list
(lint-checker
+ (name 'name)
+ (description "Validate package names")
+ (check check-name))
+ (lint-checker
(name 'description)
(description "Validate package descriptions")
(check check-description-style))
diff --git a/guix/narinfo.scm b/guix/narinfo.scm
index 2d06124017..72e0f75fda 100644
--- a/guix/narinfo.scm
+++ b/guix/narinfo.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
;;;
@@ -297,9 +297,21 @@ this is a rough approximation."
(_ (or (string=? compression2 "none")
(string=? compression2 "gzip")))))
-(define (narinfo-best-uri narinfo)
+(define (decompresses-faster? compression1 compression2)
+ "Return true if COMPRESSION1 generally has a higher decompression throughput
+than COMPRESSION2."
+ (match compression1
+ ("none" #t)
+ ("zstd" #t)
+ ("gzip" (string=? compression2 "lzip"))
+ (_ #f)))
+
+(define* (narinfo-best-uri narinfo #:key fast-decompression?)
"Select the \"best\" URI to download NARINFO's nar, and return three values:
-the URI, its compression method (a string), and the compressed file size."
+the URI, its compression method (a string), and the compressed file size.
+When FAST-DECOMPRESSION? is true, prefer substitutes with faster
+decompression (typically zstd) rather than substitutes with a higher
+compression ratio (typically lzip)."
(define choices
(filter (match-lambda
((uri compression file-size)
@@ -321,6 +333,13 @@ the URI, its compression method (a string), and the compressed file size."
(compresses-better? compression1 compression2))))
(_ #f))) ;we can't tell
- (match (sort choices file-size<?)
+ (define (speed<? c1 c2)
+ (match c1
+ ((uri1 compression1 . _)
+ (match c2
+ ((uri2 compression2 . _)
+ (decompresses-faster? compression2 compression1))))))
+
+ (match (sort choices (if fast-decompression? (negate speed<?) file-size<?))
(((uri compression file-size) _ ...)
(values uri compression file-size))))
diff --git a/guix/packages.scm b/guix/packages.scm
index a057a88c63..55e5e70b8c 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -345,7 +346,8 @@ name of its URI."
(define %supported-systems
;; This is the list of system types that are supported. By default, we
;; expect all packages to build successfully here.
- '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux" "i586-gnu"))
+ '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux" "i586-gnu"
+ "powerpc64le-linux"))
(define %hurd-systems
;; The GNU/Hurd systems for which support is being developed.
diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm
index 91be1b02e1..ceac640432 100644
--- a/guix/scripts/archive.scm
+++ b/guix/scripts/archive.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@@ -63,7 +63,7 @@
(print-build-trace? . #t)
(print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
- (verbosity . 2)
+ (verbosity . 3)
(debug . 0)))
(define (show-help)
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index fa1bbf867d..2decdb45ed 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -333,7 +333,7 @@ use '--no-offload' instead~%")))
(print-build-trace? . #t)
(print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
- (verbosity . 2)
+ (verbosity . 3)
(debug . 0)))
(define (show-help)
diff --git a/guix/scripts/copy.scm b/guix/scripts/copy.scm
index 2780d4fbe9..52b476db54 100644
--- a/guix/scripts/copy.scm
+++ b/guix/scripts/copy.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -163,7 +163,7 @@ Copy ITEMS to or from the specified host over SSH.\n"))
(print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
(debug . 0)
- (verbosity . 2)))
+ (verbosity . 3)))
;;;
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index be2279d254..b5f6249176 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -286,12 +287,9 @@ text. The hyperlink links to a web view of COMMIT, when available."
(define-command (guix-describe . args)
(synopsis "describe the channel revisions currently used")
- (let* ((opts (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%")
- name))
- cons
- %default-options))
+ (let* ((opts (parse-command-line args %options (list %default-options)
+ #:build-options? #f
+ #:argument-handler cons))
(format (assq-ref opts 'format))
(profile (or (assq-ref opts 'profile) (current-profile))))
(with-error-handling
diff --git a/guix/scripts/discover.scm b/guix/scripts/discover.scm
index 6aade81ed1..be1eaa6e95 100644
--- a/guix/scripts/discover.scm
+++ b/guix/scripts/discover.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -127,12 +128,11 @@ to synchronize with the writer."
(synopsis "discover Guix related services using Avahi")
(with-error-handling
- (let* ((opts (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
- (lambda (arg result)
- (leave (G_ "~A: extraneous argument~%") arg))
- %default-options))
+ (let* ((opts (parse-command-line args %options (list %default-options)
+ #:build-options? #f
+ #:argument-handler
+ (lambda (arg result)
+ (leave (G_ "~A: extraneous argument~%") arg))))
(cache (assoc-ref opts 'cache))
(publish-file (publish-file cache)))
(parameterize ((%publish-file publish-file))
diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm
index ce8dd8b02c..5a91390358 100644
--- a/guix/scripts/download.scm
+++ b/guix/scripts/download.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -162,15 +163,13 @@ and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
(define (parse-options)
;; Return the alist of option values.
- (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
- (lambda (arg result)
- (when (assq 'argument result)
- (leave (G_ "~A: extraneous argument~%") arg))
-
- (alist-cons 'argument arg result))
- %default-options))
+ (parse-command-line args %options (list %default-options)
+ #:build-options? #f
+ #:argument-handler
+ (lambda (arg result)
+ (when (assq 'argument result)
+ (leave (G_ "~A: extraneous argument~%") arg))
+ (alist-cons 'argument arg result))))
(with-error-handling
(let* ((opts (parse-options))
diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm
index 49c9d945b6..b4c0507591 100644
--- a/guix/scripts/edit.scm
+++ b/guix/scripts/edit.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
-;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020, 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -84,11 +84,9 @@ line."
(define (parse-arguments)
;; Return the list of package names.
- (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
- cons
- '()))
+ (parse-command-line args %options (list (list))
+ #:build-options? #f
+ #:argument-handler cons))
(with-error-handling
(let* ((specs (reverse (parse-arguments)))
diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm
index 1d2b45d942..98554ef79b 100644
--- a/guix/scripts/import.scm
+++ b/guix/scripts/import.scm
@@ -119,7 +119,8 @@ Run IMPORTER with ARGS.\n"))
(current-output-port))))))
(match (apply (resolve-importer importer) args)
((and expr (or ('package _ ...)
- ('let _ ...)))
+ ('let _ ...)
+ ('define-public _ ...)))
(print expr))
((? list? expressions)
(for-each (lambda (expr)
diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm
index 4767bc082d..aa3ef324e0 100644
--- a/guix/scripts/import/cran.scm
+++ b/guix/scripts/import/cran.scm
@@ -50,6 +50,8 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
(display (G_ "
-r, --recursive import packages recursively"))
(display (G_ "
+ -s, --style=STYLE choose output style, either specification or variable"))
+ (display (G_ "
-V, --version display version information and exit"))
(newline)
(show-bug-report-information))
diff --git a/guix/scripts/import/go.scm b/guix/scripts/import/go.scm
index afdba4e8f1..04b07f80cc 100644
--- a/guix/scripts/import/go.scm
+++ b/guix/scripts/import/go.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,34 +22,38 @@
#:use-module (guix utils)
#:use-module (guix scripts)
#:use-module (guix import go)
+ #:use-module (guix import utils)
#:use-module (guix scripts import)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
+ #:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
+ #:use-module (ice-9 receive)
#:export (guix-import-go))
-
+
;;;
;;; Command-line options.
;;;
(define %default-options
- '())
+ '((goproxy . "https://proxy.golang.org")))
(define (show-help)
- (display (G_ "Usage: guix import go PACKAGE-PATH
-Import and convert the Go module for PACKAGE-PATH.\n"))
+ (display (G_ "Usage: guix import go PACKAGE-PATH[@VERSION]
+Import and convert the Go module for PACKAGE-PATH. Optionally, a version
+can be specified after the arobas (@) character.\n"))
(display (G_ "
-h, --help display this help and exit"))
(display (G_ "
- -V, --version display version information and exit"))
- (display (G_ "
- -r, --recursive generate package expressions for all Go modules\
- that are not yet in Guix"))
+ -r, --recursive generate package expressions for all Go modules
+that are not yet in Guix"))
(display (G_ "
-p, --goproxy=GOPROXY specify which goproxy server to use"))
+ (display (G_ "
+ --pin-versions use the exact versions of a module's dependencies"))
(newline)
(show-bug-report-information))
@@ -58,9 +63,6 @@ Import and convert the Go module for PACKAGE-PATH.\n"))
(lambda args
(show-help)
(exit 0)))
- (option '(#\V "version") #f #f
- (lambda args
- (show-version-and-exit "guix import go")))
(option '(#\r "recursive") #f #f
(lambda (opt name arg result)
(alist-cons 'recursive #t result)))
@@ -69,9 +71,12 @@ Import and convert the Go module for PACKAGE-PATH.\n"))
(alist-cons 'goproxy
(string->symbol arg)
(alist-delete 'goproxy result))))
+ (option '("pin-versions") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'pin-versions? #t result)))
%standard-import-options))
-
+
;;;
;;; Entry point.
;;;
@@ -91,27 +96,31 @@ Import and convert the Go module for PACKAGE-PATH.\n"))
(('argument . value)
value)
(_ #f))
- (reverse opts))))
+ (reverse opts)))
+ ;; Append the full version to the package symbol name when using
+ ;; pinned versions.
+ (package->definition* (if (assoc-ref opts 'pin-versions?)
+ (cut package->definition <> 'full)
+ package->definition)))
(match args
- ((module-name)
- (if (assoc-ref opts 'recursive)
- (map (match-lambda
- ((and ('package ('name name) . rest) pkg)
- `(define-public ,(string->symbol name)
- ,pkg))
- (_ #f))
- (go-module-recursive-import module-name
- #:goproxy-url
- (or (assoc-ref opts 'goproxy)
- "https://proxy.golang.org")))
- (let ((sexp (go-module->guix-package module-name
- #:goproxy-url
- (or (assoc-ref opts 'goproxy)
- "https://proxy.golang.org"))))
- (unless sexp
- (leave (G_ "failed to download meta-data for module '~a'~%")
- module-name))
- sexp)))
+ ((spec) ;e.g., github.com/golang/protobuf@v1.3.1
+ (receive (name version)
+ (package-name->name+version spec)
+ (let ((arguments (list name
+ #:goproxy (assoc-ref opts 'goproxy)
+ #:version version
+ #:pin-versions?
+ (assoc-ref opts 'pin-versions?))))
+ (if (assoc-ref opts 'recursive)
+ ;; Recursive import.
+ (map package->definition*
+ (apply go-module-recursive-import arguments))
+ ;; Single import.
+ (let ((sexp (apply go-module->guix-package arguments)))
+ (unless sexp
+ (leave (G_ "failed to download meta-data for module '~a'~%")
+ module-name))
+ (package->definition* sexp))))))
(()
(leave (G_ "too few arguments~%")))
((many ...)
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index fa85088ed0..39bb224cad 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2020 by Amar M. Singh <nly@disroot.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1117,12 +1118,11 @@ methods, return the applicable compression."
(synopsis "publish build results over HTTP")
(with-error-handling
- (let* ((opts (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
- (lambda (arg result)
- (leave (G_ "~A: extraneous argument~%") arg))
- %default-options))
+ (let* ((opts (parse-command-line args %options (list %default-options)
+ #:build-options? #f
+ #:argument-handler
+ (lambda (arg result)
+ (leave (G_ "~A: extraneous argument~%") arg))))
(advertise? (assoc-ref opts 'advertise?))
(user (assoc-ref opts 'user))
(port (assoc-ref opts 'port))
diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index 9f20803efc..50d18c7760 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020, 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;;
;;; This file is part of GNU Guix.
@@ -143,14 +143,13 @@ call THUNK."
(synopsis "read-eval-print loop (REPL) for interactive programming")
(define opts
- (args-fold* args %options
- (lambda (opt name arg result)
- (leave (G_ "~A: unrecognized option~%") name))
+ (parse-command-line args %options (list %default-options)
+ #:build-options? #f
+ #:argument-handler
(lambda (arg result)
(append `((script . ,arg)
(ignore-dot-guile? . #t))
- result))
- %default-options))
+ result))))
(define user-config
(and=> (getenv "HOME")
diff --git a/guix/scripts/search.scm b/guix/scripts/search.scm
index 0c9e6af07b..27b9da5278 100644
--- a/guix/scripts/search.scm
+++ b/guix/scripts/search.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,11 +67,9 @@ This is an alias for 'guix package -s'.\n"))
result))
(define opts
- (args-fold* args %options
- (lambda (opt name arg . rest)
- (leave (G_ "~A: unrecognized option~%") name))
- handle-argument
- '()))
+ (parse-command-line args %options (list (list))
+ #:build-options? #f
+ #:argument-handler handle-argument))
(unless (assoc-ref opts 'query)
(leave (G_ "missing arguments: no regular expressions to search for~%")))
diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm
index 535d03c1a6..c747eedd21 100644
--- a/guix/scripts/show.scm
+++ b/guix/scripts/show.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2019, 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,11 +66,9 @@ This is an alias for 'guix package --show='.\n"))
result))
(define opts
- (args-fold* args %options
- (lambda (opt name arg . rest)
- (leave (G_ "~A: unrecognized option~%") name))
- handle-argument
- '()))
+ (parse-command-line args %options (list (list))
+ #:build-options? #f
+ #:argument-handler handle-argument))
(unless (assoc-ref opts 'query)
(leave (G_ "missing arguments: no package to show~%")))
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 2bbbafe204..48309f9b3a 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -63,7 +63,7 @@
#:use-module (web uri)
#:use-module (guix http-client)
#:export (%allow-unauthenticated-substitutes?
- %error-to-file-descriptor-4?
+ %reply-file-descriptor
substitute-urls
guix-substitute))
@@ -258,26 +258,50 @@ Internal tool to substitute a pre-built binary to a local build.\n"))
;;; Daemon/substituter protocol.
;;;
-(define (display-narinfo-data narinfo)
- "Write to the current output port the contents of NARINFO in the format
-expected by the daemon."
- (format #t "~a\n~a\n~a\n"
+(define %prefer-fast-decompression?
+ ;; Whether to prefer fast decompression over good compression ratios. This
+ ;; serves in particular to choose between lzip (high compression ratio but
+ ;; low decompression throughput) and zstd (lower compression ratio but high
+ ;; decompression throughput).
+ #f)
+
+(define (call-with-cpu-usage-monitoring proc)
+ (let ((before (times)))
+ (proc)
+ (let ((after (times)))
+ (if (= (tms:clock after) (tms:clock before))
+ 0
+ (/ (- (tms:utime after) (tms:utime before))
+ (- (tms:clock after) (tms:clock before))
+ 1.)))))
+
+(define-syntax-rule (with-cpu-usage-monitoring exp ...)
+ "Evaluate EXP... Return its CPU usage as a fraction between 0 and 1."
+ (call-with-cpu-usage-monitoring (lambda () exp ...)))
+
+(define (display-narinfo-data port narinfo)
+ "Write to PORT the contents of NARINFO in the format expected by the
+daemon."
+ (format port "~a\n~a\n~a\n"
(narinfo-path narinfo)
(or (and=> (narinfo-deriver narinfo)
(cute string-append (%store-prefix) "/" <>))
"")
(length (narinfo-references narinfo)))
- (for-each (cute format #t "~a/~a~%" (%store-prefix) <>)
+ (for-each (cute format port "~a/~a~%" (%store-prefix) <>)
(narinfo-references narinfo))
- (let-values (((uri compression file-size) (narinfo-best-uri narinfo)))
- (format #t "~a\n~a\n"
+ (let-values (((uri compression file-size)
+ (narinfo-best-uri narinfo
+ #:fast-decompression?
+ %prefer-fast-decompression?)))
+ (format port "~a\n~a\n"
(or file-size 0)
(or (narinfo-size narinfo) 0))))
-(define* (process-query command
+(define* (process-query port command
#:key cache-urls acl)
- "Reply to COMMAND, a query as written by the daemon to this process's
+ "Reply on PORT to COMMAND, a query as written by the daemon to this process's
standard input. Use ACL as the access-control list against which to check
authorized substitutes."
(define valid?
@@ -314,17 +338,17 @@ authorized substitutes."
#:open-connection open-connection-for-uri/cached
#:make-progress-reporter make-progress-reporter)))
(for-each (lambda (narinfo)
- (format #t "~a~%" (narinfo-path narinfo)))
+ (format port "~a~%" (narinfo-path narinfo)))
substitutable)
- (newline)))
+ (newline port)))
(("info" paths ..1)
;; Reply info about PATHS if it's in CACHE-URLS.
(let ((substitutable (lookup-narinfos/diverse
cache-urls paths valid?
#:open-connection open-connection-for-uri/cached
#:make-progress-reporter make-progress-reporter)))
- (for-each display-narinfo-data substitutable)
- (newline)))
+ (for-each (cut display-narinfo-data port <>) substitutable)
+ (newline port)))
(wtf
(error "unknown `--query' command" wtf))))
@@ -404,14 +428,14 @@ server certificates."
"Bind PORT with EXP... to a socket connected to URI."
(call-with-cached-connection uri (lambda (port) exp ...)))
-(define* (process-substitution store-item destination
+(define* (process-substitution port store-item destination
#:key cache-urls acl
deduplicate? print-build-trace?)
"Substitute STORE-ITEM (a store file name) from CACHE-URLS, and write it to
DESTINATION as a nar file. Verify the substitute against ACL, and verify its
hash against what appears in the narinfo. When DEDUPLICATE? is true, and if
-DESTINATION is in the store, deduplicate its files. Print a status line on
-the current output port."
+DESTINATION is in the store, deduplicate its files. Print a status line to
+PORT."
(define narinfo
(lookup-narinfo cache-urls store-item
(if (%allow-unauthenticated-substitutes?)
@@ -462,7 +486,9 @@ the current output port."
store-item))
(let-values (((uri compression file-size)
- (narinfo-best-uri narinfo)))
+ (narinfo-best-uri narinfo
+ #:fast-decompression?
+ %prefer-fast-decompression?)))
(unless print-build-trace?
(format (current-error-port)
(G_ "Downloading ~a...~%") (uri->string uri)))
@@ -500,11 +526,28 @@ the current output port."
((hashed get-hash)
(open-hash-input-port algorithm input)))
;; Unpack the Nar at INPUT into DESTINATION.
- (restore-file hashed destination
- #:dump-file (if (and destination-in-store?
- deduplicate?)
- dump-file/deduplicate*
- dump-file))
+ (define cpu-usage
+ (with-cpu-usage-monitoring
+ (restore-file hashed destination
+ #:dump-file (if (and destination-in-store?
+ deduplicate?)
+ dump-file/deduplicate*
+ dump-file))))
+
+ ;; Create a hysteresis: depending on CPU usage, favor compression
+ ;; methods with faster decompression (like ztsd) or methods with better
+ ;; compression ratios (like lzip). This stems from the observation that
+ ;; substitution can be CPU-bound when high-speed networks are used:
+ ;; <https://lists.gnu.org/archive/html/guix-devel/2020-12/msg00177.html>.
+ ;; To simulate "slow" networking or changing conditions, run:
+ ;; sudo tc qdisc add dev eno1 root tbf rate 512kbit latency 50ms burst 1540
+ ;; and then cancel with:
+ ;; sudo tc qdisc del dev eno1 root
+ (when (> cpu-usage .8)
+ (set! %prefer-fast-decompression? #t))
+ (when (< cpu-usage .2)
+ (set! %prefer-fast-decompression? #f))
+
(close-port hashed)
(close-port input)
@@ -512,17 +555,20 @@ the current output port."
(every (compose zero? cdr waitpid) pids)
;; Skip a line after what 'progress-reporter/file' printed, and another
- ;; one to visually separate substitutions.
- (display "\n\n" (current-error-port))
+ ;; one to visually separate substitutions. When PRINT-BUILD-TRACE? is
+ ;; true, leave it up to (guix status) to prettify things.
+ (newline (current-error-port))
+ (unless print-build-trace?
+ (newline (current-error-port)))
;; Check whether we got the data announced in NARINFO.
(let ((actual (get-hash)))
(if (bytevector=? actual expected)
;; Tell the daemon that we're done.
- (format (current-output-port) "success ~a ~a~%"
+ (format port "success ~a ~a~%"
(narinfo-hash narinfo) (narinfo-size narinfo))
;; The actual data has a different hash than that in NARINFO.
- (format (current-output-port) "hash-mismatch ~a ~a ~a~%"
+ (format port "hash-mismatch ~a ~a ~a~%"
(hash-algorithm-name algorithm)
(bytevector->nix-base32-string expected)
(bytevector->nix-base32-string actual)))))))
@@ -612,7 +658,7 @@ is shorter than MAX elements, then it is directly returned."
;; If the following option is passed to the daemon, use the substitutes list
;; provided by "guix discover" process.
(let* ((option (find-daemon-option "discover"))
- (discover? (and option (string=? option "yes"))))
+ (discover? (and option (string=? option "true"))))
(if discover?
(randomize-substitute-urls (read-substitute-urls))
'())))
@@ -636,28 +682,10 @@ default value."
(unless (string->uri uri)
(leave (G_ "~a: invalid URI~%") uri)))
-(define %error-to-file-descriptor-4?
- ;; Whether to direct 'current-error-port' to file descriptor 4 like
- ;; 'guix-daemon' expects.
- (make-parameter #t))
-
-;; The daemon's agent code opens file descriptor 4 for us and this is where
-;; stderr should go.
-(define-syntax-rule (with-redirected-error-port exp ...)
- "Evaluate EXP... with the current error port redirected to file descriptor 4
-if needed, as expected by the daemon's agent."
- (let ((thunk (lambda () exp ...)))
- (if (%error-to-file-descriptor-4?)
- (parameterize ((current-error-port (fdopen 4 "wl")))
- ;; Redirect diagnostics to file descriptor 4 as well.
- (guix-warning-port (current-error-port))
-
- ;; 'with-continuation-barrier' captures the initial value of
- ;; 'current-error-port' to report backtraces in case of uncaught
- ;; exceptions. Without it, backtraces would be printed to FD 2,
- ;; thereby confusing the daemon.
- (with-continuation-barrier thunk))
- (thunk))))
+(define %reply-file-descriptor
+ ;; The file descriptor where replies to the daemon must be sent, or #f to
+ ;; use the current output port instead.
+ (make-parameter 4))
(define-command (guix-substitute . args)
(category internal)
@@ -673,68 +701,73 @@ if needed, as expected by the daemon's agent."
(define deduplicate?
(find-daemon-option "deduplicate"))
- (with-redirected-error-port
- (mkdir-p %narinfo-cache-directory)
- (maybe-remove-expired-cache-entries %narinfo-cache-directory
- cached-narinfo-files
- #:entry-expiration
- cached-narinfo-expiration-time
- #:cleanup-period
- %narinfo-expired-cache-entry-removal-delay)
- (check-acl-initialized)
-
- ;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error
- ;; message.
- (for-each validate-uri (substitute-urls))
-
- ;; Attempt to install the client's locale so that messages are suitably
- ;; translated. LC_CTYPE must be a UTF-8 locale; it's the case by default
- ;; so don't change it.
- (match (or (find-daemon-option "untrusted-locale")
- (find-daemon-option "locale"))
- (#f #f)
- (locale (false-if-exception (setlocale LC_MESSAGES locale))))
-
- (catch 'system-error
- (lambda ()
- (set-thread-name "guix substitute"))
- (const #t)) ;GNU/Hurd lacks 'prctl'
-
- (with-networking
- (with-error-handling ; for signature errors
- (match args
- (("--query")
- (let ((acl (current-acl)))
- (let loop ((command (read-line)))
- (or (eof-object? command)
- (begin
- (process-query command
- #:cache-urls (substitute-urls)
- #:acl acl)
- (loop (read-line)))))))
- (("--substitute")
- ;; Download STORE-PATH and store it as a Nar in file DESTINATION.
- ;; Specify the number of columns of the terminal so the progress
- ;; report displays nicely.
- (parameterize ((current-terminal-columns (client-terminal-columns)))
- (let loop ()
- (match (read-line)
- ((? eof-object?)
- #t)
- ((= string-tokenize ("substitute" store-path destination))
- (process-substitution store-path destination
- #:cache-urls (substitute-urls)
- #:acl (current-acl)
- #:deduplicate? deduplicate?
- #:print-build-trace?
- print-build-trace?)
- (loop))))))
- ((or ("-V") ("--version"))
- (show-version-and-exit "guix substitute"))
- (("--help")
- (show-help))
- (opts
- (leave (G_ "~a: unrecognized options~%") opts)))))))
+ (define reply-port
+ ;; Port used to reply to the daemon.
+ (if (%reply-file-descriptor)
+ (fdopen (%reply-file-descriptor) "wl")
+ (current-output-port)))
+
+ (mkdir-p %narinfo-cache-directory)
+ (maybe-remove-expired-cache-entries %narinfo-cache-directory
+ cached-narinfo-files
+ #:entry-expiration
+ cached-narinfo-expiration-time
+ #:cleanup-period
+ %narinfo-expired-cache-entry-removal-delay)
+ (check-acl-initialized)
+
+ ;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error
+ ;; message.
+ (for-each validate-uri (substitute-urls))
+
+ ;; Attempt to install the client's locale so that messages are suitably
+ ;; translated. LC_CTYPE must be a UTF-8 locale; it's the case by default
+ ;; so don't change it.
+ (match (or (find-daemon-option "untrusted-locale")
+ (find-daemon-option "locale"))
+ (#f #f)
+ (locale (false-if-exception (setlocale LC_MESSAGES locale))))
+
+ (catch 'system-error
+ (lambda ()
+ (set-thread-name "guix substitute"))
+ (const #t)) ;GNU/Hurd lacks 'prctl'
+
+ (with-networking
+ (with-error-handling ; for signature errors
+ (match args
+ (("--query")
+ (let ((acl (current-acl)))
+ (let loop ((command (read-line)))
+ (or (eof-object? command)
+ (begin
+ (process-query reply-port command
+ #:cache-urls (substitute-urls)
+ #:acl acl)
+ (loop (read-line)))))))
+ (("--substitute")
+ ;; Download STORE-PATH and store it as a Nar in file DESTINATION.
+ ;; Specify the number of columns of the terminal so the progress
+ ;; report displays nicely.
+ (parameterize ((current-terminal-columns (client-terminal-columns)))
+ (let loop ()
+ (match (read-line)
+ ((? eof-object?)
+ #t)
+ ((= string-tokenize ("substitute" store-path destination))
+ (process-substitution reply-port store-path destination
+ #:cache-urls (substitute-urls)
+ #:acl (current-acl)
+ #:deduplicate? deduplicate?
+ #:print-build-trace?
+ print-build-trace?)
+ (loop))))))
+ ((or ("-V") ("--version"))
+ (show-version-and-exit "guix substitute"))
+ (("--help")
+ (show-help))
+ (opts
+ (leave (G_ "~a: unrecognized options~%") opts))))))
;;; Local Variables:
;;; eval: (put 'with-timeout 'scheme-indent-function 1)
diff --git a/guix/status.scm b/guix/status.scm
index d47bf1700c..362ae2882c 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -403,10 +403,12 @@ the current build phase."
#:optional (port (current-error-port))
#:key
(colorize? (color-output? port))
+ (print-urls? #t)
(print-log? #t))
"Print information about EVENT and STATUS to PORT. When COLORIZE? is true,
produce colorful output. When PRINT-LOG? is true, display the build log in
-addition to build events."
+addition to build events. When PRINT-URLS? is true, display the URL of
+substitutes being downloaded."
(define info
(if colorize?
(cute colorize-string <> (color BOLD))
@@ -526,9 +528,10 @@ addition to build events."
(format port (info (G_ "substituting ~a...")) item)
(newline port)))
(('download-started item uri _ ...)
- (erase-current-line*)
- (format port (info (G_ "downloading from ~a ...")) uri)
- (newline port))
+ (when print-urls?
+ (erase-current-line*)
+ (format port (info (G_ "downloading from ~a ...")) uri)
+ (newline port)))
(('download-progress item uri
(= string->number size)
(= string->number transferred))
@@ -602,6 +605,17 @@ addition to build events."
(colorize? (color-output? port)))
(print-build-event event old-status status port
#:colorize? colorize?
+ #:print-urls? #f
+ #:print-log? #f))
+
+(define* (print-build-event/quiet-with-urls event old-status status
+ #:optional
+ (port (current-error-port))
+ #:key
+ (colorize? (color-output? port)))
+ (print-build-event event old-status status port
+ #:colorize? colorize?
+ #:print-urls? #t ;show download URLs
#:print-log? #f))
(define* (build-status-updater #:optional (on-change (const #t)))
@@ -787,6 +801,7 @@ evaluate EXP... in that context."
"Return the logging procedure that corresponds to LEVEL."
(cond ((<= level 0) (const #t))
((= level 1) print-build-event/quiet)
+ ((= level 2) print-build-event/quiet-with-urls)
(else print-build-event)))
(define (call-with-status-verbosity level thunk)
diff --git a/guix/upstream.scm b/guix/upstream.scm
index accd8967d8..632e9ebc4f 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -264,12 +264,15 @@ them matches."
#:optional
(updaters (force %updaters)))
"Return an upstream source to update PACKAGE, a <package> object, or #f if
-none of UPDATERS matches PACKAGE. It is the caller's responsibility to ensure
-that the returned source is newer than the current one."
- (match (lookup-updater package updaters)
- ((? upstream-updater? updater)
- ((upstream-updater-latest updater) package))
- (_ #f)))
+none of UPDATERS matches PACKAGE. When several updaters match PACKAGE, try
+them until one of them returns an upstream source. It is the caller's
+responsibility to ensure that the returned source is newer than the current
+one."
+ (any (match-lambda
+ (($ <upstream-updater> name description pred latest)
+ (and (pred package)
+ (latest package))))
+ updaters))
(define* (package-latest-release* package
#:optional
diff --git a/guix/utils.scm b/guix/utils.scm
index 21e3460b2c..05af86fc37 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2018, 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -79,6 +80,7 @@
target-arm32?
target-aarch64?
target-arm?
+ target-powerpc?
target-64bit?
cc-for-target
cxx-for-target
@@ -541,9 +543,13 @@ a character other than '@'."
(%current-system))))
(or (target-arm32? target) (target-aarch64? target)))
+(define* (target-powerpc? #:optional (target (or (%current-target-system)
+ (%current-system))))
+ (string-prefix? "powerpc" target))
+
(define* (target-64bit? #:optional (system (or (%current-target-system)
(%current-system))))
- (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "ppc64")))
+ (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))
(define* (cc-for-target #:optional (target (%current-target-system)))
(if target
@@ -690,6 +696,7 @@ VERSIONS. For example:
(define (tarball-sans-extension tarball)
"Return TARBALL without its .tar.* or .zip extension."
(let ((end (or (string-contains tarball ".tar")
+ (string-contains tarball ".tgz")
(string-contains tarball ".zip"))))
(substring tarball 0 end)))
diff --git a/m4/guix.m4 b/m4/guix.m4
index 90a106add8..05d409a674 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -2,6 +2,7 @@ dnl GNU Guix --- Functional package management for GNU
dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
dnl Copyright © 2014 Mark H Weaver <mhw@netris.org>
dnl Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+dnl Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
dnl
dnl This file is part of GNU Guix.
dnl
@@ -88,7 +89,7 @@ courageous and port the GNU System distribution to it (see
# Currently only Linux-based systems are supported, and only on some
# platforms.
case "$guix_system" in
- x86_64-linux|i686-linux|armhf-linux|aarch64-linux)
+ x86_64-linux|i686-linux|armhf-linux|aarch64-linux|powerpc64le-linux)
;;
*)
if test "x$guix_courageous" = "xyes"; then
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 4f486f0822..5697ae5a43 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -3158,13 +3158,13 @@ void SubstitutionGoal::finished()
void SubstitutionGoal::handleChildOutput(int fd, const string & data)
{
if (verbosity >= settings.buildVerbosity
- && fd == substituter->builderOut.readSide) {
+ && fd == substituter->fromAgent.readSide) {
writeToStderr(data);
/* Don't write substitution output to a log file for now. We
probably should, though. */
}
- if (fd == substituter->fromAgent.readSide) {
+ if (fd == substituter->builderOut.readSide) {
/* DATA may consist of several lines. Process them one by one. */
string input = data;
while (!input.empty()) {
diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc
index c304e2ddd1..675d1ba66f 100644
--- a/nix/libstore/local-store.cc
+++ b/nix/libstore/local-store.cc
@@ -780,8 +780,8 @@ Path LocalStore::queryPathFromHashPart(const string & hashPart)
});
}
-/* Read a line from the substituter's stdout, while also processing
- its stderr. */
+/* Read a line from the substituter's reply file descriptor, while also
+ processing its stderr. */
string LocalStore::getLineFromSubstituter(Agent & run)
{
string res, err;
@@ -802,9 +802,9 @@ string LocalStore::getLineFromSubstituter(Agent & run)
}
/* Completely drain stderr before dealing with stdout. */
- if (FD_ISSET(run.builderOut.readSide, &fds)) {
+ if (FD_ISSET(run.fromAgent.readSide, &fds)) {
char buf[4096];
- ssize_t n = read(run.builderOut.readSide, (unsigned char *) buf, sizeof(buf));
+ ssize_t n = read(run.fromAgent.readSide, (unsigned char *) buf, sizeof(buf));
if (n == -1) {
if (errno == EINTR) continue;
throw SysError("reading from substituter's stderr");
@@ -822,9 +822,9 @@ string LocalStore::getLineFromSubstituter(Agent & run)
}
/* Read from stdout until we get a newline or the buffer is empty. */
- else if (FD_ISSET(run.fromAgent.readSide, &fds)) {
+ else if (FD_ISSET(run.builderOut.readSide, &fds)) {
unsigned char c;
- readFull(run.fromAgent.readSide, (unsigned char *) &c, 1);
+ readFull(run.builderOut.readSide, (unsigned char *) &c, 1);
if (c == '\n') {
if (!err.empty()) printMsg(lvlError, "substitute: " + err);
return res;
diff --git a/nix/local.mk b/nix/local.mk
index d2ce349d9c..7c438ea78c 100644
--- a/nix/local.mk
+++ b/nix/local.mk
@@ -181,7 +181,7 @@ etc/init.d/guix-daemon: etc/init.d/guix-daemon.in \
mv "$@.tmp" "$@"
# The service script for openrc.
-openrcservicedir = $(sysconfdir)/init.d
+openrcservicedir = $(sysconfdir)/openrc
nodist_openrcservice_DATA = etc/openrc/guix-daemon
etc/openrc/guix-daemon: etc/openrc/guix-daemon.in \
diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc
index 3dd156ba77..497de11a04 100644
--- a/nix/nix-daemon/nix-daemon.cc
+++ b/nix/nix-daemon/nix-daemon.cc
@@ -1046,12 +1046,3 @@ void run(const std::vector<int>& sockets)
{
daemonLoop(sockets);
}
-
-
-void printHelp()
-{
- showManPage("nix-daemon");
-}
-
-
-string programId = "nix-daemon";
diff --git a/nix/nix-daemon/shared.hh b/nix/nix-daemon/shared.hh
index b45e9f0cfd..98ec97410b 100644
--- a/nix/nix-daemon/shared.hh
+++ b/nix/nix-daemon/shared.hh
@@ -20,18 +20,9 @@
#pragma once
-#include <string>
-
#include <stdlib.h>
#include <signal.h>
-static inline void
-showManPage (const char *name)
-{
- /* This idea is evil. Abort. */
- abort ();
-}
-
extern volatile ::sig_atomic_t blockInt;
extern char **argvSaved;
diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm
index a3e48a0933..837b80063a 100644
--- a/tests/gnu-maintenance.scm
+++ b/tests/gnu-maintenance.scm
@@ -19,7 +19,8 @@
(define-module (test-gnu-maintenance)
#:use-module (guix gnu-maintenance)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-64))
+ #:use-module (srfi srfi-64)
+ #:use-module (ice-9 match))
(test-begin "gnu-maintenance")
@@ -30,7 +31,10 @@
("texmacs" "TeXmacs-1.0.7.9-src.tar.gz")
("icecat" "icecat-38.4.0-gnu1.tar.bz2")
("mit-scheme" "mit-scheme-9.2.tar.gz")
- ("mediainfo" "mediainfo_20.09.tar.xz")))
+ ("mediainfo" "mediainfo_20.09.tar.xz")
+ ("exiv2" "exiv2-0.27.3-Source.tar.gz")
+ ("mpg321" "mpg321_0.3.2.orig.tar.gz")
+ ("bvi" "bvi-1.4.1.src.tar.gz")))
(every (lambda (project+file)
(not (apply release-file? project+file)))
'(("guile" "guile-www-1.1.1.tar.gz")
@@ -39,4 +43,15 @@
("mit-scheme" "mit-scheme-9.2-doc-pdf.tar.gz")
("gnutls" "gnutls-3.2.18-w32.zip")))))
+(test-assert "tarball->version"
+ (let ((tarball->version (@@ (guix gnu-maintenance) tarball->version)))
+ (every (match-lambda
+ ((file version)
+ (equal? (tarball->version file) version)))
+ '(("coreutils-8.32.tar.gz" "8.32")
+ ("mediainfo_20.09.tar.xz" "20.09")
+ ("exiv2-0.27.3-Source.tar.gz" "0.27.3")
+ ("mpg321_0.3.2.orig.tar.gz" "0.3.2")
+ ("bvi-1.4.1.src.tar.gz" "1.4.1")))))
+
(test-end)
diff --git a/tests/go.scm b/tests/go.scm
index 6ab99f508a..e5780e68b0 100644
--- a/tests/go.scm
+++ b/tests/go.scm
@@ -19,7 +19,7 @@
;;; Summary
;; Tests for guix/import/go.scm
-(define-module (test-import-go)
+(define-module (tests-import-go)
#:use-module (guix base32)
#:use-module (guix build-system go)
#:use-module (guix import go)
@@ -147,7 +147,8 @@ require github.com/kr/pretty v0.2.1
("https://pkg.go.dev/github.com/go-check/check"
. ,pkg.go.dev)
("https://pkg.go.dev/github.com/go-check/check?tab=licenses"
- . ,pkg.go.dev-licence))))
+ . ,pkg.go.dev-licence)
+ ("https://proxy.golang.org/github.com/go-check/check/@v/list" . ""))))
(test-begin "go")
@@ -169,6 +170,12 @@ require github.com/kr/pretty v0.2.1
"daa7c04131f5"
(go-version->git-ref "v1.2.4-0.20191109021931-daa7c04131f5"))
+(test-assert "go-pseudo-version? multi-digit version number"
+ (go-pseudo-version? "v1.23.1-0.20200526195155-81db48ad09cc"))
+
+(test-assert "go-pseudo-version? semantic version with rc"
+ (go-pseudo-version? "v1.4.0-rc.4.0.20200313231945-b860323f09d0"))
+
;;; Unit tests for (guix import go)
(test-equal "go-path-escape"
@@ -180,46 +187,43 @@ require github.com/kr/pretty v0.2.1
(define (testing-parse-mod name expected input)
(define (inf? p1 p2)
(string<? (car p1) (car p2)))
- (let ((input-port (open-input-string input)))
- (test-equal name
- (sort expected inf?)
- (sort
- ( (@@ (guix import go) parse-go.mod)
- input-port)
- inf?))))
+ (test-equal name
+ (sort expected inf?)
+ (sort ((@@ (guix import go) parse-go.mod) input) inf?)))
(testing-parse-mod "parse-go.mod-simple"
- '(("good/thing" . "v1.4.5")
- ("new/thing/v2" . "v2.3.4")
- ("other/thing" . "v1.0.2"))
+ '(("good/thing" "v1.4.5")
+ ("new/thing/v2" "v2.3.4")
+ ("other/thing" "v1.0.2"))
fixture-go-mod-simple)
(testing-parse-mod "parse-go.mod-with-block"
- '(("A" . "v1")
- ("B" . "v1.0.0")
- ("C" . "v1.0.0")
- ("D" . "v1.2.3")
- ("E" . "dev"))
+ '(("A" "v1")
+ ("B" "v1.0.0")
+ ("C" "v1.0.0")
+ ("D" "v1.2.3")
+ ("E" "dev"))
fixture-go-mod-with-block)
-(testing-parse-mod "parse-go.mod-complete"
- '(("github.com/corp/arbitrary-repo" . "v0.0.2")
- ("quoted.example.com/abitrary/repo" . "v0.0.2")
- ("one.example.com/abitrary/repo" . "v1.1.111")
- ("hub.jazz.net/git/user/project/sub/directory" . "v1.1.19")
- ("hub.jazz.net/git/user/project" . "v1.1.18")
- ("launchpad.net/~user/project/branch/sub/directory" . "v1.1.17")
- ("launchpad.net/~user/project/branch" . "v1.1.16")
- ("launchpad.net/project/series/sub/directory" . "v1.1.15")
- ("launchpad.net/project/series" . "v1.1.14")
- ("launchpad.net/project" . "v1.1.13")
- ("bitbucket.org/user/project/sub/directory" . "v1.11.21")
- ("bitbucket.org/user/project" . "v1.11.20")
- ("k8s.io/kubernetes/subproject" . "v1.1.101")
- ("github.com/user/project/sub/directory" . "v1.1.12")
- ("github.com/user/project" . "v1.1.11")
- ("github.com/go-check/check" . "v0.0.0-20140225173054-eb6ee6f84d0a"))
- fixture-go-mod-complete)
+(testing-parse-mod
+ "parse-go.mod-complete"
+ '(("github.com/corp/arbitrary-repo" "v0.0.2")
+ ("quoted.example.com/abitrary/repo" "v0.0.2")
+ ("one.example.com/abitrary/repo" "v1.1.111")
+ ("hub.jazz.net/git/user/project/sub/directory" "v1.1.19")
+ ("hub.jazz.net/git/user/project" "v1.1.18")
+ ("launchpad.net/~user/project/branch/sub/directory" "v1.1.17")
+ ("launchpad.net/~user/project/branch" "v1.1.16")
+ ("launchpad.net/project/series/sub/directory" "v1.1.15")
+ ("launchpad.net/project/series" "v1.1.14")
+ ("launchpad.net/project" "v1.1.13")
+ ("bitbucket.org/user/project/sub/directory" "v1.11.21")
+ ("bitbucket.org/user/project" "v1.11.20")
+ ("k8s.io/kubernetes/subproject" "v1.1.101")
+ ("github.com/user/project/sub/directory" "v1.1.12")
+ ("github.com/user/project" "v1.1.11")
+ ("github.com/go-check/check" "v0.0.0-20140225173054-eb6ee6f84d0a"))
+ fixture-go-mod-complete)
;;; End-to-end tests for (guix import go)
(define (mock-http-fetch testcase)
@@ -249,44 +253,43 @@ require github.com/kr/pretty v0.2.1
(test-equal "go-module->guix-package"
'(package
- (name "go-github-com-go-check-check")
- (version "0.0.0-20201130134442-10cb98267c6c")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/go-check/check.git")
- (commit (go-version->git-ref version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5"))))
- (build-system go-build-system)
- (arguments
- (quote (#:import-path "github.com/go-check/check")))
- (inputs
- (quasiquote (("go-github-com-kr-pretty"
- (unquote go-github-com-kr-pretty)))))
- (home-page "https://github.com/go-check/check")
- (synopsis "Instructions")
- (description #f)
- (license license:bsd-2))
+ (name "go-github-com-go-check-check")
+ (version "0.0.0-20201130134442-10cb98267c6c")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/go-check/check")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/go-check/check"))
+ (propagated-inputs
+ `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
+ (home-page "https://github.com/go-check/check")
+ (synopsis "Instructions")
+ (description "Package check is a rich testing extension for Go's testing \
+package.")
+ (license license:bsd-2))
;; Replace network resources with sample data.
(call-with-temporary-directory
(lambda (checkout)
(mock ((web client) http-get
(mock-http-get fixtures-go-check-test))
- (mock ((guix http-client) http-fetch
- (mock-http-fetch fixtures-go-check-test))
- (mock ((guix git) update-cached-checkout
- (lambda* (url #:key ref)
- ;; Return an empty directory and its hash.
- (values checkout
- (nix-base32-string->bytevector
- "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5")
- #f)))
- (go-module->guix-package "github.com/go-check/check")))))))
+ (mock ((guix http-client) http-fetch
+ (mock-http-fetch fixtures-go-check-test))
+ (mock ((guix git) update-cached-checkout
+ (lambda* (url #:key ref)
+ ;; Return an empty directory and its hash.
+ (values checkout
+ (nix-base32-string->bytevector
+ "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5")
+ #f)))
+ (go-module->guix-package "github.com/go-check/check")))))))
(test-end "go")
-
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index b7602e668c..e20702c521 100644
--- a/tests/guix-build.sh
+++ b/tests/guix-build.sh
@@ -1,6 +1,7 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+# Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
#
# This file is part of GNU Guix.
#
@@ -61,8 +62,9 @@ guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
test `guix build sed -s x86_64-linux -d | wc -l` = 1
# Passing multiple '-s' flags.
-all_systems="-s x86_64-linux -s i686-linux -s armhf-linux -s aarch64-linux"
-test `guix build sed $all_systems -d | sort -u | wc -l` = 4
+all_systems="-s x86_64-linux -s i686-linux -s armhf-linux -s aarch64-linux \
+-s powerpc64le-linux"
+test `guix build sed $all_systems -d | sort -u | wc -l` = 5
# Check there's no weird memoization effect leading to erroneous results.
# See <https://bugs.gnu.org/40482>.
diff --git a/tests/publish.scm b/tests/publish.scm
index 52101876b5..3e67c435ac 100644
--- a/tests/publish.scm
+++ b/tests/publish.scm
@@ -452,8 +452,8 @@ References: ~%"
(wait-for-file cached)
;; Both the narinfo and nar should be world-readable.
- (= #o644 (stat:perms (lstat cached)))
- (= #o644 (stat:perms (lstat nar)))
+ (= #o444 (logand #o444 (stat:perms (lstat cached))))
+ (= #o444 (logand #o444 (stat:perms (lstat nar))))
(let* ((body (http-get-port url))
(compressed (http-get nar-url))
diff --git a/tests/substitute.scm b/tests/substitute.scm
index 697abc4684..21b513e1d8 100644
--- a/tests/substitute.scm
+++ b/tests/substitute.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -198,7 +198,7 @@ a file for NARINFO."
;; Never use file descriptor 4, unlike what happens when invoked by the
;; daemon.
-(%error-to-file-descriptor-4? #f)
+(%reply-file-descriptor #f)
(test-equal "query narinfo without signature"