summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.mailmap1
-rw-r--r--Makefile.am2
-rw-r--r--doc/build.scm14
-rw-r--r--doc/environment-gdb.scm9
-rw-r--r--doc/guix.texi169
-rw-r--r--etc/completion/bash/guix2
-rw-r--r--etc/news.scm19
-rw-r--r--gnu/bootloader/grub.scm56
-rw-r--r--gnu/installer.scm3
-rw-r--r--gnu/installer/final.scm61
-rw-r--r--gnu/installer/newt/network.scm21
-rw-r--r--gnu/installer/newt/partition.scm9
-rw-r--r--gnu/installer/parted.scm47
-rw-r--r--gnu/installer/utils.scm18
-rw-r--r--gnu/local.mk29
-rw-r--r--gnu/machine/ssh.scm34
-rw-r--r--gnu/packages.scm3
-rw-r--r--gnu/packages/admin.scm36
-rw-r--r--gnu/packages/android.scm231
-rw-r--r--gnu/packages/aspell.scm7
-rw-r--r--gnu/packages/audio.scm43
-rw-r--r--gnu/packages/authentication.scm80
-rw-r--r--gnu/packages/aux-files/linux-libre/5.15-i686.conf2
-rw-r--r--gnu/packages/aux-files/linux-libre/5.15-x86_64.conf2
-rw-r--r--gnu/packages/aux-files/renpy/renpy.in48
-rw-r--r--gnu/packages/base.scm7
-rw-r--r--gnu/packages/bioconductor.scm50
-rw-r--r--gnu/packages/bioinformatics.scm73
-rw-r--r--gnu/packages/bittorrent.scm57
-rw-r--r--gnu/packages/bootstrap.scm112
-rw-r--r--gnu/packages/browser-extensions.scm7
-rw-r--r--gnu/packages/chez.scm25
-rw-r--r--gnu/packages/chromium.scm811
-rw-r--r--gnu/packages/clojure.scm254
-rw-r--r--gnu/packages/code.scm136
-rw-r--r--gnu/packages/commencement.scm52
-rw-r--r--gnu/packages/containers.scm36
-rw-r--r--gnu/packages/cpp.scm75
-rw-r--r--gnu/packages/cran.scm21
-rw-r--r--gnu/packages/crates-io.scm129
-rw-r--r--gnu/packages/cybersecurity.scm67
-rw-r--r--gnu/packages/databases.scm124
-rw-r--r--gnu/packages/debian.scm6
-rw-r--r--gnu/packages/diffoscope.scm5
-rw-r--r--gnu/packages/disk.scm12
-rw-r--r--gnu/packages/docker.scm2
-rw-r--r--gnu/packages/ebook.scm3
-rw-r--r--gnu/packages/education.scm16
-rw-r--r--gnu/packages/electronics.scm12
-rw-r--r--gnu/packages/emacs-xyz.scm362
-rw-r--r--gnu/packages/embedded.scm10
-rw-r--r--gnu/packages/emulators.scm4
-rw-r--r--gnu/packages/engineering.scm8
-rw-r--r--gnu/packages/finance.scm31
-rw-r--r--gnu/packages/firmware.scm4
-rw-r--r--gnu/packages/fonts.scm140
-rw-r--r--gnu/packages/fpga.scm9
-rw-r--r--gnu/packages/freedesktop.scm30
-rw-r--r--gnu/packages/game-development.scm81
-rw-r--r--gnu/packages/geo.scm8
-rw-r--r--gnu/packages/gnome-xyz.scm203
-rw-r--r--gnu/packages/gnome.scm190
-rw-r--r--gnu/packages/gnupg.scm95
-rw-r--r--gnu/packages/gnuzilla.scm22
-rw-r--r--gnu/packages/golang.scm93
-rw-r--r--gnu/packages/graphics.scm67
-rw-r--r--gnu/packages/gstreamer.scm1
-rw-r--r--gnu/packages/haskell-apps.scm4
-rw-r--r--gnu/packages/icu4c.scm16
-rw-r--r--gnu/packages/image-viewers.scm6
-rw-r--r--gnu/packages/irc.scm139
-rw-r--r--gnu/packages/jami.scm425
-rw-r--r--gnu/packages/julia-xyz.scm4
-rw-r--r--gnu/packages/jupyter.scm17
-rw-r--r--gnu/packages/kde.scm6
-rw-r--r--gnu/packages/libffi.scm14
-rw-r--r--gnu/packages/license.scm5
-rw-r--r--gnu/packages/linux.scm153
-rw-r--r--gnu/packages/lisp-xyz.scm89
-rw-r--r--gnu/packages/lisp.scm24
-rw-r--r--gnu/packages/lua.scm12
-rw-r--r--gnu/packages/machine-learning.scm41
-rw-r--r--gnu/packages/mail.scm325
-rw-r--r--gnu/packages/markup.scm96
-rw-r--r--gnu/packages/maths.scm72
-rw-r--r--gnu/packages/matrix.scm20
-rw-r--r--gnu/packages/maven.scm97
-rw-r--r--gnu/packages/music.scm81
-rw-r--r--gnu/packages/myrddin.scm65
-rw-r--r--gnu/packages/networking.scm130
-rw-r--r--gnu/packages/node.scm52
-rw-r--r--gnu/packages/openstack.scm93
-rw-r--r--gnu/packages/orange.scm35
-rw-r--r--gnu/packages/package-management.scm13
-rw-r--r--gnu/packages/parallel.scm6
-rw-r--r--gnu/packages/password-utils.scm50
-rw-r--r--gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch34
-rw-r--r--gnu/packages/patches/calibre-fix-zeroconf.patch38
-rw-r--r--gnu/packages/patches/chez-scheme-build-util-paths-backport.patch780
-rw-r--r--gnu/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch40
-rw-r--r--gnu/packages/patches/dealii-fix-sundials.patch60
-rw-r--r--gnu/packages/patches/eog-update-libportal-usage.patch40
-rw-r--r--gnu/packages/patches/epiphany-update-libportal-usage.patch53
-rw-r--r--gnu/packages/patches/gpaste-fix-paths.patch24
-rw-r--r--gnu/packages/patches/htslib-for-stringtie.patch26
-rw-r--r--gnu/packages/patches/jami-fix-crash-on-quit.patch34
-rw-r--r--gnu/packages/patches/libsigrokdecode-python3.9-fix.patch19
-rw-r--r--gnu/packages/patches/lua-5.4-liblua-so.patch33
-rw-r--r--gnu/packages/patches/lua-5.4-pkgconfig.patch110
-rw-r--r--gnu/packages/patches/nautilus-add-libportal-gtk3.patch61
-rw-r--r--gnu/packages/patches/passwordsafe-meson-remove-extra-argument.patch20
-rw-r--r--gnu/packages/patches/pjproject-correct-the-cflags-field.patch121
-rw-r--r--gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch79
-rw-r--r--gnu/packages/patches/pjproject-install-libpjsua2.patch19
-rw-r--r--gnu/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch44
-rw-r--r--gnu/packages/patches/qemu-CVE-2021-20203.patch172
-rw-r--r--gnu/packages/patches/quassel-qt-514-compat.patch130
-rw-r--r--gnu/packages/protobuf.scm4
-rw-r--r--gnu/packages/python-check.scm58
-rw-r--r--gnu/packages/python-crypto.scm11
-rw-r--r--gnu/packages/python-science.scm16
-rw-r--r--gnu/packages/python-web.scm151
-rw-r--r--gnu/packages/python-xyz.scm1056
-rw-r--r--gnu/packages/qt.scm6
-rw-r--r--gnu/packages/rust-apps.scm72
-rw-r--r--gnu/packages/security-token.scm41
-rw-r--r--gnu/packages/shells.scm44
-rw-r--r--gnu/packages/shellutils.scm29
-rw-r--r--gnu/packages/speech.scm22
-rw-r--r--gnu/packages/sphinx.scm60
-rw-r--r--gnu/packages/ssh.scm4
-rw-r--r--gnu/packages/suckless.scm35
-rw-r--r--gnu/packages/syncthing.scm4
-rw-r--r--gnu/packages/syndication.scm9
-rw-r--r--gnu/packages/telephony.scm15
-rw-r--r--gnu/packages/terminals.scm18
-rw-r--r--gnu/packages/texinfo.scm16
-rw-r--r--gnu/packages/time.scm59
-rw-r--r--gnu/packages/tryton.scm92
-rw-r--r--gnu/packages/version-control.scm6
-rw-r--r--gnu/packages/video.scm6
-rw-r--r--gnu/packages/virtualization.scm107
-rw-r--r--gnu/packages/vnc.scm111
-rw-r--r--gnu/packages/web-browsers.scm31
-rw-r--r--gnu/packages/web.scm36
-rw-r--r--gnu/packages/xdisorg.scm4
-rw-r--r--gnu/packages/xfce.scm10
-rw-r--r--gnu/packages/xorg.scm17
-rw-r--r--gnu/services/base.scm12
-rw-r--r--gnu/services/ci.scm4
-rw-r--r--gnu/services/pam-mount.scm2
-rw-r--r--gnu/services/telephony.scm8
-rw-r--r--gnu/system/locale.scm2
-rw-r--r--gnu/system/vm.scm2
-rw-r--r--gnu/tests/telephony.scm4
-rw-r--r--guix/build-system/clojure.scm3
-rw-r--r--guix/build-system/cmake.scm3
-rw-r--r--guix/build-system/go.scm3
-rw-r--r--guix/build-system/guile.scm3
-rw-r--r--guix/build-system/qt.scm3
-rw-r--r--guix/build/clojure-utils.scm2
-rw-r--r--guix/build/compile.scm32
-rw-r--r--guix/import/github.scm52
-rw-r--r--guix/import/texlive.scm8
-rw-r--r--guix/inferior.scm4
-rw-r--r--guix/packages.scm4
-rw-r--r--guix/scripts/hash.scm7
-rw-r--r--guix/scripts/shell.scm161
-rw-r--r--guix/scripts/system.scm21
-rw-r--r--guix/transformations.scm9
-rw-r--r--guix/ui.scm13
-rw-r--r--guix/utils.scm3
-rw-r--r--m4/guix.m42
-rw-r--r--tests/gremlin.scm18
-rw-r--r--tests/guix-graph.sh5
-rw-r--r--tests/guix-package-net.sh11
-rw-r--r--tests/import-github.scm139
-rw-r--r--tests/texlive.scm14
178 files changed, 6892 insertions, 4235 deletions
diff --git a/.mailmap b/.mailmap
index 3e18831d0a..9e0dc9c805 100644
--- a/.mailmap
+++ b/.mailmap
@@ -91,3 +91,4 @@ Thomas Danckaert <thomas.danckaert@gmail.com> <post@thomasdanckaert.be>
Tobias Geerinckx-Rice <me@tobias.gr> <tobias.geerinckx.rice@gmail.com>
Tomáš Čech <sleep_walker@gnu.org> <sleep_walker@suse.cz>
Vincent Legoll <vincent.legoll@gmail.com> <vincent.legoll@idgrilles.fr>
+Zheng Junjie <873216071@qq.com> Z572 <873216071@qq.com>
diff --git a/Makefile.am b/Makefile.am
index d6aabac261..a10aeb817b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -405,6 +405,7 @@ AUX_FILES = \
gnu/packages/aux-files/pack-audit.c \
gnu/packages/aux-files/python/sanity-check.py \
gnu/packages/aux-files/python/sitecustomize.py \
+ gnu/packages/aux-files/renpy/renpy.in \
gnu/packages/aux-files/run-in-namespace.c
# Templates, examples.
@@ -482,6 +483,7 @@ SCM_TESTS = \
tests/hackage.scm \
tests/home-import.scm \
tests/import-git.scm \
+ tests/import-github.scm \
tests/import-utils.scm \
tests/inferior.scm \
tests/lint.scm \
diff --git a/doc/build.scm b/doc/build.scm
index eebb493a2e..9860675841 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;;
;;; This file is part of GNU Guix.
@@ -51,17 +51,7 @@
(@@ (guix self) file-append*))
(define translated-texi-manuals
- (let ((translated (@@ (guix self) translate-texi-manuals)))
- (lambda (source)
- (let ((result (translated source)))
- ;; Build with 'guile-3.0-latest', which is linked against
- ;; 'libgc/disable-munmap', to avoid the dreaded "mmap(PROT_NONE)
- ;; failed" crash: <https://bugs.gnu.org/47428>.
- (computed-file (computed-file-name result)
- (computed-file-gexp result)
- #:local-build? #f
- #:options (computed-file-options result)
- #:guile guile-3.0-latest)))))
+ (@@ (guix self) translate-texi-manuals))
(define info-manual
(@@ (guix self) info-manual))
diff --git a/doc/environment-gdb.scm b/doc/environment-gdb.scm
index 040a8637f8..0534e594de 100644
--- a/doc/environment-gdb.scm
+++ b/doc/environment-gdb.scm
@@ -6,8 +6,7 @@
;; Augment the package definition of GDB with the build tools
;; needed when developing GDB (and which are not needed when
;; simply installing it.)
-(package (inherit gdb)
- (native-inputs `(("autoconf" ,autoconf-2.64)
- ("automake" ,automake)
- ("texinfo" ,texinfo)
- ,@(package-native-inputs gdb))))
+(package
+ (inherit gdb)
+ (native-inputs (modify-inputs (package-native-inputs gdb)
+ (prepend autoconf-2.64 automake texinfo))))
diff --git a/doc/guix.texi b/doc/guix.texi
index 7ffb0d738c..ea603ab56a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -22,7 +22,7 @@
@set SUBSTITUTE-URLS https://@value{SUBSTITUTE-SERVER-1} https://@value{SUBSTITUTE-SERVER-2}
@copying
-Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès@*
+Copyright @copyright{} 2012-2022 Ludovic Courtès@*
Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@*
Copyright @copyright{} 2013 Nikita Karetnikov@*
Copyright @copyright{} 2014, 2015, 2016 Alex Kost@*
@@ -33,7 +33,7 @@ Copyright @copyright{} 2015, 2016, 2017, 2019, 2020, 2021 Leo Famulari@*
Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus@*
Copyright @copyright{} 2016 Ben Woodcroft@*
Copyright @copyright{} 2016, 2017, 2018, 2021 Chris Marusich@*
-Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner@*
+Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner@*
Copyright @copyright{} 2016 John Darrington@*
Copyright @copyright{} 2016, 2017 Nikita Gillmann@*
Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@*
@@ -564,6 +564,15 @@ 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!
+@item riscv64-linux
+little-endian 64-bit RISC-V processors, specifically RV64GC, and
+Linux-Libre kernel. This playform 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
@@ -575,7 +584,8 @@ 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} and @code{powerpc64le-linux}.
+@code{mips64el-linux}, @code{powerpc-linux}, @code{powerpc64le-linux} and
+@code{riscv64-linux}.
@noindent
For information on porting to other architectures or kernels,
@@ -1168,6 +1178,11 @@ user @file{nobody};
a writable @file{/tmp} directory.
@end itemize
+The chroot does not contain a @file{/home} directory, and the @env{HOME}
+environment variable is set to the non-existent
+@file{/homeless-shelter}. This helps to highlight inappropriate uses of
+@env{HOME} in the build scripts of packages.
+
You can influence the directory where the daemon stores build trees
@i{via} the @env{TMPDIR} environment variable. However, the build tree
within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0},
@@ -5806,17 +5821,6 @@ This is similar to the same-named option in @command{guix package}
(@pxref{profile-manifest, @option{--manifest}}) and uses the same
manifest files.
-@item --rebuild-cache
-When using @option{--manifest}, @option{--file}, or when invoked without
-arguments, @command{guix shell} caches the environment so that
-subsequent uses are instantaneous. The cache is invalidated anytime the
-file is modified.
-
-The @option{--rebuild-cache} forces the cached environment to be
-refreshed even if the file has not changed. This is useful if the
-@command{guix.scm} or @command{manifest.scm} has external dependencies,
-or if its behavior depends, say, on environment variables.
-
@item --pure
Unset existing environment variables when building the new environment, except
those specified with @option{--preserve} (see below). This has the effect of
@@ -5932,6 +5936,21 @@ directory:
guix shell --container --expose=$HOME=/exchange guile -- guile
@end example
+@item --rebuild-cache
+@cindex caching, of profiles
+@cindex caching, in @command{guix shell}
+In most cases, @command{guix shell} caches the environment so that
+subsequent uses are instantaneous. Least-recently used cache entries
+are periodically removed. The cache is also invalidated, when using
+@option{--file} or @option{--manifest}, anytime the corresponding file
+is modified.
+
+The @option{--rebuild-cache} forces the cached environment to be
+refreshed. This is useful when using @option{--file} or
+@option{--manifest} and the @command{guix.scm} or @command{manifest.scm}
+file has external dependencies, or if its behavior depends, say, on
+environment variables.
+
@item --root=@var{file}
@itemx -r @var{file}
@cindex persistent environment
@@ -5942,11 +5961,20 @@ register it as a garbage collector root.
This is useful if you want to protect your environment from garbage
collection, to make it ``persistent''.
-When this option is omitted, the environment is protected from garbage
-collection only for the duration of the @command{guix shell}
-session. This means that next time you recreate the same environment,
-you could have to rebuild or re-download packages. @xref{Invoking guix
-gc}, for more on GC roots.
+When this option is omitted, @command{guix shell} caches profiles so
+that subsequent uses of the same environment are instantaneous---this is
+comparable to using @option{--root} except that @command{guix shell}
+takes care of periodically removing the least-recently used garbage
+collector roots.
+
+In some cases, @command{guix shell} does not cache profiles---e.g., if
+transformation options such as @option{--with-latest} are used. In
+those cases, the environment is protected from garbage collection only
+for the duration of the @command{guix shell} session. This means that
+next time you recreate the same environment, you could have to rebuild
+or re-download packages.
+
+@xref{Invoking guix gc}, for more on GC roots.
@end table
@command{guix shell} also supports all of the common build options that
@@ -11827,11 +11855,12 @@ in the definitions of packages.
@item --recursive
@itemx -r
-This option is deprecated in favor of @option{--serializer}. It is a
-legacy alias for that with @var{type} set to @code{nar}.
+The @option{--recursive} option is deprecated in favor of
+@option{--serializer=nar} (see below); @option{-r} remains accepted as a
+convenient shorthand.
@item --serializer=@var{type}
-@itemx -S
+@itemx -S @var{type}
Compute the hash on @var{file} using @var{type} serialization.
@var{type} may be one of the following:
@@ -12785,7 +12814,7 @@ otherwise.
The @command{guix style} command helps packagers style their package
definitions according to the latest fashionable trends. The command
-currently provides the providing styling rules:
+currently provides the following styling rules:
@itemize
@item
@@ -14493,7 +14522,7 @@ your operating system declaration:
(mingetty-service-type config =>
(mingetty-configuration
(inherit config)
- ;; Automatially log in as "guest".
+ ;; Automatically log in as "guest".
(auto-login "guest")))))
(operating-system
@@ -23835,9 +23864,9 @@ service found under @file{/var/lib/jami} are recreated every time the
service starts.
Jami accounts and their corresponding backup archives can be generated
-using either the @code{jami-qt} or @code{jami-gnome} Jami clients. The
-accounts should not be password-protected, but it is wise to ensure
-their files are only readable by @samp{root}.
+using the @code{jami} or @code{jami-gnome} Jami clients. The accounts
+should not be password-protected, but it is wise to ensure their files
+are only readable by @samp{root}.
The next example shows how to declare that only some contacts should be
allowed to communicate with a given account:
@@ -23952,7 +23981,7 @@ The complete set of available configuration options is detailed below.
Available @code{jami-configuration} fields are:
@table @asis
-@item @code{jamid} (default: @code{libring}) (type: package)
+@item @code{jamid} (default: @code{libjami}) (type: package)
The Jami daemon package to use.
@item @code{dbus} (default: @code{dbus}) (type: package)
@@ -34122,21 +34151,23 @@ Configuration System}). For instance, the @command{mount.nfs} program,
which is part of the nfs-utils package, with a setuid root can be
designated like this:
-@example
+@lisp
(setuid-program
(program (file-append nfs-utils "/sbin/mount.nfs")))
-@end example
+@end lisp
And then, to make @command{mount.nfs} setuid on your system, add the
previous example to your operating system declaration by appending it to
@code{%setuid-programs} like this:
-@example
-(setuid-programs
- (append (list (setuid-program
- (program (file-append nfs-utils "/sbin/mount.nfs"))))
- %setuid-programs))
-@end example
+@lisp
+(operating-system
+ ;; Some fields omitted...
+ (setuid-programs
+ (append (list (setuid-program
+ (program (file-append nfs-utils "/sbin/mount.nfs")))
+ %setuid-programs))))
+@end lisp
@deftp {Data Type} setuid-program
This data type represents a program with a setuid or setgid bit set.
@@ -35136,6 +35167,11 @@ $ $(guix system vm my-config.scm) -m 1024 -smp 2 -nic user,model=virtio-net-pci
The VM shares its store with the host system.
+By default, the root file system of the VM is mounted volatile; the
+@option{--persistent} option can be provided to make it persistent
+instead. In that case, the VM disk-image file will be copied from the
+store to the @env{TMPDIR} directory to make it writable.
+
Additional file systems can be shared between the host and the VM using
the @option{--share} and @option{--expose} command-line options: the former
specifies a directory to be shared with write access, while the latter
@@ -35173,8 +35209,8 @@ QEMU monitor and the VM.
@cindex Creating system images in various formats
@item image
@cindex image, creating disk images
-The @code{image} command can produce various image types. The
-image type can be selected using the @option{--image-type} option. It
+The @code{image} command can produce various image types. The image
+type can be selected using the @option{--image-type} option. It
defaults to @code{efi-raw}. When its value is @code{iso9660}, the
@option{--label} option can be used to specify a volume ID with
@code{image}. By default, the root file system of a disk image is
@@ -35646,6 +35682,16 @@ returned by @command{guix describe}) to determine whether commits
currently in use are descendants of those deployed. When this is not
the case and @code{allow-downgrades?} is false, it raises an error.
This ensures you do not accidentally downgrade remote machines.
+
+@item @code{safety-checks?} (default: @code{#t})
+Whether to perform ``safety checks'' before deployment. This includes
+verifying that devices and file systems referred to in the operating
+system configuration actually exist on the target machine, and making
+sure that Linux modules required to access storage devices at boot time
+are listed in the @code{initrd-modules} field of the operating system.
+
+These safety checks ensure that you do not inadvertently deploy a system
+that would fail to boot. Be careful before turning them off!
@end table
@end deftp
@@ -37119,7 +37165,7 @@ Service}; declare daemons by extending @ref{Shepherd Home Service}; add
commands, which will be invoked on by the Bash by extending
@ref{Shells Home Services, @code{home-bash-service-type}}.
-A good way to discover avaliable home services is using the
+A good way to discover available home services is using the
@command{guix home search} command (@pxref{Invoking guix home}). After
the required home services are found, include its module with the
@code{use-modules} form (@pxref{use-modules,, Using Guile Modules,
@@ -37207,7 +37253,7 @@ The service of this type will be instantiated by every home environment
automatically, there is no need to define it, but you may want to extend
it with a list of packages if you want to install additional packages
into your profile. Other services, which need to make some programs
-avaliable to the user will also extend this service type.
+available to the user will also extend this service type.
The extension value is just a list of packages:
@@ -37289,8 +37335,8 @@ Available @code{home-shell-profile-configuration} fields are:
@code{home-environment}, DO NOT create this service manually, it can
only be extended. @code{profile} is a list of file-like objects, which
will go to @file{~/.profile}. By default @file{~/.profile} contains the
-initialization code, which have to be evaluated by login shell to make
-home-environment's profile avaliable to the user, but other commands can
+initialization code which must be evaluated by the login shell to make
+home-environment's profile available to the user, but other commands can
be added to the file if it is really necessary. In most cases shell's
configuration files are preferred places for user's customizations.
Extend home-shell-profile service only if you really know what you do.
@@ -37545,45 +37591,28 @@ regular expressions, sorted by relevance:
@example
$ guix home search shell
name: home-shell-profile
-location: gnu/home/services/shells.scm:73:2
+location: gnu/home/services/shells.scm:100:2
extends: home-files
-description: Create `~/.profile', which is used for environment initialization
-+ of POSIX compatible login shells. Can be extended with a list of strings or
-+ gexps.
+description: Create `~/.profile', which is used for environment initialization of POSIX compliant login shells.
++ This service type can be extended with a list of file-like objects.
relevance: 6
-name: home-zsh-plugin-manager
-location: gnu/home/services/shellutils.scm:28:2
-extends: home-zsh home-profile
-description: Install plugins in profile and configure Zsh to load them.
-relevance: 1
-
-name: home-zsh-direnv
-location: gnu/home/services/shellutils.scm:69:2
-extends: home-profile home-zsh
-description: Enables `direnv' for `zsh'. Adds hook to `.zshrc' and installs a
-+ package in the profile.
-relevance: 1
-
-name: home-zsh-autosuggestions
-location: gnu/home/services/shellutils.scm:43:2
-extends: home-zsh-plugin-manager home-zsh
-description: Enables Fish-like fast/unobtrusive autosuggestions for `zsh' and
-+ sets reasonable default values for some plugin's variables to improve perfomance
-+ and adjust behavior: `(history completion)' is set for strategy, manual rebind
-+ and async are enabled.
-relevance: 1
+name: home-fish
+location: gnu/home/services/shells.scm:640:2
+extends: home-files home-profile
+description: Install and configure Fish, the friendly interactive shell.
+relevance: 3
name: home-zsh
-location: gnu/home/services/shells.scm:236:2
+location: gnu/home/services/shells.scm:290:2
extends: home-files home-profile
description: Install and configure Zsh.
relevance: 1
name: home-bash
-location: gnu/home/services/shells.scm:388:2
+location: gnu/home/services/shells.scm:508:2
extends: home-files home-profile
-description: Install and configure Bash.
+description: Install and configure GNU Bash.
relevance: 1
@dots{}
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index f262d4d95a..38fb490cb3 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -73,7 +73,7 @@ _guix_complete_option ()
local command="${COMP_WORDS[$1]}"
local subcommand="${COMP_WORDS[$(($1 + 1))]}"
- if [ $1 -le 1 ]
+ if [ $1 -eq 0 ]
then
command=""
subcommand=""
diff --git a/etc/news.scm b/etc/news.scm
index fa7c8d6dee..7e6da61c71 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -28,6 +28,7 @@
(entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a")
(title
(en "@command{guix style} can format package definitions")
+ (de "@command{guix style} kann Paketdefinitionen formatieren")
(fr "@command{guix style} peut mettre en forme les définitions de paquets"))
(body
(en "The recently-introduced @command{guix style} command can now be
@@ -42,8 +43,22 @@ The new @option{--styling} option can currently be passed one of the following
previously it was equivalent to @samp{--styling=inputs}.
Run @code{info \"(guix) Invoking guix style\"}, for more info.")
+ (de "Der kürzlich eingeführte Befehl @command{guix style} kann jetzt
+benutzt werden, um Paketdefinitionen automatisch nach den
+Formatierungsrichtlinien des Guix-Projekts zu formatieren. Wenn Sie Pakete zu
+Guix oder zu einem Drittanbieterkanal beitragen, könnte Ihnen das helfen.
+
+Für die neue Befehlszeilenoption @option{--styling} können Sie derzeit eine
+der folgenden @dfn{Stilregeln} angeben: @code{format}, wodurch
+Paketdefinitionen formatiert werden, oder @code{inputs}, wodurch die
+Bezeichnungen aus Paketeingaben entfernt werden. Wenn Sie {--styling}
+weglassen, passiert das Gleiche wie wenn Sie @samp{--styling=format} angeben;
+früher war es das Gleiche wie @samp{--styling=inputs}.
+
+Führen Sie @command{info \"(guix) Invoking guix style\"} aus, um mehr
+Informationen zu erhalten.")
(fr "La commande @command{guix style}, récemment introduite, peut
-désormais être utiliser pour mettre en forme des définitions de paquets
+désormais être utilisée pour mettre en forme des définitions de paquets
suivant les règles de style du projet Guix. Si vous contribuez des paquets à
Guix ou à un canal tiers, cela peut vous être utile.
@@ -138,7 +153,7 @@ gebeurd. Voer @command{info \"(guix) Upgrading Guix\"} uit voor meer uitleg."))
(title
(en "Improved static networking support on Guix System")
(de "Bessere Unterstützung für statische Netzwerkanbindungen auf Guix System")
- (fr "Meilleure prise en charge de réseaux statiques sur Guix System"))
+ (fr "Meilleure prise en charge des réseaux statiques sur Guix System"))
(body
(en "Support for declarative static networking setup on Guix System
has been improved. It now allows you to list IPv4 and IPv6 addresses in
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 42f71aa4db..120cd55012 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -264,36 +264,38 @@ is a string that can be inserted in grub.cfg."
at_keyboard usb_keyboard))
(io (string-append
- "terminal_output "
- (symbols->string
- (map
- (lambda (output)
- (if (memq output valid-outputs) output #f)) outputs)) "\n"
- (if (null? inputs)
- ""
- (string-append
- "terminal_input "
- (symbols->string
- (map
- (lambda (input)
- (if (memq input valid-inputs) input #f)) inputs)) "\n"))
- ;; UNIT and SPEED are arguments to the same GRUB command
- ;; ("serial"), so we process them together.
- (if (or unit speed)
- (string-append
+ ;; UNIT and SPEED are arguments to the same GRUB command
+ ;; ("serial"), so we process them together.
+ (if (or unit speed)
+ (string-append
"serial"
(if unit
- ;; COM ports 1 through 4
- (if (and (exact-integer? unit) (<= unit 3) (>= unit 0))
- (string-append " --unit=" (number->string unit))
- #f)
- "")
+ ;; COM ports 1 through 4
+ (if (and (exact-integer? unit) (<= unit 3) (>= unit 0))
+ (string-append " --unit=" (number->string unit))
+ #f)
+ "")
(if speed
- (if (exact-integer? speed)
- (string-append " --speed=" (number->string speed))
- #f)
- ""))
- ""))))
+ (if (exact-integer? speed)
+ (string-append " --speed=" (number->string speed))
+ #f)
+ "")
+ "\n")
+ "")
+ (if (null? inputs)
+ ""
+ (string-append
+ "terminal_input "
+ (symbols->string
+ (map
+ (lambda (input)
+ (if (memq input valid-inputs) input #f)) inputs))
+ "\n"))
+ "terminal_output "
+ (symbols->string
+ (map
+ (lambda (output)
+ (if (memq output valid-outputs) output #f)) outputs)))))
(format #f "~a" io)))
(define (grub-root-search device file)
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 600fb76de0..c8b7a66cfc 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -44,6 +44,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages package-management)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages xorg)
#:use-module (gnu system locale)
#:use-module (ice-9 match)
@@ -351,7 +352,7 @@ selected keymap."
;; packages …), etc. modules.
(with-extensions (list guile-gcrypt guile-newt
guile-parted guile-bytestructures
- guile-json-3 guile-git guix)
+ guile-json-3 guile-git guix gnutls)
(with-imported-modules `(,@(source-module-closure
`(,@modules
(gnu services herd)
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index fc0b7803fa..276af908f7 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -105,36 +105,6 @@ USERS."
(write-passwd password (string-append etc "/passwd"))
(write-shadow shadow (string-append etc "/shadow")))
-(define* (kill-cow-users cow-path #:key (spare '("udevd")))
- "Kill all processes that have references to the given COW-PATH in their
-'maps' file. The process whose names are in SPARE list are spared."
- (define %not-nul
- (char-set-complement (char-set #\nul)))
-
- (let ((pids
- (filter-map (lambda (pid)
- (false-if-exception
- (call-with-input-file
- (string-append "/proc/" pid "/maps")
- (lambda (port)
- (and (string-contains (get-string-all port)
- cow-path)
- (string->number pid))))))
- (scandir "/proc" string->number))))
- (for-each (lambda (pid)
- ;; cmdline does not always exist.
- (false-if-exception
- (call-with-input-file
- (string-append "/proc/" (number->string pid) "/cmdline")
- (lambda (port)
- (match (string-tokenize (read-string port) %not-nul)
- ((argv0 _ ...)
- (unless (member (basename argv0) spare)
- (syslog "Killing process ~a (~a)~%" pid argv0)
- (kill pid SIGKILL)))
- (_ #f))))))
- pids)))
-
(define (call-with-mnt-container thunk)
"This is a variant of call-with-container. Run THUNK in a new container
process, within a separate MNT namespace. The container is not jailed so that
@@ -149,6 +119,28 @@ it can interact with the rest of the system."
(match (waitpid pid)
((_ . status) status))))
+(define (install-locale locale)
+ "Install the given LOCALE or the en_US.utf8 locale as a fallback."
+ (let ((supported? (false-if-exception
+ (setlocale LC_ALL locale))))
+ (if supported?
+ (begin
+ (syslog "install supported locale ~a~%." locale)
+ (setenv "LC_ALL" locale))
+ (begin
+ ;; If the selected locale is not supported, install a default UTF-8
+ ;; locale. This is required to copy some files with UTF-8
+ ;; characters, in the nss-certs package notably. Set LANGUAGE
+ ;; anyways, to have translated messages if possible.
+ (syslog "~a locale is not supported, installating en_US.utf8 \
+locale instead.~%" locale)
+ (setlocale LC_ALL "en_US.utf8")
+ (setenv "LC_ALL" "en_US.utf8")
+ (setenv "LANGUAGE"
+ (string-take locale
+ (or (string-index locale #\_)
+ (string-length locale))))))))
+
(define* (install-system locale #:key (users '()))
"Create /etc/shadow and /etc/passwd on the installation target for USERS.
Start COW-STORE service on target directory and launch guix install command in
@@ -199,6 +191,10 @@ or #f. Return #t on success and #f on failure."
(lambda ()
(dynamic-wind
(lambda ()
+ ;; Install the locale before mounting the cow-store, otherwise
+ ;; the loaded cow-store locale files will prevent umounting.
+ (install-locale locale)
+
;; Save the database, so that it can be restored once the
;; cow-store is umounted.
(copy-file database-file saved-database)
@@ -221,9 +217,8 @@ or #f. Return #t on success and #f on failure."
(lambda ()
(with-error-to-file "/dev/console"
(lambda ()
- (run-command install-command
- #:locale locale)))))
- (run-command install-command #:locale locale))))
+ (run-command install-command)))))
+ (run-command install-command))))
(lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace
;; alive.
diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm
index 4af7143d63..fb221483c3 100644
--- a/gnu/installer/newt/network.scm
+++ b/gnu/installer/newt/network.scm
@@ -30,6 +30,8 @@
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
+ #:use-module (web client)
+ #:use-module (web response)
#:use-module (newt)
#:export (run-network-page))
@@ -119,8 +121,23 @@ network devices were found. Do you want to continue anyway?"))
(define (wait-service-online)
"Display a newt scale until connman detects an Internet access. Do
FULL-VALUE tentatives, spaced by 1 second."
+ (define (ci-available?)
+ (dynamic-wind
+ (lambda ()
+ (sigaction SIGALRM
+ (lambda _ #f))
+ (alarm 3))
+ (lambda ()
+ (false-if-exception
+ (= (response-code
+ (http-request "https://ci.guix.gnu.org"))
+ 200)))
+ (lambda ()
+ (alarm 0))))
+
(define (online?)
- (or (connman-online?)
+ (or (and (connman-online?)
+ (ci-available?))
(file-exists? "/tmp/installer-assume-online")))
(let* ((full-value 5))
@@ -137,7 +154,7 @@ FULL-VALUE tentatives, spaced by 1 second."
(unless (online?)
(run-error-page
(G_ "The selected network does not provide access to the \
-Internet, please try again.")
+Internet and the Guix substitute server, please try again.")
(G_ "Connection error"))
(raise
(condition
diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index 70c11ed8ad..ccc7686906 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -83,7 +83,8 @@ DEVICES list."
devices))
(let* ((result (run-listbox-selection-page
- #:info-text (G_ "Please select a disk.")
+ #:info-text (G_ "Please select a \
+disk. The installation device as well as the small devices are filtered.")
#:title (G_ "Disk")
#:listbox-items (device-items)
#:listbox-item->text cdr
@@ -792,13 +793,13 @@ by pressing the Exit button.~%~%")))
result-user-partitions)))))
(init-parted)
- (let* ((non-install-devices (non-install-devices))
- (user-partitions (run-page non-install-devices))
+ (let* ((eligible-devices (eligible-devices))
+ (user-partitions (run-page eligible-devices))
(user-partitions-with-pass (prompt-luks-passwords
user-partitions))
(form (draw-formatting-page user-partitions)))
;; Make sure the disks are not in use before proceeding to formatting.
- (free-parted non-install-devices)
+ (free-parted eligible-devices)
(format-user-partitions user-partitions-with-pass)
(syslog "formatted ~a user partitions~%"
(length user-partitions-with-pass))
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 289cd660fd..66e07574c9 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -81,7 +81,7 @@
with-delay-device-in-use?
force-device-sync
- non-install-devices
+ eligible-devices
partition-user-type
user-fs-type-name
partition-filesystem-user-type
@@ -356,28 +356,49 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
(and=> (uuid root)
find-partition-by-uuid)))))
-(define (non-install-devices)
- "Return all the available devices, except the install device."
+;; Minimal installation device size.
+(define %min-device-size
+ (* 2 GIBIBYTE-SIZE)) ;2GiB
+
+(define (eligible-devices)
+ "Return all the available devices except the install device and the devices
+which are smaller than %MIN-DEVICE-SIZE."
(define the-installer-root-partition-path
(installer-root-partition-path))
+ (define (small-device? device)
+ (let ((length (device-length device))
+ (sector-size (device-sector-size device)))
+ (and (< (* length sector-size) %min-device-size)
+ (syslog "~a is not eligible because it is smaller than ~a.~%"
+ (device-path device)
+ (unit-format-custom-byte device
+ %min-device-size
+ UNIT-GIGABYTE)))))
+
;; Read partition table of device and compare each path to the one
;; we're booting from to determine if it is the installation
;; device.
(define (installation-device? device)
;; When using CDROM based installation, the root partition path may be the
;; device path.
- (or (string=? the-installer-root-partition-path
- (device-path device))
- (let ((disk (disk-new device)))
- (and disk
- (any (lambda (partition)
- (string=? the-installer-root-partition-path
- (partition-get-path partition)))
- (disk-partitions disk))))))
-
- (remove installation-device? (devices)))
+ (and (or (string=? the-installer-root-partition-path
+ (device-path device))
+ (let ((disk (disk-new device)))
+ (and disk
+ (any (lambda (partition)
+ (string=? the-installer-root-partition-path
+ (partition-get-path partition)))
+ (disk-partitions disk)))))
+ (syslog "~a is not eligible because it is the installation device.~%"
+ (device-path device))))
+
+ (remove
+ (lambda (device)
+ (or (installation-device? device)
+ (small-device? device)))
+ (devices)))
;;
diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm
index bb97bc5560..9bd41e2ca0 100644
--- a/gnu/installer/utils.scm
+++ b/gnu/installer/utils.scm
@@ -74,9 +74,9 @@ number. If no percentage is found, return #f"
(and result
(string->number (match:substring result 1)))))
-(define* (run-command command #:key locale)
- "Run COMMAND, a list of strings, in the given LOCALE. Return true if
-COMMAND exited successfully, #f otherwise."
+(define* (run-command command)
+ "Run COMMAND, a list of strings. Return true if COMMAND exited
+successfully, #f otherwise."
(define env (environ))
(define (pause)
@@ -90,18 +90,6 @@ COMMAND exited successfully, #f otherwise."
(setenv "PATH" "/run/current-system/profile/bin")
- (when locale
- (let ((supported? (false-if-exception
- (setlocale LC_ALL locale))))
- ;; If LOCALE is not supported, then set LANGUAGE, which might at
- ;; least give us translated messages.
- (if supported?
- (setenv "LC_ALL" locale)
- (setenv "LANGUAGE"
- (string-take locale
- (or (string-index locale #\_)
- (string-length locale)))))))
-
(guard (c ((invoke-error? c)
(newline)
(format (current-error-port)
diff --git a/gnu/local.mk b/gnu/local.mk
index 2e46fac7f7..7e044d4a2b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -19,8 +19,8 @@
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
-# Copyright © 2018, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-# Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
+# Copyright © 2018, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+# Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
@@ -31,7 +31,7 @@
# Copyright © 2020 R Veera Kumar <vkor@vkten.in>
# Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
# Copyright © 2020 Michael Rohleder <mike@rohleder.de>
-# Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
+# Copyright © 2020, 2021, 2022 Felix Gruber <felgru@posteo.net>
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
# Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
@@ -47,6 +47,7 @@
# Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
# Copyright © 2021 Andrew Tropin <andrew@trop.in>
# Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+# Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
#
# This file is part of GNU Guix.
#
@@ -413,6 +414,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/music.scm \
%D%/packages/musl.scm \
%D%/packages/mtools.scm \
+ %D%/packages/myrddin.scm \
%D%/packages/nano.scm \
%D%/packages/ncdu.scm \
%D%/packages/ncurses.scm \
@@ -911,10 +913,12 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-CVE-2021-45078.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \
+ %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
%D%/packages/patches/cabal-install-base16-bytestring1.0.patch \
%D%/packages/patches/cabal-install-ghc8.10.patch \
%D%/packages/patches/cairo-CVE-2018-19876.patch \
%D%/packages/patches/cairo-CVE-2020-35492.patch \
+ %D%/packages/patches/calibre-fix-zeroconf.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-sqlite.patch \
%D%/packages/patches/calibre-remove-test-unrar.patch \
@@ -928,7 +932,6 @@ dist_patch_DATA = \
%D%/packages/patches/ceph-boost-compat.patch \
%D%/packages/patches/ceph-rocksdb-compat.patch \
%D%/packages/patches/cheese-vala-update.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 \
@@ -982,6 +985,8 @@ dist_patch_DATA = \
%D%/packages/patches/dbus-c++-gcc-compat.patch \
%D%/packages/patches/dbus-c++-threading-mutex.patch \
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
+ %D%/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch \
+ %D%/packages/patches/dealii-fix-sundials.patch \
%D%/packages/patches/debops-constants-for-external-program-names.patch \
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
%D%/packages/patches/dee-vapi.patch \
@@ -1028,6 +1033,8 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
+ %D%/packages/patches/eog-update-libportal-usage.patch \
+ %D%/packages/patches/epiphany-update-libportal-usage.patch \
%D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/esmtp-add-lesmtp.patch \
%D%/packages/patches/eudev-rules-directory.patch \
@@ -1196,6 +1203,7 @@ dist_patch_DATA = \
%D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
%D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
%D%/packages/patches/go-skip-gc-test.patch \
+ %D%/packages/patches/gpaste-fix-paths.patch \
%D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpodder-disable-updater.patch \
%D%/packages/patches/gpsbabel-fix-i686-test.patch \
@@ -1255,6 +1263,7 @@ dist_patch_DATA = \
%D%/packages/patches/hedgewars-network-bsd.patch \
%D%/packages/patches/helm-fix-gcc-9-build.patch \
%D%/packages/patches/http-parser-CVE-2020-8287.patch \
+ %D%/packages/patches/htslib-for-stringtie.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-cross.patch \
@@ -1290,6 +1299,7 @@ dist_patch_DATA = \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \
+ %D%/packages/patches/jami-fix-crash-on-quit.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@@ -1445,6 +1455,8 @@ dist_patch_DATA = \
%D%/packages/patches/lua51-liblua-so.patch \
%D%/packages/patches/lua51-pkgconfig.patch \
%D%/packages/patches/lua-liblua-so.patch \
+ %D%/packages/patches/lua-5.4-pkgconfig.patch \
+ %D%/packages/patches/lua-5.4-liblua-so.patch \
%D%/packages/patches/luajit-no_ldconfig.patch \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/lvm2-static-link.patch \
@@ -1464,6 +1476,7 @@ 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/libsigrokdecode-python3.9-fix.patch \
%D%/packages/patches/mercurial-hg-extension-path.patch \
%D%/packages/patches/mesa-opencl-all-targets.patch \
%D%/packages/patches/mesa-skip-tests.patch \
@@ -1503,6 +1516,7 @@ dist_patch_DATA = \
%D%/packages/patches/musl-cross-locale.patch \
%D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/m4-gnulib-libio.patch \
+ %D%/packages/patches/nautilus-add-libportal-gtk3.patch \
%D%/packages/patches/ncompress-fix-softlinks.patch \
%D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netpbm-CVE-2017-2586.patch \
@@ -1572,9 +1586,11 @@ dist_patch_DATA = \
%D%/packages/patches/p7zip-remove-unused-code.patch \
%D%/packages/patches/pam-krb5-CVE-2020-10595.patch \
%D%/packages/patches/pango-skip-libthai-test.patch \
+ %D%/packages/patches/passwordsafe-meson-remove-extra-argument.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \
%D%/packages/patches/pciutils-hurd-fix.patch \
%D%/packages/patches/pitivi-fix-build-with-meson-0.60.patch \
+ %D%/packages/patches/pjproject-install-libpjsua2.patch \
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \
@@ -1622,8 +1638,6 @@ dist_patch_DATA = \
%D%/packages/patches/pingus-sdl-libs-config.patch \
%D%/packages/patches/pipewire-0.2.7-fno-common.patch \
%D%/packages/patches/pixman-CVE-2016-5296.patch \
- %D%/packages/patches/pjproject-correct-the-cflags-field.patch \
- %D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch \
%D%/packages/patches/plink-1.07-unclobber-i.patch \
%D%/packages/patches/plink-endian-detection.patch \
%D%/packages/patches/plib-CVE-2011-4620.patch \
@@ -1678,6 +1692,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-pdoc3-tests.patch \
%D%/packages/patches/python-peachpy-determinism.patch \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
+ %D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-pyflakes-test-location.patch \
%D%/packages/patches/python-flint-includes.patch \
@@ -1709,7 +1724,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-waitress-fix-tests.patch \
%D%/packages/patches/python-werkzeug-tests.patch \
%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/qemu-fix-agent-paths.patch \
@@ -1721,7 +1735,6 @@ dist_patch_DATA = \
%D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
- %D%/packages/patches/quassel-qt-514-compat.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/qtwebkit-pbutils-include.patch \
%D%/packages/patches/qtwebkit-fix-building-with-bison-3.7.patch \
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 22688f46f4..0dc8933c82 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -93,6 +93,8 @@
(default #t))
(allow-downgrades? machine-ssh-configuration-allow-downgrades? ; boolean
(default #f))
+ (safety-checks? machine-ssh-configuration-safety-checks? ;boolean
+ (default #t))
(port machine-ssh-configuration-port ; integer
(default 22))
(user machine-ssh-configuration-user ; string
@@ -240,18 +242,21 @@ exist on the machine."
(raise (formatted-message (G_ "no file system with UUID '~a'")
(uuid->string (file-system-device fs)))))))
- (append (map check-literal-file-system
- (filter (lambda (fs)
- (string? (file-system-device fs)))
- file-systems))
- (map check-labeled-file-system
- (filter (lambda (fs)
- (file-system-label? (file-system-device fs)))
- file-systems))
- (map check-uuid-file-system
- (filter (lambda (fs)
- (uuid? (file-system-device fs)))
- file-systems))))
+ (if (machine-ssh-configuration-safety-checks?
+ (machine-configuration machine))
+ (append (map check-literal-file-system
+ (filter (lambda (fs)
+ (string? (file-system-device fs)))
+ file-systems))
+ (map check-labeled-file-system
+ (filter (lambda (fs)
+ (file-system-label? (file-system-device fs)))
+ file-systems))
+ (map check-uuid-file-system
+ (filter (lambda (fs)
+ (uuid? (file-system-device fs)))
+ file-systems)))
+ '()))
(define (machine-check-initrd-modules machine)
"Return a list of <remote-assertion> that raise a '&message' error condition
@@ -291,7 +296,10 @@ not available in the initrd."
(file-system-device fs)
missing)))))
- (map missing-modules file-systems))
+ (if (machine-ssh-configuration-safety-checks?
+ (machine-configuration machine))
+ (map missing-modules file-systems)
+ '()))
(define* (machine-check-forward-update machine)
"Check whether we are making a forward update for MACHINE. Depending on its
diff --git a/gnu/packages.scm b/gnu/packages.scm
index ccfc83dd11..65ab7a7c1e 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@@ -51,6 +51,7 @@
%auxiliary-files-path
%package-module-path
%default-package-module-path
+ cache-is-authoritative?
fold-packages
fold-available-packages
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 65c0225826..197ccef895 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -2374,20 +2374,24 @@ recover lost partitions and/or make non-booting disks bootable again.")
(define-public tree
(package
(name "tree")
- (version "1.8.0")
+ (version "2.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://mama.indstate.edu/users/ice/tree/src/tree-"
version ".tgz"))
(sha256
- (base32 "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi"))))
+ (base32 "0f92vx6gpz7v29wi9clklzah57v7lgx5kv0m1w4b9xjc35d9qcz3"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (modify-phases %standard-phases (delete 'configure))
- #:tests? #f ; no check target
- #:make-flags (let ((out (assoc-ref %outputs "out")))
- (list (string-append "prefix=" out)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)) ; No configure script.
+ #:tests? #f ; No check target.
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output)
+ (string-append "CC=" #$(cc-for-target)))))
(synopsis "Recursively list the contents of a directory")
(description
"Tree is a recursive directory listing command that produces a depth
@@ -2396,6 +2400,26 @@ environment variable is set and output is to tty.")
(home-page "http://mama.indstate.edu/users/ice/tree/")
(license license:gpl2+)))
+(define-public tree-1
+ ;; tree 2.0.0 introduced a feature called ‘stddata’ that emits JSON when
+ ;; output is directed to file descriptor 3. At least password-store still
+ ;; requires the old version.
+ (package
+ (inherit tree)
+ (version "1.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://mama.indstate.edu/users/ice/tree/src/tree-"
+ version ".tgz"))
+ (sha256
+ (base32 "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments tree)
+ ((#:make-flags flags '())
+ #~(append #$flags
+ (list (string-append "prefix=" #$output))))))))
+
(define-public lr
(package
(name "lr")
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 3bd3be6685..9f00303811 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +46,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages pcre)
@@ -54,7 +56,9 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages selinux)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages virtualization)
@@ -190,6 +194,28 @@ use their packages mostly unmodified in our Android NDK build system.")
(base32
checksum))))
+(define (android-platform-development version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://android.googlesource.com/platform/development")
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-development-"
+ version "-checkout"))
+ (sha256
+ (base32 "0s92961yycg8wsga40i7fvbfmf1a5i6j2gk64j2jiy7s0hfd4rc3"))))
+
+(define (android-platform-frameworks-native version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://android.googlesource.com/platform/frameworks/native")
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-frameworks-native-"
+ version "-checkout"))
+ (sha256
+ (base32 "00dgx27wma7wzivniy8zyw2443fi2xx8gyxii081m0fwamqd3jrm"))))
+
(define-public android-liblog
(package
(name "android-liblog")
@@ -728,6 +754,132 @@ it.
to be passed to the @code{udev} service.")
(license license:gpl3+)))
+(define-public android-platform-frameworks-native-headers
+ (package
+ (name "android-platform-frameworks-native-headers")
+ (version (android-platform-version))
+ (source (android-platform-frameworks-native version))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((source (assoc-ref %build-inputs "source"))
+ (include (string-append %output "/include/android")))
+ (mkdir-p include)
+ (copy-recursively (string-append source "/include/android")
+ (string-append include)) ; "/android"))
+ ))))
+ (home-page "https://android.googlesource.com/platform/frameworks/native/")
+ (synopsis "Headers for Android development from
+android-platform-frameworks-native")
+ (description "This package contains headers used for developing software
+for Android. More precicely the headers from include/android in
+platform/frameworks/native.")
+ (license license:asl2.0)))
+
+(define-public libetc1
+ (package
+ (name "libetc1")
+ (version (android-platform-version))
+ (source (android-platform-frameworks-native version))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'create-Makefile
+ (lambda _
+ ;; No useful makefile is shipped, so we create one.
+ (with-output-to-file "Makefile"
+ (lambda _
+ (display
+ (string-append
+ "NAME = libETC1\n"
+ "SOURCES = opengl/libs/ETC1/etc1.cpp\n"
+ "CXXFLAGS += -fPIC\n"
+ "CPPFLAGS += -Iopengl/include\n"
+ "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0\n"
+ "$(NAME).so.0: $(SOURCES)\n"
+ " $(CXX) $^ -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"
+ "build: $(NAME).so.0"))
+ #t))))
+ (add-after 'unpack 'remove-unused-stuff-to-reduce-warnings
+ (lambda _
+ (delete-file-recursively "opengl/libs/tools")))
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include")))
+ (install-file "libETC1.so.0" lib)
+ (with-directory-excursion lib
+ (symlink "libETC1.so.0" "libETC1.so"))
+ (copy-recursively "opengl/include/ETC1"
+ (string-append include "/ETC1"))))))))
+ (home-page "https://android.googlesource.com/platform/frameworks/native/")
+ (synopsis "ETC1 compression library")
+ (description "Ericsson Texture Compression (ETC) is a lossy texture
+compression technique developed in collaboration with Ericsson Research in
+early 2005. libETC1 provides the encoding and decoding of ETC1 compression
+algorithm.")
+ (license license:asl2.0)))
+
+(define-public etc1tool
+ (package
+ (name "etc1tool")
+ (version (android-platform-version))
+ (source (android-platform-development version))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'create-Makefile
+ (lambda _
+ ;; No useful makefile is shipped, so we create one.
+ (with-output-to-file "Makefile"
+ (lambda _
+ (display
+ (string-append
+ "NAME = etc1tool\n"
+ "SOURCES = tools/etc1tool/etc1tool.cpp\n"
+ "CPPFLAGS += -Iinclude\n"
+ "LDFLAGS += -lpng -lETC1\n"
+ "$(NAME): $(SOURCES)\n"
+ " $(CXX) $^ -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"
+ "build: $(NAME)"))
+ #t))))
+ (add-before 'build 'fix-typos-in-help
+ (lambda _
+ (substitute* "tools/etc1tool/etc1tool.cpp"
+ ((" apropriate ") " appropriate "))
+ #t))
+ ;; TODO: Add man-page from Debian
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "etc1tool" bin)))))))
+ (inputs
+ `(("libetc1" ,libetc1)
+ ("libpng" ,libpng)))
+ (home-page "https://developer.android.com/studio/command-line/etc1tool.html")
+ (synopsis "Encode and decode PNG images to resp. from the ETC1 compression
+standard.")
+ (description
+ "@command{etc1} is a command line utility that lets you encode PNG images
+to the ETC1 compression standard and decode ETC1 compressed images back to
+PNG. This tool is part of the Android SDK for working with media files for
+game apps.
+
+The standard for the ETC1 texture format can be found at
+@uref{http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt}.")
+ (license license:asl2.0)))
+
(define-public git-repo
(package
(name "git-repo")
@@ -904,17 +1056,84 @@ safest way, on a file image.")
useful for reverse engineering, analysis of Android applications and more.")
(license license:asl2.0)))
+(define-public python-android-backup
+ (package
+ (name "python-android-backup")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "android_backup" version))
+ (sha256
+ (base32
+ "15wb2lyjj2fpf7bhvmgpqn0mglsjj11zfvbjycx7mnidisgnljw6"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-pycrypto))
+ (home-page "https://github.com/bluec0re/android-backup-tools")
+ (synopsis "Unpack and repack android backups")
+ (description "This package allows you to unpack and repack Android
+backups. It supports encrypted archives.")
+ (license license:asl2.0)))
+
+(define-public python-miio
+ (package
+ (name "python-miio")
+ (version "0.5.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-miio" version))
+ (sha256
+ (base32
+ "0a4f5ybjvibawwxcjm3r9nnrzf1yff6wwgy05yzyk0bb3rmc99fp"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "miio")))))))
+ (native-inputs
+ (list python-pytest
+ python-pytest-mock
+ python-sphinx
+ python-sphinx-click
+ python-sphinx-rtd-theme
+ python-sphinxcontrib-apidoc))
+ (propagated-inputs
+ (list python-android-backup
+ python-appdirs
+ python-attrs
+ python-click
+ python-construct
+ python-croniter
+ python-cryptography
+ python-defusedxml
+ python-importlib-metadata
+ python-netifaces
+ python-pytz
+ python-pyyaml
+ python-tqdm
+ python-zeroconf))
+ (home-page "https://github.com/rytilahti/python-miio")
+ (synopsis "Control Xiaomi smart appliances")
+ (description "This package provides library and command line interface
+for communicating with Xiaomi smart appliances over miIO and MIoT protocols.")
+ (license license:gpl3+)))
+
(define-public fdroidserver
(package
(name "fdroidserver")
(version "1.1.9")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "fdroidserver" version))
- (sha256
- (base32
- "0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "fdroidserver" version))
+ (sha256
+ (base32
+ "0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
(build-system python-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 753f65642d..714e0af084 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2016, 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -136,6 +136,11 @@ dictionaries, including personal ones.")
(description
"This package provides a dictionary for the GNU Aspell spell checker.")
(license gpl2+)
+ (properties
+ ;; Unfortunately any versions with a trailing 'dash and digit' (eg.: '-0')
+ ;; will fail to register as a version.
+ `((upstream-name . ,(string-append prefix dict-name))
+ (ftp-directory . ,(string-append "/aspell/dict/" dict-name))))
(home-page "http://aspell.net/")))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 017f1ec74e..eae0d1fe68 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -136,6 +136,7 @@
#:use-module (guix build-system waf)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@@ -2869,14 +2870,14 @@ different audio devices such as ALSA or PulseAudio.")
(define-public qjackctl
(package
(name "qjackctl")
- (version "0.9.5")
+ (version "0.9.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
- "1g61xwsxsndwlnh4547vl7jfcf4kqlbb4394jq2m8qbbzk51b6rv"))))
+ "0sqni9ppwadc01fnyqj6lkwy30ql1vccqglv9imd3zdchffjpjir"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no check target
@@ -3414,7 +3415,7 @@ stretching and pitch scaling of audio. This package contains the library.")
(define-public libkeyfinder
(package
(name "libkeyfinder")
- (version "2.2.5")
+ (version "2.2.6")
(source
(origin
(method git-fetch)
@@ -3423,7 +3424,7 @@ stretching and pitch scaling of audio. This package contains the library.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1623kirmxhmvmhx7f8lbzk0f18w2hrhwlkzl8l4aa906lfqffdp2"))))
+ (base32 "0s7nqjmv44q5qjynfcs0j6h4a6qcz4mxzandkkdjjbnwv5rxc3zg"))))
(build-system cmake-build-system)
(native-inputs
(list catch-framework2))
@@ -5119,7 +5120,7 @@ edited, converted, compressed and saved.")
(define-public lsp-dsp-lib
(package
(name "lsp-dsp-lib")
- (version "0.5.11")
+ (version "0.5.14")
(source
(origin
(method url-fetch)
@@ -5127,23 +5128,23 @@ edited, converted, compressed and saved.")
"releases/download/" version
"/lsp-dsp-lib-" version "-src.tar.gz"))
(sha256
- (base32 "0lkar6r9jfrrqswi8nnndlm5a9kfwqjn92d81gp2yhc3p46xsswz"))))
+ (base32 "1gcznkyybywbgdi2fhx27i8sckhy6ahvxax72b213g1lr5aaw7bq"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no tests
- #:make-flags
- (list (string-append "CC=" ,(cc-for-target)))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'omit-static-library
- (lambda _
- (substitute* "src/Makefile"
- ((".*@.*ARTIFACT_SLIB.*") "") ; don't install it
- ((" \\$\\(ARTIFACT_SLIB\\)") "")))) ; don't build it
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "make" "config"
- (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
+ (list #:tests? #f ; no tests
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'omit-static-library
+ (lambda _
+ (substitute* "src/Makefile"
+ ((".*cp \\$\\(ARTIFACT_SLIB\\).*") "") ; don't install it
+ ((" \\$\\(ARTIFACT_SLIB\\)") "")))) ; don't build it
+ (replace 'configure
+ (lambda _
+ (invoke "make" "config"
+ (string-append "PREFIX=" #$output)))))))
(home-page "https://github.com/sadko4u/lsp-dsp-lib")
(synopsis "Digital signal processing library")
(description "The LSP DSP library provides a set of functions that perform
diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm
index f5fba35031..c64a8be83f 100644
--- a/gnu/packages/authentication.scm
+++ b/gnu/packages/authentication.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019, 2020, 2022 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
@@ -88,34 +90,58 @@ data.")
(license (list license:lgpl2.1+ ; the libraries (liboath/ & libpskc/)
license:gpl3+)))) ; the tools (everything else)
+(define-public oauth2l
+ (package
+ (name "oauth2l")
+ (version "1.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/oauth2l")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a9x0b31ybyjg0k7923xw6zr6crm0kigcn8g6hyr228nbvw35r8w"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/google/oauth2l"))
+ (home-page "https://github.com/google/oauth2l")
+ (synopsis "Simple CLI for interacting with Google API authentication")
+ (description
+ "@code{oauth2l} (pronounced ``oauth tool'') is a simple command-line tool
+for working with @url{https://developers.google.com/identity/protocols/OAuth2,
+Google OAuth 2.0} written in Go. Its primary use is to fetch and print OAuth
+2.0 access tokens, which can be used with other command-line tools and
+scripts.")
+ (license license:asl2.0)))
+
(define-public yubico-pam
- (let ((commit "b5bd00db81e0e0e0ecced65c684080bb56ddc35b")
- (revision "0"))
- (package
- (name "yubico-pam")
- (version (git-version "2.26" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Yubico/yubico-pam")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "10dq8dqi3jldllj6p8r9hldx9sank9n82c44w8akxrs1vli6nj3m"))))
- (build-system gnu-build-system)
- (arguments
- ;; The pam_test fails because ykclient fails to build a Curl handle.
- '(#:make-flags '("TESTS=util_test")))
- (inputs
- (list linux-pam libyubikey ykclient yubikey-personalization))
- (native-inputs
- (list autoconf automake libtool asciidoc pkg-config))
- (home-page "https://developers.yubico.com/yubico-pam")
- (synopsis "Yubico pluggable authentication module")
- (description "The Yubico PAM module provides an easy way to integrate the
+ (package
+ (name "yubico-pam")
+ (version "2.27")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Yubico/yubico-pam")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0hb773zlf11xz4bwmsqv2mq5d4aq2g0crdr5cp9xwc4ivi5gd4kg"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; The pam_test fails because ykclient fails to build a Curl handle.
+ '(#:make-flags '("TESTS=util_test")))
+ (inputs
+ (list linux-pam libyubikey ykclient yubikey-personalization))
+ (native-inputs
+ (list autoconf automake libtool asciidoc pkg-config))
+ (home-page "https://developers.yubico.com/yubico-pam")
+ (synopsis "Yubico pluggable authentication module")
+ (description "The Yubico PAM module provides an easy way to integrate the
YubiKey into your existing user authentication infrastructure.")
- (license license:bsd-2))))
+ (license license:bsd-2)))
(define-public pamtester
(package
diff --git a/gnu/packages/aux-files/linux-libre/5.15-i686.conf b/gnu/packages/aux-files/linux-libre/5.15-i686.conf
index 5e20801f5e..784b3a1ae4 100644
--- a/gnu/packages/aux-files/linux-libre/5.15-i686.conf
+++ b/gnu/packages/aux-files/linux-libre/5.15-i686.conf
@@ -6602,7 +6602,7 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
-# CONFIG_DRM_SIMPLEDRM is unset
+# CONFIG_DRM_SIMPLEDRM is not set
CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
diff --git a/gnu/packages/aux-files/linux-libre/5.15-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.15-x86_64.conf
index e93c0aa82c..8584a2d2af 100644
--- a/gnu/packages/aux-files/linux-libre/5.15-x86_64.conf
+++ b/gnu/packages/aux-files/linux-libre/5.15-x86_64.conf
@@ -6565,7 +6565,7 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
-# CONFIG_DRM_SIMPLEDRM is unset
+# CONFIG_DRM_SIMPLEDRM is not set
CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
diff --git a/gnu/packages/aux-files/renpy/renpy.in b/gnu/packages/aux-files/renpy/renpy.in
new file mode 100644
index 0000000000..914a735fa4
--- /dev/null
+++ b/gnu/packages/aux-files/renpy/renpy.in
@@ -0,0 +1,48 @@
+#! @PYTHON@
+# -*- mode: python -*-
+
+from __future__ import print_function
+
+import os
+import sys
+import warnings
+
+def path_to_common(renpy_base):
+ return renpy_base + "/common"
+
+def path_to_saves(gamedir, save_directory=None):
+ import renpy
+
+ if save_directory is None:
+ save_directory = renpy.config.save_directory
+ save_directory = renpy.exports.fsencode(save_directory)
+
+ if not save_directory:
+ return gamedir + "/saves"
+
+ return os.path.join(os.path.expanduser("~/.renpy"), save_directory)
+
+def main():
+ try:
+ import renpy.bootstrap
+ import renpy.arguments
+ except ImportError:
+ print("""Could not import renpy.bootstrap.
+Please ensure you decompressed Ren'py correctly, preserving the directory
+structure.""", file=sys.stderr)
+ raise
+
+ args = renpy.arguments.bootstrap()
+ if not args.basedir:
+ print("""This Ren'py requires a basedir to launch.
+The basedir is the directory, in which .rpy source files or compiled .rpyc files
+live -- usually the 'game' subdirectory of a game packaged by Ren'py.
+
+If you want the Ren'py launcher, use \"renpy-launcher\" instead.""",
+ file=sys.stderr)
+ sys.exit()
+
+ renpy.bootstrap.bootstrap("@RENPY_BASE@")
+
+if __name__ == "__main__":
+ main()
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index a422d64046..0e49b6044c 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -84,14 +84,14 @@
(define-public hello
(package
(name "hello")
- (version "2.10")
+ (version "2.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/hello/hello-" version
".tar.gz"))
(sha256
(base32
- "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
+ "1g84a3hqs4pgx3yzs99cysv3iq440ncdw77bf03fsi1w5mby174c"))))
(build-system gnu-build-system)
(synopsis "Hello, GNU world: An example GNU package")
(description
@@ -1103,7 +1103,8 @@ to the @code{share/locale} sub-directory of this package.")
(assoc-ref %outputs "out")
"/lib/locale/"
,(version-major+minor
- (package-version glibc)))))))))))
+ (package-version glibc)))))))))
+ (properties `((upstream-name . "glibc")))))
(define %default-utf8-locales
;; These are the locales commonly used for tests---e.g., in Guile's i18n
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 6eb34c3793..0fbe0965c2 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -4472,6 +4472,56 @@ this package. It also provides functionalities for visualizing, summarizing
and comparing the clusterings.")
(license license:expat)))
+(define-public r-transcriptr
+ (package
+ (name "r-transcriptr")
+ (version "1.22.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "transcriptR" version))
+ (sha256
+ (base32 "1p5l2z3szx3qh02x7r81ajl7yc5wqsri6q6pzw83livmalcli5yy"))))
+ (properties `((upstream-name . "transcriptR")))
+ (build-system r-build-system)
+ (propagated-inputs
+ (list r-biocgenerics
+ r-caret
+ r-chipseq
+ r-e1071
+ r-genomeinfodb
+ r-genomicalignments
+ r-genomicfeatures
+ r-genomicranges
+ r-ggplot2
+ r-iranges
+ r-proc
+ r-reshape2
+ r-rsamtools
+ r-rtracklayer
+ r-s4vectors))
+ (native-inputs (list r-knitr))
+ (home-page "https://bioconductor.org/packages/transcriptR")
+ (synopsis "Primary transcripts detection and quantification")
+ (description
+ "The differences in the RNA types being sequenced have an impact on the
+resulting sequencing profiles. mRNA-seq data is enriched with reads derived
+from exons, while GRO-, nucRNA- and chrRNA-seq demonstrate a substantial
+broader coverage of both exonic and intronic regions. The presence of
+intronic reads in GRO-seq type of data makes it possible to use it to
+computationally identify and quantify all de novo continuous regions of
+transcription distributed across the genome. This type of data, however, is
+more challenging to interpret and less common practice compared to mRNA-seq.
+One of the challenges for primary transcript detection concerns the
+simultaneous transcription of closely spaced genes, which needs to be properly
+divided into individually transcribed units. The R package transcriptR
+combines RNA-seq data with ChIP-seq data of histone modifications that mark
+active Transcription Start Sites (TSSs), such as, H3K4me3 or H3K9/14Ac to
+overcome this challenge. The advantage of this approach over the use of, for
+example, gene annotations is that this approach is data driven and therefore
+able to deal also with novel and case specific events.")
+ (license license:gpl3)))
+
(define-public r-trajectoryutils
(package
(name "r-trajectoryutils")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 5724a7137e..6caeec80f7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4878,6 +4878,18 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and
(native-inputs
`(("perl" ,perl)))))
+(define htslib-for-stringtie
+ (package
+ (inherit htslib)
+ (source (origin
+ (inherit (package-source htslib))
+ (patches
+ (search-patches "htslib-for-stringtie.patch"))))
+ (arguments
+ `(#:configure-flags '("--with-libdeflate")))
+ (inputs
+ (list bzip2 libdeflate openssl))))
+
(define-public idr
(package
(name "idr")
@@ -7384,22 +7396,25 @@ against local background noises.")
(define-public stringtie
(package
(name "stringtie")
- (version "1.2.1")
+ (version "2.2.0")
(source (origin
(method url-fetch)
(uri (string-append "http://ccb.jhu.edu/software/stringtie/dl/"
"stringtie-" version ".tar.gz"))
(sha256
(base32
- "1cqllsc1maq4kh92isi8yadgzbmnf042hlnalpk3y59aph1z3bfz"))
+ "08w3ish4y9kf9acp7k38iwi8ixa6j51m6qyf0vvfj7yz78a3ai3x"))
+ ;; This package bundles an annoying amount of third party source
+ ;; code.
(modules '((guix build utils)))
(snippet
- '(begin
- (delete-file-recursively "samtools-0.1.18")
- #t))))
+ '(delete-file-recursively "htslib"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test suite
+ #:make-flags '("LIBDEFLATE=-ldeflate"
+ "LIBBZ2=-lbz2"
+ "LIBLZMA=-llzma")
#:phases
(modify-phases %standard-phases
;; no configure script
@@ -7407,27 +7422,14 @@ against local background noises.")
(add-before 'build 'use-system-samtools
(lambda _
(substitute* "Makefile"
- (("stringtie: \\$\\{BAM\\}/libbam\\.a")
- "stringtie: "))
- (substitute* '("gclib/GBam.h"
- "gclib/GBam.cpp")
- (("#include \"(bam|sam|kstring).h\"" _ header)
- (string-append "#include <samtools/" header ".h>")))
- #t))
- (add-after 'unpack 'remove-duplicate-typedef
- (lambda _
- ;; This typedef conflicts with the typedef in
- ;; glibc-2.25/include/bits/types.h
- (substitute* "gclib/GThreads.h"
- (("typedef long long __intmax_t;") ""))
- #t))
+ ((" -lm") " -lm -lhts")
+ ((" \\$\\{HTSLIB\\}/libhts\\.a") " "))))
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
- (install-file "stringtie" bin)
- #t))))))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
+ (install-file "stringtie" bin)))))))
(inputs
- (list samtools-0.1 zlib))
+ (list bzip2 htslib-for-stringtie libdeflate zlib))
(home-page "http://ccb.jhu.edu/software/stringtie/")
(synopsis "Transcript assembly and quantification for RNA-Seq data")
(description
@@ -7440,7 +7442,7 @@ other transcript assemblers, but also alignments of longer sequences that have
been assembled from those reads. To identify differentially expressed genes
between experiments, StringTie's output can be processed either by the
Cuffdiff or Ballgown programs.")
- (license license:artistic2.0)))
+ (license license:expat)))
(define-public taxtastic
(package
@@ -8993,7 +8995,7 @@ communication networks from scRNA-seq data.")
(define-public sambamba
(package
(name "sambamba")
- (version "0.8.0")
+ (version "0.8.2")
(source
(origin
(method git-fetch)
@@ -9003,7 +9005,7 @@ communication networks from scRNA-seq data.")
(file-name (git-file-name name version))
(sha256
(base32
- "07dznzl6m8k7sw84jxw2kx6i3ymrapbmcmyh0fxz8wrybhw8fmwc"))))
+ "1zdkd1md5wk4la71p82pbclqqcm55abk23fk087da6186i1bsihl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there is no test target
@@ -9011,11 +9013,12 @@ communication networks from scRNA-seq data.")
#:phases
(modify-phases %standard-phases
(delete 'configure)
- (add-after 'unpack 'fix-ldc-version
- (lambda _
+ (add-after 'unpack 'prepare-build-tools
+ (lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
- ;; We use ldc2 instead of ldmd2 to compile sambamba.
- (("\\$\\(shell which ldmd2\\)") (which "ldc2")))))
+ (("\\$\\(shell which ldmd2\\)") (which "ldmd2")))
+ (setenv "CC" "gcc")
+ (setenv "D_LD" (which "ld.gold"))))
(add-after 'unpack 'unbundle-prerequisites
(lambda _
(substitute* "Makefile"
@@ -9028,7 +9031,13 @@ communication networks from scRNA-seq data.")
(copy-file (string-append "bin/sambamba-" ,version)
(string-append bin "/sambamba"))))))))
(native-inputs
- (list python))
+ `(("ld-gold-wrapper"
+ ;; Importing (gnu packages commencement) would introduce a cycle.
+ ,(module-ref (resolve-interface
+ '(gnu packages commencement))
+ 'ld-gold-wrapper))
+ ("binutils-gold" ,binutils-gold)
+ ("python" ,python)))
(inputs
(list ldc lz4 zlib))
(home-page "https://github.com/biod/sambamba")
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 4a84fbf8f5..eac66713ea 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@@ -13,6 +13,7 @@
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,6 +39,7 @@
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module ((guix licenses) #:prefix l:)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
@@ -297,7 +299,7 @@ maintained upstream.")
(define-public aria2
(package
(name "aria2")
- (version "1.35.0")
+ (version "1.36.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/aria2/aria2/releases/"
@@ -305,23 +307,24 @@ maintained upstream.")
"/aria2-" version ".tar.xz"))
(sha256
(base32
- "1zbxc517d97lb96f15xcy4l7b66grxrp3h2ids2jiwkaip87yaqy"))))
+ "1987x4ywnnrhhfs9hi2h820c200d7nas9nd35414yh0jiihfglaq"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags (list "--enable-libaria2"
- (string-append "--with-bashcompletiondir="
- %output "/etc/bash_completion.d/"))
+ (list
+ #:configure-flags
+ #~(list "--enable-libaria2"
+ (string-append "--with-bashcompletiondir="
+ #$output "/etc/bash_completion.d/"))
#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-socket-tests
- (lambda _
- (substitute* "test/LpdMessageDispatcherTest.cc"
- (("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageDispatcherTest\\);" text)
- (string-append "// " text)))
- (substitute* "test/LpdMessageReceiverTest.cc"
- (("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageReceiverTest\\);" text)
- (string-append "// " text)))
- #t)))))
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-socket-tests
+ (lambda _
+ (substitute* "test/LpdMessageDispatcherTest.cc"
+ (("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageDispatcherTest\\);" text)
+ (string-append "// " text)))
+ (substitute* "test/LpdMessageReceiverTest.cc"
+ (("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageReceiverTest\\);" text)
+ (string-append "// " text))))))))
(native-inputs
(list cppunit ; for the tests
pkg-config))
@@ -340,6 +343,8 @@ maintained upstream.")
"Aria2 is a lightweight, multi-protocol & multi-source command-line
download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
+ (properties
+ '((release-monitoring-url . "https://github.com/aria2/aria2/releases")))
(license l:gpl2+)))
(define-public uget
@@ -529,7 +534,6 @@ features.")
(build-system python-build-system)
(propagated-inputs
`(("gtk+" ,gtk+)
- ("librsvg" ,librsvg)
("libtorrent" ,libtorrent-rasterbar)
("python-pycairo" ,python-pycairo)
("python-chardet" ,python-chardet)
@@ -546,7 +550,10 @@ features.")
("python-twisted" ,python-twisted)
("python-zope-interface" ,python-zope-interface)))
(native-inputs
- (list intltool python-wheel))
+ (list intltool python-wheel
+ (if (string-prefix? "x86_64-" (%current-system))
+ librsvg-bootstrap
+ librsvg-2.40)))
;; TODO: Enable tests.
;; After "pytest-twisted" is packaged, HOME is set, and an X server is
;; started, some of the tests still fail. There are likely some tests
@@ -563,9 +570,19 @@ features.")
(("names='ngettext'") "names=['ngettext']"))
#t))
(add-after 'install 'wrap
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
- (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (gi-typelib-path
+ (string-join (filter
+ (lambda (x) (not (string-prefix?
+ (assoc-ref
+ (or native-inputs inputs)
+ "librsvg")
+ x)))
+ (string-split
+ (getenv "GI_TYPELIB_PATH")
+ #\:))
+ ":")))
(for-each
(lambda (program)
(wrap-program program
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 5a8028a465..8bd0c4eaf3 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -144,7 +144,16 @@
("tar"
,(base32 "150c8948cz8r208g6qgn2dn4f4zs5kpgbpbg6bwag6yw42rapw2l"))
("xz"
- ,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))))
+ ,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))
+ ("riscv64-linux"
+ ("bash"
+ ,(base32 "0almlf73k6hbm495kzf4bw1rzsg5qddn7z2rf5l3d1xcapac2hj3"))
+ ("mkdir"
+ ,(base32 "0rg1amdcqfkplcy1608jignl8jq0wqzfkp430mwik3f62959gya6"))
+ ("tar"
+ ,(base32 "17d3x27qhiwk7h6ns0xrvbrq0frxz89mjjh2cdwx2rraq5x6wffm"))
+ ("xz"
+ ,(base32 "0nxn75xf386vdq3igmgm8gnyk4h4x0cm8jv71vlb2jvwxh0cyw1q")))))
(define %bootstrap-executable-base-urls
;; This is where the bootstrap executables come from.
@@ -159,6 +168,7 @@
("powerpc64le-linux" (string-append system "/20210106/" program))
("i586-gnu" (string-append system "/20200326/" program))
("powerpc-linux" (string-append system "/20200923/bin/" program))
+ ("riscv64-linux" (string-append system "/20210725/bin/" program))
(_ (string-append system "/" program
"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
@@ -362,6 +372,8 @@ or false to signal an error."
"/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")
+ ("riscv64-linux"
+ "/20210725/guile-3.0.2.tar.xz")
(_
"/20131110/guile-2.0.9.tar.xz"))))
@@ -383,7 +395,9 @@ or false to signal an error."
("i586-gnu"
(base32 "0wgqpsmvg25rnqn49ap7kwd2qxccd8dr4lllzp7i3rjvgav27vac"))
("powerpc-linux"
- (base32 "1by2p7s27fbyjzfkcw8h65h4kkqh7d23kv4sgg5jppjn2qx7swq4"))))
+ (base32 "1by2p7s27fbyjzfkcw8h65h4kkqh7d23kv4sgg5jppjn2qx7swq4"))
+ ("riscv64-linux"
+ (base32 "12pqmhsbbp7hh9r1bjdl14l3a4q06plpz6dcks9dysb4czay8p9f"))))
(define (bootstrap-guile-origin system)
"Return an <origin> object for the Guile tarball of SYSTEM."
@@ -471,6 +485,76 @@ $out/bin/guile --version~%"
#:env-vars `(("GUILE_TARBALL"
. ,(derivation->output-path guile))))))
+(define* (raw-build-guile3 name inputs
+ #:key outputs system search-paths
+ #:allow-other-keys)
+ (define (->store file)
+ (lower-object (bootstrap-executable file system)
+ system))
+
+ (define (make-guile-wrapper bash guile-real)
+ ;; The following code, run by the bootstrap guile after it is unpacked,
+ ;; creates a wrapper for itself to set its load path. This replaces the
+ ;; previous non-portable method based on reading the /proc/self/exe
+ ;; symlink.
+ '(begin
+ (use-modules (ice-9 match))
+ (match (command-line)
+ ((_ out bash)
+ (let ((bin-dir (string-append out "/bin"))
+ (guile (string-append out "/bin/guile"))
+ (guile-real (string-append out "/bin/.guile-real"))
+ ;; We must avoid using a bare dollar sign in this code,
+ ;; because it would be interpreted by the shell.
+ (dollar (string (integer->char 36))))
+ (chmod bin-dir #o755)
+ (rename-file guile guile-real)
+ (call-with-output-file guile
+ (lambda (p)
+ (format p "\
+#!~a
+export GUILE_SYSTEM_PATH=~a/share/guile/3.0
+export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/3.0/ccache
+exec -a \"~a0\" ~a \"~a@\"\n"
+ bash out out dollar guile-real dollar)))
+ (chmod guile #o555)
+ (chmod bin-dir #o555))))))
+
+ (mlet* %store-monad ((tar (->store "tar"))
+ (xz (->store "xz"))
+ (mkdir (->store "mkdir"))
+ (bash (->store "bash"))
+ (guile (download-bootstrap-guile system))
+ (wrapper -> (make-guile-wrapper bash guile))
+ (builder
+ (text-file "build-bootstrap-guile.sh"
+ (format #f "
+echo \"unpacking bootstrap Guile to '$out'...\"
+~a $out
+cd $out
+~a -dc < $GUILE_TARBALL | ~a xv
+
+# Use the bootstrap guile to create its own wrapper to set the load path.
+GUILE_SYSTEM_PATH=$out/share/guile/3.0 \
+GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/3.0/ccache \
+$out/bin/guile -c ~s $out ~a
+
+# Sanity check.
+$out/bin/guile --version~%"
+ (derivation->output-path mkdir)
+ (derivation->output-path xz)
+ (derivation->output-path tar)
+ (object->string wrapper)
+ (derivation->output-path bash)))))
+ (raw-derivation name
+ (derivation->output-path bash) `(,builder)
+ #:system system
+ #:inputs (map derivation-input
+ (list bash mkdir tar xz guile))
+ #:sources (list builder)
+ #:env-vars `(("GUILE_TARBALL"
+ . ,(derivation->output-path guile))))))
+
(define* (make-raw-bag name
#:key source inputs native-inputs outputs
system target)
@@ -478,7 +562,9 @@ $out/bin/guile --version~%"
(name name)
(system system)
(build-inputs inputs)
- (build raw-build)))
+ (build (cond ((target-riscv64?)
+ raw-build-guile3)
+ (else raw-build)))))
(define %bootstrap-guile
;; The Guile used to run the build scripts of the initial derivations.
@@ -518,6 +604,8 @@ $out/bin/guile --version~%"
"/20200326/static-binaries-0-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/static-binaries.tar.xz")
+ ("riscv64-linux"
+ "/20210725/static-binaries.tar.xz")
(_
"/20131110/static-binaries.tar.xz")))
%bootstrap-base-urls))
@@ -544,6 +632,9 @@ $out/bin/guile --version~%"
("powerpc-linux"
(base32
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
+ ("riscv64-linux"
+ (base32
+ "0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
("mips64el-linux"
(base32
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
@@ -596,6 +687,8 @@ $out/bin/guile --version~%"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
+ ("riscv64-linux"
+ "/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
@@ -616,6 +709,9 @@ $out/bin/guile --version~%"
("powerpc64le-linux"
(base32
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
+ ("riscv64-linux"
+ (base32
+ "0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
("i586-gnu"
(base32
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
@@ -681,6 +777,8 @@ $out/bin/guile --version~%"
"/20200326/glibc-stripped-2.31-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
+ ("riscv64-linux"
+ "/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
@@ -701,6 +799,9 @@ $out/bin/guile --version~%"
("powerpc64le-linux"
(base32
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
+ ("riscv64-linux"
+ (base32
+ "0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
("i586-gnu"
(base32
"14ddm10lpbas8bankmn5bcrlqvz1v5dnn1qjzxb19r57vd2w5952"))
@@ -782,6 +883,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
+ ("riscv64-linux"
+ "/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
@@ -802,6 +905,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
("powerpc64le-linux"
(base32
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
+ ("riscv64-linux"
+ (base32
+ "1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
("i586-gnu"
(base32
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index 13ce80c357..eaf67a8ea0 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -51,7 +51,7 @@ supported content to the Kodi media center.")
(define ublock-origin
(package
(name "ublock-origin")
- (version "1.40.4")
+ (version "1.40.8")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@@ -60,7 +60,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
- "0rx26snsxvmy0r0z23w16h5cqrfvmqhwq4pgfwbjfmqd3y26sjpr"))))
+ "17pywblp87npj5z3zyvy9rmllnxhm916fnfyyfbvfbczswkbp78s"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(arguments
@@ -98,8 +98,7 @@ supported content to the Kodi media center.")
(copy-recursively "dist/build/uBlock0.firefox" firefox)
(copy-recursively "dist/build/uBlock0.chromium" chromium)))))))
(native-inputs
- `(("python" ,python-wrapper)
- ("zip" ,zip)))
+ (list python-wrapper zip))
(synopsis "Block unwanted content from web sites")
(description
"uBlock Origin is a @dfn{wide spectrum blocker} for IceCat and
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index aaef513538..47904e7b4e 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -71,7 +71,7 @@
(define-public chez-scheme
(package
(name "chez-scheme")
- (version "9.5.4")
+ (version "9.5.6")
(source
(origin
(method git-fetch)
@@ -79,14 +79,10 @@
(url "https://github.com/cisco/ChezScheme")
(commit (string-append "v" version))))
(sha256
- (base32 "0prgn2z9l888j93ydxaf04ph424g0fi3a8w7f8m0b2r7fr1v7388"))
+ (base32 "07s433hn1z2slfc026sidrpzxv3a8narcd40qqr1xrpb9012xdky"))
(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
+ ;; Remove bundled libraries.
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
@@ -144,8 +140,7 @@
(assoc-ref (or native-inputs inputs) dep))
(copy-recursively src dep
#:keep-mtime? #t))
- '("nanopass" "stex"))
- #t))
+ '("nanopass" "stex"))))
;; NOTE: the custom Chez 'configure' script doesn't allow
;; unrecognized flags, such as those automatically added
;; by `gnu-build-system`.
@@ -172,8 +167,7 @@
(setenv "HOME" "/tmp")
(apply invoke
"./configure"
- flags)
- #t)))
+ flags))))
;; 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
@@ -187,8 +181,7 @@
(map (lambda (file)
(symlink file (string-append (dirname file)
"/" name ".boot")))
- (find-files lib "scheme.boot"))
- #t)))
+ (find-files lib "scheme.boot")))))
;; Building explicitly lets us avoid using substitute*
;; to re-write makefiles.
(add-after 'install-symlink 'prepare-stex
@@ -217,8 +210,7 @@
'("ReadMe" ; includes the license
"doc/stex.html"
"doc/stex.css"
- "doc/stex.pdf"))
- #t))))
+ "doc/stex.pdf"))))))
;; Building the documentation requires stex and a running scheme.
;; FIXME: this is probably wrong for cross-compilation
(add-after 'prepare-stex 'install-doc
@@ -251,8 +243,7 @@
(symlink "release_notes/release_notes.pdf"
"release_notes.pdf")
(symlink "csug/csug9_5.pdf"
- "csug.pdf"))
- #t))))))
+ "csug.pdf"))))))))
;; 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
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index be536c2741..b6c877c2fa 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2020, 2021 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
@@ -485,423 +485,406 @@
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f
- #:modules ((guix build gnu-build-system)
+ (list
+ #:tests? #f
+ #:modules '((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
- #:configure-flags
- ;; See tools/gn/docs/cookbook.md and
- ;; https://www.chromium.org/developers/gn-build-configuration
- ;; for usage. Run "gn args . --list" in the Release
- ;; directory for an exhaustive list of supported flags.
- ;; (Note: The 'configure' phase will do that for you.)
- (list "is_debug=false"
- ;; Use the "official" release optimizations, as opposed to
- ;; a developer build.
- "is_official_build=true"
- "clang_use_chrome_plugins=false"
- "is_cfi=false" ;requires ThinLTO
- "use_thin_lto=false" ;XXX lld segfaults
- "chrome_pgo_phase=0"
- "use_sysroot=false"
- "goma_dir=\"\""
- "enable_nacl=false"
- "enable_nacl_nonsfi=false"
- "use_unofficial_version_number=false"
- "treat_warnings_as_errors=false"
- "use_official_google_api_keys=false"
- "disable_fieldtrial_testing_config=true"
- "safe_browsing_mode=0"
- "enable_mdns=false"
- "enable_one_click_signin=false"
- "enable_reading_list=false"
- "enable_remoting=false"
- "enable_reporting=false"
- "enable_service_discovery=false"
- "enable_vr=false"
- "enable_widevine=false"
- ;; Disable type-checking for the Web UI to avoid a Java dependency.
- "enable_js_type_check=false"
- ;; Disable code using TensorFlow until it has been scrutinized
- ;; by the ungoogled project.
- "build_with_tflite_lib=false"
- ;; Avoid dependency on code formatting tools.
- "blink_enable_generated_code_formatting=false"
-
- ;; Define a custom toolchain that simply looks up CC, AR and
- ;; friends from the environment.
- "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
- "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
-
- ;; Prefer system libraries.
- "use_system_freetype=true"
- "use_system_harfbuzz=true"
- "use_system_lcms2=true"
- "use_system_libdrm=true"
- "use_system_libjpeg=true"
- "use_system_libopenjpeg2=true"
- "use_system_libpng=true"
- "use_system_wayland_scanner=true"
- (string-append "system_wayland_scanner_path=\""
- (assoc-ref %build-inputs "wayland-scanner")
- "/bin/wayland-scanner\"")
-
- "use_system_zlib=true"
- "use_gnome_keyring=false" ;deprecated by libsecret
- "use_pulseaudio=true"
- "link_pulseaudio=true"
- "icu_use_data_file=false"
-
- ;; FIXME: Using system protobuf with "is_official_build" causes an
- ;; invalid opcode and "protoc-gen-plugin: Plugin killed by signal 4".
- ;;"perfetto_use_system_protobuf=true"
-
- ;; VA-API acceleration is currently only supported on x86_64-linux.
- ,@(if (string-prefix? "x86_64" (or (%current-target-system)
- (%current-system)))
- '("use_vaapi=true")
- '())
-
- "media_use_ffmpeg=true"
- "media_use_libvpx=true"
- "media_use_openh264=true"
-
- ;; Do not artifically restrict formats supported by system ffmpeg.
- "proprietary_codecs=true"
- "ffmpeg_branding=\"Chrome\""
-
- ;; WebRTC stuff.
- "rtc_use_h264=true"
- "rtc_use_pipewire=true"
- "rtc_link_pipewire=true"
- ;; Don't use bundled sources.
- "rtc_build_json=true" ;FIXME: libc++ std::string ABI difference
- "rtc_build_libevent=false"
- "rtc_build_libvpx=false"
- "rtc_build_opus=false"
- "rtc_build_libsrtp=true" ;FIXME: fails to find headers
- "rtc_build_usrsctp=true" ;TODO: package this
- "rtc_build_ssl=true") ;XXX: the bundled BoringSSL is required?
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-stuff
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((openjpeg (assoc-ref inputs "openjpeg")))
- (substitute* "third_party/pdfium/BUILD.gn"
- ;; This include path is added by Debians openjpeg patch.
- (("/usr/include/openjpeg")
- (string-append openjpeg "/include/openjpeg"))))
-
- (substitute*
- '("base/process/launch_posix.cc"
- "base/third_party/dynamic_annotations/dynamic_annotations.c"
- "sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
- "sandbox/linux/services/credentials.cc"
- "sandbox/linux/services/namespace_utils.cc"
- "sandbox/linux/services/syscall_wrappers.cc"
- "sandbox/linux/syscall_broker/broker_host.cc")
- (("include \"base/third_party/valgrind/") "include \"valgrind/"))
-
- (for-each (lambda (file)
- (substitute* file
- ;; Fix opus include path.
- ;; Do not substitute opus_private.h.
- (("#include \"opus\\.h\"")
- "#include \"opus/opus.h\"")
- (("#include \"opus_custom\\.h\"")
- "#include \"opus/opus_custom.h\"")
- (("#include \"opus_defines\\.h\"")
- "#include \"opus/opus_defines.h\"")
- (("#include \"opus_multistream\\.h\"")
- "#include \"opus/opus_multistream.h\"")
- (("#include \"opus_types\\.h\"")
- "#include \"opus/opus_types.h\"")))
- (find-files (string-append "third_party/webrtc/modules"
- "/audio_coding/codecs/opus")))
-
- ;; Many files try to include ICU headers from "third_party/icu/...".
- ;; Remove the "third_party/" prefix to use system headers instead.
- (substitute* (find-files "chrome" "\\.cc$")
- (("third_party/icu/source/(common|i18n)/")
- ""))
-
- ;; XXX: Should be unnecessary when use_system_lcms2=true.
- (substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
- (("include \"third_party/lcms/include/lcms2\\.h\"")
- "include \"lcms2.h\""))
-
- ;; Chromium bundles a pre-release of Harfbuzz 3.0 and uses an
- ;; experimental API that was removed in 3.0. Adjust to use
- ;; the updated API (taken from <https://crrev.com/c/3076563>).
- (substitute* "components/paint_preview/common/subset_font.cc"
- (("hb_subset_input_no_subset_tables_set\\(input\\.get\\(\\)\\)")
- "hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG)"))
-
- (substitute*
- "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
- (("include \"third_party/curl")
- "include \"curl"))
-
- (substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
- "components/viz/common/resources/resource_format_utils.h"
- "gpu/config/gpu_util.cc")
- (("third_party/vulkan_headers/include/") ""))
-
- (substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
- (("include/third_party/vulkan/") ""))))
- (add-after 'patch-stuff 'add-absolute-references
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((cups (assoc-ref inputs "cups"))
- (nss (assoc-ref inputs "nss"))
- (mesa (assoc-ref inputs "mesa"))
- (udev (assoc-ref inputs "udev")))
- (substitute* "printing/cups_config_helper.py"
- (("cups_config =.*")
- (string-append "cups_config = '" cups
- "/bin/cups-config'\n")))
- (substitute* "crypto/nss_util.cc"
- (("libnssckbi\\.so")
- (string-append nss "/lib/nss/libnssckbi.so")))
- (substitute* "device/udev_linux/udev1_loader.cc"
- (("libudev\\.so\\.1")
- (string-append udev "/lib/libudev.so.1")))
-
- (substitute* "third_party/dawn/src/dawn_native/vulkan/BackendVk.cpp"
- (("libvulkan\\.so\\.1")
- (search-input-file inputs "/lib/libvulkan.so.1")))
-
- (substitute*
- '("ui/ozone/platform/x11/gl_ozone_glx.cc"
- "ui/ozone/common/egl_util.cc"
- "ui/gl/init/gl_initializer_linux_x11.cc"
- "third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp")
- (("libGL\\.so\\.1")
- (string-append mesa "/lib/libGL.so.1"))
- (("libEGL\\.so\\.1")
- (string-append mesa "/lib/libEGL.so.1"))
- (("libGLESv2\\.so\\.2")
- (string-append mesa "/lib/libGLESv2.so.2"))))))
- (add-before 'configure 'prepare-build-environment
- (lambda* (#:key inputs #:allow-other-keys)
-
- ;; Define the GN toolchain.
- (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
- (setenv "CC" "clang") (setenv "CXX" "clang++")
-
- (let ((gcc (assoc-ref inputs "gcc")))
- ;; Remove the default compiler from CPLUS_INCLUDE_PATH to
- ;; prevent header conflict with the bundled libcxx.
- (setenv "CPLUS_INCLUDE_PATH"
- (string-join
- (delete (string-append gcc "/include/c++")
- (string-split (getenv "CPLUS_INCLUDE_PATH")
- #\:))
- ":"))
- (format #t
- "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
- (getenv "CPLUS_INCLUDE_PATH")))
-
- (setenv "CXXFLAGS"
- (string-join
- '(;; Do not optimize away null pointer safety checks.
- "-fno-delete-null-pointer-checks"
- ;; Disable warnings about unknown warnings that require
- ;; Clang plugins or newer versions.
- "-Wno-unknown-warning-option")))
-
- (setenv "CFLAGS" "-Wno-unknown-warning-option")
-
- ;; TODO: pre-compile instead. Avoids a race condition.
- (setenv "PYTHONDONTWRITEBYTECODE" "1")
-
- ;; XXX: How portable is this.
- (mkdir-p "third_party/node/linux/node-linux-x64")
- (symlink (string-append (assoc-ref inputs "node") "/bin")
- "third_party/node/linux/node-linux-x64/bin")))
- (replace 'configure
- (lambda* (#:key configure-flags #:allow-other-keys)
- (let ((args (string-join configure-flags " ")))
- ;; Generate ninja build files.
- (invoke "gn" "gen" "out/Release"
- (string-append "--args=" args))
-
- ;; Print the full list of supported arguments as well as
- ;; their current status for convenience.
- (format #t "Dumping configure flags...\n")
- (invoke "gn" "args" "out/Release" "--list"))))
- (add-before 'build 'increase-resource-limits
- (lambda _
- ;; XXX: Chromiums linking step requires a lot of simultaneous file
- ;; accesses. Having a too low ulimit will result in bogus linker
- ;; errors such as "foo.a: error adding symbols: malformed archive".
-
- ;; Try increasing the soft resource limit of max open files to 2048,
- ;; or equal to the hard limit, whichever is lower.
- (call-with-values (lambda () (getrlimit 'nofile))
- (lambda (soft hard)
- (when (and soft (< soft 2048))
- (if hard
- (setrlimit 'nofile (min hard 2048) hard)
- (setrlimit 'nofile 2048 #f))
- (format #t
- "increased maximum number of open files from ~d to ~d~%"
- soft (if hard (min hard 2048) 2048)))))))
- (replace 'build
- (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
- (invoke "ninja" "-C" "out/Release"
- "-j" (if parallel-build?
- (number->string (parallel-job-count))
- "1")
- "chrome"
- "chromedriver")))
- (replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (exe (string-append bin "/chromium"))
- (lib (string-append out "/lib"))
- (man (string-append out "/share/man/man1"))
- (applications (string-append out "/share/applications"))
- (libs '("chrome_100_percent.pak"
- "chrome_200_percent.pak"
- "resources.pak"
- "v8_context_snapshot.bin"
-
- ;; Swiftshader ICD.
- "libvk_swiftshader.so"
- "vk_swiftshader_icd.json"
-
- ;; Chromium ships its own libGL
- ;; implementation called ANGLE.
- "libEGL.so" "libGLESv2.so"))
- (locales (string-append lib "/locales"))
- (resources (string-append lib "/resources"))
- (preferences (assoc-ref inputs "master-preferences"))
- (gtk+ (assoc-ref inputs "gtk+"))
- (xdg-utils (assoc-ref inputs "xdg-utils"))
- (sh (which "sh")))
-
- (substitute* '("chrome/app/resources/manpage.1.in"
- "chrome/installer/linux/common/desktop.template")
- (("@@MENUNAME@@") "Chromium")
- (("@@PACKAGE@@") "chromium")
- (("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
-
- (mkdir-p man)
- (copy-file "chrome/app/resources/manpage.1.in"
- (string-append man "/chromium.1"))
-
- (mkdir-p applications)
- (copy-file "chrome/installer/linux/common/desktop.template"
- (string-append applications "/chromium.desktop"))
-
- (mkdir-p lib)
- (copy-file preferences (string-append lib "/master_preferences"))
-
- (with-directory-excursion "out/Release"
- (for-each (cut install-file <> lib) libs)
- (copy-file "chrome" (string-append lib "/chromium"))
-
- (copy-recursively "locales" locales)
- (copy-recursively "resources" resources)
-
- (mkdir-p bin)
- (symlink "../lib/chromium" exe)
- (install-file "chromedriver" bin)
-
- (for-each (lambda (so)
- (install-file so (string-append lib "/swiftshader")))
- (find-files "swiftshader" "\\.so$"))
-
- (wrap-program exe
- ;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
- `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
- `("PATH" ":" prefix (,(string-append xdg-utils "/bin")))))
-
- (with-directory-excursion "chrome/app/theme/chromium"
- (for-each
- (lambda (size)
- (let ((icons (string-append out "/share/icons/hicolor/"
- size "x" size "/apps")))
- (mkdir-p icons)
- (copy-file (string-append "product_logo_" size ".png")
- (string-append icons "/chromium.png"))))
- '("24" "48" "64" "128" "256")))))))))
+ #:configure-flags
+ ;; See tools/gn/docs/cookbook.md and
+ ;; https://www.chromium.org/developers/gn-build-configuration
+ ;; for usage. Run "gn args . --list" in the Release
+ ;; directory for an exhaustive list of supported flags.
+ ;; (Note: The 'configure' phase will do that for you.)
+ #~(list "is_debug=false"
+ ;; Use the "official" release optimizations, as opposed to
+ ;; a developer build.
+ "is_official_build=true"
+ "clang_use_chrome_plugins=false"
+ "is_cfi=false" ;requires ThinLTO
+ "use_thin_lto=false" ;XXX lld segfaults
+ "chrome_pgo_phase=0"
+ "use_sysroot=false"
+ "goma_dir=\"\""
+ "enable_nacl=false"
+ "enable_nacl_nonsfi=false"
+ "use_unofficial_version_number=false"
+ "treat_warnings_as_errors=false"
+ "use_official_google_api_keys=false"
+ "disable_fieldtrial_testing_config=true"
+ "safe_browsing_mode=0"
+ "enable_mdns=false"
+ "enable_one_click_signin=false"
+ "enable_reading_list=false"
+ "enable_remoting=false"
+ "enable_reporting=false"
+ "enable_service_discovery=false"
+ "enable_vr=false"
+ "enable_widevine=false"
+ ;; Disable type-checking for the Web UI to avoid a Java dependency.
+ "enable_js_type_check=false"
+ ;; Disable code using TensorFlow until it has been scrutinized
+ ;; by the ungoogled project.
+ "build_with_tflite_lib=false"
+ ;; Avoid dependency on code formatting tools.
+ "blink_enable_generated_code_formatting=false"
+
+ ;; Define a custom toolchain that simply looks up CC, AR and
+ ;; friends from the environment.
+ "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ ;; Prefer system libraries.
+ "use_system_freetype=true"
+ "use_system_harfbuzz=true"
+ "use_system_lcms2=true"
+ "use_system_libdrm=true"
+ "use_system_libjpeg=true"
+ "use_system_libopenjpeg2=true"
+ "use_system_libpng=true"
+ "use_system_wayland_scanner=true"
+ (string-append "system_wayland_scanner_path=\""
+ (search-input-file %build-inputs
+ "/bin/wayland-scanner")
+ "\"")
+
+ "use_system_zlib=true"
+ "use_gnome_keyring=false" ;deprecated by libsecret
+ "use_pulseaudio=true"
+ "link_pulseaudio=true"
+ "icu_use_data_file=false"
+
+ ;; FIXME: Using system protobuf with "is_official_build" causes an
+ ;; invalid opcode and "protoc-gen-plugin: Plugin killed by signal 4".
+ ;;"perfetto_use_system_protobuf=true"
+
+ ;; VA-API acceleration is currently only supported on x86_64-linux.
+ #$@(if (string-prefix? "x86_64" (or (%current-target-system)
+ (%current-system)))
+ '("use_vaapi=true")
+ '())
+
+ "media_use_ffmpeg=true"
+ "media_use_libvpx=true"
+ "media_use_openh264=true"
+
+ ;; Do not artifically restrict formats supported by system ffmpeg.
+ "proprietary_codecs=true"
+ "ffmpeg_branding=\"Chrome\""
+
+ ;; WebRTC stuff.
+ "rtc_use_h264=true"
+ "rtc_use_pipewire=true"
+ "rtc_link_pipewire=true"
+ ;; Don't use bundled sources.
+ "rtc_build_json=true" ;FIXME: libc++ std::string ABI difference
+ "rtc_build_libevent=false"
+ "rtc_build_libvpx=false"
+ "rtc_build_opus=false"
+ "rtc_build_libsrtp=true" ;FIXME: fails to find headers
+ "rtc_build_usrsctp=true" ;TODO: package this
+ "rtc_build_ssl=true") ;XXX: requires BoringSSL
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-stuff
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((openjpeg (search-input-directory
+ inputs "include/openjpeg-2.4")))
+ (substitute* "third_party/pdfium/BUILD.gn"
+ ;; This include path is added by Debians openjpeg patch.
+ (("/usr/include/openjpeg-2.4") openjpeg))
+
+ (substitute*
+ '("base/process/launch_posix.cc"
+ "base/third_party/dynamic_annotations/dynamic_annotations.c"
+ "sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
+ "sandbox/linux/services/credentials.cc"
+ "sandbox/linux/services/namespace_utils.cc"
+ "sandbox/linux/services/syscall_wrappers.cc"
+ "sandbox/linux/syscall_broker/broker_host.cc")
+ (("include \"base/third_party/valgrind/") "include \"valgrind/"))
+
+ (for-each (lambda (file)
+ (substitute* file
+ ;; Fix opus include path.
+ ;; Do not substitute opus_private.h.
+ (("#include \"opus\\.h\"")
+ "#include \"opus/opus.h\"")
+ (("#include \"opus_custom\\.h\"")
+ "#include \"opus/opus_custom.h\"")
+ (("#include \"opus_defines\\.h\"")
+ "#include \"opus/opus_defines.h\"")
+ (("#include \"opus_multistream\\.h\"")
+ "#include \"opus/opus_multistream.h\"")
+ (("#include \"opus_types\\.h\"")
+ "#include \"opus/opus_types.h\"")))
+ (find-files (string-append "third_party/webrtc/modules"
+ "/audio_coding/codecs/opus")))
+
+ ;; Many files try to include ICU headers from "third_party/icu/...".
+ ;; Remove the "third_party/" prefix to use system headers instead.
+ (substitute* (find-files "chrome" "\\.cc$")
+ (("third_party/icu/source/(common|i18n)/")
+ ""))
+
+ ;; XXX: Should be unnecessary when use_system_lcms2=true.
+ (substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
+ (("include \"third_party/lcms/include/lcms2\\.h\"")
+ "include \"lcms2.h\""))
+
+ (substitute*
+ "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
+ (("include \"third_party/curl")
+ "include \"curl"))
+
+ (substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
+ "components/viz/common/resources/resource_format_utils.h"
+ "gpu/config/gpu_util.cc")
+ (("third_party/vulkan_headers/include/") ""))
+
+ (substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
+ (("include/third_party/vulkan/") "")))))
+ (add-after 'patch-stuff 'add-absolute-references
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((cups-config (search-input-file inputs "/bin/cups-config"))
+ (libnssckbi.so (search-input-file inputs
+ "/lib/nss/libnssckbi.so"))
+ (libudev.so.1 (search-input-file inputs "/lib/libudev.so.1"))
+ (libvulkan.so.1 (search-input-file inputs
+ "/lib/libvulkan.so.1"))
+ (mesa-lib (dirname (search-input-file inputs
+ "/lib/libGL.so.1"))))
+ (substitute* "printing/cups_config_helper.py"
+ (("cups_config =.*")
+ (string-append "cups_config = '" cups-config "'\n")))
+ (substitute* "crypto/nss_util.cc"
+ (("libnssckbi\\.so") libnssckbi.so))
+ (substitute* "device/udev_linux/udev1_loader.cc"
+ (("libudev\\.so\\.1") libudev.so.1))
+ (substitute* "third_party/dawn/src/dawn_native/vulkan/BackendVk.cpp"
+ (("libvulkan\\.so\\.1") libvulkan.so.1))
+ (substitute*
+ '("ui/ozone/platform/x11/gl_ozone_glx.cc"
+ "ui/ozone/common/egl_util.cc"
+ "ui/gl/init/gl_initializer_linux_x11.cc"
+ "third_party/angle/src/libANGLE/renderer/gl/glx\
+/FunctionsGLX.cpp")
+ (("libGL\\.so\\.1")
+ (string-append mesa-lib "/libGL.so.1"))
+ (("libEGL\\.so\\.1")
+ (string-append mesa-lib "/libEGL.so.1"))
+ (("libGLESv2\\.so\\.2")
+ (string-append mesa-lib "/libGLESv2.so.2"))))))
+ (add-before 'configure 'prepare-build-environment
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let ((c++ (search-input-directory (or native-inputs inputs)
+ "include/c++"))
+ (node (search-input-file (or native-inputs inputs)
+ "/bin/node")))
+ ;; Remove the default compiler from CPLUS_INCLUDE_PATH to
+ ;; prevent header conflict with the bundled libcxx.
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join
+ (delete c++
+ (string-split (getenv "CPLUS_INCLUDE_PATH")
+ #\:))
+ ":"))
+ (format #t
+ "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+ (getenv "CPLUS_INCLUDE_PATH"))
+
+ ;; Define the GN toolchain.
+ (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
+ (setenv "CC" "clang") (setenv "CXX" "clang++")
+
+ ;; TODO: pre-compile instead. Avoids a race condition.
+ (setenv "PYTHONDONTWRITEBYTECODE" "1")
+
+ ;; XXX: How portable is this.
+ (mkdir-p "third_party/node/linux/node-linux-x64")
+ (symlink (dirname node)
+ "third_party/node/linux/node-linux-x64/bin"))))
+ (replace 'configure
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ (let ((args (string-join configure-flags " ")))
+ ;; Generate ninja build files.
+ (invoke "gn" "gen" "out/Release"
+ (string-append "--args=" args))
+
+ ;; Print the full list of supported arguments as well as
+ ;; their current status for convenience.
+ (format #t "Dumping configure flags...\n")
+ (invoke "gn" "args" "out/Release" "--list"))))
+ (add-before 'build 'increase-resource-limits
+ (lambda _
+ ;; XXX: Chromiums linking step requires a lot of simultaneous file
+ ;; accesses. Having a too low ulimit will result in bogus linker
+ ;; errors such as "foo.a: error adding symbols: malformed archive".
+
+ ;; Try increasing the soft resource limit of max open files to 2048,
+ ;; or equal to the hard limit, whichever is lower.
+ (call-with-values (lambda () (getrlimit 'nofile))
+ (lambda (soft hard)
+ (when (and soft (< soft 2048))
+ (if hard
+ (setrlimit 'nofile (min hard 2048) hard)
+ (setrlimit 'nofile 2048 #f))
+ (format #t
+ "increased maximum number of open files from ~d to ~d~%"
+ soft (if hard (min hard 2048) 2048)))))))
+ (replace 'build
+ (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
+ (invoke "ninja" "-C" "out/Release"
+ "-j" (if parallel-build?
+ (number->string (parallel-job-count))
+ "1")
+ "chrome"
+ "chromedriver")))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (exe (string-append bin "/chromium"))
+ (lib (string-append out "/lib"))
+ (man (string-append out "/share/man/man1"))
+ (applications (string-append out "/share/applications"))
+ (libs '("chrome_100_percent.pak"
+ "chrome_200_percent.pak"
+ "resources.pak"
+ "v8_context_snapshot.bin"
+
+ ;; Swiftshader ICD.
+ "libvk_swiftshader.so"
+ "vk_swiftshader_icd.json"
+
+ ;; Chromium ships its own libGL
+ ;; implementation called ANGLE.
+ "libEGL.so" "libGLESv2.so"))
+ (locales (string-append lib "/locales"))
+ (resources (string-append lib "/resources"))
+ (preferences
+ ;; This file contains defaults for new user profiles.
+ #$(local-file "aux-files/chromium/master-preferences.json"))
+ (gtk+ (assoc-ref inputs "gtk+"))
+ (xdg-utils (assoc-ref inputs "xdg-utils")))
+
+ (substitute* '("chrome/app/resources/manpage.1.in"
+ "chrome/installer/linux/common/desktop.template")
+ (("@@MENUNAME@@") "Chromium")
+ (("@@PACKAGE@@") "chromium")
+ (("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
+
+ (mkdir-p man)
+ (copy-file "chrome/app/resources/manpage.1.in"
+ (string-append man "/chromium.1"))
+
+ (mkdir-p applications)
+ (copy-file "chrome/installer/linux/common/desktop.template"
+ (string-append applications "/chromium.desktop"))
+
+ (mkdir-p lib)
+ (copy-file preferences (string-append lib "/master_preferences"))
+
+ (with-directory-excursion "out/Release"
+ (for-each (cut install-file <> lib) libs)
+ (copy-file "chrome" (string-append lib "/chromium"))
+
+ (copy-recursively "locales" locales)
+ (copy-recursively "resources" resources)
+
+ (mkdir-p bin)
+ (symlink "../lib/chromium" exe)
+ (install-file "chromedriver" bin)
+
+ (for-each (lambda (so)
+ (install-file so (string-append lib "/swiftshader")))
+ (find-files "swiftshader" "\\.so$"))
+
+ (wrap-program exe
+ ;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
+ `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
+ `("PATH" ":" prefix (,(string-append xdg-utils "/bin")))))
+
+ (with-directory-excursion "chrome/app/theme/chromium"
+ (for-each
+ (lambda (size)
+ (let ((icons (string-append out "/share/icons/hicolor/"
+ size "x" size "/apps")))
+ (mkdir-p icons)
+ (copy-file (string-append "product_logo_" size ".png")
+ (string-append icons "/chromium.png"))))
+ '("24" "48" "64" "128" "256")))))))))
(native-inputs
- `(("bison" ,bison)
- ("clang" ,clang-13)
- ("gn" ,gn)
- ("gperf" ,gperf)
- ("ld-wrapper" ,lld-as-ld-wrapper)
- ("ninja" ,ninja)
- ("node" ,node-lts)
- ("pkg-config" ,pkg-config)
- ("which" ,which)
-
- ;; This file contains defaults for new user profiles.
- ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
-
- ("python-beautifulsoup4" ,python-beautifulsoup4)
- ("python-html5lib" ,python-html5lib)
- ("python" ,python-wrapper)
- ("wayland-scanner" ,wayland)))
+ (list bison
+ clang-13
+ gn
+ gperf
+ lld-as-ld-wrapper
+ ninja
+ node-lts
+ pkg-config
+ which
+ python-beautifulsoup4
+ python-html5lib
+ python-wrapper
+ wayland))
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("atk" ,atk)
- ("cups" ,cups)
- ("curl" ,curl)
- ("dbus" ,dbus)
- ("expat" ,expat)
- ("flac" ,flac)
- ("ffmpeg" ,ffmpeg)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("gdk-pixbuf" ,gdk-pixbuf)
- ("glib" ,glib)
- ("gtk+" ,gtk+)
- ("harfbuzz" ,harfbuzz-3.0)
- ("icu4c" ,icu4c)
- ("lcms" ,lcms)
- ("libevent" ,libevent)
- ("libffi" ,libffi)
- ("libjpeg-turbo" ,libjpeg-turbo)
- ("libpng" ,libpng)
- ("libva" ,libva)
- ("libvpx" ,libvpx)
- ("libwebp" ,libwebp)
- ("libx11" ,libx11)
- ("libxcb" ,libxcb)
- ("libxcomposite" ,libxcomposite)
- ("libxcursor" ,libxcursor)
- ("libxdamage" ,libxdamage)
- ("libxext" ,libxext)
- ("libxfixes" ,libxfixes)
- ("libxi" ,libxi)
- ("libxml2" ,libxml2)
- ("libxrandr" ,libxrandr)
- ("libxrender" ,libxrender)
- ("libxscrnsaver" ,libxscrnsaver)
- ("libxslt" ,libxslt)
- ("libxtst" ,libxtst)
- ("mesa" ,mesa)
- ("minizip" ,minizip)
- ("mit-krb5" ,mit-krb5)
- ("nss" ,nss)
- ("openh264" ,openh264)
- ("openjpeg" ,openjpeg) ;PDFium only
- ("opus" ,opus+custom)
- ("pango" ,pango)
- ("pciutils" ,pciutils)
- ("pipewire" ,pipewire-0.3)
- ("pulseaudio" ,pulseaudio)
- ("snappy" ,snappy)
- ("speech-dispatcher" ,speech-dispatcher)
- ("udev" ,eudev)
- ("valgrind" ,valgrind)
- ("vulkan-headers" ,vulkan-headers)
- ("vulkan-loader" ,vulkan-loader)
- ("wayland" ,wayland)
- ("xdg-utils" ,xdg-utils)))
+ (list alsa-lib
+ atk
+ cups
+ curl
+ dbus
+ expat
+ flac
+ ffmpeg
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gtk+
+ harfbuzz-3.0
+ icu4c
+ lcms
+ libevent
+ libffi
+ libjpeg-turbo
+ libpng
+ libva
+ libvpx
+ libwebp
+ libx11
+ libxcb
+ libxcomposite
+ libxcursor
+ libxdamage
+ libxext
+ libxfixes
+ libxi
+ libxml2
+ libxrandr
+ libxrender
+ libxscrnsaver
+ libxslt
+ libxtst
+ mesa
+ minizip
+ mit-krb5
+ nss
+ openh264
+ openjpeg ;PDFium only
+ opus+custom
+ pango
+ pciutils
+ pipewire-0.3
+ pulseaudio
+ snappy
+ speech-dispatcher
+ eudev
+ valgrind
+ vulkan-headers
+ vulkan-loader
+ wayland
+ xdg-utils))
(native-search-paths
(list (search-path-specification
(variable "CHROMIUM_EXTENSION_DIRECTORY")
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index f48101079e..40a3d7708a 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -23,11 +23,14 @@
(define-module (gnu packages clojure)
#:use-module (gnu packages)
#:use-module (gnu packages java)
+ #:use-module (gnu packages maven)
+ #:use-module (gnu packages readline)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system clojure)
#:use-module (ice-9 match))
@@ -118,23 +121,7 @@
(add-after 'install-license-files 'install-doc
(cut install-doc #:doc-dirs '("doc/clojure/") <...>))
(add-after 'install-doc 'install-javadoc
- (install-javadoc "target/javadoc/"))
- (add-after 'install 'make-wrapper
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (wrapper (string-append out "/bin/clojure")))
- (mkdir-p (string-append out "/bin"))
- (with-output-to-file wrapper
- (lambda _
- (display
- (string-append
- "#!"
- (which "sh")
- "\n\n"
- (assoc-ref inputs "jre") "/bin/java -jar "
- out "/share/java/clojure.jar \"$@\"\n"))))
- (chmod wrapper #o555))
- #t)))))
+ (install-javadoc "target/javadoc/")))))
(native-inputs libraries)
(home-page "https://clojure.org/")
(synopsis "Lisp dialect running on the JVM")
@@ -163,6 +150,62 @@ designs.")
license:asl2.0
license:cpl1.0)))))
+(define-public clojure-tools
+ (package
+ (name "clojure-tools")
+ (version "1.10.3.1040")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.clojure.org/install/clojure-tools-"
+ version
+ ".tar.gz"))
+ (sha256 (base32 "0xvr9nmk9q789vp32zmmzj4macv8v7y9ivnfd6lf7i8vxgg6hvgv"))
+ ;; Remove AOT compiled JAR. The other JAR only contains uncompiled
+ ;; Clojure source code.
+ (snippet
+ `(delete-file ,(string-append "clojure-tools-" version ".jar")))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:install-plan
+ '(("deps.edn" "lib/clojure/")
+ ("example-deps.edn" "lib/clojure/")
+ ("exec.jar" "lib/clojure/libexec/")
+ ("clojure" "bin/")
+ ("clj" "bin/"))
+ #:modules ((guix build copy-build-system)
+ (guix build utils)
+ (srfi srfi-1)
+ (ice-9 match))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "clojure"
+ (("PREFIX") (string-append (assoc-ref outputs "out") "/lib/clojure")))
+ (substitute* "clj"
+ (("BINDIR") (string-append (assoc-ref outputs "out") "/bin"))
+ (("rlwrap") (which "rlwrap")))))
+ (add-after 'fix-paths 'copy-tools-deps-alpha-jar
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "clojure"
+ (("\\$install_dir/libexec/clojure-tools-\\$version\\.jar")
+ (string-join
+ (append-map (match-lambda
+ ((label . dir)
+ (find-files dir "\\.jar$")))
+ inputs)
+ ":"))))))))
+ (inputs (list rlwrap
+ clojure
+ clojure-tools-deps-alpha
+ java-commons-logging-minimal))
+ (home-page "https://clojure.org/releases/tools")
+ (synopsis "CLI tools for the Clojure programming language")
+ (description "The Clojure command line tools can be used to start a
+Clojure repl, use Clojure and Java libraries, and start Clojure programs.")
+ (license license:epl1.0)))
+
(define-public clojure-algo-generic
(package
(name "clojure-algo-generic")
@@ -243,6 +286,66 @@ It supports Clojure 1.5.1 and later as well as ClojureScript.")
(home-page "https://github.com/clojure/core.match")
(license license:epl1.0))))
+(define-public clojure-data-codec
+ (package
+ (name "clojure-data-codec")
+ (version "0.1.1")
+ (home-page "https://github.com/clojure/data.codec")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "data.codec-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "192df1dmbwvf1x837mi731n9x94bdypaz18va45plzgdsh4xx6dr"))))
+ (build-system clojure-build-system)
+ (arguments
+ '(#:source-dirs '("src/main/clojure")
+ #:test-dirs '("src/test/clojure")
+ #:doc-dirs '()))
+ (native-inputs (list java-commons-codec
+ clojure-test-check))
+ (synopsis "Native codec implementations for Clojure")
+ (description "Native codec implementations for Clojure. Currently only
+base64 has been implemented. Implements the standard base64 encoding
+character set, but does not yet support automatic fixed line-length encoding.
+All operations work on either byte arrays or Input/OutputStreams. Performance
+is on par with Java implementations, e.g., Apache commons-codec.")
+ (license license:epl1.0)))
+
+(define-public clojure-data-xml
+ (package
+ (name "clojure-data-xml")
+ (version "0.2.0-alpha6")
+ (home-page "https://github.com/clojure/data.xml")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "data.xml-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08vglcapq7sd9zhw8dw1y7dcdks7f21w1pw9p05i475i3bw4cf94"))))
+ (build-system clojure-build-system)
+ (arguments
+ '(#:source-dirs '("src/main/clojure")
+ #:test-dirs '("src/test/clojure")
+ #:doc-dirs '()))
+ (propagated-inputs (list clojure-data-codec))
+ (synopsis "Clojure library for reading and writing XML data")
+ (description "@code{data.xml} is a Clojure library for reading and writing
+XML data. @code{data.xml} has the following features:
+
+Parses XML documents into Clojure data structures
+Emits XML from Clojure data structures
+No additional dependencies if using JDK >= 1.6
+Uses StAX internally
+lazy - should allow parsing and emitting of large XML documents")
+ (license license:epl1.0)))
+
(define-public clojure-instaparse
(let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e")
(version "1.4.9")) ; upstream forget to tag this release
@@ -295,6 +398,33 @@ tree.
(home-page "https://github.com/Engelberg/instaparse")
(license license:epl1.0))))
+(define-public clojure-test-check
+ (package
+ (name "clojure-test-check")
+ (version "1.1.1")
+ (home-page "https://github.com/clojure/test.check")
+ (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
+ "09jvlibnxhjv0l57y0sa7yy5in67gq4sssag77hv2d980mwdnls6"))))
+ (build-system clojure-build-system)
+ (arguments
+ '(#:source-dirs '("src/main/clojure")
+ #:test-dirs '("src/test/clojure")
+ #:doc-dirs '()))
+ (synopsis "QuickCheck for Clojure")
+ (description "@code{test.check} is a Clojure property-based testing tool
+inspired by QuickCheck. The core idea of @code{test.check} is that instead of
+enumerating expected input and output for unit tests, you write properties
+about your function that should hold true for all inputs. This lets you write
+concise, powerful tests.")
+ (license license:epl1.0)))
+
(define-public clojure-tools-macro
(package
(name "clojure-tools-macro")
@@ -341,3 +471,93 @@ tree.
"The @code{tools.cli} library provides Clojure programmers with tools to
work with command-line arguments.")
(license license:epl1.0)))
+
+(define-public clojure-tools-deps-alpha
+ (package
+ (name "clojure-tools-deps-alpha")
+ (version "0.12.1104")
+ (home-page "https://github.com/clojure/tools.deps.alpha")
+ (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
+ "174m83n5m3arai2vbg434zjibbsr3r4pp7lz3adja8lxq7g21r80"))))
+ (build-system clojure-build-system)
+ (arguments
+ `(#:source-dirs '("src/main/clojure" "src/main/resources")
+ #:test-dirs '("src/test/clojure")
+ #:doc-dirs '()
+ ;; FIXME: Could not initialize class org.eclipse.aether.transport.http.SslSocketFactory
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; FIXME: Currently, the S3 transporter depends on ClojureScript,
+ ;; which is very difficult to package due to dependencies on Java
+ ;; libraries with non-standard build systems. Instead of actually
+ ;; packaging these libraries, we just remove the S3 transporter that
+ ;; depends on them.
+ (add-after 'unpack 'remove-s3-transporter
+ (lambda _
+ (for-each delete-file
+ (list
+ (string-append
+ "src/main/clojure/clojure/"
+ "tools/deps/alpha/util/s3_aws_client.clj")
+ (string-append
+ "src/main/clojure/clojure/"
+ "tools/deps/alpha/util/s3_transporter.clj")
+ (string-append
+ "src/test/clojure/clojure/"
+ "tools/deps/alpha/util/test_s3_transporter.clj")))
+ (substitute*
+ "src/main/clojure/clojure/tools/deps/alpha/util/maven.clj"
+ (("clojure.tools.deps.alpha.util.s3-transporter")
+ "")))))))
+ (propagated-inputs (list maven-resolver-api
+ maven-resolver-spi
+ maven-resolver-impl
+ maven-resolver-util
+ maven-resolver-connector-basic
+ maven-resolver-provider
+ maven-core
+ maven-resolver-transport-http
+ maven-resolver-transport-file
+ clojure-tools-gitlibs
+ clojure-tools-cli
+ clojure-data-xml))
+ (synopsis "Clojure library supporting clojure-tools")
+ (description "This package provides a functional API for transitive
+dependency graph expansion and the creation of classpaths.")
+ (license license:epl1.0)))
+
+(define-public clojure-tools-gitlibs
+ (package
+ (name "clojure-tools-gitlibs")
+ (version "2.4.172")
+ (home-page "https://github.com/clojure/tools.gitlibs")
+ (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
+ "19d83wigmigy66f5i61a3ishg7zrlv8jngj8m9brsh9v38a0fwdr"))))
+ (build-system clojure-build-system)
+ (arguments
+ '(#:source-dirs '("src/main/clojure")
+ #:test-dirs '("src/test/clojure")
+ #:doc-dirs '()
+ ;; Tests attempt to clone git repositories from the internet.
+ #:tests? #f))
+ (synopsis "Retrieve, cache, and programmatically access git libraries")
+ (description "To access git dependencies (for example, via
+@code{tools.deps}), one must download git directories and working trees as
+indicated by git SHAs. This library provides this functionality and also
+keeps a cache of git directories and working trees that can be reused.")
+ (license license:epl1.0)))
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 9e7f54a7ec..e96a55e5b0 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -33,6 +33,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages code)
+ #:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
@@ -130,77 +131,78 @@ highlighting your own code that seemed comprehensible when you wrote it.")
(define-public global ; a global variable
(package
(name "global")
- (version "6.6.7")
+ (version "6.6.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/global/global-"
version ".tar.gz"))
(sha256
(base32
- "0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839"))))
+ "1kaphc3gml89p8dpdgh2is8hj46wj05689kxj0bmh5q759rxk4vg"))))
(build-system gnu-build-system)
- (inputs
- `(("bash" ,bash-minimal) ; for wrap-program
- ("coreutils" ,coreutils)
- ("ctags" ,universal-ctags)
- ("libltdl" ,libltdl)
- ("ncurses" ,ncurses)
- ("python-pygments" ,python-pygments)
- ("python-wrapper" ,python-wrapper)
- ("sqlite" ,sqlite)))
(arguments
- `(#:configure-flags
- (list (string-append "--with-ncurses="
- (assoc-ref %build-inputs "ncurses"))
- (string-append "--with-sqlite3="
- (assoc-ref %build-inputs "sqlite"))
- (string-append "--with-universal-ctags="
- (assoc-ref %build-inputs "ctags") "/bin/ctags")
- (string-append "--sysconfdir="
- (assoc-ref %outputs "out") "/share/gtags")
- "--localstatedir=/var" ; This needs to be a writable location.
- "--disable-static")
+ (list #:configure-flags
+ #~(list (string-append "--with-ncurses="
+ #$(this-package-input "ncurses"))
+ (string-append "--with-sqlite3="
+ #$(this-package-input "sqlite"))
+ (string-append "--with-universal-ctags="
+ #$(this-package-input "universal-ctags")
+ "/bin/ctags")
+ (string-append "--sysconfdir="
+ #$output "/share/gtags")
+ "--localstatedir=/var" ; This needs to be a writable location.
+ "--disable-static")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-globash
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((echo (string-append
- (assoc-ref inputs "coreutils") "/bin/echo")))
- (substitute* "globash/globash.in"
- (("/bin/echo") echo)))))
- (add-after 'post-install 'install-plugins
- (lambda _
- (with-directory-excursion "plugin-factory"
- (invoke "make" "install"))))
- (add-before 'install 'dont-install-to-/var
- (lambda _
- (substitute* "gozilla/Makefile"
- (("DESTDIR\\)\\$\\{localstatedir\\}") "TMPDIR)"))))
- (add-after 'install-plugins 'wrap-program
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (wrap-program
- (string-append (assoc-ref outputs "out")
- "/share/gtags/script/pygments_parser.py")
- `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))))
- (add-after 'install 'post-install
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Install the plugin files in the right place.
- (let* ((out (assoc-ref outputs "out"))
- (data (string-append out "/share/gtags"))
- (vim (string-append out "/share/vim/vimfiles/plugin"))
- (lisp (string-append out "/share/emacs/site-lisp/"
- ,(package-name this-package) "-"
- ,(package-version this-package))))
- (mkdir-p lisp)
- (mkdir-p vim)
- (rename-file (string-append data "/gtags.el")
- (string-append lisp "/gtags.el"))
- (rename-file (string-append data "/gtags.vim")
- (string-append vim "/gtags.vim"))
- (rename-file (string-append data "/gtags-cscope.vim")
- (string-append vim "/gtags-cscope.vim"))
- #t))))))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-globash
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "globash/globash.in"
+ (("/bin/echo")
+ (search-input-file inputs "bin/echo")))))
+ (add-after 'post-install 'install-plugins
+ (lambda _
+ (with-directory-excursion "plugin-factory"
+ (invoke "make" "install"))))
+ (add-before 'install 'dont-install-to-/var
+ (lambda _
+ (substitute* "gozilla/Makefile"
+ (("DESTDIR\\)\\$\\{localstatedir\\}")
+ "TMPDIR)"))))
+ (add-after 'install-plugins 'wrap-program
+ (lambda _
+ (wrap-program
+ (string-append #$output
+ "/share/gtags/script/pygments_parser.py")
+ `("GUIX_PYTHONPATH" ":" prefix
+ (,(getenv "GUIX_PYTHONPATH"))))))
+ (add-after 'install 'post-install
+ (lambda _
+ ;; Install the plugin files in the right place.
+ (let* ((data (string-append #$output "/share/gtags"))
+ (vim (string-append #$output
+ "/share/vim/vimfiles/plugin"))
+ (lisp (string-append #$output "/share/emacs/site-lisp/"
+ #$(package-name this-package) "-"
+ #$(package-version this-package))))
+ (mkdir-p lisp)
+ (mkdir-p vim)
+ (rename-file (string-append data "/gtags.el")
+ (string-append lisp "/gtags.el"))
+ (rename-file (string-append data "/gtags.vim")
+ (string-append vim "/gtags.vim"))
+ (rename-file (string-append data "/gtags-cscope.vim")
+ (string-append vim "/gtags-cscope.vim"))))))))
+ (inputs
+ (list bash-minimal ; for wrap-program
+ coreutils
+ universal-ctags
+ libltdl
+ ncurses
+ python-pygments
+ python-wrapper
+ sqlite))
(home-page "https://www.gnu.org/software/global/")
(synopsis "Cross-environment source code tag system")
(description
@@ -562,7 +564,7 @@ results and determine build stability.")
(define-public kcov
(package
(name "kcov")
- (version "39")
+ (version "40")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -571,7 +573,7 @@ results and determine build stability.")
(file-name (git-file-name name version))
(sha256
(base32
- "09wf1k4dlpdhqjjgq2bibmgy8i3z32wf0zxhd2px2dvg92m4zwqr"))))
+ "0zayhmx6s377bxmkmvl9d9vjzfbpvh1k9ba6np4zdjvjjq327xag"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
@@ -589,9 +591,9 @@ results and determine build stability.")
(list python))
(home-page "https://github.com/SimonKagstrom/kcov")
(synopsis "Code coverage tester for compiled languages, Python and Bash")
- (description "Kcov is a FreeBSD/Linux/OSX code coverage tester for compiled
-languages, Python and Bash. Kcov was originally a fork of Bcov, but has since
-evolved to support a large feature set in addition to that of Bcov.
+ (description "Kcov is a code coverage tester for compiled languages,
+Python and Bash. It was originally a fork of Bcov, but has since evolved to
+support a large feature set in addition to that of Bcov.
Kcov uses DWARF debugging information for compiled programs to make it
possible to collect coverage information without special compiler switches.")
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index a067c9cd27..26769d2626 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2496,6 +2496,7 @@ exec " gcc "/bin/" program
,@(substitute-keyword-arguments (package-arguments findutils)
((#:configure-flags flags ''())
`(append
+ ;; TODO: Figure out exactly with architectures need this.
,(if (target-64bit?)
''("TIME_T_32_BIT_OK=yes")
''())
@@ -2701,6 +2702,50 @@ exec " gcc "/bin/" program
(inputs (%boot0-inputs))
(native-inputs '()))))
+(define libstdc++-boot0-gcc7
+ ;; GCC >= 7 is needed by architectures which use C++-14 features.
+ (let ((lib (make-libstdc++ gcc-7)))
+ (package
+ (inherit lib)
+ (source (bootstrap-origin (package-source lib)))
+ (name "libstdc++-boot0")
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:implicit-inputs? #f
+
+ ;; XXX: libstdc++.so NEEDs ld.so for some reason.
+ #:validate-runpath? #f
+
+ ,@(substitute-keyword-arguments (package-arguments lib)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'unpack-gmp&co
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gmp (assoc-ref %build-inputs "gmp-source"))
+ (mpfr (assoc-ref %build-inputs "mpfr-source"))
+ (mpc (assoc-ref %build-inputs "mpc-source")))
+
+ ;; To reduce the set of pre-built bootstrap inputs, build
+ ;; GMP & co. from GCC.
+ (for-each (lambda (source)
+ (invoke "tar" "xvf" source))
+ (list gmp mpfr mpc))
+
+ ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
+ ,@(map (lambda (lib)
+ ;; Drop trailing letters, as gmp-6.0.0a unpacks
+ ;; into gmp-6.0.0.
+ `(symlink ,(string-trim-right
+ (package-full-name lib "-")
+ char-set:letter)
+ ,(package-name lib)))
+ (list gmp-6.0 mpfr mpc))))))))))
+ (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
+ ("mpfr-source" ,(bootstrap-origin (package-source mpfr)))
+ ("mpc-source" ,(bootstrap-origin (package-source mpc)))
+ ,@(%boot0-inputs)))
+ (native-inputs '()))))
+
(define gcc-boot0
(package
(inherit gcc)
@@ -2812,7 +2857,9 @@ exec " gcc "/bin/" program
("binutils-cross" ,binutils-boot0)
;; The libstdc++ that libcc1 links against.
- ("libstdc++" ,libstdc++-boot0)
+ ("libstdc++" ,(match (%current-system)
+ ("riscv64-linux" libstdc++-boot0-gcc7)
+ (_ libstdc++-boot0)))
;; Call it differently so that the builder can check whether
;; the "libc" input is #f.
@@ -3531,6 +3578,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define (%boot3-inputs)
;; 4th stage inputs.
`(("gcc" ,gcc-final)
+ ,@(if (target-riscv64?)
+ `(("gcc:lib" ,gcc-final "lib"))
+ '())
("ld-wrapper" ,ld-wrapper-boot3)
,@(alist-delete "gcc" (%boot2-inputs))))
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index 9a567f9f62..c978be75ff 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Timmy Douglas <mail@timmydouglas.com>
+;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages containers)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (guix packages)
@@ -105,7 +107,7 @@ Container Runtime fully written in C.")
(define-public conmon
(package
(name "conmon")
- (version "2.0.30")
+ (version "2.0.31")
(source
(origin
(method git-fetch)
@@ -113,24 +115,26 @@ Container Runtime fully written in C.")
(url "https://github.com/containers/conmon")
(commit (string-append "v" version))))
(sha256
- (base32 "1sxpbm01g4xak4kqwvk45gmzr6n9bjzlfp1j85wyz8rj2hg2x4rm"))
+ (base32 "1cxklcihb2i4ywli0fxafkp2gi1x831r37z7spnigaj6pzj1517w"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags (list ,(string-append "CC=" (cc-for-target))
- (string-append "PREFIX=" %output))
- ;; XXX: uses `go get` to download 50 packages, runs a ginkgo test suite
- ;; then tries to download busybox and use a systemd logging library
- ;; see also https://github.com/containers/conmon/blob/main/nix/derivation.nix
- #:tests? #f
- #:test-target "test"
- #:phases (modify-phases %standard-phases
- (delete 'configure)
- (add-after 'unpack 'set-env
- (lambda* (#:key inputs #:allow-other-keys)
- ;; when running go, things fail because
- ;; HOME=/homeless-shelter.
- (setenv "HOME" "/tmp"))))))
+ (list #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ ;; XXX: uses `go get` to download 50 packages, runs a ginkgo test suite
+ ;; then tries to download busybox and use a systemd logging library
+ ;; see also https://github.com/containers/conmon/blob/main/nix/derivation.nix
+ #:tests? #f
+ #:test-target "test"
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'set-env
+ (lambda _
+ ;; when running go, things fail because
+ ;; HOME=/homeless-shelter.
+ (setenv "HOME" "/tmp"))))))
(inputs
(list crun
glib
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 50c29b3389..1bae2966b9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -22,6 +22,9 @@
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -78,6 +81,76 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
+(define-public argagg
+ (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0"))
+ (package
+ (name "argagg")
+ (version (git-version "0.4.6" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vietjtnguyen/argagg")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+ (build-system cmake-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((name ,(package-name argagg)) (out (assoc-ref
+ outputs
+ "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share/doc"))
+ (rename-file
+ (string-append out "/share/doc/" name)
+ (string-append doc "/share/doc/" name))))))))
+ (native-inputs (list doxygen))
+ (home-page "https://github.com/vietjtnguyen/argagg")
+ (synopsis "C++11 command line argument parser")
+ (description
+ "ArgAgg is yet another C++ command line argument/option
+parser. It was written as a simple and idiomatic alternative to other
+frameworks like getopt, Boost program options, TCLAP, and others. The goal is
+to achieve the majority of argument parsing needs in a simple manner with an
+easy to use API.")
+ (license license:expat))))
+
+(define-public asmjit
+ (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+ (revision "0"))
+ (package
+ (name "asmjit")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/asmjit/asmjit")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DASMJIT_TEST=TRUE")))
+ (home-page "https://asmjit.com/")
+ (synopsis "Machine code generation for C++")
+ (description "AsmJit is a lightweight library for machine code
+generation written in C++ language. It can generate machine code for X86 and
+X86_64 architectures with the support for the whole instruction set from
+legacy MMX to the newest AVX-512 and AMX. It has a type-safe API that allows
+C++ compiler to do semantic checks at compile-time even before the assembled
+code is generated or executed. It also provides an optional register
+allocator that makes it easy to generate complex code without a significant
+development effort.")
+ (license license:zlib))))
+
(define-public range-v3
(package
(name "range-v3")
@@ -111,7 +184,7 @@ range-v3 ranges are an abstraction layer on top of iterators.")
(license:x11-style "file:///LICENSE.txt")
;; SGI STL
license:sgifreeb2.0
- ;;; LibC++ (dual-licensed)
+;;; LibC++ (dual-licensed)
license:expat
license:ncsa
;; Others
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 9c28c9bec6..ce7655e6a6 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -6247,6 +6247,27 @@ of these tests are also included.")
rules with R.")
(license license:gpl2)))
+(define-public r-leaflet-providers
+ (package
+ (name "r-leaflet-providers")
+ (version "1.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "leaflet.providers" version))
+ (sha256
+ (base32 "0yynrwv4xd5cdh49cwvfxm4ranarah9iiry2cd3b4fiihdfcg3wy"))))
+ (properties `((upstream-name . "leaflet.providers")))
+ (build-system r-build-system)
+ (home-page "https://github.com/rstudio/leaflet.providers")
+ (synopsis "Leaflet map tile providers")
+ (description
+ "This package contains third-party map tile provider information from
+Leaflet.js, to be used with the @code{leaflet} R package. Additionally,
+@code{leaflet.providers} enables users to retrieve up-to-date provider
+information between package updates.")
+ (license license:bsd-2)))
+
(define-public r-leaps
(package
(name "r-leaps")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 229c2ff623..7cd13ea8c8 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -1,6 +1,7 @@
+
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
-;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019–2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -23,6 +24,7 @@
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Jacob Hrbek <kreyren@rixotstudio.cz>
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -10760,6 +10762,30 @@ harness.")
("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
("rust-tempdir" ,rust-tempdir-0.3))))))
+(define-public rust-concat-idents-1
+ (package
+ (name "rust-concat-idents")
+ (version "1.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "concat-idents" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0bqdl6vml2ksyz6hc4xlpw3iqaagxs7xn0xinwa51ms80a390vsb"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-quote" ,rust-quote-1)
+ ("rust-syn" ,rust-syn-1))))
+ (home-page "https://github.com/DzenanJupic/concat-idents")
+ (synopsis "Concatenate multiple identifiers and use them everywhere")
+ (description
+ "This package allows concatenating multiple identifiers and using them
+everywhere.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-concolor-control-0.0.7
(package
(name "rust-concolor-control")
@@ -18271,6 +18297,24 @@ You can use this crate to turn non-blocking data structures into async or
blocking data structures.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-exitcode-1
+ (package
+ (name "rust-exitcode")
+ (version "1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "exitcode" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "14x1pgwx86x1gfc5zqgj04akr9pzg14w75d9cblc49vhnij3g1fy"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/benwilber/exitcode")
+ (synopsis "Preferred system exit codes as defined by @file{sysexits.h}")
+ (description "This package provides preferred system exit codes as defined
+by @file{sysexits.h}.")
+ (license license:asl2.0)))
+
(define-public rust-exitfailure-0.5
(package
(name "rust-exitfailure")
@@ -18727,14 +18771,14 @@ floats.")
(define-public rust-fastrand-1
(package
(name "rust-fastrand")
- (version "1.5.0")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "fastrand" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0birvh29m4x6nwjdyrmiyiypw9l52bmvk15ksdw96hjs50yyv55k"))))
+ (base32 "1ci4fcwfwkkpwd8b0zgxgvp4qf84cl53ivnp1r6cr40bd8xh97bp"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -27715,6 +27759,24 @@ nor a system allocator.")
("rust-serde-derive" ,rust-serde-derive-1)
("rust-toml" ,rust-toml-0.5))))))
+(define-public rust-lexopt-0.2
+ (package
+ (name "rust-lexopt")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "lexopt" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0w1adb1qwp9rkznq37qvwh01ckxpwcywb6ki9mlw03filyp16xfy"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/blyxxyz/lexopt")
+ (synopsis "Minimalist pedantic command line parser")
+ (description "This package provides a minimalist pedantic command line
+parser in Rust.")
+ (license license:expat)))
+
(define-public rust-libc-0.2
(package
(name "rust-libc")
@@ -40380,7 +40442,7 @@ in your code.")
(define-public rust-proc-macro2-1
(package
(name "rust-proc-macro2")
- (version "1.0.27")
+ (version "1.0.32")
(source
(origin
(method url-fetch)
@@ -40388,7 +40450,7 @@ in your code.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0f3h0zl5w5090ajmmvpmhkpr4iwqnn5rip3afacabhc657vwmn7h"))))
+ "0hqbxlvhiaybakl1gai3mgps1dxsmxricxsr2rfdrh222z0qql5s"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags '("--lib")
@@ -44685,6 +44747,33 @@ rust.")
(base32
"1b6vjfwvpcgy0q8ywywz548vhxrmhbz2sm6xyhnmj5p5xd1xfqff"))))))
+(define-public rust-rstest-0.6
+ (package
+ (name "rust-rstest")
+ (version "0.6.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rstest" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1wdd0ci0bn6fd5v5c19lhlqrpadk18fl4jzvh75b26616anlxdil"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-rustc-version" ,rust-rustc-version-0.3)
+ ("rust-syn" ,rust-syn-1))))
+ (home-page "https://github.com/la10736/rstest")
+ (synopsis "Rust fixture based test framework")
+ (description
+ "rstest uses procedural macros to help you on writing fixtures and
+table-based tests.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-rstest-0.10
(package
(name "rust-rstest")
@@ -53942,14 +54031,14 @@ browsers.")
(define-public rust-syn-1
(package
(name "rust-syn")
- (version "1.0.72")
+ (version "1.0.82")
(source
(origin
(method url-fetch)
(uri (crate-uri "syn" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "10mb1cqmq2vpl5v6qjgqqyvhgs9yf9xv9f0dbskababrzfzcvs51"))))
+ (base32 "0ncx7gg5mvd16q5xf77hgk09nwmfq0ppsn0vgc9x9jv0pg85vbwd"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -64653,15 +64742,16 @@ extended attributes.")
(define-public rust-xdg-2
(package
(name "rust-xdg")
- (version "2.2.0")
+ (version "2.4.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "xdg" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0mws8a0fr3cqk5nh7aq9lmkmhzghvasqy4mhw6nnza06l4d6i2fh"))))
+ (base32 "00sqvl6v0sjdrrmyk2671sshnjlbjdwgb1lw0f3jchbhijazw8rs"))))
(build-system cargo-build-system)
+ (arguments `(#:cargo-inputs (("rust-dirs" ,rust-dirs-3))))
(home-page "https://github.com/whitequark/rust-xdg")
(synopsis "Store and retrieve files according to XDG specification")
(description
@@ -65980,6 +66070,27 @@ variant of this library is available separately as @code{im}.")
"Generate Rust register maps (`struct`s) from SVD files")
(license (list license:expat license:asl2.0))))
+(define-public rust-xi-unicode-0.3
+ (package
+ (name "rust-xi-unicode")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "xi-unicode" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "12mvjgrhr7557cib69wm4q5s4srba27pg2df9l1zihrxgnbh0wx6"))))
+ (build-system cargo-build-system)
+ (arguments `(#:skip-build? #t))
+ (home-page "https://github.com/google/xi-editor")
+ (synopsis
+ "Unicode utilities for text editing, including a line breaking iterator")
+ (description
+ "This package provides Unicode utilities useful for text editing,
+including a line breaking iterator.")
+ (license license:asl2.0)))
+
(define-public rust-shell2batch-0.4
(package
(name "rust-shell2batch")
diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index c61342c0ba..0801c00c4f 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 c4droid <c4droid@foxmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,10 +21,14 @@
(define-module (gnu packages cybersecurity)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system python)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages engineering)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-crypto)
@@ -32,6 +37,68 @@
#:use-module (gnu packages bioinformatics) ;python-intervaltree
#:use-module (gnu packages emulators))
+(define-public blacksmith
+ (package
+ (name "blacksmith")
+ (version "0.0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/comsec-group/blacksmith")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
+ (modules '((guix build utils)))
+ (snippet `(begin
+ (delete-file-recursively "external")
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(external\\)") "")
+ (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
+ (string-append
+ "find_package(asmjit)\n"
+ "find_package(nlohmann_json)")))))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;no test-suite
+ #:imported-modules
+ ((guix build copy-build-system)
+ ,@%cmake-build-system-modules)
+ #:modules
+ (((guix build copy-build-system) #:prefix copy:)
+ (guix build cmake-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ ;; Use default C++ standard instead.
+ (("cxx_std_17") "")
+ ;; This project tries to link argagg library, which doesn't
+ ;; exist, as argagg project is a single header file.
+ (("argagg") ""))))
+ (replace 'install
+ (lambda args
+ (apply (assoc-ref copy:%standard-phases 'install)
+ #:install-plan
+ '(("." "bin" #:include ("blacksmith"))
+ ("." "lib" #:include-regexp ("\\.a$")))
+ args))))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list argagg asmjit json-modern-cxx))
+ (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
+ (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
+ (description
+ "Blacksmith is an implementation of Rowhammer fuzzer that crafts novel
+non-uniform Rowhammer access patterns based on the concepts of frequency,
+phase, and amplitude. It is able to bypass recent @acronym{TRR, Target Row
+Refresh}in-DRAM mitigations effectively and as such can trigger bit flips.")
+ (license license:expat)))
+
(define-public ropgadget
(package
(name "ropgadget")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index cafcf04448..ff81b24518 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017, 2020 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@@ -54,6 +54,7 @@
;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -510,14 +511,14 @@ mapping from string keys to string values.")
(define-public memcached
(package
(name "memcached")
- (version "1.6.12")
+ (version "1.6.13")
(source
(origin
(method url-fetch)
(uri (string-append
"https://memcached.org/files/memcached-" version ".tar.gz"))
(sha256
- (base32 "0ii3z2mhjrimc6mv5z5x6bwp1s2bbzppja4m3pnmd5zgh9gs74gj"))))
+ (base32 "1m5mhw9ybb8qcyi6hb5kwpqanqmlnz27r54ccabc4y7nhpfvl6mx"))))
(build-system gnu-build-system)
(inputs
(list libevent cyrus-sasl))
@@ -654,35 +655,93 @@ replacement for the code@{python-memcached} library.")
auto-completion and syntax highlighting.")
(license license:bsd-3)))
+(define-public python-pgspecial
+ (package
+ (name "python-pgspecial")
+ (version "1.13.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pgspecial" version))
+ (sha256
+ (base32 "00ddkf565rjcxmfml1z4mmkns1aq8x5s5g85xmnz2scln42y4irq"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-click python-sqlparse python-psycopg2))
+ (home-page "https://github.com/dbcli/pgspecial")
+ (synopsis
+ "Python implementation of PostgreSQL meta commands (backslash commands)")
+ (description
+ "This Python package provides an API to execute meta-commands (AKA
+\"special\", or \"backslash commands\") on PostgreSQL.")
+ (license license:bsd-3)))
+
+(define-public pgcli
+ (package
+ (name "pgcli")
+ (version "3.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pgcli" version))
+ (sha256
+ (base32 "1dy6yzak696107pqv83296h0xhc3ahlfaydm80593gwn37krgpkc"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-cli-helpers
+ python-click
+ python-configobj
+ python-pendulum
+ python-pgspecial
+ python-prompt-toolkit
+ python-psycopg2
+ python-pygments
+ python-setproctitle
+ python-sqlparse))
+ (native-inputs
+ (list python-ipython-sql))
+ (home-page "https://www.pgcli.com")
+ (synopsis "PostgreSQL CLI with autocompletion and syntax highlighting")
+ (description
+ "@code{pgcli} is a command line interface for PostgreSQL with
+autocompletion and syntax highlighting.")
+ (license license:bsd-3)))
+
(define-public mycli
(package
(name "mycli")
(version "1.24.1")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "mycli" version))
- (sha256
- (base32 "0rij9nw20zhqr7cqnkm8daw8b1wdc9zb6ny1ji9qz5557nz9i3bl"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "mycli" version))
+ (sha256
+ (base32 "0rij9nw20zhqr7cqnkm8daw8b1wdc9zb6ny1ji9qz5557nz9i3bl"))))
(build-system python-build-system)
(arguments
- `(#:tests? #f)) ; tests expect a running MySQL
+ '(#:tests? #f ; tests expect a running MySQL
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ ;; Permit newer versions of sqlparse.
+ (substitute* "setup.py"
+ (("<0\\.4\\.0") "<0.5.0")))))))
(propagated-inputs
- (list python-cli-helpers
- python-click
- python-configobj
- python-cryptography
- python-prompt-toolkit
- python-pyaes
- python-pygments
- python-pymysql
- python-pyperclip
- python-sqlparse))
+ (list python-cli-helpers
+ python-click
+ python-configobj
+ python-cryptography
+ python-prompt-toolkit
+ python-pyaes
+ python-pygments
+ python-pymysql
+ python-pyperclip
+ python-sqlparse))
(home-page "https://www.mycli.net")
(synopsis
- "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting")
+ "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting")
(description
- "MyCLI is a command line interface for MySQL, MariaDB, and Percona with
+ "MyCLI is a command line interface for MySQL, MariaDB, and Percona with
auto-completion and syntax highlighting.")
(license license:bsd-3)))
@@ -3052,18 +3111,6 @@ designed for efficient and high-performing database access, adapted into a
simple and Pythonic domain language.")
(license license:x11)))
-(define-public python-sqlalchemy-1.3
- (package
- (inherit python-sqlalchemy)
- (version "1.3.20")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "SQLAlchemy" version))
- (sha256
- (base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
- (propagated-inputs '())))
-
(define-public python2-sqlalchemy
(package-with-python2 python-sqlalchemy))
@@ -3091,14 +3138,14 @@ framework.")
(define-public python-sqlalchemy-utils
(package
(name "python-sqlalchemy-utils")
- (version "0.32.21")
+ (version "0.38.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy-Utils" version))
(sha256
(base32
- "1myn71dn8j74xglyh46f12sh8ywb7j0j732rzwq70kvwwnq32m73"))))
+ "1d6fq81489kqzxmk3l6f39sinw206lzs392frmpr5lsjzg9xc0cy"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; FIXME: Many tests require a running database server.
@@ -3651,13 +3698,13 @@ is designed to have a low barrier to entry.")
(define-public python-sqlparse
(package
(name "python-sqlparse")
- (version "0.4.1")
+ (version "0.4.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "sqlparse" version))
(sha256
(base32
- "1s2l0jgi1v7rk7smzb99iamasaz22apfkczsphn3ci4wh8pgv48g"))))
+ "1bkx52c2jh28c528b69qfk2ijfzw1laxx6lim7jr8fi6fh67600c"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -3685,7 +3732,8 @@ is designed to have a low barrier to entry.")
(synopsis "Non-validating SQL parser")
(description "Sqlparse is a non-validating SQL parser for Python. It
provides support for parsing, splitting and formatting SQL statements.")
- (license license:bsd-3)))
+ (license license:bsd-3)
+ (properties '((cpe-name . "sqlparse")))))
(define-public python-sql
(package
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index b2bd6c411e..9a303003d3 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
@@ -83,7 +83,7 @@ contains the archive keys used for that.")
(define-public debian-ports-archive-keyring
(package
(name "debian-ports-archive-keyring")
- (version "2020.02.02")
+ (version "2021.12.30")
(source
(origin
(method url-fetch)
@@ -92,7 +92,7 @@ contains the archive keys used for that.")
"/debian-ports-archive-keyring_" version ".tar.xz"))
(sha256
(base32
- "0746zfc3n4f77wlrd9a9a6r4mahz2cx5wdd9izg65vmn5qwamgza"))))
+ "14f9hklr8gdlp782j5ijmm0nh061zcfw9vwpr8smb7rdfzk4wk70"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; No test suite.
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 472f28494e..743447a9d5 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -74,7 +74,7 @@
(define-public diffoscope
(package
(name "diffoscope")
- (version "198")
+ (version "199")
(source
(origin
(method git-fetch)
@@ -83,7 +83,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0c4n7xl28cx5i42i8v04pv2jx2yn0n4sh14qpjx6j3z77rwxam2i"))
+ (base32 "0wy1nd52a4rzqhhdcdi3pfgrixz3w3q7qfc9mpc9zraq5cj94l7n"))
(patches
(search-patches "diffoscope-fix-llvm-test.patch"))))
(build-system python-build-system)
@@ -157,7 +157,6 @@
binwalk
python-pytest
python-chardet
- python-black
python-h5py
python-pypdf2
python-progressbar33
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 8e8ecfcc1d..1a196f4b40 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -1225,8 +1225,8 @@ and a partitioning of the heap between kinds of memory (for NUMA).")
(license license:bsd-3)))
(define-public mmc-utils
- (let ((commit "e9654ebc4a6a48642848822c4a1355a9de4958d1")
- (revision "0"))
+ (let ((commit "3969aa4804edb8aed7bcb3c958e49d0c7388b067")
+ (revision "1"))
(package
(name "mmc-utils")
(version (git-version "0.1" revision commit))
@@ -1234,12 +1234,11 @@ and a partitioning of the heap between kinds of memory (for NUMA).")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git")
+ (url "https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32
- "1dbsppsmky0r4z6kxwczrw8pih8bhc2pb61gsvs986r4xy6jr17a"))))
+ (base32 "0pvcm685x63afvp8795jd4vn4zs8psh8bs6j2yvk1kgrawpyk10g"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No test suite
@@ -1255,7 +1254,8 @@ and a partitioning of the heap between kinds of memory (for NUMA).")
(let* ((out (assoc-ref outputs "out"))
(man1 (string-append out "/share/man/man1")))
(install-file "man/mmc.1" man1)))))))
- (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git/")
+ (home-page
+ "https://www.kernel.org/doc/html/latest/driver-api/mmc/mmc-tools.html")
(synopsis "Configure MMC storage devices from userspace")
(description "mmc-utils is a command-line tool for configuring and
inspecting MMC storage devices from userspace.")
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index dc3b8ec69f..3f52f4f8db 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -126,7 +126,7 @@ client.")
python-requests
python-six
python-texttable
- python-websocket-client))
+ python-websocket-client-0.59))
(home-page "https://www.docker.com/")
(synopsis "Multi-container orchestration for Docker")
(description "Docker Compose is a tool for defining and running
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 03671ee902..207bbfcdaf 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -145,7 +145,8 @@ with Microsoft Compiled HTML (CHM) files")
(delete-file "resources/calibre-portable.bat")
(delete-file "resources/calibre-portable.sh")
#t))
- (patches (search-patches "calibre-no-updates-dialog.patch"
+ (patches (search-patches "calibre-fix-zeroconf.patch"
+ "calibre-no-updates-dialog.patch"
"calibre-remove-test-sqlite.patch" ; TODO: fix test.
"calibre-remove-test-unrar.patch"))))
(build-system python-build-system)
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index b4c952f8ae..ce21b24a28 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018–2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -376,8 +376,12 @@ to open the application in a web browser, for offline usage.")
(source
(origin
(method url-fetch)
- (uri (string-append "http://www.bipede.fr/downloads/logiciels/"
- "ToutEnClic-" version "-src.zip"))
+ (uri (list
+ ;; XXX: Upstream does not exist anymore.
+ (string-append "http://www.bipede.fr/downloads/logiciels/"
+ "ToutEnClic-" version "-src.zip")
+ (string-append "https://archive.org/download/tout-en-clic-" version
+ "-src/ToutEnClic-" version "-src.zip")))
(sha256
(base32 "0xg24p925rl5bfqsq3jb2lrkidb0f3kbmay5iyxxmjsn3ra0blyh"))))
(build-system python-build-system)
@@ -405,8 +409,7 @@ to open the application in a web browser, for offline usage.")
(mkdir-p bin)
(with-directory-excursion bin
(symlink (string-append share "/" executable ".py")
- executable)))
- #t))
+ executable)))))
(add-after 'install 'create-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -424,8 +427,7 @@ to open the application in a web browser, for offline usage.")
Terminal=false~@
Icon=toutenclic~@
Type=Application~%"
- out)))
- #t))))))
+ out)))))))))
(native-inputs
(list unzip))
(inputs
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 3f4409764f..d7f6ca6e0b 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -29,6 +29,7 @@
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
@@ -78,11 +79,18 @@ to take care of the OS-specific details when writing software that uses serial p
version ".tar.gz"))
(sha256
(base32
- "1h1zi1kpsgf6j2z8j8hjpv1q7n49i3fhqjn8i178rka3cym18265"))))
+ "1h1zi1kpsgf6j2z8j8hjpv1q7n49i3fhqjn8i178rka3cym18265"))
+ (patches
+ (search-patches "libsigrokdecode-python3.9-fix.patch"))))
(outputs '("out" "doc"))
(arguments
`(#:phases
(modify-phases %standard-phases
+ (replace 'bootstrap
+ (lambda _
+ (invoke "autoconf")
+ (invoke "aclocal")
+ (invoke "automake" "-ac")))
(add-after 'build 'build-doc
(lambda _
(invoke "doxygen")
@@ -94,7 +102,7 @@ to take care of the OS-specific details when writing software that uses serial p
"/share/doc/libsigrokdecode"))
#t)))))
(native-inputs
- (list check-0.14 doxygen graphviz pkg-config))
+ (list check-0.14 doxygen graphviz pkg-config automake autoconf))
;; libsigrokdecode.pc lists "python" in Requires.private, and "glib" in Requires.
(propagated-inputs
(list glib python))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index d343b1dc6e..fc221a2678 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2016–2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
@@ -106,6 +106,7 @@
;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
;;; Copyright © 2021 Brian Kubisiak <brian@kubisiak.com>
;;; Copyright © 2021, 2022 Taiju HIGASHI <higashi@taiju.info>
+;;; Copyright © 2022 Brandon Lucas <br@ndon.dk>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -286,7 +287,7 @@ e.g. emacs-geiser-guile for Guile.")
(define-public emacs-geiser-guile
(package
(name "emacs-geiser-guile")
- (version "0.20.1")
+ (version "0.21.1")
(source
(origin
(method git-fetch)
@@ -295,22 +296,22 @@ e.g. emacs-geiser-guile for Guile.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0bpsih99rvcjwllv631y1nz8vxymbz1x2n1l0qsljpn8g3cgrfbr"))))
+ (base32 "0fk5rr7mjmb4waiagi80dhddas5mrsgqr0flag5v5b0piblixxq6"))))
(build-system emacs-build-system)
(arguments
- '(#:include (cons "^src/" %default-include)
- #:phases
- (modify-phases %standard-phases
- (add-after 'make-autoloads 'patch-autoloads
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* (string-append
- (elpa-directory (assoc-ref outputs "out"))
- "/geiser-guile-autoloads.el")
- ;; Activating implementations fails when Geiser is not yet
- ;; loaded, so let's defer that until it is.
- (("\\(geiser-activate-implementation .*\\)" all)
- (string-append
- "(eval-after-load 'geiser-impl '" all ")"))))))))
+ (list
+ #:include #~(cons "^src/" %default-include)
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'make-autoloads 'patch-autoloads
+ (lambda _
+ (substitute* (string-append (elpa-directory #$output)
+ "/geiser-guile-autoloads.el")
+ ;; Activating implementations fails when Geiser is not yet
+ ;; loaded, so let's defer that until it is.
+ (("\\(geiser-activate-implementation .*\\)" all)
+ (string-append
+ "(eval-after-load 'geiser-impl '" all ")"))))))))
(inputs
(list guile-3.0))
(propagated-inputs
@@ -2590,14 +2591,14 @@ as a library for other Emacs packages.")
(define-public emacs-auctex
(package
(name "emacs-auctex")
- (version "13.0.15")
+ (version "13.0.16")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"auctex-" version ".tar"))
(sha256
- (base32 "1rm8s02d1mx5sw7yj65zlr07xhimnmvqav7f45nz2h8bwka02c3c"))))
+ (base32 "1r9piq4js45knw8sf73kk8jjinmx4m2mdinc98xrklnwcffw7hjf"))))
(build-system emacs-build-system)
;; We use 'emacs' because AUCTeX requires dbus at compile time
;; ('emacs-minimal' does not provide dbus).
@@ -3705,16 +3706,16 @@ kmonad's configuration files (@file{.kbd}).")
(define-public emacs-keycast
(package
(name "emacs-keycast")
- (version "1.1.1")
+ (version "1.1.3")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/tarsius/keycast.git")
+ (url "https://github.com/tarsius/keycast")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "09xr0h2ag3pzlz455gv5h915vn1dz56gqx61jx3n7fc4a794pqxw"))))
+ (base32 "0s31b3kal4j08waa2fwz5d6269wsdywb60a7h4r5vzsrr238lks3"))))
(build-system emacs-build-system)
(home-page "https://github.com/tarsius/keycast")
(synopsis "Show current command and its key in the mode line")
@@ -5057,7 +5058,7 @@ displays the priority part of a heading as your preferred string value.")
(define-public emacs-org-fragtog
(package
(name "emacs-org-fragtog")
- (version "0.4.0")
+ (version "0.4.1")
(source
(origin
(method git-fetch)
@@ -5066,7 +5067,7 @@ displays the priority part of a heading as your preferred string value.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0ra4sfy48p8pm1c7h8wlmbl68r4s0f4qc49xapvs550pm4mf3hiq"))))
+ (base32 "1912nlnk5v20szlmxr6y7chvms294z0p0hzdfgi8i3c7yrz7lmsj"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-org))
@@ -8115,28 +8116,25 @@ them easier to distinguish from other, less important buffers.")
(license license:expat)))
(define-public emacs-embark
- ;; XXX: Upstream did not tag last release. Commit hash below matches
- ;; version bump.
- (let ((commit "5ebe2dfd91868ec525ea34ffd45941c5e9ce5358"))
- (package
- (name "emacs-embark")
- (version "0.14")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/oantolin/embark")
- (commit commit)))
- (sha256
- (base32 "07siy3kxx06nklsw0aysfy0ijssqbql4v43vs60kwvzs875w4d2s"))
- (file-name (git-file-name name version))))
- (build-system emacs-build-system)
- (propagated-inputs
- (list emacs-avy emacs-consult))
- (home-page "https://github.com/oantolin/embark")
- (synopsis "Emacs mini-buffer actions rooted in keymaps")
- (description
- "This package provides a sort of right-click contextual menu for Emacs
+ (package
+ (name "emacs-embark")
+ (version "0.15")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/oantolin/embark")
+ (commit version)))
+ (sha256
+ (base32 "08wj0p3plvblbmfmn4vsanhldr2csrnm1lhk3g1nic5v26yi5l64"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ (list emacs-avy emacs-consult))
+ (home-page "https://github.com/oantolin/embark")
+ (synopsis "Emacs mini-buffer actions rooted in keymaps")
+ (description
+ "This package provides a sort of right-click contextual menu for Emacs
offering you relevant @emph{actions} to use on a @emph{target} determined by
the context.
@@ -8150,7 +8148,7 @@ get offered actions like deleting, copying, renaming, visiting in another
window, running a shell command on the file, etc. For buffers the actions
include switching to or killing the buffer. For package names the actions
include installing, removing or visiting the homepage.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-prescient
(package
@@ -8204,7 +8202,7 @@ interface.")
(define-public emacs-orderless
(package
(name "emacs-orderless")
- (version "0.6")
+ (version "0.7")
(source
(origin
(method git-fetch)
@@ -8212,7 +8210,7 @@ interface.")
(url "https://github.com/oantolin/orderless")
(commit version)))
(sha256
- (base32 "1javw5n3h3iv7f433b2ack49aka1jdpp8yxnaahzg5qbvr80hnay"))
+ (base32 "0m9nyz80j0qnn14drbgk8vn5yr7sv0z6yiz8w95ahcw2qwlgyjs7"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(arguments
@@ -8249,8 +8247,6 @@ style, or as multiple word prefixes.")
(base32 "051fjp03lj3b5kkzpdhk78g2lj37v973q0f012zld1n6937srj6h"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
- (propagated-inputs
- (list emacs-flycheck emacs-selectrum))
(home-page "https://github.com/minad/consult")
(synopsis "Consulting completing-read")
(description "This package provides various handy commands based on the
@@ -9117,33 +9113,30 @@ window layout easily.")
(license license:gpl3+)))
(define-public emacs-iedit
- ;; Last release version was in 2016.
- (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
- (revision "1"))
- (package
- (name "emacs-iedit")
- (version (git-version "0.9.9.9" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/victorhge/iedit")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
- (build-system emacs-build-system)
- (home-page "https://www.emacswiki.org/emacs/Iedit")
- (synopsis "Edit multiple regions in the same way simultaneously")
- (description
- "This package is an Emacs minor mode and allows you to edit one
+ (package
+ (name "emacs-iedit")
+ (version "0.9.9.9.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/victorhge/iedit")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02jdyrff88n69d4kadjaac38gwcv28lhiqqa93rlqzdvmgqsbwak"))))
+ (build-system emacs-build-system)
+ (home-page "https://www.emacswiki.org/emacs/Iedit")
+ (synopsis "Edit multiple regions in the same way simultaneously")
+ (description
+ "This package is an Emacs minor mode and allows you to edit one
occurrence of some text in a buffer (possibly narrowed) or region, and
simultaneously have other occurrences edited in the same way.
You can also use Iedit mode as a quick way to temporarily show only the buffer
lines that match the current text being edited. This gives you the effect of
a temporary @code{keep-lines} or @code{occur}.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-zoutline
(package
@@ -11480,7 +11473,7 @@ Lua programming language}.")
(define-public emacs-ebuild-mode
(package
(name "emacs-ebuild-mode")
- (version "1.54")
+ (version "1.55")
(source
(origin
(method url-fetch)
@@ -11489,17 +11482,17 @@ Lua programming language}.")
"ebuild-mode-" version ".tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
- (base32 "0a4j3lriphv7f11qzjxynxv9jn5vj68qdgwklpviaqvisvcgvmnh"))))
+ (base32 "1bs2s5g79vrbk8544lvp388cdbig0s121kwk0h10hif4kp56ka9w"))))
(build-system emacs-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "make" "ebuild-mode.info")
- (install-file "ebuild-mode.info"
- (string-append (assoc-ref outputs "out")
- "/share/info")))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-doc
+ (lambda _
+ (invoke "make" "ebuild-mode.info")
+ (install-file "ebuild-mode.info"
+ (string-append #$output "/share/info")))))))
(native-inputs
(list texinfo))
(home-page "https://devmanual.gentoo.org")
@@ -13840,13 +13833,13 @@ containing words from the Rime project.")
(define-public emacs-pyim
(package
(name "emacs-pyim")
- (version "4.0.3")
+ (version "4.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
(sha256
- (base32 "110d9d8xglnyv0cn0slwk3msgqq8rs01xq2qmx5ya7i2v77gd5ql"))))
+ (base32 "1q4b3y72gbkl5z31brlnjqjl30lgqm2d1zlqrbkqnnfy5hjgazk9"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-async emacs-pyim-basedict emacs-popup emacs-posframe
@@ -13904,14 +13897,14 @@ methods from a given list.")
(define-public emacs-posframe
(package
(name "emacs-posframe")
- (version "1.1.5")
+ (version "1.1.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"posframe-" version ".tar"))
(sha256
- (base32 "1kyd3r926hhs03mmpyvbjjyqcbvqrxk62rrscgfyl7rqi9ar56i0"))))
+ (base32 "0aqbvgsvkhd174mb3vv9bszw7iawnf6nsqjzlwzgv1z2hrxb27h2"))))
(build-system emacs-build-system)
;; emacs-minimal does not include the function font-info.
(arguments
@@ -14015,7 +14008,7 @@ which code derived from Kelvin H's org-page.")
(define-public emacs-meow
(package
(name "emacs-meow")
- (version "1.2.1")
+ (version "1.3.0")
(source
(origin
(method git-fetch)
@@ -14024,7 +14017,7 @@ which code derived from Kelvin H's org-page.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "048y1sgsl7amcsq8pxw9m2fws1zcjwbsqs1lnsz30dx6qasdmjf1"))))
+ (base32 "082f013f8gbd67s6q9636lqhlhwlbg6z6n7icrqfj9x6671phwgn"))))
(build-system emacs-build-system)
(home-page "https://github.com/meow-edit/meow")
(synopsis "Yet another modal editing on Emacs")
@@ -14437,14 +14430,14 @@ Emacs.")
(define-public emacs-eglot
(package
(name "emacs-eglot")
- (version "1.7")
+ (version "1.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"eglot-" version ".tar"))
(sha256
- (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
+ (base32 "1n04jnf3wwpxafrzfd02l53wf90brjc8p835f84k0n0rjxin99k5"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-eldoc emacs-jsonrpc emacs-project))
@@ -14553,6 +14546,30 @@ running tests easier.")
(description "This package provides a simple testing library for Emacs.")
(license license:gpl3+)))
+(define-public emacs-org-transclusion
+ (package
+ (name "emacs-org-transclusion")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nobiot/org-transclusion")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0qvc8f4i44d8mgkzfi9yld664cmapkbmjv4bf0l8va417ck5sm92"))))
+ (build-system emacs-build-system)
+ (home-page "https://nobiot.github.io/org-transclusion/")
+ (synopsis "Enable transclusion with Org Mode")
+ (description "Org-transclusion lets you insert a copy of text content via
+a file link or ID link within an Org file. It lets you have the same content
+present in different buffers at the same time without copy-and-pasting it.
+Edit the source of the content, and you can refresh the transcluded copies to
+the up-to-date state. Org-transclusion keeps your files clear of the
+transcluded copies, leaving only the links to the original content.")
+ (license license:gpl3+)))
+
(define-public emacs-disable-mouse
(package
(name "emacs-disable-mouse")
@@ -14662,14 +14679,14 @@ highlighting.")
(define-public emacs-jsonrpc
(package
(name "emacs-jsonrpc")
- (version "1.0.14")
+ (version "1.0.15")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
- "jsonrpc-" version ".el"))
+ "jsonrpc-" version ".tar"))
(sha256
- (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6"))))
+ (base32 "1hx378rg12jz2zm105cvrqk0nqyzsn04l59d903l98d6lbd96rsw"))))
(build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/jsonrpc.html")
(synopsis "JSON-RPC library")
@@ -15078,7 +15095,7 @@ library.")
(build-system emacs-build-system)
(arguments
`(#:emacs ,emacs)) ;need libxml support
- (inputs
+ (propagated-inputs
(list emacs-plz emacs-ts))
(home-page "https://github.com/alphapapa/ement.el")
(synopsis "Matrix client for Emacs")
@@ -21720,7 +21737,7 @@ source code.")
(define-public emacs-rustic
(package
(name "emacs-rustic")
- (version "2.4")
+ (version "2.5")
(source
(origin
(method git-fetch)
@@ -21729,7 +21746,7 @@ source code.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1w7db1d712rjw55prb3kdcag4z1skk56837q1ig9d2bj4mkhqa2s"))))
+ (base32 "1jx8gzcm9ka2chpq51jx4mfa12wqrj2dsrpxwylfcb9qkqjncbn5"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-dash
@@ -23345,7 +23362,7 @@ according to their use.")
(define-public emacs-dtrt-indent
(package
(name "emacs-dtrt-indent")
- (version "1.4")
+ (version "1.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -23354,7 +23371,7 @@ according to their use.")
(file-name (git-file-name name version))
(sha256
(base32
- "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"))))
+ "1kad2inc9k2z65if26vfiw098yklzxdx9fw8a6yicb87jgc1cz36"))))
(build-system emacs-build-system)
(home-page "https://github.com/jscheid/dtrt-indent")
(synopsis "Minor mode that guesses the indentation offset")
@@ -26519,29 +26536,27 @@ color. Designed for 256-color terminals. Comes in light and dark!")
(license license:gpl3+))))
(define-public emacs-spacemacs-theme
- (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
- (revision "1"))
- (package
- (name "emacs-spacemacs-theme")
- (version (git-version "0" revision commit)) ;no release yet
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/nashamri/spacemacs-theme")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
- (build-system emacs-build-system)
- (home-page "https://github.com/nashamri/spacemacs-theme")
- (synopsis
- "Light and dark theme for spacemacs that supports GUI and terminal")
- (description
- "Spacemacs theme is an Emacs color theme that started as
+ (package
+ (name "emacs-spacemacs-theme")
+ (version "0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nashamri/spacemacs-theme")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15l9hb8f08nkxsaj8pxbg2mip4pp2msnrl0nvlq22zg40gh7pqsn"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/nashamri/spacemacs-theme")
+ (synopsis
+ "Light and dark theme for spacemacs that supports GUI and terminal")
+ (description
+ "Spacemacs theme is an Emacs color theme that started as
a theme for Spacemacs. The theme comes with dark and light variants
and it should work well with 256 color terminals.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-elixir-mode
(package
@@ -28417,7 +28432,7 @@ snippets for Emacs.")
(define-public emacs-org-roam
(package
(name "emacs-org-roam")
- (version "2.1.0")
+ (version "2.2.0")
(source
(origin
(method git-fetch)
@@ -28426,58 +28441,55 @@ snippets for Emacs.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "092xn0sqc7b7f6pdf7m6c3giqqbh6fq02mfz8qrg0wmx4ds1isqp"))))
+ (base32 "0q3nhw05wnqh1qgggxsj8wki4ihciqlkic2x7qbcsskjqm73j1r7"))))
(build-system emacs-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; Move the extensions source files to the top level, which is included in
- ;; the EMACSLOADPATH.
- (add-after 'unpack 'move-source-files
- (lambda _
- (let ((el-files (find-files "./extensions" ".*\\.el$")))
- (for-each (lambda (f)
- (rename-file f (basename f)))
- el-files))
- #t))
- (add-after 'move-source-files 'patch-exec-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (make-file-writable "org-roam-graph.el")
- (emacs-substitute-variables "org-roam-graph.el"
- ("org-roam-graph-executable"
- (string-append (assoc-ref inputs "graphviz")
- "/bin/dot")))))
- (add-after 'install 'install-image
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (install-file "doc/images/org-ref-citelink.png"
- (string-append out "/share/info/images")))))
- (add-after 'install-image 'make-info
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (with-directory-excursion "doc"
- (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
- (install-file "org-roam.info"
- (string-append out "/share/info")))))))))
- (inputs
- (list graphviz))
- (native-inputs
- (list texinfo))
- (propagated-inputs
- (list emacs-dash
- emacs-emacsql-sqlite3
- emacs-f
- emacs-magit
- emacs-org
- 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
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Move the extensions source files to the top level, which
+ ;; is included in the EMACSLOADPATH.
+ (add-after 'unpack 'move-source-files
+ (lambda _
+ (let ((el-files (find-files "./extensions" ".*\\.el$")))
+ (for-each (lambda (f)
+ (rename-file f (basename f)))
+ el-files))))
+ (add-after 'move-source-files 'patch-exec-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (make-file-writable "org-roam-graph.el")
+ (emacs-substitute-variables "org-roam-graph.el"
+ ("org-roam-graph-executable"
+ (search-input-file inputs "/bin/dot")))))
+ (add-after 'install 'install-image
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "doc/images/org-ref-citelink.png"
+ (string-append #$output "/share/info/images"))))
+ (add-after 'install-image 'make-info
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion "doc"
+ (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
+ (install-file "org-roam.info"
+ (string-append #$output "/share/info"))))))))
+ (inputs
+ (list graphviz))
+ (native-inputs
+ (list texinfo))
+ (propagated-inputs
+ (list emacs-dash
+ emacs-emacsql-sqlite3
+ emacs-f
+ emacs-magit
+ emacs-org
+ 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
@@ -29737,3 +29749,23 @@ Unlike Emacs' generic ASM mode, it understands NASM-specific syntax.")
wraps GNU Global calls and integration to editor using this API with
project.el and xref.el.")
(license license:gpl3+))))
+
+(define-public emacs-fennel-mode
+ (package
+ (name "emacs-fennel-mode")
+ (version "0.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/technomancy/fennel-mode")
+ (commit version)))
+ (sha256
+ (base32 "0dwas3ivhxdyw6njkcadc8c17cirq325cmby04qls8zkmrvlil1w"))))
+ (build-system emacs-build-system)
+ (home-page "https://gitlab.com/technomancy/fennel-mode")
+ (synopsis "Emacs major-mode for editing Fennel code")
+ (description
+ "Fennel mode provides font-lock, indentation, navigation, and REPL for
+ Fennel code within Emacs.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index ea1a585f0f..f7573618b9 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -618,19 +618,17 @@ language.")
(("-DPKGBLDDATE=") "-DDISABLED_PKGBLDDATE="))
(patch-shebang "bootstrap")
(invoke "./bootstrap" "nosubmodule")))
- (add-after 'autoreconf 'change-udev-group
+ (add-after 'unpack 'change-udev-group
(lambda _
(substitute* "contrib/60-openocd.rules"
- (("plugdev") "dialout"))
- #t))
+ (("plugdev") "dialout"))))
(add-after 'install 'install-udev-rules
(lambda* (#:key outputs #:allow-other-keys)
(install-file "contrib/60-openocd.rules"
(string-append
(assoc-ref outputs "out")
- "/lib/udev/rules.d/"))
- #t)))))
- (home-page "http://openocd.org")
+ "/lib/udev/rules.d/")))))))
+ (home-page "https://openocd.org/")
(synopsis "On-Chip Debugger")
(description "OpenOCD provides on-chip programming and debugging support
with a layered architecture of JTAG interface and TAP support.")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index d1932f54bc..638e8e2ebc 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -395,7 +395,7 @@ older games.")
;; This is not a patch staging area for DOSBox, but an unaffiliated fork.
(package
(name "dosbox-staging")
- (version "0.78.0")
+ (version "0.78.1")
(source
(origin
(method git-fetch)
@@ -404,7 +404,7 @@ older games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1zwrfc0mdqh3f2xj91iny8awcghdh6ql445ic70g5yzr1i303pgg"))))
+ (base32 "16byip1j9ckq0ik7ilrj0fc9dal3495s48xd21drpbb8q9jwb342"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 2c7d623d0b..d27ad677bb 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -23,7 +23,7 @@
;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
-;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
@@ -1137,7 +1137,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0gyqxryda273hjn2rv8dha461j9bjh054y5dlpiw1wiha65lrf9i"))))
+ "0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
@@ -1154,7 +1154,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "1szcin52fcsyb55bj7xq7lz6ig187dpz3lk7blwab7b9c4dn3c3y"))))
+ "12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
@@ -1171,7 +1171,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "1a8xfcbdbb4ylrb5m7n2jjk9kwvgmlx1pmnn2cwj327a2b3m4jjs"))))
+ "1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g"))))
(synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and
worksheet templates.")))
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index dab47fc0d7..5c08662f05 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -273,14 +273,14 @@ Accounting.")
(define-public homebank
(package
(name "homebank")
- (version "5.5.3")
+ (version "5.5.4")
(source (origin
(method url-fetch)
(uri (string-append "http://homebank.free.fr/public/homebank-"
version ".tar.gz"))
(sha256
(base32
- "14qhv79a2waqzmf6l571wklgwq8j1pkmjvzkj5vhh44nia8hfdh7"))))
+ "0rapdqv2j61cj2jzfk0fiby3na4k5g5i7shkqbjhld4rl2y6j1hd"))))
(build-system glib-or-gtk-build-system)
(native-inputs
(list pkg-config intltool))
@@ -1250,16 +1250,25 @@ Luhn and family of ISO/IEC 7064 check digit algorithms.")
(arguments
;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required
;; positional argument: 'value'".
- `(#:tests? #f))
+ `(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ (substitute* "setup.py"
+ (("mnemonic>=0\\.19,<0.20")
+ "mnemonic>=0.19")))))))
(propagated-inputs
- `(("aiohttp" ,python-aiohttp)
- ("attrs" ,python-attrs)
- ("base58" ,python-base58)
- ("jsonschema" ,python-jsonschema)
- ("libnacl" ,python-libnacl)
- ("pyaes" ,python-pyaes)
- ("pylibscrypt" ,python-pylibscrypt)
- ("pypeg2" ,python-pypeg2)))
+ (list python-aiohttp
+ python-attrs
+ python-base58
+ python-jsonschema
+ python-libnacl
+ python-pyaes
+ python-pylibscrypt
+ python-graphql-core
+ python-mnemonic
+ python-websocket-client
+ python-pypeg2))
(home-page "https://git.duniter.org/clients/python/duniterpy")
(synopsis "Python implementation of Duniter API")
(description "@code{duniterpy} is an implementation of
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 4517e03cb3..594596d6ad 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -199,7 +199,7 @@ by the b43-open driver of Linux-libre.")
(define-public eg25-manager
(package
(name "eg25-manager")
- (version "0.4.1")
+ (version "0.4.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -208,7 +208,7 @@ by the b43-open driver of Linux-libre.")
(file-name (git-file-name name version))
(sha256
(base32
- "1h4c4ndcnh88jn65h1kycxkjrydwwwh3irkxvpaxb6ry4wpc45r0"))))
+ "1czq2yi852aqkdnrxdifzcq669bdvlm7j40xivxq77jq04fggpmf"))))
(build-system meson-build-system)
(native-inputs (list curl
`(,glib "bin") pkg-config))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index df1446380f..e39b441020 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -42,6 +42,8 @@
;;; Copyright © 2021 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2021 Taiju HIGASHI <higashi@taiju.info>
+;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1039,42 +1041,82 @@ work well in user interface (UI) environments.")
Sans Pro family.")
(license license:silofl1.1)))
-(define-public font-fira-mono
- (package
- (name "font-fira-mono")
- (version "3.206")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://carrois.com/downloads/fira_mono_3_2/"
- "FiraMonoFonts"
- (string-replace-substring version "." "")
- ".zip"))
- (sha256
- (base32
- "1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi"))))
- (build-system font-build-system)
- (home-page "https://mozilla.github.io/Fira/")
- (synopsis "Mozilla's monospace font")
- (description "This is the typeface used by Mozilla in Firefox OS.")
- (license license:silofl1.1)))
-
(define-public font-fira-sans
+ ;; Fira Sans v4.203 (which corresponds to Fira Mono v3.206) is the final
+ ;; version to include UFO sources. It is the same version packaged by other
+ ;; notable distributors, including Google Fonts. Note that the "reserved
+ ;; font name" was removed by the copyright holders.
+ ;;
+ ;; The upstream release includes a "Fira Code" which "is Fira Mono 3.206
+ ;; with less Line Space (1.0) – does not include programming ligatures". We
+ ;; do not package that: our 'font-fira-code' package (like e.g. Debian's
+ ;; "fonts-firacode") is the much better known Fira Code font by Nikita
+ ;; Prokopov, which is an older, independent adaptation of Fira Mono. For the
+ ;; historical relationship between them, see:
+ ;; https://github.com/mozilla/Fira/issues/218
+ ;;
+ ;; For a lengthy discussion of the available sources and versions,
+ ;; see: https://github.com/LiberalArtist/FiraSans/
+ ;;
+ ;; See also:
+ ;; - https://github.com/mozilla/Fira/pull/219
+ ;; - https://github.com/bBoxType/FiraSans/issues/4#issuecomment-695833327
(package
(name "font-fira-sans")
- (version "4.202")
+ (version "4.203")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/mozilla/Fira")
- (commit version)))
+ (url "https://github.com/bBoxType/FiraSans")
+ (commit "a606927401bcc3951587339fee53aa882856b51b")))
(file-name (git-file-name name version))
(sha256
(base32
- "116j26gdj5g1r124b4669372f7490vfjqw7apiwp2ggl0am5xd0w"))))
+ "1r9kb7v9jg83nnxwkl6gx9ix1rng3ksr7v33qrm46qb4fhwsyc2n"))))
(build-system font-build-system)
+ (arguments
+ `(#:modules
+ ((ice-9 match)
+ (ice-9 regex)
+ (guix build utils)
+ (guix build font-build-system))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda* (#:key outputs #:allow-other-keys)
+ (define-values (pkg-name _version)
+ (package-name->name+version
+ (strip-store-file-name (assoc-ref outputs "out"))))
+ (define variant
+ (string-capitalize
+ (match:substring (string-match "fira-([a-z]+)" pkg-name) 1)))
+ (match (find-files "." (format #f "^Fira_~a_[0-9]" variant)
+ #:directories? #t)
+ ((dir)
+ (chdir dir))))))))
+ ;; While the repository has moved,
+ ;; this specimen still works well as the home-page:
(home-page "https://mozilla.github.io/Fira/")
- (synopsis "Mozilla's Fira Sans Font")
- (description "This is the typeface used by Mozilla in Firefox OS.")
+ (synopsis
+ "Humanist sans-serif with numerous weights emphasizing legibility")
+ (description "Fira Sans is a humanist sans-serif typeface with an emphasis
+on legibility, commissioned by Mozilla from Erik Spiekermann and Ralph du
+Carrois. The large family includes 2,709 glyphs in normal, condensed, and
+compressed cuts at 11 weights (plus 6 experimental weights), each with
+corresponding italics.
+
+The package @code{font-fira-mono} provides a corresponding monospace cut.")
+ (license license:silofl1.1)))
+
+(define-public font-fira-mono
+ (package
+ (inherit font-fira-sans)
+ (name "font-fira-mono")
+ (version "3.206")
+ (synopsis "Monospace cut of Fira Sans")
+ (description
+ "Fira Mono is a monospace cut of Fira Sans (see @code{font-fira-sans}).
+It includes regular, medium, and bold weights.")
(license license:silofl1.1)))
(define-public font-fira-go
@@ -1095,30 +1137,41 @@ Sans Pro family.")
(synopsis "Multilingual extension of the Fira Sans font family")
(description "FiraGO is a multilingual extension of the Fira Sans font
family. Based on the Fira Sans 4.3 glyph set, FiraGO adds support for the
-Arabic, Devanagari, Georgian, Hebrew and Thai scripts.")
+Arabic, Devanagari, Georgian, Hebrew and Thai scripts.
+
+Note that FiraGO does not include corresponding source.")
+ ;; See:
+ ;; - https://github.com/bBoxType/FiraGO/issues/42
+ ;; - https://github.com/bBoxType/FiraSans/issues/4#issuecomment-699882058
+ ;; For further discussion, see comments on font-fira-sans.
(license license:silofl1.1)))
(define-public font-fira-code
(package
(name "font-fira-code")
- (version "5.2")
+ (version "6.2")
(source
(origin
+ ;; changing to git-fetch would require building from source
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/tonsky/FiraCode/releases/"
"download/" version
"/Fira_Code_v" version ".zip"))
(sha256
- (base32 "1zayrb6k0gd7xdvx7yx44dpip767q0bzhqwf4j6nf8nx02z746jj"))))
+ (base32 "0y9y7snyrr30z75kxz2zgh6q6hizcbzsf41xv6gxh97bm1dr2j89"))))
(build-system font-build-system)
- (home-page "https://mozilla.github.io/Fira/")
+ ;; This font began as an independent derived work of Fira Mono.
+ ;; It was never affiliated with Mozilla.
+ ;; See comments on font-fira-sans for further discussion.
+ (home-page "https://github.com/tonsky/FiraCode")
(synopsis "Monospaced font with programming ligatures")
(description
- "Fira Code is an extension of the Fira Mono font containing a set of ligatures
-for common programming multi-character combinations. This is just a font rendering
-feature: underlying code remains ASCII-compatible. This helps to read and understand
-code faster. For some frequent sequences like .. or //, ligatures allow us to
-correct spacing.")
+ "Fira Code is a monospace font by Nikita Prokopov featuring ligatures for
+common programming multi-character combinations. It began as an extension of
+Fira Mono. The ligatures are just a font rendering feature: underlying code
+remains ASCII-compatible. They are designed to help people to read and
+understand code faster. For some frequent sequences like @code{..} or
+@code{//}, ligatures are used to simulate proportional spacing.")
(license license:silofl1.1)))
(define-public font-awesome
@@ -1833,6 +1886,25 @@ formatting.")
(home-page "https://madmalik.github.io/mononoki/")
(license license:silofl1.1)))
+(define-public font-plemoljp
+ (package
+ (name "font-plemoljp")
+ (version "1.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/yuru7/PlemolJP/releases/download/"
+ "v" version "/PlemolJP_v" version ".zip"))
+ (sha256
+ (base32
+ "03cwzkqg09c87lmsx9xfzdrlgjml93bhhp1dqq3qkpdfww30wkaw"))))
+ (build-system font-build-system)
+ (home-page "https://github.com/yuru7/PlemolJP")
+ (synopsis "Plex Mono Language JP")
+ (description "PlemolJP (Plex Mono Language JP) is a Japanese programming
+font that is a composite of IBM Plex Mono and IBM Plex Sans JP.")
+ (license license:silofl1.1)))
+
(define-public font-public-sans
(package
(name "font-public-sans")
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 90f958223b..3b2938aff0 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -26,6 +26,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
@@ -97,16 +98,18 @@ formal verification.")
(define-public iverilog
(package
(name "iverilog")
- (version "10.3")
+ (version "11.0")
(source (origin
(method url-fetch)
(uri
- (string-append "ftp://ftp.icarus.com/pub/eda/verilog/v10/"
+ (string-append "ftp://ftp.icarus.com/pub/eda/verilog/v11/"
"verilog-" version ".tar.gz"))
(sha256
(base32
- "1vv88ckvfwq7mrysyjnilsrcrzm9d173kp9w5ivwh6rdw7klbgc6"))))
+ "1mamlrkpb2gb00g7xdddaknrvwi4jr4ng6cfjhwngzk3ddhqaiym"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list (string-append "CC=" ,(cc-for-target)))))
(native-inputs
(list flex bison ghostscript)) ; ps2pdf
(home-page "http://iverilog.icarus.com/")
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 7de53ef3a2..818d9966dd 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2228,7 +2229,7 @@ fallback to generic Systray support if none of those are available.")
(build-system meson-build-system)
(arguments
`(#:configure-flags
- (list "-Dbackends=gtk4,qt5"
+ (list "-Dbackends=gtk4,gtk3,qt5"
"-Ddocs=false"))) ; requires unpackaged gi-docgen
(native-inputs
(list pkg-config
@@ -2422,6 +2423,33 @@ remote-desktop @code{xdg-desktop-portal} interfaces for wlroots based
compositors.")
(license license:expat)))
+(define-public poweralertd
+ (package
+ (name "poweralertd")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~kennylevinsen/poweralertd")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "19rw9q4pcqw56nmzjfglfikzx5wwjl4n08awwdhg0jy1k0bm3dvp"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:configure-flags '("-Dman-pages=enabled")))
+ (native-inputs
+ (list scdoc pkg-config bash-minimal))
+ (inputs
+ (list elogind))
+ (home-page "https://sr.ht/~kennylevinsen/poweralertd")
+ (synopsis "Power alert daemon")
+ (description "poweralertd is a daemon that watches for UPower events and
+notifies the user using any notification daemon implementing
+@code{org.freedesktop.Notifications}.")
+ (license license:gpl3+)))
+
(define-public waypipe
(package
(name "waypipe")
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 9744b3ec23..f417fae8d7 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1218,7 +1218,7 @@ to create fully featured games and multimedia programs in the python language.")
(define-public python-pygame-sdl2
(let ((real-version "2.1.0")
- (renpy-version "7.4.10"))
+ (renpy-version "7.4.11"))
(package
(inherit python-pygame)
(name "python-pygame-sdl2")
@@ -1228,7 +1228,7 @@ to create fully featured games and multimedia programs in the python language.")
(method url-fetch)
(uri (string-append "https://www.renpy.org/dl/" renpy-version
"/pygame_sdl2-" version ".tar.gz"))
- (sha256 (base32 "0m0asrr722a4v24fm8199b0c53igagylay8bn9bz9rmc0r4v8si4"))
+ (sha256 (base32 "0nxvca16299jx6sp0ys29rqixcs21ymhqwjfkbchhss0yar7qjgz"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1273,13 +1273,13 @@ developed mainly for Ren'py.")
(define-public python2-renpy
(package
(name "python2-renpy")
- (version "7.4.10")
+ (version "7.4.11")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.renpy.org/dl/" version
"/renpy-" version "-source.tar.bz2"))
- (sha256 (base32 "1yngs2kh1l8micg28mcp9580qsvgq3aa8bkhv2xqfkg9qqrbr8y4"))
+ (sha256 (base32 "0zkhg2sd2hglm9dkansf4h8sq7lm7iqslzl763ambp4kyfdvd07q"))
(modules '((guix build utils)))
(patches
(search-patches
@@ -1321,9 +1321,8 @@ developed mainly for Ren'py.")
;; named "setup.py".
(with-directory-excursion "module"
(apply (assoc-ref %standard-phases 'build) args))
- ;; the above causes renpy.__init__ to be compiled but does not
- ;; compile anything else, hence we do that here
- (delete-file "renpy/__init__.pyc")
+ ;; The above only builds the cython modules, but nothing else,
+ ;; so we do that here.
(invoke "python" "-m" "compileall" "renpy")
#t))
(replace 'install
@@ -1449,70 +1448,17 @@ are only used to bootstrap it.")
;; `-- Super Awesome Game.sh
(let* ((out (assoc-ref outputs "out"))
(bin/renpy (string-append out "/bin/renpy")))
- (mkdir-p (string-append out "/bin"))
(copy-recursively "renpy/common"
(string-append out "/share/renpy/common"))
(copy-recursively "gui"
(string-append out "/share/renpy/gui"))
- (call-with-output-file bin/renpy
- (lambda (port)
- (format port "#!~a/bin/python2~%"
- (assoc-ref inputs "python2"))
- (format port "
-from __future__ import print_function
-
-import os
-import sys
-import warnings
-
-def path_to_common(renpy_base):
- return renpy_base + \"/common\"
-
-def path_to_saves(gamedir, save_directory=None):
- import renpy # @UnresolvedImport
-
- if save_directory is None:
- save_directory = renpy.config.save_directory
- save_directory = renpy.exports.fsencode(save_directory)
-
- if not save_directory:
- return gamedir + \"/saves\"
-
- return os.path.expanduser(\"~~/.renpy/\" + save_directory)
-
-def path_to_renpy_base():
- return \"~a\"
-
-def main():
- renpy_base = path_to_renpy_base()
- try:
- import renpy.bootstrap
- import renpy.arguments
- except ImportError:
- print(\"\"\"Could not import renpy.bootstrap.
-Please ensure you decompressed Ren'Py correctly, preserving the directory
-structure.\"\"\", file=sys.stderr)
- raise
-
- args = renpy.arguments.bootstrap()
- if not args.basedir:
- print(\"\"\"This Ren'py requires a basedir to launch.
-The basedir is the directory, in which .rpy files live -- usually the 'game'
-subdirectory of a game packaged by Ren'py.
-
-If you want the Ren'py launcher, use renpy-launcher instead.\"\"\",
- file=sys.stderr)
- sys.exit()
-
- renpy.bootstrap.bootstrap(renpy_base)
-
-if __name__ == \"__main__\":
- main()
-"
- (string-append out "/share/renpy"))))
- (chmod bin/renpy #o755)
- #t)))
+ (mkdir-p (string-append out "/bin"))
+ (copy-file (assoc-ref inputs "renpy.in") bin/renpy)
+ (substitute* bin/renpy
+ (("@PYTHON@") (search-input-file inputs "bin/python2"))
+ (("@RENPY_BASE@") (string-append out "/share/renpy")))
+ (chmod bin/renpy #o755))))
(add-after 'install 'install-games
(lambda* (#:key outputs #:allow-other-keys)
@@ -1566,7 +1512,8 @@ if __name__ == \"__main__\":
inputs))))))))
#t))))))
(inputs
- `(("python2-renpy" ,python2-renpy)
+ `(("renpy.in" ,(search-auxiliary-file "renpy/renpy.in"))
+ ("python2-renpy" ,python2-renpy)
("python2-tkinter" ,python-2 "tk")
("python2" ,python-2) ; for ‘fix-commands’ and ‘wrap’
("xdg-utils" ,xdg-utils)))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 0f965b120d..8da4989bf1 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -690,14 +690,14 @@ pyproj, Rtree, and Shapely.")
(define-public python-geopandas
(package
(name "python-geopandas")
- (version "0.9.0")
+ (version "0.10.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "geopandas" version))
(sha256
(base32
- "02k389zyyjv51gd09c92vlr83sv46awdq0066jgh5i24vjs2m5v3"))))
+ "1nvim2i47ap1zdwy6kxydskf1cir5g4ij8124wvmrqij0zklggzg"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -1556,7 +1556,7 @@ to the OSM opening hours specification.")
(define-public josm
(package
(name "josm")
- (version "18303")
+ (version "18360")
(source (origin
(method svn-fetch)
(uri (svn-reference
@@ -1565,7 +1565,7 @@ to the OSM opening hours specification.")
(recursive? #f)))
(sha256
(base32
- "1bn3s4lkxx0nlh8ax42qcwn6kn53a5i3qzr47mrvsmcp6hdrnxwx"))
+ "0j7fhzh6hs2b5r1a3d1xpy6f5r6q1kh79bck28raang8ldd754c6"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 8161db557d..17c6bd78e8 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -14,6 +14,8 @@
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml>
;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
+;;; Copyright © 2021 Attila Lendvai <attila@lendvai.name>
+;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,13 +37,16 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system copy)
#:use-module (guix build-system meson)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages build-tools)
@@ -241,26 +246,29 @@ GNOME Shell.")
(define-public gnome-shell-extension-clipboard-indicator
(package
(name "gnome-shell-extension-clipboard-indicator")
- (version "34")
+ (version "39")
(source (origin
(method git-fetch)
(uri (git-reference
- (url (string-append "https://github.com/Tudmotu/"
- "gnome-shell-extension-clipboard-indicator.git"))
+ (url
+ (string-append
+ "https://github.com/Tudmotu/"
+ "gnome-shell-extension-clipboard-indicator"))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0i00psc1ky70zljd14jzr627y7nd8xwnwrh4xpajl1f6djabh12s"))
+ "1kq6bzxki7lwmw690f4qml8pvfwafpqpsfnq2kyjhrp8nh39axwi"))
(modules '((guix build utils)))
(snippet
;; Remove pre-compiled settings schemas and translations from
;; source, as they are generated as part of build. Upstream
;; includes them for people who want to run the software
;; directly from source tree.
- '(begin (delete-file "schemas/gschemas.compiled")
- (for-each delete-file (find-files "locale" "\\.mo$"))
- #t))))
+ '(begin
+ (delete-file "schemas/gschemas.compiled")
+ (for-each delete-file
+ (find-files "locale" "\\.mo$"))))))
(build-system copy-build-system)
(arguments
'(#:install-plan
@@ -271,14 +279,9 @@ GNOME Shell.")
(add-before 'install 'compile-schemas
(lambda _
(with-directory-excursion "schemas"
- (invoke "glib-compile-schemas" "."))
- #t))
- (add-before 'install 'compile-locales
- (lambda _ (invoke "./compile-locales.sh")
- #t)))))
+ (invoke "glib-compile-schemas" ".")))))))
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin"))) ; for glib-compile-schemas
+ (list `(,glib "bin") gettext-minimal))
(home-page "https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator")
(synopsis "Clipboard manager extension for GNOME Shell")
(description "Clipboard Indicator is a clipboard manager for GNOME Shell
@@ -686,6 +689,178 @@ scrollable tiling of windows and per monitor workspaces. It's inspired by paper
notebooks and tiling window managers.")
(license license:gpl3)))
+(define-public gpaste
+ (package
+ (name "gpaste")
+ (version "3.42.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Keruspe/GPaste")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1k5qvgzwl357k72qfim5zfas2a0n6j24jnlm1v472l7h6gb6lssm"))
+ (patches
+ (search-patches "gpaste-fix-paths.patch"))))
+ (build-system meson-build-system)
+ (native-inputs
+ (list autoconf automake gettext-minimal gobject-introspection
+ (list glib "bin") ; for glib-compile-resources
+ libtool pkg-config vala))
+ (inputs
+ (list appstream-glib libarchive gjs mutter graphene))
+ (arguments
+ (list #:meson meson-0.59 ;positional arguments error with meson 0.60
+ #:glib-or-gtk? #true
+ #:configure-flags
+ #~(list
+ (string-append "-Dcontrol-center-keybindings-dir="
+ #$output "/share/gnome-control-center/keybindings")
+ (string-append "-Ddbus-services-dir="
+ #$output "/share/dbus-1/services")
+ (string-append "-Dsystemd-user-unit-dir="
+ #$output "/etc/systemd/user"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-introspection-install-dir
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* '("src/gnome-shell/extension.js"
+ "src/gnome-shell/prefs.js")
+ (("@typelibPath@")
+ (string-append out "/lib/girepository-1.0/")))))))))
+ (home-page "https://github.com/Keruspe/GPaste")
+ (synopsis "Clipboard management system for GNOME Shell")
+ (description "GPaste is a clipboard manager, a tool which allows you to
+keep a trace of what you’re copying and pasting. Is is really useful when
+you go through tons of documentation and you want to keep around a bunch of
+functions you might want to use, for example. The clipboard manager will
+store an history of everything you do, so that you can get back to older
+copies you now want to paste.")
+ (license license:bsd-2)))
+
+(define-public gnome-shell-extension-vertical-overview
+ (package
+ (name "gnome-shell-extension-vertical-overview")
+ (version "8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/RensAlthuis/vertical-overview")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "01vz48p3bh7p3ybdyw0s0ahs18lk2kzk9x4ad46s0dnwmmsyhww9"))
+ (file-name (git-file-name name version))
+ (snippet
+ '(begin (delete-file "schemas/gschemas.compiled")))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:install-plan
+ '(("." ,(string-append
+ "share/gnome-shell/extensions/"
+ "vertical-overview@RensAlthuis.github.com")
+ #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
+ "\\.xml$" "\\.compiled$")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'compile-schemas
+ (lambda _
+ (with-directory-excursion "schemas"
+ (invoke "glib-compile-schemas" ".")))))))
+ (native-inputs
+ (list `(,glib "bin"))) ; for glib-compile-resources
+ (home-page "https://github.com/RensAlthuis/vertical-overview")
+ (synopsis "Provides a vertical overview in Gnome 40 and upper")
+ (description "This Gnome extension replaces the new horizontally oriented
+Gnome overview with something that resembles the old vertically oriented
+style.")
+ (license license:gpl3)))
+
+(define-public gnome-shell-extension-jiggle
+ (package
+ (name "gnome-shell-extension-jiggle")
+ (version "8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jeffchannell/jiggle/")
+ (commit version)))
+ (sha256
+ (base32
+ "1wbdx2bp22bdwj51ckgivwglkmckr7z8kfwvc8nv4y376hjz5jxz"))
+ (file-name (git-file-name name version))
+ (snippet
+ '(begin (delete-file "schemas/gschemas.compiled")))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:install-plan
+ '(("." ,(string-append
+ "share/gnome-shell/extensions/"
+ "jiggle@jeffchannell.com")
+ #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
+ "\\.xml$" "\\.compiled$")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-version
+ (lambda _
+ (substitute* "metadata.json"
+ (("\"40.0\"") "\"40\", \"41\""))))
+ (add-before 'install 'compile-schemas
+ (lambda _
+ (with-directory-excursion "schemas"
+ (invoke "glib-compile-schemas" ".")))))))
+ (native-inputs
+ (list `(,glib "bin"))) ; for glib-compile-resources
+ (home-page "https://github.com/jeffchannell/jiggle")
+ (synopsis "Mouse cursor enlargement for small and fast movements")
+ (description "Jiggle is a Gnome Shell extension that highlights the cursor
+position when the mouse is moved rapidly.")
+ (license license:gpl2)))
+
+(define-public gnome-shell-extension-burn-my-windows
+ (package
+ (name "gnome-shell-extension-burn-my-windows")
+ (version "7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Schneegans/Burn-My-Windows/")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1513kh6dfvnaj5jq2mm7rv1k54v91hjckgim1dpqlxwnv4gi9krd"))
+ (file-name (git-file-name name version))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:install-plan
+ '(("." ,(string-append
+ "share/gnome-shell/extensions/"
+ "burn-my-windows@schneegans.github.com")
+ #:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
+ "\\.xml$" "\\.compiled$" "\\.gresource$")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'compile-resources
+ (lambda _
+ (invoke "make" "resources/burn-my-windows.gresource")))
+ (add-before 'install 'compile-schemas
+ (lambda _
+ (with-directory-excursion "schemas"
+ (invoke "glib-compile-schemas" ".")))))))
+ (native-inputs
+ (list `(,glib "bin"))) ; for glib-compile-resources
+ (home-page "https://github.com/Schneegans/Burn-My-Windows")
+ (synopsis "Application closing effects extension")
+ (description "Burn My Windows is a shell extension that stylizes the
+animation of closing windowed applications.")
+ (license license:gpl3)))
+
(define-public arc-theme
(package
(name "arc-theme")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6c63b8bc59..591356f72f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -34,7 +34,7 @@
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
@@ -60,11 +60,13 @@
;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
-;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
+;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1925,12 +1927,16 @@ and system administrators.")
(base32
"04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
(build-system meson-build-system)
+ (arguments `(#:meson ,meson-0.59))
(inputs
(list graphene
gtk+-2
libxml2
libxslt
- poppler
+
+ ;; XXX: PDF plugin fails to build with poppler 21.07.0.
+ ;; poppler
+
;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
;; ERROR: Unknown method "dependency" in object.
python-2))
@@ -4864,7 +4870,7 @@ libxml to ease remote use of the RESTful API.")
(define-public libsoup-minimal
(package
(name "libsoup-minimal")
- (version "3.0.3")
+ (version "3.0.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsoup/"
@@ -4872,7 +4878,7 @@ libxml to ease remote use of the RESTful API.")
"libsoup-" version ".tar.xz"))
(sha256
(base32
- "0pp2s9rj7pp45ac99hbqszznln5ljj38cbc8lbljfc5fmm6v0rai"))))
+ "0ysnvvfd2f6w2z6g31spqqb8wgyamixc7mryzbbpyw0z15g8plsv"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dgtk_doc=false")
@@ -6415,7 +6421,9 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))))
+ "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))
+ ;; XXX: Remove when upgrading to 42.0
+ (patches (search-patches "eog-update-libportal-usage.patch"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -6470,7 +6478,7 @@ supports image conversion, rotation, and slideshows.")
;; 'XDG_DATA_DIRS' appropriately set.
(package
(name "eog-plugins")
- (version "3.26.7")
+ (version "3.26.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/eog-plugins/"
@@ -6478,7 +6486,7 @@ supports image conversion, rotation, and slideshows.")
"eog-plugins-" version ".tar.xz"))
(sha256
(base32
- "0gbvl54hjawcrj2cbkvsw5jx11p6jv1xkc58c8ikwwpb56gc3ric"))))
+ "1dcxdjp7x092wn0iq7975f9b05ksb5kl5mxmyiqmydrja91ryw40"))))
(build-system gnu-build-system)
(home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
(synopsis "Extensions for the Eye of GNOME image viewer")
@@ -6776,8 +6784,9 @@ a secret password store, an adblocker, and a modern UI.")
"epiphany-" version ".tar.xz"))
(sha256
(base32
- "0k7b22zq3z1kllzqxgwsvwb1lp0j6rjb3k1hvhna3i573wc4mpji"))))
-
+ "0r7m34xzz3shdfxf2abxb069izak3yv3ijlg29qy4pfmyawkilfs"))
+ (patches
+ (search-patches "epiphany-update-libportal-usage.patch"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -9070,7 +9079,7 @@ shared object databases, search tools and indexing.")
(define-public nautilus
(package
(name "nautilus")
- (version "41.0")
+ (version "41.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -9078,7 +9087,11 @@ shared object databases, search tools and indexing.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1rd1a0wjh2sc7mzw6m61rryvgxpi2lin4xj0x9khqw04q6nl3fgr"))))
+ "0bsqh241m43x3qb3z0mjakjic610ncl95zhjdgls649phnc30qry"))
+ (patches
+ ;; This patch is already upstream and can be removed next
+ ;; release.
+ (search-patches "nautilus-add-libportal-gtk3.patch"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -9114,35 +9127,35 @@ if (extension_path)
;; Settings schema 'org.gnome.nautilus.preferences' is not installed
#:tests? #f))
(native-inputs
- `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
- ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
- ("gobject-introspection" ,gobject-introspection)
- ("intltool" ,intltool)
- ("pkg-config" ,pkg-config)))
+ (list desktop-file-utils ; for update-desktop-database
+ `(,glib "bin") ; for glib-mkenums, etc.
+ gobject-introspection
+ intltool
+ pkg-config))
(inputs
- `(("dconf" ,dconf)
- ("gexiv2" ,gexiv2)
- ("gvfs" ,gvfs)
- ("exempi" ,exempi)
- ("gnome-desktop" ,gnome-desktop)
- ("gnome-autoar" ,gnome-autoar)
- ("gst-plugins-base" ,gst-plugins-base)
- ("json-glib" ,json-glib)
- ("libhandy" ,libhandy)
- ("libportal" ,libportal)
- ("libseccomp" ,libseccomp)
- ("libselinux" ,libselinux)
- ("libsoup" ,libsoup-minimal-2) ; to satisfy tracker dependencies
- ("tracker" ,tracker)
- ("tracker-miners" ,tracker-miners)
- ;; XXX: gtk+ is required by libnautilus-extension.pc
- ;;
- ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
- ;; package. See:
- ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
- ("gtk+" ,gtk+)
- ("libexif" ,libexif)
- ("libxml2" ,libxml2)))
+ (list dconf
+ gexiv2
+ gvfs
+ exempi
+ gnome-desktop
+ gnome-autoar
+ gst-plugins-base
+ json-glib
+ libhandy
+ libportal
+ libseccomp
+ libselinux
+ libsoup-minimal-2 ; to satisfy tracker dependencies
+ tracker
+ tracker-miners
+ ;; XXX: gtk+ is required by libnautilus-extension.pc
+ ;;
+ ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
+ ;; package. See:
+ ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
+ gtk+
+ libexif
+ libxml2))
(native-search-paths
(list (search-path-specification
(variable "NAUTILUS_EXTENSION_PATH")
@@ -9575,7 +9588,8 @@ specified duration and save it as a GIF encoded animated image file.")
(base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
(build-system meson-build-system)
(arguments
- `(#:glib-or-gtk? #t
+ `(#:meson ,meson-0.59
+ #:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
@@ -9585,24 +9599,25 @@ specified duration and save it as a GIF encoded animated image file.")
(pylib (string-append (assoc-ref outputs "out")
"/lib/python"
,(version-major+minor
- (package-version python))
+ (package-version
+ (this-package-input "python")))
"/site-packages")))
(wrap-program prog
`("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
- `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
- #t))))))
+ `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
(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)))
+ (list desktop-file-utils
+ gettext-minimal
+ `(,glib "bin")
+ gobject-introspection
+ `(,gtk+ "bin")
+ pkg-config))
(inputs
(list gsettings-desktop-schemas
gtk+
libhandy-0.0
libsecret
+ python
python-beautifulsoup4
python-pillow
python-pyfavicon
@@ -10732,16 +10747,16 @@ apply fancy special effects and lets you share the fun with others.")
(define-public passwordsafe
(package
(name "passwordsafe")
- (version "5.0")
+ (version "5.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.gnome.org/World/PasswordSafe")
+ (url "https://gitlab.gnome.org/World/secrets")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1xh64bbg10gnfzlck5jvqy2zk6hbk9cyqgv85xc9kbdvs8n4lhgh"))))
+ (base32 "0kd43j6i017wdsqj6d5gnxhfv4ijnh3xahlw7md2gh51i8p682j6"))))
(build-system meson-build-system)
(arguments
(list #:glib-or-gtk? #t
@@ -11454,19 +11469,19 @@ library which detects when a file or a directory has been modified.")
(define-public gnome-mahjongg
(package
(name "gnome-mahjongg")
- (version "3.35.1")
+ (version "3.38.3")
(source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
- (commit version)))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/" name "-"
+ version ".tar.xz"))
(sha256
(base32
- "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
+ "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
(build-system meson-build-system)
(arguments
- `(#:glib-or-gtk? #t))
+ `(#:meson ,meson-0.59
+ #:glib-or-gtk? #t))
(native-inputs
`(("appstream-glib" ,appstream-glib)
("gettext" ,gettext-minimal)
@@ -11478,10 +11493,10 @@ library which detects when a file or a directory has been modified.")
(propagated-inputs
(list dconf))
(inputs
- (list glib gtk+ librsvg))
+ (list glib gtk+))
(synopsis "Mahjongg tile-matching game")
(description "GNOME Mahjongg is a game based on the classic Chinese
-tile-matching game Mahjong. It features multiple board layouts, tile themes,
+tile-matching game Mahjongg. It features multiple board layouts, tile themes,
and a high score table.")
(home-page "https://wiki.gnome.org/Apps/Mahjongg")
(license license:gpl2+)))
@@ -12367,7 +12382,7 @@ integrated profiler via Sysprof, debugging support, and more.")
(define-public komikku
(package
(name "komikku")
- (version "0.36.0")
+ (version "0.36.1")
(source
(origin
(method git-fetch)
@@ -12377,7 +12392,7 @@ integrated profiler via Sysprof, debugging support, and more.")
(file-name (git-file-name name version))
(sha256
(base32
- "05gc51dphqladfv1dw680hzgvmiydggz885zhmhw501jm1f15ryj"))))
+ "0iqis1b248gj1jb1yzw5dcs99bm078hixg9ir0vb961ymwzv2mmc"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -12699,3 +12714,48 @@ successor of @code{libhandy} for GTK4.")
(description "@code{gnome-power-manager} is a tool for viewing present and
historical battery usage and related statistics.")
(license license:gpl2)))
+
+(define-public xffm+
+ (package
+ (name "xffm+")
+ (version "0.94")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No tests exist
+ #:configure-flags
+ (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
+ (out (assoc-ref %outputs "out")))
+ (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
+ "/share/mime/globs")
+ (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
+ "/share/mime/aliases")
+ (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
+ "/share/mime/generic-icons")
+ (string-append "-DCMAKE_INSTALL_PREFIX=" out)
+ (string-append "-DPREFIX_BIN=" out "/bin")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-installation-destination
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ ;; This is done so we can override.
+ (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
+ ;; This is done so we can override.
+ (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
+ (native-inputs
+ (list cmake pkg-config intltool gnu-gettext))
+ (inputs
+ (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
+ shared-mime-info))
+ (synopsis "File manager")
+ (description "This package provides a graphical file manager.")
+ (home-page "http://xffm.org/")
+ (license license:gpl3+)
+ (properties '((upstream-name . "xffm")))))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 8edd45a4f9..cde7427d07 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -1070,7 +1070,7 @@ files, to verify signatures, and to manage the private and public keys.")
(define-public parcimonie
(package
(name "parcimonie")
- (version "0.11.0")
+ (version "0.12.0")
(source (origin
(method url-fetch)
(uri (string-append "https://gaffer.boum.org/intrigeri/files/"
@@ -1078,70 +1078,61 @@ files, to verify signatures, and to manage the private and public keys.")
version ".tar.gz"))
(sha256
(base32
- "14pvapvzrxh1yh8zgcj1llmc2dd8g1fgzskxlja21gmw8c88aqdk"))))
+ "10gal2h8ihg7nnzy3adw942axd2ia1rcn1fw3a3v07n5mm8kqrx9"))))
(build-system perl-build-system)
(inputs
- `(("gnupg" ,gnupg)
- ("perl-config-general" ,perl-config-general)
- ("perl-clone" ,perl-clone)
- ("perl-data" ,perl-data)
- ("perl-exporter-tiny" ,perl-exporter-tiny)
- ("perl-file-homedir" ,perl-file-homedir)
- ("perl-file-sharedir" ,perl-file-sharedir)
- ("perl-file-which" ,perl-file-which)
- ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
- ("perl-gnupg-interface" ,perl-gnupg-interface)
- ("perl-ipc-system-simple" ,perl-ipc-system-simple)
- ("perl-list-moreutils" ,perl-list-moreutils)
- ("perl-libintl-perl" ,perl-libintl-perl) ; Locale::TextDomain
- ("perl-lwp-online" ,perl-lwp-online)
- ("perl-module-build" ,perl-module-build)
- ("perl-module-pluggable-object" ,perl-module-pluggable)
- ("perl-moo" ,perl-moo)
- ("perl-moox-handlesvia" ,perl-moox-handlesvia)
- ("perl-moox-late" ,perl-moox-late)
- ("perl-moox-options" ,perl-moox-options)
- ("perl-moox-strictconstructor" ,perl-moox-strictconstructor)
- ("perl-namespace-clean" ,perl-namespace-clean)
- ("perl-net-dbus" ,perl-net-dbus)
- ("perl-net-dbus-glib" ,perl-net-dbus-glib)
- ("perl-path-tiny" ,perl-path-tiny)
- ("perl-strictures" ,perl-strictures-2)
- ("perl-test-most" ,perl-test-most)
- ("perl-test-trap" ,perl-test-trap)
- ("perl-time-duration" ,perl-time-duration)
- ("perl-time-duration-parse" ,perl-time-duration-parse)
- ("perl-try-tiny" ,perl-try-tiny)
- ("perl-type-tiny" ,perl-type-tiny)
- ("perl-types-path-tiny" ,perl-types-path-tiny)
- ("perl-unicode-linebreak" ,perl-unicode-linebreak)
- ("perl-xml-parser" ,perl-xml-parser)
- ("perl-xml-twig" ,perl-xml-twig)
- ("torsocks" ,torsocks)))
+ (list gnupg
+ perl-clone
+ perl-config-general
+ perl-file-homedir
+ perl-file-sharedir
+ perl-file-which
+ perl-gnupg-interface
+ perl-ipc-system-simple
+ perl-json
+ perl-list-moreutils
+ perl-moo
+ perl-moox-late
+ perl-moox-options
+ perl-moox-strictconstructor
+ perl-namespace-clean
+ perl-net-dbus
+ perl-pango
+ perl-path-tiny
+ perl-time-duration
+ perl-time-duration-parse
+ perl-try-tiny
+ perl-type-tiny
+ perl-types-path-tiny
+ torsocks))
(native-inputs
- (list xorg-server-for-tests))
+ (list perl-file-which
+ perl-gnupg-interface
+ perl-list-moreutils
+ perl-lwp-online
+ perl-module-build
+ perl-strictures-2
+ perl-test-most
+ perl-test-trap
+ xorg-server-for-tests))
(arguments
`(#:phases
(modify-phases %standard-phases
;; Needed for using gpg-connect-agent during tests.
(add-before 'check 'prepare-for-tests
(lambda* (#:key inputs #:allow-other-keys)
- (let ((xorg-server (assoc-ref inputs "xorg-server")))
- (system (string-append xorg-server "/bin/Xvfb :1 &"))
+ (let ((Xvfb (search-input-file inputs "/bin/Xvfb")))
+ (system (string-append Xvfb " :1 &"))
(setenv "DISPLAY" ":1")
(setenv "HOME" "/tmp")
- ;; These tests are known to fail
+ ;; These tests expect usable gnupg configurations.
(delete-file "t/32-keyserver_defined_on_command_line.t")
- (delete-file "t/33-checkGpgHasDefinedKeyserver.t")
- ;; The applet is deprecated upstream.
- (delete-file "t/00-load_all.t")
- #t)))
+ (delete-file "t/33-checkGpgHasDefinedKeyserver.t"))))
(add-before 'install 'fix-references
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "lib/App/Parcimonie/GnuPG/Interface.pm"
;; Skip check whether dependencies are in the PATH
- (("defined which.*") ""))
- #t))
+ (("defined which.*") ""))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -1149,9 +1140,8 @@ files, to verify signatures, and to manage the private and public keys.")
,(package-version perl))))
(wrap-program (string-append out "/bin/parcimonie")
`("PERL5LIB" ":"
- prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
- #t))))))
- (home-page "https://gaffer.boum.org/intrigeri/code/parcimonie/")
+ prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))))))))
+ (home-page "https://salsa.debian.org/intrigeri/parcimonie")
(synopsis "Incrementally refreshes a GnuPG keyring")
(description "Parcimonie incrementaly refreshes a GnuPG keyring in a way
that makes it hard to correlate the keyring content to an individual, and
@@ -1159,6 +1149,7 @@ makes it hard to locate an individual based on an identifying subset of her
keyring content. Parcimonie is a daemon that fetches one key at a time using
the Tor network, waits a bit, changes the Tor circuit being used, and starts
over.")
+ (properties '((upstream-name . "App-Parcimonie")))
(license license:gpl1+)))
(define-public jetring
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 158213dd98..cda41041f6 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@@ -705,8 +705,8 @@ in C/C++.")
;; XXXX: Workaround 'snippet' limitations.
(define computed-origin-method (@@ (guix packages) computed-origin-method))
-(define %icecat-version "91.4.0-guix0-preview1")
-(define %icecat-build-id "20211207000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-version "91.5.0-guix0-preview1")
+(define %icecat-build-id "20220111000000") ;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'
@@ -728,11 +728,11 @@ in C/C++.")
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
- "09xkzk27krzyj1qx8cjjn2zpnws1cncka75828kk7ychnjfq48p7"))))
+ "04y8nj1f065b3dn354f1ns3cm9xp4kljr5ippvmfdqr7cb4xjp7l"))))
- (upstream-icecat-base-version "91.4.0") ; maybe older than base-version
+ (upstream-icecat-base-version "91.5.0") ; maybe older than base-version
;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
- (gnuzilla-commit "dd79d69e5dc6e6e751195001f322b30746be6903")
+ (gnuzilla-commit "c0a504578cb694522c65bb6c36396df8142d4a2a")
(gnuzilla-source
(origin
(method git-fetch)
@@ -744,7 +744,7 @@ in C/C++.")
(string-take gnuzilla-commit 8)))
(sha256
(base32
- "1vv97wmgdmkwddh8n30dak5l8akzbw49ca0w6krhq9dnj7n74cxh"))))
+ "016g8vdr6w6six4f705cmbdrfknmy4bk1qjjrvsdpah4bf6c2s2c"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
@@ -1327,11 +1327,11 @@ standards of the IceCat project.")
(cpe-version . ,(first (string-split version #\-)))))))
;; Update this together with icecat!
-(define %icedove-build-id "20211217000000") ;must be of the form YYYYMMDDhhmmss
+(define %icedove-build-id "20220111000000") ;must be of the form YYYYMMDDhhmmss
(define-public icedove
(package
(name "icedove")
- (version "91.4.1")
+ (version "91.5")
(source icecat-source)
(properties
`((cpe-name . "thunderbird_esr")))
@@ -1612,7 +1612,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 "11529576c3a7d89514771d1e0f5fa116eef29b81"))
+ ,(let ((changeset "bcd2aab51cd0889d506d29455210d65602b97430"))
(origin
(method hg-fetch)
(uri (hg-reference
@@ -1621,7 +1621,7 @@ standards of the IceCat project.")
(file-name (string-append "thunderbird-" version "-checkout"))
(sha256
(base32
- "0009pwaamwy8f1fnm3vpmkkklg6wi1rpnzg7a9mjqv3m8srdy2a3")))))
+ "0aj8a8qbm71n34yi58y04bn4h9zz2rciz0cm3hh58rsmcqs1s9ym")))))
("cargo" ,rust "cargo")
("clang" ,clang)
("llvm" ,llvm)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 46b599a6a7..e808d8ebf6 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -465,7 +465,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.14)
(name "go")
- (version "1.16.12")
+ (version "1.16.13")
(source
(origin
(method git-fetch)
@@ -475,7 +475,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(file-name (git-file-name name version))
(sha256
(base32
- "06c8dcmni38za638ma069izd9kbxr6ii6ccflbibgc6k54lpc3fb"))))
+ "03f37dspn4h5kqf0nqwmnl858wx6hngnlvbnrjl1ll6ihc5j66jz"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.14)
((#:tests? _) #t)
@@ -624,7 +624,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.16)
(name "go")
- (version "1.17.5")
+ (version "1.17.6")
(source
(origin
(method git-fetch)
@@ -634,7 +634,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(file-name (git-file-name name version))
(sha256
(base32
- "1yjhg4j89vgb26m35gc0799x2fd0xav03gcvcg2xwcfvvcar5gza"))))
+ "05k292i9qayfy5wh96z4kjmx1mfd5birnr25vb0blzaam72mcsgw"))))
(outputs '("out" "tests")) ; 'tests' contains distribution tests.
(arguments
`(#:modules ((ice-9 match)
@@ -5485,7 +5485,7 @@ golang's database/sql package.")
(define-public go-golang-org-colorful
(package
(name "go-golang-org-colorful")
- (version "1.0.2")
+ (version "1.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5494,7 +5494,7 @@ golang's database/sql package.")
(file-name (git-file-name name version))
(sha256
(base32
- "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
+ "08c3fkf27r16izjjd4w94xd1z7w1r4mdalbl53ms2ka2j465s3qs"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/lucasb-eyer/go-colorful"))
@@ -7146,7 +7146,7 @@ transforms one JSON document into another through a JMESPath expression.")
(define-public go-github-com-muesli-reflow-wordwrap
(package
(name "go-github-com-muesli-reflow-wordwrap")
- (version "0.1.0")
+ (version "0.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7155,7 +7155,7 @@ transforms one JSON document into another through a JMESPath expression.")
(file-name (git-file-name "go-github-com-muesli-reflow" version))
(sha256
(base32
- "1vhynm2n1az13fn03lp0gi28p9mznq1mblglh8f2rb9y1vkd2dqr"))))
+ "09zcz2cqdwgj1ilya5pqwndryk6lansn87x63fcm8j1xn74vd2ry"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/muesli/reflow/wordwrap"
@@ -7192,10 +7192,18 @@ io.Writers helping you to transform blocks of text.")
`(#:import-path "github.com/muesli/reflow/padding"
#:unpack-path "github.com/muesli/reflow"))))
+(define-public go-github-com-muesli-reflow-truncate
+ (package
+ (inherit go-github-com-muesli-reflow-wordwrap)
+ (name "go-github-com-muesli-reflow-truncate")
+ (arguments
+ `(#:import-path "github.com/muesli/reflow/truncate"
+ #:unpack-path "github.com/muesli/reflow"))))
+
(define-public go-github-com-muesli-termenv
(package
(name "go-github-com-muesli-termenv")
- (version "0.7.0")
+ (version "0.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7204,7 +7212,7 @@ io.Writers helping you to transform blocks of text.")
(file-name (git-file-name name version))
(sha256
(base32
- "09fwrdhy7c9qlf70h97f5inh6xvkfq1vi8fwx9q7bwmjjbiykk8m"))))
+ "0m24ljq1nq7z933fcvg99fw0fhxj9rb5ll4rlay7z2f2p59mrbdp"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/muesli/termenv"))
@@ -8816,6 +8824,71 @@ averages.")
string.")
(license license:expat)))
+
+(define-public go-github-com-charmbracelet-bubbletea
+ (package
+ (name "go-github-com-charmbracelet-bubbletea")
+ (version "0.13.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/charmbracelet/bubbletea")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1105cggi5fwqx69m0vrhgwx6kaw82w4ahn58sj0a81603c4yvrk0"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/charmbracelet/bubbletea"))
+ (propagated-inputs
+ `(("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)
+ ("github.com/muesli/termenv" ,go-github-com-muesli-termenv)
+ ("github.com/mattn/go-runewidth" ,go-github.com-mattn-go-runewidth)
+ ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
+ ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
+ ("go-golang-org-colorful" ,go-golang-org-colorful)
+ ("github.com/containerd/console" ,go-github-com-containerd-console)
+ ("go-github-com-muesli-reflow-truncate" ,go-github-com-muesli-reflow-truncate)
+ ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
+ ("go-golang-org-x-sys" ,go-golang-org-x-sys)
+ ("go-golang-org-x-term" ,go-golang-org-x-term)
+ ("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)))
+ (home-page "https://github.com/charmbracelet/bubbletea")
+ (synopsis "Powerful little TUI framework")
+ (description
+ "Bubble Tea is a Go framework based on The Elm Architecture. It is
+well-suited for simple and complex terminal applications, either inline,
+full-window, or a mix of both.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-containerd-console
+ (package
+ (name "go-github-com-containerd-console")
+ (version "1.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/containerd/console")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0pgx0y8x23jwc2f9jfk5hd5aslqk599nj6c7dj5846xvnkz2x7p2"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/containerd/console"))
+ (propagated-inputs
+ `(("golang.org/x/sys" ,go-golang-org-x-sys)))
+ (home-page "https://github.com/containerd/console")
+ (synopsis "Console package for Go")
+ (description
+ "This is Golang package for dealing with consoles. It has few
+dependencies and a simple API.")
+ (license license:asl2.0)))
+
(define-public go-github-com-arceliar-ironwood
(package
(name "go-github-com-arceliar-ironwood")
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index fb3fa49a89..b69ab52aec 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -79,6 +79,7 @@
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
#:use-module (gnu packages mp3)
@@ -571,6 +572,72 @@ vertices, sorting by primitive type, merging of redundant materials and many
more.")
(license license:bsd-3)))
+(define-public openshadinglanguage
+ (package
+ (name "openshadinglanguage")
+ (version "1.11.16.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x0lc163vl2b57l75bf5zxlr6vm2y1f1izlxdnrw3vsapv3r9k9g"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags (list "-DUSE_PARTIO=OFF") ; TODO: not packaged
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'set-paths 'add-ilmbase-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; OpenEXR 2 propagates ilmbase, but its include files do not
+ ;; appear in the C_INCLUDE_PATH.
+ (let ((headers (string-append
+ (assoc-ref inputs "ilmbase")
+ "/include/OpenEXR")))
+ (setenv "C_INCLUDE_PATH"
+ (string-append headers ":"
+ (or (getenv "C_INCLUDE_PATH") "")))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append headers ":"
+ (or (getenv "CPLUS_INCLUDE_PATH") ""))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ctest" "--exclude-regex"
+ (string-join
+ (list
+ "osl-imageio" ; OIIO not compiled with freetype
+ "osl-imageio.opt" ; OIIO not compiled with freetype
+ "texture-udim" ; file does not exist
+ "texture-udim.opt" ; file does not exist
+ "example-deformer" ; could not find OSLConfig
+ "python-oslquery") ; no module oslquery
+ "|"))))))))
+ (native-inputs
+ (list bison
+ clang
+ flex
+ llvm
+ pybind11
+ python-wrapper))
+ (inputs
+ (list boost
+ imath
+ openexr-2
+ openimageio
+ pugixml
+ qtbase-5
+ zlib))
+ (home-page "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage")
+ (synopsis "Shading language for production GI renderers")
+ (description "Open Shading Language (OSL) is a language for programmable
+shading in advanced renderers and other applications, ideal for describing
+materials, lights, displacement, and pattern generation.")
+ (license license:bsd-3)))
+
(define-public cgal
(package
(name "cgal")
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 87adb7c92a..8ff8e6242b 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -901,7 +901,6 @@ model to base your own plug-in on, here it is.")
("webrtcdsp" ,webrtc-audio-processing)
("wildmidi" ,wildmidi)
("wpebackend-fdo" ,wpebackend-fdo)
- ;; ("wpewebkit" ,wpewebkit)
("zbar" ,zbar)
("zxing" ,zxing-cpp-1.2)))
(home-page "https://gstreamer.freedesktop.org/")
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index ed977f369f..7f777a0873 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -306,14 +306,14 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
- (version "8.20211123")
+ (version "8.20211231")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz"))
(sha256
- (base32 "0i9dhh601axv0b1i56yzn6jnfp160z530fp9pd557kpq4nbvg5kl"))))
+ (base32 "0cpa3rl8vcm0arima8x9m5q0a9r05z0851ibr1vcria2z0mmwmi7"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index 6e70f0c8f6..5b8f00863a 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -98,6 +98,22 @@ C/C++ part.")
(license x11)
(home-page "http://site.icu-project.org/")))
+(define-public icu4c-70
+ (package
+ (inherit icu4c)
+ (version "70.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/unicode-org/icu/releases/download/release-"
+ (string-map (lambda (x) (if (char=? x #\.) #\- x)) version)
+ "/icu4c-"
+ (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
+ "-src.tgz"))
+ (sha256
+ (base32
+ "1m9zgkaf5lyh65nyc6n0n5bs2f5k53nnj1ih6nskpwbvq4l5884d"))))))
+
(define-public icu4c-67
(package
(inherit icu4c)
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 5d0313d6ae..b61a79370d 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2019, 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
+;;; Copyright © 2019, 2020, 2022 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
@@ -781,14 +781,14 @@ preloading.")
(define-public chafa
(package
(name "chafa")
- (version "1.4.1")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri (string-append "https://hpjansson.org/chafa/releases/chafa-"
version ".tar.xz"))
(sha256
(base32
- "18rb82bfqj1sj2g4irazx4lwq9q4b4k7my1r0q714vf9yhs41ls6"))))
+ "0sr86bnrqcf6wxigrgsglv4fc79g5djmki20ih4hg8kbhcnnbzr1"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 883cc7e121..72f9fd5c96 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -2,10 +2,10 @@
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -28,6 +28,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages irc)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -46,6 +47,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages backup)
+ #:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
@@ -89,53 +91,54 @@
(define-public quassel
(package
(name "quassel")
- (version "0.13.1")
+ (version "0.14.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://quassel-irc.org/pub/quassel-"
- version ".tar.bz2"))
+ version ".tar.xz"))
(sha256
(base32
- "0mg8jydc70vlylppzich26q4s40kr78r3ysfyjwisfvlg2byxvs8"))
- (patches (search-patches "quassel-qt-514-compat.patch"))
+ "042fzssydvv35jjknziph8iyyjsyrsb2hp3d0ix0bqbagbrpf1q9"))
(modules '((guix build utils)))
;; We don't want to install the bundled inxi script.
(snippet
'(begin
- (delete-file "data/scripts/inxi")
- #t))))
+ (delete-file "data/scripts/inxi")))))
(build-system qt-build-system)
(arguments
;; The three binaries are not mutually exlusive, and are all built
;; by default.
- '(#:configure-flags '(;;"-DWANT_QTCLIENT=OFF" ; 6.1 MiB
- ;;"-DWANT_CORE=OFF" ; 3.0 MiB
- ;;"-DWANT_MONO=OFF" ; 7.6 MiB
- "-DWITH_KDE=OFF" ; no to kde integration ...
- "-DWITH_BUNDLED_ICONS=ON" ; so we install bundled icons
- "-DWITH_OXYGEN_ICONS=ON" ; also the oxygen ones
- "-DWITH_WEBENGINE=OFF") ; we don't depend on qtwebengine
+ '(#:configure-flags '("-DBUILD_TESTING=ON"
+ ;;"-DWANT_QTCLIENT=OFF"
+ ;;"-DWANT_CORE=OFF"
+ ;;"-DWANT_MONO=OFF"
+ "-DWITH_KDE=OFF"
+ "-DWITH_BUNDLED_ICONS=ON"
+ "-DWITH_OXYGEN_ICONS=ON"
+ ;; This disables link previews.
+ "-DWITH_WEBENGINE=OFF")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-inxi-reference
(lambda* (#:key inputs #:allow-other-keys)
(let ((inxi (search-input-file inputs "/bin/inxi")))
- (symlink inxi "data/scripts/inxi")
- #t))))
- #:tests? #f)) ; no test target
+ (symlink inxi "data/scripts/inxi")))))))
(native-inputs
(list extra-cmake-modules pkg-config qttools))
(inputs
- `(("inxi" ,inxi-minimal)
- ("libdbusmenu-qt" ,libdbusmenu-qt)
- ("qca" ,qca)
- ("qtbase" ,qtbase-5)
- ("qtmultimedia" ,qtmultimedia)
- ("qtscript" ,qtscript)
- ("qtsvg" ,qtsvg)
- ("snorenotify" ,snorenotify)
- ("zlib" ,zlib)))
+ (list boost
+ inxi-minimal
+ libdbusmenu-qt
+ perl
+ qca
+ qtbase-5
+ qtmultimedia
+ qtscript
+ qtsvg
+ snorenotify
+ sonnet
+ zlib))
(home-page "https://quassel-irc.org/")
(synopsis "Distributed IRC client")
(description "Quassel is a distributed IRC client, meaning that one or more
@@ -381,14 +384,14 @@ highlighted.
(define-public ii
(package
(name "ii")
- (version "1.8")
+ (version "1.9")
(source (origin
(method url-fetch)
(uri (string-append "http://dl.suckless.org/tools/"
name "-" version ".tar.gz"))
(sha256
(base32
- "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr"))))
+ "05wcaszm9hap5gqf58bciqm3ad1kfgp976fs3fsn3ll3nliv6345"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -614,7 +617,7 @@ but can also be used independently as a logging bot.")
(define-public inspircd
(package
(name "inspircd")
- (version "3.8.1")
+ (version "3.12.0")
(source
(origin
(method git-fetch)
@@ -623,47 +626,45 @@ but can also be used independently as a logging bot.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1i30649dw84iscxa5as81g96f393mn1i883aq4za5ypdinr5x65g"))))
+ (base32 "0xlfs269iaw7dfryzl6vjzqsn2g4nqh6kpf5xfgk3zbjhqaczknx"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags (map (lambda (module)
- (string-append "--enable-extras=" module))
- '("m_argon2.cpp"
- "m_geo_maxmind.cpp"
- "m_ldap.cpp"
- "m_mysql.cpp"
- "m_pgsql.cpp"
- "m_regex_pcre.cpp"
- "m_regex_posix.cpp"
- "m_regex_stdlib.cpp"
- "m_regex_re2.cpp"
- "m_regex_tre.cpp"
- "m_sqlite3.cpp"
- "m_ssl_gnutls.cpp"
- "m_ssl_openssl.cpp"
- "m_ssl_mbedtls.cpp"
- "m_sslrehashsignal.cpp"))
- #:tests? #f ; Figure out later.
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'module-configure
- (lambda* (#:key configure-flags #:allow-other-keys)
- (apply invoke "./configure"
- configure-flags)
- #t))
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (out-lib (string-append out "/lib/"))
- (out-bin (string-append out "/bin/"))
- (out-etc (string-append out "/etc/"))
- (name "inspircd"))
- (invoke "./configure"
- (string-append "--prefix=" out-lib name)
- (string-append "--binary-dir=" out-bin)
- (string-append "--module-dir=" out-lib name "/modules/")
- (string-append "--config-dir=" out-etc name)))
- #t)))))
+ (list #:configure-flags
+ #~(map (lambda (module)
+ (string-append "--enable-extras=" module))
+ '("m_argon2.cpp"
+ "m_geo_maxmind.cpp"
+ "m_ldap.cpp"
+ "m_mysql.cpp"
+ "m_pgsql.cpp"
+ "m_regex_pcre.cpp"
+ "m_regex_posix.cpp"
+ "m_regex_stdlib.cpp"
+ "m_regex_re2.cpp"
+ "m_regex_tre.cpp"
+ "m_sqlite3.cpp"
+ "m_ssl_gnutls.cpp"
+ "m_ssl_openssl.cpp"
+ "m_ssl_mbedtls.cpp"
+ "m_sslrehashsignal.cpp"))
+ #:tests? #f ; XXX figure out later
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'module-configure
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ (apply invoke "./configure"
+ configure-flags)))
+ (replace 'configure
+ (lambda _
+ (let ((lib (string-append #$output "/lib/"))
+ (bin (string-append #$output "/bin/"))
+ (etc (string-append #$output "/etc/"))
+ (name "inspircd"))
+ (invoke "./configure"
+ (string-append "--prefix=" lib name)
+ (string-append "--binary-dir=" bin)
+ (string-append "--module-dir=" lib name "/modules/")
+ (string-append "--config-dir=" etc name))))))))
(native-inputs
(list pkg-config))
(inputs
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 804e3196c0..9fcf55815b 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, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +26,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
+ #:use-module (gnu packages check)
#:use-module (gnu packages crypto)
#:use-module (gnu packages documentation)
#:use-module (gnu packages freedesktop)
@@ -34,6 +35,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
#:use-module (gnu packages networking)
@@ -57,11 +59,12 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system qt)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils))
-(define %jami-version "20210606.1.e2f9490")
+(define %jami-version "20211223.2.37be4c3")
(define %jami-sources
;; Return an origin object of the tarball release sources archive of the
@@ -80,94 +83,73 @@
(delete-file-recursively "daemon/contrib/tarballs")
;; Remove the git submodule directories of unused Jami clients.
(for-each delete-file-recursively '("client-android"
- "client-electron"
"client-ios"
"client-macosx"
"client-uwp"))))
(sha256
(base32
- "1vpxv2dk3l9cahv6mxd2754pxs9mzrid5bgwvl6k1byzpq8y4smr"))))
+ "12h4a0nj3gh05w64gkywrrb64agrhn6y3q4b9cqnhvr1vdkzlj0h"))))
;; Jami 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 them.
(define jami-apply-custom-patches
- '(lambda* (#:key inputs dep-name patches)
- (let ((patches-directory "patches"))
- (mkdir-p patches-directory)
- (invoke "tar" "-xvf" (assoc-ref inputs "jami-sources")
- "-C" patches-directory
- "--strip-components=5"
- (string-append "ring-project/daemon/contrib/src/"
- dep-name))
- (for-each
- (lambda (file)
- (invoke "patch" "--force" "--ignore-whitespace" "-p1" "-i"
- (string-append patches-directory "/"
- file ".patch")))
- patches))))
+ #~(lambda* (#:key dep-name patches)
+ (let ((patches-directory "patches"))
+ (mkdir-p patches-directory)
+ (invoke "tar" "-xvf" #$%jami-sources
+ "-C" patches-directory
+ "--strip-components=5"
+ (string-append "ring-project/daemon/contrib/src/"
+ dep-name))
+ (for-each
+ (lambda (file)
+ (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
- `(("jami-sources" ,%jami-sources)
- ,@(package-native-inputs pjproject)))
- (arguments
- (substitute-keyword-arguments (package-arguments pjproject)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'make-source-files-writable 'apply-patches
- (lambda* (#:key inputs #:allow-other-keys)
- (,jami-apply-custom-patches
- #:inputs inputs
- #:dep-name "pjproject"
- #:patches
- '("0001-rfc6544"
- "0002-rfc2466"
- "0003-add-tcp-keep-alive"
- "0004-multiple_listeners"
- "0005-fix_ebusy_turn"
- "0006-ignore_ipv6_on_transport_check"
- "0007-upnp-srflx-nat-assisted-cand"
- "0008-fix_ioqueue_ipv6_sendto"
- "0009-add-config-site"
- ;; Already taken care of via the origin patches.
- ;;"0010-fix-pkgconfig"
- "0011-fix-tcp-death-detection"
- "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"
- "0019-ignore-down-interfaces"))))))))))
+ (let ((commit "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a")
+ (revision "0"))
+ (package
+ (inherit pjproject)
+ (name "pjproject-jami")
+ (version (git-version "2.11" revision commit))
+ (source (origin
+ (inherit (package-source pjproject))
+ ;; The Jami development team regularly issues patches to
+ ;; pjproject to extend the its functionality and fix bugs;
+ ;; they are submitted for inclusion upstream but larger
+ ;; patches take time to be reviewed and merged, hence this
+ ;; forked repository.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/savoirfairelinux/pjproject")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments pjproject)
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'apply-patches
+ (lambda _
+ (#$jami-apply-custom-patches
+ #:dep-name "pjproject"
+ #:patches
+ ;; This adds a config_site.h configuration file that sets
+ ;; constants such as PJ_ICE_MAX_CAND that cannot be
+ ;; configured at build time.
+ '("0009-add-config-site")))))))))))
;; 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
+;; from the jami-project/daemon/contrib/src/ffmpeg/rules.mak file. We try to
;; keep it as close to the official Jami package as possible, to provide all
-;; the codecs and extra features that are expected.
-;;
-;; See:
-;; https://review.jami.net/plugins/gitiles/ring-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak
-
+;; the codecs and extra features that are expected (see:
+;; https://review.jami.net/plugins/gitiles/ring-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak)
(define %ffmpeg-default-configure-flags
'("--disable-everything"
"--enable-zlib"
@@ -187,7 +169,7 @@
"--enable-protocol=unix"
"--enable-protocol=pipe"
- ;; enable muxers/demuxers
+ ;; Enable muxers/demuxers.
"--disable-demuxers"
"--disable-muxers"
"--enable-muxer=rtp"
@@ -195,6 +177,7 @@
"--enable-muxer=h263"
"--enable-muxer=h264"
"--enable-muxer=hevc"
+; "--enable-muxer=matroska"
"--enable-muxer=webm"
"--enable-muxer=ogg"
"--enable-muxer=pcm_s16be"
@@ -223,7 +206,7 @@
"--enable-demuxer=h264"
"--enable-demuxer=hevc"
- ;; enable parsers
+ ;; Enable parsers.
"--enable-parser=h263"
"--enable-parser=h264"
"--enable-parser=hevc"
@@ -232,7 +215,7 @@
"--enable-parser=vp9"
"--enable-parser=opus"
- ;; encoders/decoders
+ ;; Encoders/decoders.
"--enable-encoder=adpcm_g722"
"--enable-decoder=adpcm_g722"
"--enable-encoder=rawvideo"
@@ -263,7 +246,7 @@
"--enable-encoder=libopus"
"--enable-decoder=libopus"
- ;; decoders for ringtones and audio streaming
+ ;; Decoders for ringtones and audio streaming.
"--enable-decoder=flac"
"--enable-decoder=vorbis"
"--enable-decoder=aac"
@@ -298,7 +281,7 @@
"--enable-decoder=pcm_u16be"
"--enable-decoder=pcm_u16le"
- ;; encoders/decoders for images
+ ;; Encoders/decoders for images.
"--enable-encoder=gif"
"--enable-decoder=gif"
"--enable-encoder=jpegls"
@@ -312,7 +295,7 @@
"--enable-encoder=tiff"
"--enable-decoder=tiff"
- ;; filters
+ ;; Filters.
"--enable-filter=scale"
"--enable-filter=overlay"
"--enable-filter=amix"
@@ -346,8 +329,8 @@
"--enable-encoder=mjpeg_vaapi"
"--enable-encoder=hevc_vaapi"))
-;; ffnvcodec is not supported on ARM then we enable it here for i386 and
-;; x86_64 architectures.
+;; ffnvcodec is not supported on ARM; enable it only for the i386 and x86_64
+;; architectures.
(define %ffmpeg-linux-x86-configure-flags
'("--arch=x86"
"--enable-cuvid"
@@ -378,81 +361,89 @@
(define-public ffmpeg-jami
(package/inherit ffmpeg
(name "ffmpeg-jami")
- (native-inputs
- `(("jami-sources" ,%jami-sources)
- ("libiconv" ,libiconv)
- ,@(package-native-inputs ffmpeg)))
- (supported-systems '("x86_64-linux" "i686-linux"
- "aarch64-linux" "armhf-linux"))
(arguments
- (append
- '(#:tests? #f)
- (substitute-keyword-arguments (package-arguments ffmpeg)
- ((#:configure-flags '())
- (ffmpeg-compose-configure-flags))
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'make-git-checkout-writable
- (lambda _
- (for-each make-file-writable (find-files "."))))
+ (substitute-keyword-arguments (package-arguments ffmpeg)
+ ((#:tests? _ #f)
+ ;; The "rtp_ext_abs_send_time" patch causes the 'lavf-mov_rtphint'
+ ;; test to fail (see:
+ ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/685).
+ ;; TODO: Try to disable just this test.
+ #f)
+ ((#:configure-flags '())
+ (ffmpeg-compose-configure-flags))
+ ((#:phases phases)
+ #~(modify-phases #$phases
(add-after 'unpack 'apply-patches
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda _
;; These patches come from:
- ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
- (,jami-apply-custom-patches
- #:inputs inputs #:dep-name "ffmpeg"
+ ;; "jami-project/daemon/contrib/src/ffmpeg/rules.mak".
+ (#$jami-apply-custom-patches
+ #:dep-name "ffmpeg"
#:patches '("remove-mjpeg-log"
"change-RTCP-ratio"
"rtp_ext_abs_send_time"
"libopusdec-enable-FEC"
- "libopusenc-enable-FEC")))))))))))
+ "libopusenc-enable-FEC"
+ "screen-sharing-x11-fix"))))))))))
-(define-public libring
+(define-public libjami
(package
- (name "libring")
+ (name "libjami")
(version %jami-version)
(source %jami-sources)
- (build-system gnu-build-system)
(outputs '("out" "debug"))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ ;; The test suite fails to link when building libjami as a shared library:
+ ;; "testAccount_factory.cpp:(.text+0xc52): undefined reference to
+ ;; `jami::AccountFactory::AccountFactory()'.
+ #:tests? #f
+ ;; The agent links the daemon binary with libguile, which enables the
+ ;; execution of test plans described in Scheme. It may be useful in
+ ;; user scripts too, until more generalized Scheme bindings are made
+ ;; (see: test/agent/README.md).
+ ;; FIXME: Fails to link when building libjami as a shared library:
+ ;; bindings.cpp:(.text+0x24): undefined reference to `jami::Logger::log
+ ;; [...].
+ #:configure-flags #~(list "--disable-agent")
+ #:make-flags #~(list "V=1") ;build verbosely
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'change-directory/maybe
+ (lambda _
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "daemon")))))))
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("asio" ,asio)
- ("dbus-c++" ,dbus-c++)
- ("eudev" ,eudev)
- ("ffmpeg" ,ffmpeg-jami)
- ("jack" ,jack-1)
- ("jsoncpp" ,jsoncpp)
- ("libarchive" ,libarchive)
- ("libgit2" ,libgit2)
- ("libnatpmp" ,libnatpmp)
- ("libsecp256k1" ,libsecp256k1)
- ("libupnp" ,libupnp)
- ("opendht" ,opendht)
- ("openssl" ,openssl)
- ("pjproject" ,pjproject-jami)
- ("pulseaudio" ,pulseaudio)
- ("speex" ,speex)
- ("speexdsp" ,speexdsp)
- ("webrtc-audio-processing" ,webrtc-audio-processing)
- ("yaml-cpp" ,yaml-cpp)))
+ (list alsa-lib
+ asio
+ dbus-c++
+ eudev
+ ffmpeg-jami
+ guile-3.0
+ jack-1
+ jsoncpp
+ libarchive
+ libgit2
+ libnatpmp
+ libsecp256k1
+ libupnp
+ opendht
+ openssl
+ pjproject-jami
+ pulseaudio
+ speex
+ speexdsp
+ webrtc-audio-processing
+ yaml-cpp))
(native-inputs
(list autoconf
automake
+ cppunit
libtool
- perl ;to generate manpages with pod2man
+ perl ;to generate manpages with pod2man
pkg-config
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")))
- (add-before 'build 'add-lib-dir
- (lambda _
- (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
@@ -462,39 +453,42 @@ protocols, as well as decentralized calling using P2P-DHT.")
(home-page "https://jami.net/")
(license license:gpl3+)))
-(define-public libringclient
+;;; Remove when 2023 comes.
+(define-public libring
+ (deprecated-package "libring" libjami))
+
+;;; Note: this package will eventually be absorbed into jami itself (the Qt
+;;; client).
+(define-public jami-libclient
(package
- (name "libringclient")
+ (name "jami-libclient")
(version %jami-version)
(source %jami-sources)
(build-system cmake-build-system)
(outputs '("out" "debug"))
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:configure-flags
+ #~(list (string-append "-DRING_XML_INTERFACES_DIR="
+ #$(this-package-input "libjami")
+ "/share/dbus-1/interfaces")
+ (string-append "-DRING_BUILD_DIR="
+ #$(this-package-input "libjami")
+ "/include")
+ ;; Call to the libraries directly instead of going through DBus
+ ;; to avoid issues (see: https://issues.guix.gnu.org/48538).
+ "-DENABLE_LIBWRAP=true")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'change-directory/maybe
+ (lambda _
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "lrc")))))))
(inputs
- (list libring network-manager))
+ (list libjami network-manager))
(propagated-inputs
- (list qtbase-5)) ; Qt is included in several installed headers.
- (arguments
- `(#:tests? #f ; There is no testsuite.
- #:configure-flags
- (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"))))))
+ (list qtbase-5)) ;Qt is included in several installed headers
(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
@@ -504,33 +498,17 @@ decentralized calling using P2P-DHT.")
(home-page "https://jami.net")
(license license:gpl3+)))
+;;; Remove when 2023 comes.
+(define-public libringclient
+ (deprecated-package "libringclient" jami-libclient))
+
(define-public jami-gnome
(package
(name "jami-gnome")
(version %jami-version)
(source %jami-sources)
- (build-system cmake-build-system)
(outputs '("out" "debug"))
- (inputs
- (list clutter
- clutter-gtk
- gtk+
- libcanberra
- libappindicator
- libnotify
- libringclient
- network-manager
- qrencode
- sqlite
- webkitgtk))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin"))) ;for glib-compile-resources
- (propagated-inputs
- (list libring ; Contains 'dring', the daemon, which is
- ; automatically started by DBus.
- adwaita-icon-theme))
+ (build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test suite
#:imported-modules (,@%cmake-build-system-modules
@@ -540,18 +518,41 @@ decentralized calling using P2P-DHT.")
(guix build utils))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'change-directory
+ (add-after 'unpack 'change-directory/maybe
(lambda _
- (chdir "client-gnome")))
- (add-after 'change-directory 'fix-webkit-detection
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "client-gnome"))))
+ (add-after 'change-directory/maybe 'fix-webkit-detection
(lambda _
(substitute* "CMakeLists.txt"
(("WEBKIT webkit2gtk-4.0")
"WEBKIT webkit2gtk-4.1"))))
+ (add-after 'change-directory/maybe 'fix-version-string
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("^# Set VERSION.*" anchor)
+ (string-append anchor
+ "set(PROJECT_VERSION \"" ,version "\")\n")))))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
(assoc-ref gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (inputs
+ (list clutter
+ clutter-gtk
+ gtk+
+ jami-libclient
+ libcanberra
+ libappindicator
+ libnotify
+ network-manager
+ qrencode
+ sqlite
+ webkitgtk))
+ (native-inputs
+ (list pkg-config
+ gettext-minimal
+ `(,glib "bin"))) ;for glib-compile-resources
(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
@@ -561,30 +562,44 @@ 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))
-
-(define-public jami-qt
(package
- (name "jami-qt") ;to be renamed 'jami' at some point
+ (name "jami")
(version %jami-version)
- (source %jami-sources)
+ (source (origin
+ (inherit %jami-sources)
+ (patches (search-patches "jami-fix-crash-on-quit.patch"))))
(build-system qt-build-system)
(outputs '("out" "debug"))
(arguments
`(#:tests? #f ;no test suite
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "client-qt"))))))
+ (add-after 'unpack 'change-directory/maybe
+ (lambda _
+ ;; Allow building from the tarball or a git checkout.
+ (false-if-exception (chdir "client-qt"))))
+ (add-after 'change-directory/maybe 'fix-version-string
+ (lambda _
+ (substitute* "src/version.h"
+ (("VERSION_STRING")
+ "BUILD_DATE") ;to avoid a redefinition error
+ (("// clang-format on.*" anchor)
+ (string-append "const char VERSION_STRING[] = \""
+ ,version "\";\n"
+ anchor)))))
+ (add-after 'change-directory/maybe 'use-desktop-opengl
+ ;; TODO: Remove after next release; this is no longer specified in
+ ;; the source following the update to Qt 6.
+ (lambda _
+ (substitute* "src/main.cpp"
+ (("Qt::AA_UseOpenGLES")
+ "Qt::AA_UseDesktopOpenGL")))))))
(native-inputs
- (list pkg-config qttools doxygen graphviz))
+ (list pkg-config python qttools doxygen graphviz))
(inputs
- (list libnotify
- libringclient
+ (list jami-libclient
+ libnotify
network-manager
qrencode
qtsvg
@@ -595,8 +610,6 @@ decentralized calling using P2P-DHT.")
qtgraphicaleffects
qtquickcontrols
qtquickcontrols2))
- (propagated-inputs
- (list libring)) ;for dring
(home-page "https://jami.net")
(synopsis "Qt Jami client")
(description "This package provides the Jami Qt client. Jami is a secure
@@ -605,3 +618,7 @@ 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+)))
+
+;;; Remove when 2023 comes.
+(define-public jami-qt
+ (deprecated-package "jami-qt" jami))
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index ef1a51d735..e30cf39dc9 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -391,8 +391,8 @@ benchmarks as well as comparing benchmark results.")
julia-biosymbols
julia-intervaltrees))
(home-page "https://github.com/BioJulia/BioAlignments.jl")
- (synopsis "Sequence alignement algorithm and data structures")
- (description "This package provides alignement algorithms and data
+ (synopsis "Sequence alignment algorithm and data structures")
+ (description "This package provides alignment algorithms and data
structures for sequence of DNA, RNA, and amino acid sequences.")
(license license:expat)))
diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm
index 56ced35204..dd5d2a5a55 100644
--- a/gnu/packages/jupyter.scm
+++ b/gnu/packages/jupyter.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr>
+;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -370,16 +371,16 @@ nbconvert's @code{ExecutePreprocessor.}")
(define-public repo2docker
(package
(name "repo2docker")
- (version "2021.03.0")
+ (version "2021.08.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jupyterhub/repo2docker/")
- (commit "2021.03.0")))
+ (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "18w8rgf7fpf79kx36y2c3xi3d52i41z112l3sz719d8kg0bir16m"))))
+ "111irpghzys0s5ixs8paskz7465cls1sm9d5bg45a15jklcw84a9"))))
(outputs '("out" "doc"))
(build-system python-build-system)
(arguments
@@ -399,10 +400,14 @@ nix-shell-wrapper|repo2docker-entrypoint)")
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "doc"))
(doc (string-append out "/share/doc/"
- ,name)))
- (setenv "GUIX_PYTHONPATH"
+ ,(package-name this-package))))
+ (setenv "PYTHONPATH"
(string-append (getcwd) ":"
(getenv "GUIX_PYTHONPATH")))
+ ;; Don't treat warnings as errors.
+ (substitute* "docs/Makefile"
+ (("(SPHINXOPTS[[:blank:]]+= )-W" _ group)
+ group))
(with-directory-excursion "docs"
(invoke "make" "html")
(copy-recursively "build/html"
@@ -418,7 +423,7 @@ nix-shell-wrapper|repo2docker-entrypoint)")
python-escapism
python-docker))
(native-inputs
- (list python-sphinx python-recommonmark
+ (list python-sphinx python-entrypoints python-recommonmark
python-sphinxcontrib-autoprogram python-pydata-sphinx-theme))
(home-page "https://repo2docker.readthedocs.io/en/latest/index.html#")
(synopsis "Generate docker images from repositories")
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index dfd4cd197c..8dfcba1388 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
-;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2020, 2021, 2022 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
@@ -474,7 +474,7 @@ expression library, that is used in Krita.")
(define-public krita
(package
(name "krita")
- (version "5.0.0")
+ (version "5.0.2")
(source
(origin
(method url-fetch)
@@ -482,7 +482,7 @@ expression library, that is used in Krita.")
"mirror://kde/stable/krita/" version "/krita-" version
".tar.gz"))
(sha256
- (base32 "0mycxrqp944kp5bhlv8c1x1ikn9av1q7dhzl32jd6gxbphyq7mc4"))))
+ (base32 "1gww95fyd5r3x2260j2ls7d8fp4rsfxnwdqai2j7fjahxg3iyxg6"))))
(build-system qt-build-system)
(arguments
`(#:tests? #f
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index 286620882d..2efec07e1d 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
;;; Copyright © 2016, 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2017, 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 John Doe <dftxbs3e@free.fr>
@@ -140,6 +140,18 @@ conversions for values passed between the two languages.")
(description "Foreign Function Interface for Python calling C code.")
(license expat)))
+;; TODO(staging): Merge with the above.
+(define-public python-cffi-1.15
+ (package
+ (inherit python-cffi)
+ (version "1.15.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cffi" version))
+ (sha256
+ (base32 "0m3rz2pqfmyfagx0bhj2jlbr2h58j3wr3cyv1agxkhlnm1k0s3wj"))))))
+
(define-public python2-cffi
(package-with-python2 python-cffi))
diff --git a/gnu/packages/license.scm b/gnu/packages/license.scm
index 79ad3df4c8..cc6b03b412 100644
--- a/gnu/packages/license.scm
+++ b/gnu/packages/license.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -167,13 +168,13 @@ belonging to various licenses.")
(define-public reuse
(package
(name "reuse")
- (version "0.13.0")
+ (version "0.14.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "reuse" version))
(sha256
- (base32 "00gqpw124lz6kf3gi6m2i1bnxp3k5n3id0bgqff0bj08jga7pj49"))))
+ (base32 "1q84qv982y67inqb67iy3r6z7339593w7zdaaxswjqxfrd1by7bp"))))
(build-system python-build-system)
(native-inputs
(list python-pytest python-setuptools-scm))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 2bf4115a89..5f471beaaf 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@@ -356,7 +356,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.15-version "5.15.13")
+(define-public linux-libre-5.15-version "5.15.14")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@@ -366,7 +366,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "04fj1x3zmi310cr3m9hxpi26gdcmwfsqciv5yb6q6rrnqjqs1pc0")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "0shmrx33crnhi0wr5v6ly85pza1mmdcm8arkrdzf6plz5xm1n4qa")))
+ (hash (base32 "0kbayz4k72hx9b0l9yz2mbgb2xpnpm13snms06r2absv3gkv9wid")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
@@ -374,7 +374,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.90")
+(define-public linux-libre-5.10-version "5.10.91")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -384,12 +384,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "0997ijkmvf9iz4hn8m8naiagphhyvl4r6qx4q3gxk8qlq1j44pll")))
+ (hash (base32 "1lcmhp6njj4ypwkq471mdjapbqvcn6jfqx7z422h8fn6q62gpkk2")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.170")
+(define-public linux-libre-5.4-version "5.4.171")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@@ -399,12 +399,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "0b1qdmp2q0lpngfvvnwb248cnqn9akk2z4xawrfwziszrzh797xh")))
+ (hash (base32 "0n29bd1kv4rk3ji05vkvxkrzyzq50dxk0zsnk7r5lj45gpnwig5g")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.224")
+(define-public linux-libre-4.19-version "4.19.225")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@@ -414,12 +414,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "0c8h457n52qzpw4kgr16ndhsl35si99amc6fadb31fy32csgrk01")))
+ (hash (base32 "15k7b04zx5ggfjagp8sfrylr9xgwgz3hb2bygdml7ka1jnbv76jb")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.261")
+(define-public linux-libre-4.14-version "4.14.262")
(define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
@@ -429,12 +429,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "08s7idxpsjb29ccj0gkrj87xhbdqj9nc417qc7gd2kmbjd6amymz")))
+ (hash (base32 "05yl51r5n3q9l8pq6azx3bbl69l79lk8vkdivy3cvgzdh59pizac")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.296")
+(define-public linux-libre-4.9-version "4.9.297")
(define-public linux-libre-4.9-gnu-revision "gnu1")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
@@ -444,12 +444,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
- (hash (base32 "1a5ws21dk5wp397zmd7msl4zbhzm2xxgbxd09wrdcwilpv4dnjzx")))
+ (hash (base32 "17yqnr6p0prgcw8nikjmi49ll4s77ylaixcja5m15cq9x36shfz4")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
-(define-public linux-libre-4.4-version "4.4.298")
+(define-public linux-libre-4.4-version "4.4.299")
(define-public linux-libre-4.4-gnu-revision "gnu1")
(define deblob-scripts-4.4
(linux-libre-deblob-scripts
@@ -459,7 +459,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
- (hash (base32 "1q56ch8p53in5rl5i7mvsyf0jimchrh48w3l416x3yi0n5cyvjc6")))
+ (hash (base32 "019hmplv1zhghl840qky9awziba3gx7jm80khny44gjfbyzf7d4v")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
@@ -1722,7 +1722,7 @@ GnuPG-based password manager like @code{pass}.")
(define-public powercap
(package
(name "powercap")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method git-fetch)
@@ -1731,11 +1731,11 @@ GnuPG-based password manager like @code{pass}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1hp2i1d195v0n4jgvgaymkxlpgyhn07ic273gkda95lz65cdfcgm"))))
+ (base32 "1vs84fmhdc3w1541vp0f5ydvdsbg0amjdv2g2f8xdvaw01nakxsn"))))
(build-system cmake-build-system)
(arguments
- '(#:configure-flags
- '("-DBUILD_SHARED_LIBS=ON")))
+ (list #:configure-flags
+ #~(list "-DBUILD_SHARED_LIBS=ON")))
(home-page "https://github.com/powercap/powercap")
(synopsis "Utilities for accessing the powercap Linux kernel feature")
(description "This package contains utilities for accessing the powercap
@@ -3723,38 +3723,39 @@ from the module-init-tools project.")
(file-name (git-file-name name version))
(sha256
(base32
- "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (substitute* "Makefile"
- (("go test -v")
- "GO111MODULE=off go test -v"))
- #t))))
+ "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (add-before 'check 'set-go-HOME
- (lambda _
- (setenv "HOME" (getcwd))
- #t))
- (add-before 'check 'disable-failing-test
- (lambda _
- ;; This test relies on writing to /proc/%d/oom_score_adj.
- (substitute* "testsuite_cli_test.go"
- (("TestI" match)
- (string-append "skipped" match)))
- #t)))
- #:make-flags (let* ((prefix (assoc-ref %outputs "out")))
- (list ,(string-append "CC=" (cc-for-target))
- (string-append "VERSION=v" ,version)
- (string-append "PREFIX=" prefix)
- (string-append "SYSCONFDIR=" prefix "/etc")))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (add-before 'check 'set-go-HOME
+ (lambda _
+ (setenv "HOME" (getcwd))))
+ (add-before 'check 'disable-failing-test
+ (lambda _
+ ;; This test relies on writing to /proc/%d/oom_score_adj.
+ (substitute* "testsuite_cli_test.go"
+ (("TestI" match)
+ (string-append "skipped" match))))))
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "VERSION=v" #$version)
+ (string-append "PREFIX=" #$output)
+ (string-append "SYSCONFDIR=" #$output "/etc")
+ "GO111MODULE=off")
#:test-target "test"))
- (native-inputs (list go ;for the test suite
- pandoc)) ;to generate the manpage
+ (native-inputs
+ (append
+ ;; To generate the manpage.
+ (if (or (target-x86-64?) (target-x86-32?))
+ (list pandoc)
+ '())
+ (list
+ ;; For the test suite.
+ cppcheck
+ go)))
(home-page "https://github.com/rfjakob/earlyoom")
(synopsis "Simple out of memory (OOM) daemon for the Linux kernel")
(description "Early OOM is a minimalist out of memory (OOM) daemon that
@@ -4658,27 +4659,26 @@ isolation or root privileges.")
(define-public hdparm
(package
(name "hdparm")
- (version "9.62")
+ (version "9.63")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hdparm/hdparm/"
"hdparm-" version ".tar.gz"))
(sha256
(base32
- "0zvppv8qw0y1shlhn34iq1g4883i1cywsa514n595nmyrmsrs3rc"))))
+ "14cni5r116k07zqj0565byjhv6gf3ns6hd8jkjl7fn5sxgm5sy3h"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags
- (let ((out (assoc-ref %outputs "out")))
- (list (string-append "binprefix=" out)
- (string-append "manprefix=" out)
- ,(string-append "CC=" (cc-for-target))
- ;; Let Guix strip the binaries and not break cross-compilation.
- "STRIP=true"))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)) ; no configure script
- #:tests? #f)) ; no test suite
+ (list #:make-flags
+ #~(list (string-append "binprefix=" #$output)
+ (string-append "manprefix=" #$output)
+ (string-append "CC=" #$(cc-for-target))
+ ;; Let Guix strip binaries and not break cross-compilation.
+ "STRIP=true")
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)) ; no configure script
+ #:tests? #f)) ; no test suite
(home-page "https://sourceforge.net/projects/hdparm/")
(synopsis "View and tune ATA disk drive parameters")
(description
@@ -4697,7 +4697,7 @@ Translation (@dfn{SAT}) are also supported.")
(define-public nvme-cli
(package
(name "nvme-cli")
- (version "1.15")
+ (version "1.16")
(home-page "https://github.com/linux-nvme/nvme-cli")
(source (origin
(method git-fetch)
@@ -4705,21 +4705,22 @@ Translation (@dfn{SAT}) are also supported.")
(url home-page)
(commit (string-append "v" version))))
(sha256
- (base32 "0qr1wa163cb7z6g083nl3zcc28mmlbxh1m97pd54bp3gyrhmdhhr"))
+ (base32 "130x5cf6kkcnyg5qd35igii249ysfjnbxp1pxfwkickmqg3d007z"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags
- (list ,(string-append "CC=" (cc-for-target)))
- #:phases (modify-phases %standard-phases
- (delete 'configure) ; no ./configure script
- (replace 'install
- (lambda _
- (invoke "make" "install-spec" "PREFIX="
- (string-append "DESTDIR=" %output)))))
- ;; The tests require sysfs, which is not accessible from from the build
- ;; environment
- #:tests? #f))
+ (list #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no ./configure script
+ (replace 'install
+ (lambda _
+ (invoke "make" "install-spec" "PREFIX="
+ (string-append "DESTDIR=" #$output)))))
+ ;; The tests require sysfs, which is not accessible from from the
+ ;; build environment.
+ #:tests? #f))
(synopsis "NVM-Express user space tooling for Linux")
(description "Nvme-cli is a utility to provide standards compliant tooling
for NVM-Express drives. It was made specifically for Linux as it relies on the
@@ -6324,7 +6325,7 @@ cpufreq sub-system is enabled or not.")
(define-public haveged
(package
(name "haveged")
- (version "1.9.16")
+ (version "1.9.17")
(source
(origin
(method git-fetch)
@@ -6333,7 +6334,7 @@ cpufreq sub-system is enabled or not.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0xnmnifm2kh23acrxcprhb4yk13g2hvqv7y9kslbj1kxwrvmd04q"))))
+ (base32 "119iy8qrvdjkfwnzn1nfjzh2bbihb1vl44qhd6yzzcacjm6pwndr"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 9100ebe0f1..dd9b195899 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -27,7 +27,7 @@
;;; Copyright © 2021 Cage <cage-dev@twistfold.it>
;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com>
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
-;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
+;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2021 Jacob MacDonald <jaccarmac@gmail.com>
@@ -3212,7 +3212,7 @@ is a library for creating graphical user interfaces.")
(define-public sbcl-cl-webkit
(package
(name "sbcl-cl-webkit")
- (version "3.4.0")
+ (version "3.5.0")
(source
(origin
(method git-fetch)
@@ -3222,7 +3222,7 @@ is a library for creating graphical user interfaces.")
(file-name (git-file-name "cl-webkit" version))
(sha256
(base32
- "0l6ml7g0r0kzbgf49bsgj2yxhgralh8fc0h9vpc79fvw20qgsd56"))))
+ "1a16dka15lqzpli0f0qd3afmi14vgdxnfkn9z9d1r4cw9p11s71l"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("cffi" ,sbcl-cffi)
@@ -3785,8 +3785,8 @@ RFC 1321 by R. Rivest, published April 1992.")
(list ecl-flexi-streams))))
(define-public sbcl-cl+ssl
- (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
- (revision "1"))
+ (let ((commit "09e896b04c112e7eb0f9d443a5801d557fbcd3ea")
+ (revision "2"))
(package
(name "sbcl-cl+ssl")
(version (git-version "0.0.0" revision commit))
@@ -3798,7 +3798,7 @@ RFC 1321 by R. Rivest, published April 1992.")
(commit commit)))
(file-name (git-file-name "cl+ssl" version))
(sha256
- (base32 "0nfl275nwhff3m25872y388cydz14kqb6zbwywa6nj85r9k8bgs0"))))
+ (base32 "1ynvk8rbd5zvbdrl8mr49jwmg9fh94clzkagkza9jmpj0p1qvynd"))))
(build-system asdf-build-system/sbcl)
(arguments
'(#:phases
@@ -3808,6 +3808,9 @@ RFC 1321 by R. Rivest, published April 1992.")
(substitute* "src/reload.lisp"
(("libssl.so" all)
(string-append
+ (assoc-ref inputs "openssl") "/lib/" all))
+ (("libcrypto.so" all)
+ (string-append
(assoc-ref inputs "openssl") "/lib/" all))))))))
(inputs
(list openssl
@@ -3817,7 +3820,8 @@ RFC 1321 by R. Rivest, published April 1992.")
sbcl-bordeaux-threads
sbcl-trivial-garbage
sbcl-alexandria
- sbcl-trivial-features))
+ sbcl-trivial-features
+ sbcl-usocket))
(home-page "https://common-lisp.net/project/cl-plus-ssl/")
(synopsis "Common Lisp bindings to OpenSSL")
(description
@@ -19994,6 +19998,38 @@ available for use in Lisp programs.")
(define-public cl-https-everywhere
(sbcl-package->cl-source-package sbcl-cl-https-everywhere))
+(define-public sbcl-magic-ed
+ (let ((commit "30bb27832d4e3e362578e7320934638f9889a8c4")
+ (revision "1"))
+ (package
+ (name "sbcl-magic-ed")
+ (version (git-version "0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sanel/magic-ed")
+ (commit commit)))
+ (file-name (git-file-name "cl-magic-ed" version))
+ (sha256
+ (base32 "1j6il4lif0dy6hqiz6n91yl8dvii9pk1i9vz0faq5mnr42mr7i5f"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/sanel/magic-ed")
+ (synopsis "Editing facility for Common Lisp REPL")
+ (description
+ "Magic (ed) is a tiny editing facility for Common Lisp, where you can
+directly load, edit, manipulate and evaluate file or file content from REPL.
+This package also can be a starting point for people who are not accustomed to
+Emacs or SLIME and would like to continue using their default terminal/console
+editor with Common Lisp.")
+ (license license:expat))))
+
+(define-public cl-magic-ed
+ (sbcl-package->cl-source-package sbcl-magic-ed))
+
+(define-public ecl-magic-ed
+ (sbcl-package->ecl-package sbcl-magic-ed))
+
(define-public sbcl-maxpc
(let ((commit "e5e58d053039517d30fd59ab2d128256b87790d5")
(revision "1"))
@@ -20182,10 +20218,43 @@ APL.")
(define-public ecl-april
(sbcl-package->ecl-package sbcl-april))
-(define-public sbcl-cl-gopher
- (let ((commit "29fbe52e3f377e24e8bde77b00789a1e32a75b90")
+(define-public sbcl-cl-sxml
+ (let ((commit "e5542b1d9bd6cee03ae27547d00660ccfbb60109")
(revision "1"))
(package
+ (name "sbcl-cl-sxml")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/eadmund/cl-sxml")
+ (commit commit)))
+ (file-name (git-file-name "cl-sxml" version))
+ (sha256
+ (base32 "1105s9whidq1lf0lli2wdhcfcs5gwzxa0h1x3izx4mp2p7psvciz"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs (list sbcl-cxml))
+ (native-inputs
+ (list sbcl-fiveam
+ sbcl-flexi-streams))
+ (home-page "https://github.com/eadmund/cl-sxml")
+ (synopsis "SXML parsing for Common Lisp")
+ (description
+ "@code{CL-SXML} implements Oleg Kiselyov’s SXML, an S-expression-based
+rendering of the XML Infoset.")
+ (license license:gpl3+))))
+
+(define-public cl-sxml
+ (sbcl-package->cl-source-package sbcl-cl-sxml))
+
+(define-public ecl-cl-sxml
+ (sbcl-package->ecl-package sbcl-cl-sxml))
+
+(define-public sbcl-cl-gopher
+ (let ((commit "62cfd180378f56e7e8b57e4302b183810c86e337")
+ (revision "2"))
+ (package
(name "sbcl-cl-gopher")
(version (git-version "0.0.0" revision commit))
(source
@@ -20196,7 +20265,7 @@ APL.")
(commit commit)))
(file-name (git-file-name "cl-gopher" version))
(sha256
- (base32 "1dilgbnbgbrn7wglv8n03kpgc94l43mgv9y0akg7h5mwn8ii5p6m"))))
+ (base32 "0szz29d83fk2cxn5j1zlf4v0154qnf9cy1ix5p4jjpsql1a8xiwg"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-bordeaux-threads
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 80d7585387..82fbd15381 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2019–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -1156,7 +1156,7 @@ including a built-in database engine and a GUI system.")
(define-public janet
(package
(name "janet")
- (version "1.19.0")
+ (version "1.19.2")
(source
(origin
(method git-fetch)
@@ -1165,18 +1165,18 @@ including a built-in database engine and a GUI system.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1gpwhgnkwxjp95gs3i5dcdpsmv1pa7a299m8hccyy92jxd15pym6"))))
+ (base32 "0waj22rzxmc0yx1yr0pzw9lwp6my5abfpfi6vq932bmli8y9prpd"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags
- (list
- (string-append "DESTDIR=" (assoc-ref %outputs "out"))
- (string-append "PREFIX=")
- (string-append "CC=" ,(cc-for-target)))
- #:test-target "test"
- #:phases
- (modify-phases %standard-phases
- (delete 'configure))))
+ (list #:make-flags
+ #~(list
+ (string-append "DESTDIR=" #$output)
+ (string-append "PREFIX=")
+ (string-append "CC=" #$(cc-for-target)))
+ #:test-target "test"
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure))))
(home-page "https://janet-lang.org/")
(synopsis "Functional, imperative and embeddable programming language")
(description
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index ff4d4824eb..99f09a26f1 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -105,6 +105,18 @@ automatic memory management with incremental garbage collection, making it ideal
for configuration, scripting, and rapid prototyping.")
(license license:x11)))
+(define-public lua-5.4
+ (package (inherit lua)
+ (version "5.4.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.lua.org/ftp/lua-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq"))
+ (patches (search-patches "lua-5.4-pkgconfig.patch"
+ "lua-5.4-liblua-so.patch"))))))
+
(define-public lua-5.2
(package (inherit lua)
(version "5.2.4")
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index fc40718ac6..4f30ab6f9c 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -1203,16 +1203,24 @@ for scientific computing and data science (e.g. BLAS and OpenMP).")
(define-public python-pynndescent
(package
(name "python-pynndescent")
- (version "0.5.2")
+ (version "0.5.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pynndescent" version))
(sha256
- (base32 "0w87c2v0li2rdbx6qfc2lb6y6bxpdy3jwfgzfs1kcr4d1chj5zfr"))))
+ (base32 "10pqqqc3jkpw03cyzy04slxmpgyhqnlgbyk0c1cv7kqr5d0zhzbs"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "--pyargs" "pynndescent")))))))
(native-inputs
- (list python-nose))
+ (list python-pytest))
(propagated-inputs
(list python-joblib python-llvmlite python-numba python-scikit-learn
python-scipy))
@@ -1226,17 +1234,16 @@ for k-neighbor-graph construction and approximate nearest neighbor search.")
(define-public python-opentsne
(package
(name "python-opentsne")
- (version "0.5.2")
+ (version "0.6.1")
(source
(origin
- ;; No tests in the PyPI tarball.
- (method git-fetch)
+ (method git-fetch) ; no tests in PyPI release
(uri (git-reference
(url "https://github.com/pavlin-policar/openTSNE")
(commit (string-append "v" version))))
- (file-name (string-append name "-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1hl42wmafydk4fxdx05l180k3canmqw8h9r20fsqq2aq440b09gh"))))
+ (base32 "124nid27lfq1ipfjd2gkynqcmb4khisjb4r05jv42ckfkk4dbsxs"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1244,13 +1251,15 @@ for k-neighbor-graph construction and approximate nearest neighbor search.")
;; Benchmarks require the 'macosko2015' data files.
(add-after 'unpack 'delete-benchmark
(lambda _
- (delete-file-recursively "benchmarks")
- #t))
+ (delete-file-recursively "benchmarks")))
+ (add-after 'unpack 'skip-test
+ (lambda _ ;; TODO: figure out why this test fails.
+ (substitute* "tests/test_correctness.py"
+ (("def test_iris\\(self\\)") "def _test_iris(self)"))))
;; Numba needs a writable dir to cache functions.
(add-before 'check 'set-numba-cache-dir
(lambda _
- (setenv "NUMBA_CACHE_DIR" "/tmp")
- #t)))))
+ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
(native-inputs
(list python-cython))
(inputs
@@ -1269,17 +1278,15 @@ visualizing high-dimensional data sets.")
(define-public python-scikit-rebate
(package
(name "python-scikit-rebate")
- (version "0.6")
+ (version "0.62")
(source (origin
(method url-fetch)
(uri (pypi-uri "skrebate" version))
(sha256
(base32
- "1h7qs9gjxpzqabzhb8rmpv3jpmi5iq41kqdibg48299h94iikiw7"))))
+ "0n55ghvnv7rxqa5agq6a4892ad0ghha165b0g4ghwr9gqm6ss3dj"))))
(build-system python-build-system)
- ;; Pandas is only needed to run the tests.
- (native-inputs
- (list python-pandas))
+ (arguments '(#:tests? #f)) ;no tests on PyPI and no tags in repo
(propagated-inputs
(list python-numpy python-scipy python-scikit-learn python-joblib))
(home-page "https://epistasislab.github.io/scikit-rebate/")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 403f32d5c9..b50224befd 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, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
@@ -17,12 +17,12 @@
;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016–2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
-;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2020 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2018, 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
@@ -262,88 +262,88 @@ example, modify the message headers or body, or encrypt or sign the message.")
(define-public mailutils
(package
(name "mailutils")
- (version "3.13")
+ (version "3.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mailutils/mailutils-"
version ".tar.xz"))
(sha256
(base32
- "1iwl82d6aa2acsdxbqh1s5xx44sg83b4yxqik408m1s9rcfrf86r"))
+ "0fbi2b144mgblq9qhdyhj9855mbglzr8fr23rnps8icbxa7v7if0"))
(patches
(search-patches "mailutils-variable-lookup.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'prepare-test-suite
- (lambda _
- ;; Use the right file name for `cat'.
- (substitute* "testsuite/lib/mailutils.exp"
- (("/bin/cat")
- (which "cat")))
-
- ;; Tests try to invoke 'mda' such that it looks up the
- ;; 'root' user, which does not exist in the build
- ;; environment.
- (substitute* '("mda/mda/tests/testsuite"
- "mda/lmtpd/tests/testsuite")
- (("root <") "nobody <")
- (("spool/root") "spool/nobody")
- (("root@localhost") "nobody@localhost"))
-
- ;; The 'pipeact.at' tests generate a shell script; make
- ;; sure it uses the right shell.
- (substitute* '("sieve/tests/testsuite"
- "mh/tests/testsuite"
- "libmailutils/tests/lock.at")
- (("#! ?/bin/sh")
- (string-append "#!" (which "sh"))))
-
- (substitute* "mh/tests/testsuite"
- (("moreproc: /bin/cat")
- (string-append "moreproc: " (which "cat"))))
-
- ;; XXX: The comsatd tests rely on being able to open
- ;; /dev/tty, but that gives ENODEV in the build
- ;; environment. Thus, ignore test failures here.
- (substitute* "comsat/tests/Makefile.in"
- (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all)
- (string-append "-" all)))
-
- ;; XXX: The ‘moderator: program discard’ test does not specify
- ;; an explicit From: but does expect an exact match. But why are
- ;; all other tests unaffected?
- (substitute* "sieve/tests/testsuite"
- (("gray@")
- "nixbld@"))
-
- ;; 'frm' tests expect write access to $HOME.
- (setenv "HOME" (getcwd))
-
- ;; Avoid the message "I'm going to create the standard MH path
- ;; for you", which would lead to one test failure (when diffing
- ;; stdout of 'fmtcheck'.)
- (call-with-output-file ".mh_profile"
- (lambda (port)
- (format port "Path: ~a/Mail-for-tests~%"
- (getcwd))))
-
- (substitute* "imap4d/tests/testclient.c"
- (("\"/bin/sh\"")
- (string-append "\"" (which "sh") "\""))))))
- #:configure-flags
- (list "--sysconfdir=/etc"
-
- ;; Add "/X.Y" to the installation directory.
- (string-append "--with-guile-site-dir="
- (assoc-ref %outputs "out")
- "/share/guile/site/"
- ,(match (assoc "guile"
- (package-inputs this-package))
- (("guile" guile)
- (version-major+minor
- (package-version guile))))))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'prepare-test-suite
+ (lambda _
+ ;; Use the right file name for `cat'.
+ (substitute* "testsuite/lib/mailutils.exp"
+ (("/bin/cat")
+ (which "cat")))
+
+ ;; Tests try to invoke 'mda' such that it looks up the
+ ;; 'root' user, which does not exist in the build
+ ;; environment.
+ (substitute* '("mda/mda/tests/testsuite"
+ "mda/lmtpd/tests/testsuite")
+ (("root <") "nobody <")
+ (("spool/root") "spool/nobody")
+ (("root@localhost") "nobody@localhost"))
+
+ ;; The 'pipeact.at' tests generate a shell script; make
+ ;; sure it uses the right shell.
+ (substitute* '("sieve/tests/testsuite"
+ "mh/tests/testsuite"
+ "libmailutils/tests/lock.at")
+ (("#! ?/bin/sh")
+ (string-append "#!" (which "sh"))))
+
+ (substitute* "mh/tests/testsuite"
+ (("moreproc: /bin/cat")
+ (string-append "moreproc: " (which "cat"))))
+
+ ;; XXX: The comsatd tests rely on being able to open
+ ;; /dev/tty, but that gives ENODEV in the build
+ ;; environment. Thus, ignore test failures here.
+ (substitute* "comsat/tests/Makefile.in"
+ (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all)
+ (string-append "-" all)))
+
+ ;; XXX: The ‘moderator: program discard’ test does not
+ ;; specify an explicit From: but does expect an exact
+ ;; match. But why are all other tests unaffected?
+ (substitute* "sieve/tests/testsuite"
+ (("gray@")
+ "nixbld@"))
+
+ ;; 'frm' tests expect write access to $HOME.
+ (setenv "HOME" (getcwd))
+
+ ;; Avoid the message "I'm going to create the standard MH
+ ;; path for you", which would lead to one test failure
+ ;; (when diffing stdout of 'fmtcheck'.)
+ (call-with-output-file ".mh_profile"
+ (lambda (port)
+ (format port "Path: ~a/Mail-for-tests~%"
+ (getcwd))))
+
+ (substitute* "imap4d/tests/testclient.c"
+ (("\"/bin/sh\"")
+ (string-append "\"" (which "sh") "\""))))))
+ #:configure-flags
+ #~(list "--sysconfdir=/etc"
+
+ ;; Add "/X.Y" to the installation directory.
+ (string-append "--with-guile-site-dir="
+ (assoc-ref %outputs "out")
+ "/share/guile/site/"
+ #$(match (assoc "guile"
+ (package-inputs this-package))
+ (("guile" guile)
+ (version-major+minor
+ (package-version guile))))))))
(native-inputs
;; Regeneration of the build system is triggered by touching the
;; 'libmailutils/tests/lock.at' file.
@@ -912,19 +912,19 @@ mailpack. What can alterMIME do?
pkg-config
ronn
w3m
- xorg-server))
+ xorg-server-for-tests))
(inputs
- `(("boost" ,boost)
- ("gmime" ,gmime)
- ("gobject-introspection" ,gobject-introspection) ; it is referenced
- ("gtkmm" ,gtkmm-3)
- ("libpeas" ,libpeas)
- ("libsass" ,libsass)
- ("notmuch" ,notmuch)
- ("protobuf" ,protobuf)
- ("python" ,python-wrapper)
- ("python-pygobject" ,python-pygobject)
- ("webkitgtk" ,webkitgtk)))
+ (list boost
+ gmime
+ gobject-introspection ; it is referenced
+ gtkmm-3
+ libpeas
+ libsass
+ notmuch
+ protobuf
+ python-wrapper
+ python-pygobject
+ webkitgtk-with-libsoup2))
(propagated-inputs
(list adwaita-icon-theme)) ; Required for the thread view
(home-page "https://astroidmail.github.io/")
@@ -1335,14 +1335,14 @@ invoking @command{notifymuch} from the post-new hook.")
(define-public notmuch
(package
(name "notmuch")
- (version "0.34.2")
+ (version "0.34.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
version ".tar.xz"))
(sha256
- (base32 "1ls7dbgqhvyn9arf1r1jijfllypylgr5l86p489732gn8zpcxwn1"))))
+ (base32 "1278r8x8l2hsxg8plbfk7w2md0fagdm243lm7df5m0gx7d411s9z"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -1370,20 +1370,19 @@ invoking @command{notifymuch} from the post-new hook.")
(substitute* (find-files "test" "\\.sh$")
(("/bin/sh") (which "sh"))))))))
(native-inputs
- `(("bash-completion" ,bash-completion)
- ("pkg-config" ,pkg-config)
- ("python" ,python)
- ("python-docutils" ,python-docutils)
- ("sphinx" ,python-sphinx)
- ("texinfo" ,texinfo)
-
- ;; The following are required for tests only.
- ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
- ("which" ,which)
- ("dtach" ,dtach)
- ("gnupg" ,gnupg)
- ("man" ,man-db)
- ("perl" ,perl)))
+ (list bash-completion
+ pkg-config
+ python
+ python-docutils
+ python-sphinx
+ texinfo
+ ;; The following are required for tests only.
+ emacs-no-x ; -minimal lacks libxml, needed for some tests
+ which
+ dtach
+ gnupg
+ man-db
+ perl))
(inputs
(list glib gmime talloc xapian zlib))
(home-page "https://notmuchmail.org/")
@@ -1538,19 +1537,19 @@ pairs have previously synchronized.")
(define-public getmail
(package
(name "getmail")
- (version "5.15")
+ (version "5.16")
(source
(origin
(method url-fetch)
- (uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
+ (uri (string-append "https://pyropus.ca/software/getmail/old-versions/"
"getmail-" version ".tar.gz"))
(sha256
- (base32 "0ahn2jyj4ka996qzs99id59pwxv6sqxp61g7drcf53rzzigq0lyl"))))
+ (base32 "1yk7lrndbfsrbdxikwzdqvadryqsldalxdn3a184dg4sxzmgis3a"))))
(build-system python-build-system)
(arguments
- `(#:tests? #f ; no tests
- #:python ,python-2))
- (home-page "http://pyropus.ca/software/getmail/")
+ (list #:tests? #f ; no tests
+ #:python python-2))
+ (home-page "https://pyropus.ca/software/getmail/")
(synopsis "Mail retriever")
(description
"A flexible, extensible mail retrieval system with support for
@@ -1643,13 +1642,11 @@ compresses it.")
(add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
;; Use absolute paths to referenced programs.
- (let* ((mailutils (assoc-ref inputs "mailutils"))
- (inc (string-append mailutils "/bin/mu-mh/inc"))
- (send-mail (assoc-ref inputs "sendmail"))
- (sendmail (string-append send-mail "/sbin/sendmail")))
- (substitute* "src/common/defs.h"
- (("/usr/bin/mh/inc") inc)
- (("/usr/sbin/sendmail") sendmail)))))
+ (substitute* "src/common/defs.h"
+ (("/usr/bin/mh/inc")
+ (search-input-file inputs "/bin/mu-mh/inc"))
+ (("/usr/sbin/sendmail")
+ (search-input-file inputs "/sbin/sendmail")))))
(add-before 'build 'patch-mime
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/procmime.c"
@@ -1664,49 +1661,48 @@ compresses it.")
intltool
pkg-config))
(inputs
- `(("bogofilter" ,bogofilter)
- ("cairo" ,cairo)
- ("compface" ,compface)
- ("curl" ,curl)
- ("dbus" ,dbus)
- ("dbus-glib" ,dbus-glib)
- ("enchant" ,enchant)
- ("expat" ,expat)
- ("fontconfig" ,fontconfig)
- ("librsvg" ,librsvg)
- ("ghostscript" ,ghostscript)
- ("glib" ,glib)
- ("gnupg" ,gnupg)
- ("gnutls" ,gnutls)
- ("gpgme" ,gpgme)
- ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("gtk+" ,gtk+)
- ("gumbo-parser" ,gumbo-parser)
- ;;("j-pilot" ,j-pilot)
- ("libarchive" ,libarchive)
- ("libcanberra" ,libcanberra)
- ("libetpan" ,libetpan)
- ("libgdata" ,libgdata)
- ("libical" ,libical)
- ("libindicator" ,libindicator)
- ("libnotify" ,libnotify)
- ("librsvg" ,librsvg)
- ("libsm" ,libsm)
- ("libsoup" ,libsoup)
- ("libxml2" ,libxml2)
- ("mailutils" ,mailutils)
- ("nettle" ,nettle)
- ("network-manager" ,network-manager)
- ("openldap" ,openldap)
- ("perl" ,perl)
- ("poppler" ,poppler)
- ("python" ,python)
- ("python-pygobject" ,python-pygobject)
- ("sendmail" ,sendmail)
- ("shared-mime-info" ,shared-mime-info)
- ("startup-notification" ,startup-notification)
- ;;("webkitgtk" ,webkitgtk)
- ("ytnef" ,ytnef)))
+ (list bogofilter
+ cairo
+ compface
+ curl
+ dbus
+ dbus-glib
+ enchant
+ expat
+ fontconfig
+ ghostscript
+ glib
+ gnupg
+ gnutls
+ gpgme
+ gsettings-desktop-schemas
+ gtk+
+ gumbo-parser
+ ;;j-pilot
+ libarchive
+ libcanberra
+ libetpan
+ libgdata
+ libical
+ libindicator
+ libnotify
+ (librsvg-for-system)
+ libsm
+ libsoup
+ libxml2
+ mailutils
+ nettle
+ network-manager
+ openldap
+ perl
+ poppler
+ python
+ python-pygobject
+ sendmail
+ shared-mime-info
+ startup-notification
+ ;;webkitgtk
+ ytnef))
(propagated-inputs
(list dconf))
(synopsis "GTK-based Email client")
@@ -3524,8 +3520,8 @@ some configuration.")
#t))))
#:tests? #f)) ; Tests try to run a mailman instance to test against.
(inputs
- (list python-django python-django-mailman3 python-mailmanclient
- python-readme-renderer))
+ (list python-readme-renderer python-mailmanclient
+ python-django-2.2 python-django-mailman3))
(native-inputs
(list python-beautifulsoup4 python-isort python-mock python-vcrpy))
(home-page "https://gitlab.com/mailman/postorius")
@@ -4456,7 +4452,12 @@ ex-like commands on it.")
;; Inline functions can only be used from the same compilation
;; unit. This causes the build to fail.
(substitute* "crm_svm_matrix.c"
- (("^inline ") ""))))
+ (("^inline ") ""))
+ ;; Building with gcc 10 fails without the -fcommon flag. Add it
+ ;; to CFLAGS.
+ (substitute* "Makefile"
+ (("CFLAGS \\+= -DVERSION")
+ "CFLAGS += -fcommon -DVERSION"))))
(add-before 'install 'pre-install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 5f2f525cd2..be3d4e619f 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
;;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
@@ -36,10 +36,12 @@
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix utils)
+ #:use-module (guix gexp)
+ #:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
- #:use-module (gnu packages)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -239,6 +241,56 @@ implementation.
@end example")
(license license:perl-license)))
+(define-public python-cmarkgfm
+ (package
+ (name "python-cmarkgfm")
+ (version "0.7.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "cmarkgfm" version))
+ (sha256
+ (base32
+ "06cw49bzxl3k7m8993cyi5zqxvk817z8ghhr9xqq5gx8klpiap56"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete bundled cmark and generated headers.
+ (for-each delete-file-recursively
+ '("third_party/cmark" "generated"))))))
+ (build-system python-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'copy-cmark-gfm
+ (lambda _
+ ;; This package needs the cmark-gfm source files
+ ;; to generate FFI bindings.
+ (copy-recursively #+(package-source (this-package-input
+ "cmark-gfm"))
+ "third_party/cmark")))
+ (add-after 'unpack 'install-cmark-headers
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; XXX: Loosely based on 'regenerate' from noxfile.py.
+ (let ((version.h (search-input-file
+ inputs "/include/cmark-gfm_version.h")))
+ (for-each (lambda (file)
+ (install-file file "generated/unix/"))
+ (cons version.h
+ (find-files (dirname version.h)
+ "_export\\.h$"))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv" "tests")))))))
+ (native-inputs (list python-pytest))
+ (inputs (list cmark-gfm))
+ (propagated-inputs (list python-cffi-1.15))
+ (home-page "https://github.com/theacodes/cmarkgfm")
+ (synopsis "Python bindings for GitHub's fork of cmark")
+ (description
+ "This package provides a minimal set of Python bindings for the
+GitHub cmark fork (@code{cmark-gfm}).")
+ (license license:expat)))
+
(define-public python-markdownify
(package
(name "python-markdownify")
@@ -265,7 +317,7 @@ convert HTML to Markdown.")
(define-public cmark
(package
(name "cmark")
- (version "0.29.0")
+ (version "0.30.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -274,16 +326,7 @@ convert HTML to Markdown.")
(file-name (git-file-name name version))
(sha256
(base32
- "0r7jpqhgnssq444i8pwji2g36058vfzwkl70wbiwj13h4w5rfc8f"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Mimic upstream commit 68c3a91166347 to fix a test failure
- ;; when using Python 3.8. Remove for versions > 0.29.
- ;; See <https://github.com/commonmark/cmark/issues/313>.
- (substitute* "test/normalize.py"
- (("cgi") "html"))
- #t))))
+ "1426snw3mq8qmpdxznkhsyy75xd9v9nwlc7sph08qpdz8xnp4hr2"))))
(build-system cmake-build-system)
(arguments
'(#:test-target "test"))
@@ -302,6 +345,33 @@ for parsing and rendering CommonMark.")
;; licensed. See 'COPYING' in the source distribution for more information.
(license (list license:bsd-2 license:expat license:cc-by-sa4.0))))
+(define-public cmark-gfm
+ (package
+ (inherit cmark)
+ (name "cmark-gfm")
+ (version "0.29.0.gfm.2")
+ (home-page "https://github.com/github/cmark-gfm")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0vz6zs3m22k7jzfj4782lahciwfjlbi4m3qz5crsmssip3rwdy7h"))))
+ (arguments
+ '(#:test-target "test"
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'install-config
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; XXX: cmark-gfm-core-extensions.h includes this file.
+ (install-file "src/config.h"
+ (string-append out "/include"))))))))
+ (synopsis "GitHub flavored CommonMark")
+ (description
+ "This package is a fork of @code{cmark}, with GitHub-specific Markdown
+additions.")))
+
(define-public smu
(package
(name "smu")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index b0944f307b..ef90bf7010 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -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, 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2020–2022 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>
@@ -319,7 +319,7 @@ triangulations.")
(define-public python-cvxopt
(package
(name "python-cvxopt")
- (version "1.2.3")
+ (version "1.2.7")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -328,7 +328,7 @@ triangulations.")
(file-name (git-file-name name version))
(sha256
(base32
- "1kiy2m62xgs2d5id6dnnwy4vap85cd70p7pgkb9nh23qf9xnak7b"))))
+ "114z34wwx1bsv4q6xj9p5q99dffgnj9s4i4arx10g191xq9q8i5y"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -357,9 +357,6 @@ extensive standard library and on the strengths of Python as a high-level
programming language.")
(license license:gpl3+)))
-(define-public python2-cvxopt
- (package-with-python2 python-cvxopt))
-
(define-public units
(package
(name "units")
@@ -2437,7 +2434,7 @@ satisfiability checking (SAT).")
(define-public ceres
(package
(name "ceres-solver")
- (version "1.14.0")
+ (version "2.0.0")
(home-page "http://ceres-solver.org/")
(source (origin
(method url-fetch)
@@ -2445,7 +2442,7 @@ satisfiability checking (SAT).")
version ".tar.gz"))
(sha256
(base32
- "13lfxy8x58w8vprr0nkbzziaijlh0vvqshgahvcgw0mrqdgh0i27"))))
+ "00vng9vnmdb1qga01m0why90m0041w7bn6kxa2h4m26aflfqla8h"))))
(build-system cmake-build-system)
(arguments
;; TODO: Build HTML user documentation and install separately.
@@ -2464,11 +2461,11 @@ satisfiability checking (SAT).")
(propagated-inputs
(list glog)) ;for #include <glog/glog.h>
(inputs
- `(("eigen" ,eigen)
- ("blas" ,openblas)
- ("lapack" ,lapack)
- ("suitesparse" ,suitesparse)
- ("gflags" ,gflags)))
+ (list eigen
+ openblas
+ lapack
+ suitesparse
+ gflags))
(synopsis "C++ library for solving large optimization problems")
(description
"Ceres Solver is a C++ library for modeling and solving large,
@@ -2506,21 +2503,24 @@ can solve two kinds of problems:
"pkg-config" "eigen3"
"--cflags"))))
- (define (compile-file file)
- (let ((source (string-append file ".cc")))
- (format #t "building '~a'...~%" file)
- (apply invoke "c++" "-fopenmp" "-O2" "-g" "-DNDEBUG"
- source "-lceres" "-lbenchmark" "-lglog"
- "-pthread"
- "-o" (string-append bin "/" file)
- "-I" ".." flags)))
+ (define (compile-file top-dir)
+ (lambda (file)
+ (let ((source (string-append file ".cc")))
+ (format #t "building '~a'...~%" file)
+ (apply invoke "c++" "-fopenmp" "-O2" "-g" "-DNDEBUG"
+ source "-lceres" "-lbenchmark" "-lglog"
+ "-pthread"
+ "-o" (string-append bin "/" file)
+ "-I" top-dir flags))))
(mkdir-p bin)
(with-directory-excursion "internal/ceres"
- (for-each compile-file
- '("small_blas_gemm_benchmark"
- "small_blas_gemv_benchmark"
- "autodiff_cost_function_benchmark"))))))
+ (for-each (compile-file "..")
+ '("schur_eliminator_benchmark"
+ "small_blas_gemm_benchmark"
+ "small_blas_gemv_benchmark"))
+ (with-directory-excursion "autodiff_benchmarks"
+ ((compile-file "../..") "autodiff_benchmarks"))))))
(delete 'check)
(delete 'install))))
(inputs (modify-inputs (package-inputs ceres)
@@ -5268,14 +5268,16 @@ A unique design feature of Trilinos is its focus on packages.")
(define-public dealii
(package
(name "dealii")
- (version "9.3.1")
+ (version "9.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/dealii/dealii/releases/"
"download/v" version "/dealii-" version ".tar.gz"))
(sha256
- (base32 "1f0sqvlxvl0myqcn0q6xrn1vnp5pgx143lai4a4jkh1dmdv4cbx6"))
+ (base32 "1s0kawnljg24jj6nibwrif5gxdgg2daqfylhqqpl1lvmzmmxfhak"))
+ (patches (search-patches "dealii-fix-compiliation-with-boost-1.78.patch"
+ "dealii-fix-sundials.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -5286,16 +5288,14 @@ A unique design feature of Trilinos is its focus on packages.")
(outputs '("out" "doc"))
(native-inputs
;; Required to build the documentation.
- `(("dot" ,graphviz)
- ("doxygen" ,doxygen)
- ("perl" ,perl)))
+ (list graphviz doxygen perl))
(inputs
- `(("arpack" ,arpack-ng)
- ("blas" ,openblas)
- ("gfortran" ,gfortran)
- ("lapack" ,lapack)
- ("muparser" ,muparser)
- ("zlib" ,zlib)))
+ (list arpack-ng
+ openblas
+ gfortran
+ lapack
+ muparser
+ zlib))
(propagated-inputs
;; Some scripts are installed into share/deal.II/scripts that require
;; perl and python, but they are not executable (and some are missing the
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm
index 8cdfa38b32..5f94eb2075 100644
--- a/gnu/packages/matrix.scm
+++ b/gnu/packages/matrix.scm
@@ -3,6 +3,8 @@
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2022 Morgan Smith <Morgan.J.Smith@outlook.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,6 +26,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages monitoring)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
@@ -72,7 +75,10 @@
(build-system python-build-system)
(arguments
;; tests require synapse, creating a circular dependency.
- '(#:tests? #f))
+ '(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ ;; Also, auth_provider.py attempts to import synapse.
+ (delete 'sanity-check))))
(propagated-inputs
(list python-twisted python-ldap3 python-service-identity))
(home-page "https://github.com/matrix-org/matrix-synapse-ldap3")
@@ -256,20 +262,26 @@ fledged batteries-included asyncio layer using aiohttp.")
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv" "tests")))))))
(native-inputs
- (list python-pytest python-faker python-pytest-aiohttp
- python-aioresponses))
+ (list python-aioresponses
+ python-faker
+ python-pytest
+ python-pytest-aiohttp))
(propagated-inputs
(list python-aiohttp
python-appdirs
python-attrs
python-cachetools
python-click
+ python-dbus
python-janus
python-keyring
python-logbook
python-matrix-nio
+ python-notify2
python-peewee
- python-prompt-toolkit))
+ python-prompt-toolkit
+ python-pydbus
+ python-pygobject))
(home-page "https://github.com/matrix-org/pantalaimon")
(synopsis "Matrix proxy daemon that adds E2E encryption capabilities")
(description
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index a8f053f9c4..0e9b99fa1c 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -312,6 +312,103 @@ for repositories using URI-based layouts.")))
(description "This package contains a transport implementation based on
Maven Wagon, for use in Maven.")))
+(define-public maven-resolver-transport-file
+ (package
+ (inherit maven-resolver-api)
+ (name "maven-resolver-transport-file")
+ (arguments
+ `(#:jar-name "maven-resolver-transport-file.jar"
+ #:source-dir "maven-resolver-transport-file/src/main/java"
+ #:test-dir "maven-resolver-transport-file/src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'generate-sisu
+ (lambda _
+ (mkdir-p "build/classes/META-INF/sisu")
+ (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
+ (lambda _
+ (display "org.eclipse.aether.transport.file.FileTransporterFactory\n"))))))))
+ (inputs
+ (list java-eclipse-sisu-inject
+ java-eclipse-sisu-plexus
+ java-javax-inject
+ java-plexus-classworlds
+ java-plexus-component-annotations
+ java-plexus-utils
+ java-slf4j-api
+ maven-resolver-api
+ maven-resolver-spi
+ maven-resolver-util
+ maven-wagon-provider-api))
+ (native-inputs
+ (list java-asm
+ java-aopalliance
+ java-cglib
+ java-guava
+ java-guice
+ java-hamcrest-core
+ java-junit
+ maven-resolver-test-util))
+ (synopsis "Transport implementation for Maven")
+ (description "This package contains a transport implementation based on
+files, for use in Maven.")))
+
+(define-public maven-resolver-transport-http
+ (package
+ (inherit maven-resolver-api)
+ (name "maven-resolver-transport-http")
+ (arguments
+ `(#:jar-name "maven-resolver-transport-http.jar"
+ #:source-dir "maven-resolver-transport-http/src/main/java"
+ #:test-dir "maven-resolver-transport-http/src/test"
+ #:jdk ,icedtea-8
+ ;; Tests all fail because
+ ;; org.eclipse.aether.transport.http.SslSocketFactory is not available.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'generate-sisu
+ (lambda _
+ (mkdir-p "build/classes/META-INF/sisu")
+ (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
+ (lambda _
+ (display "org.eclipse.aether.transport.http.HttpTransporterFactory\n"))))))))
+ (inputs
+ (list java-eclipse-sisu-inject
+ java-eclipse-sisu-plexus
+ java-javax-inject
+ java-plexus-classworlds
+ java-plexus-component-annotations
+ java-plexus-utils
+ java-slf4j-api
+ maven-resolver-api
+ maven-resolver-spi
+ maven-resolver-util
+ maven-wagon-provider-api))
+ (propagated-inputs
+ (list java-httpcomponents-httpclient
+ java-httpcomponents-httpcore))
+ (native-inputs
+ (list java-aopalliance
+ java-asm
+ java-cglib
+ java-eclipse-aether-api
+ java-eclipse-jetty-http
+ java-eclipse-jetty-io
+ java-eclipse-jetty-server
+ java-eclipse-jetty-servlet
+ java-eclipse-jetty-util
+ java-guava
+ java-guice
+ java-hamcrest-core
+ java-javaee-servletapi
+ java-junit
+ maven-resolver-test-util))
+ (synopsis "Transport implementation for Maven")
+ (description "This package contains a transport implementation based on
+HTTP, for use in Maven.")))
+
;; aether is the parent project that was forked into maven-resolver. It used
;; to be used with older versions of Maven, and is still required for some
;; plugins and their dependencies. This version is required for the plugins,
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 75e889c5b5..43b1059304 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -28,9 +28,9 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
@@ -469,7 +469,7 @@ playing your music.")
(define-public strawberry
(package
(name "strawberry")
- (version "0.9.3")
+ (version "1.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -478,7 +478,7 @@ playing your music.")
(file-name (git-file-name name version))
(sha256
(base32
- "0lby5zi66i08s0mcygja8l3rbd97inhaxqbhahj8lfxs52r4grrq"))
+ "077dlj0kjcrj4g1h4w8finzykizaar67ik6yng6c8zjp2i5bam1j"))
(modules '((guix build utils)
(ice-9 regex)))
(snippet
@@ -734,7 +734,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(define-public hydrogen
(package
(name "hydrogen")
- (version "1.0.2")
+ (version "1.1.1")
(source
(origin
(method git-fetch)
@@ -743,7 +743,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0nhn2njs8yyxcijxv5zgymf3211y6anzm0v9kn4vnd8kai7zwxxp"))))
+ (base32 "12mwkglyz88hwb16fb3fahn95janim2mrvnxkzp8pcsw3wybi3dn"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "tests"
@@ -1564,26 +1564,35 @@ listeners answer questions about music quickly and simply.")
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ (substitute* "setup.py"
+ ;; Permit newer versions of uqbar. Remove for >3.4.
+ ((", <0\\.5\\.0")
+ ""))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; See: https://stackoverflow.com/a/34140498
- (invoke "python" "-m" "pytest" "tests")
- #t))))))
- (native-inputs
- (list python-black
+ (invoke "python" "-m" "pytest" "tests")))))))
+ (inputs
+ (list lilypond))
+ (propagated-inputs
+ (list python-ply
+ python-quicktions
+ python-roman
+ python-six
+ python-uqbar
+ ;; XXX: These test dependencies(?) are listed as install_requires
+ ;; in setup.py. Propagate accordingly.
+ python-black
python-flake8
- python-iniconfig
python-isort
python-mypy
python-pytest
python-pytest-cov
+ python-pytest-helpers-namespace
python-sphinx-autodoc-typehints))
- (inputs
- (list lilypond))
- (propagated-inputs
- (list python-ply python-quicktions python-roman python-six
- python-uqbar))
(home-page "https://abjad.github.io")
(synopsis "Python API for building LilyPond files")
(description
@@ -1702,6 +1711,12 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
`(#:tests? #f
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ (substitute* "setup.py"
+ ;; Don't require a specific version of abjad.
+ (("abjad==")
+ "abjad>="))))
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
@@ -2267,7 +2282,7 @@ perform creative live mixes with digital music files.")
(define-public synthv1
(package
(name "synthv1")
- (version "0.9.23")
+ (version "0.9.24")
(source (origin
(method url-fetch)
(uri
@@ -2275,8 +2290,8 @@ perform creative live mixes with digital music files.")
"/synthv1-" version ".tar.gz"))
(sha256
(base32
- "03lvq84pg0agdn16i7ng6j7lp1ii3inf4pzjypnkywb2km7zcpni"))))
- (build-system gnu-build-system)
+ "0m9xpl7kq0zlain8598q5cqrh1c7ima2w8jrpq7ds8vh97r7p1bl"))))
+ (build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
(inputs
@@ -2298,7 +2313,7 @@ oscillators and stereo effects.")
(define-public drumkv1
(package
(name "drumkv1")
- (version "0.9.23")
+ (version "0.9.24")
(source (origin
(method url-fetch)
(uri
@@ -2306,8 +2321,8 @@ oscillators and stereo effects.")
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
- "1jgsml9wxzwnqyb6wjn9zk94qvxs6c898hyj10sza4d9l6r1rnw0"))))
- (build-system gnu-build-system)
+ "04k0mkvlz9ka0mlck4g7c86s1rhb9pkhml6j6n9b5hwlbq8a9mxk"))))
+ (build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
(inputs
@@ -2330,7 +2345,7 @@ effects.")
(define-public samplv1
(package
(name "samplv1")
- (version "0.9.23")
+ (version "0.9.24")
(source (origin
(method url-fetch)
(uri
@@ -2338,8 +2353,8 @@ effects.")
"/samplv1-" version ".tar.gz"))
(sha256
(base32
- "1bgyz530mpmlabvy592zickrzk4x4rm2i0ixf3z6plgn265km43q"))))
- (build-system gnu-build-system)
+ "1c3ksd02dfqvzc3zk4x282b6gxr1l4ya9c4l04dcn55mrymgn2zz"))))
+ (build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
(inputs
@@ -2362,7 +2377,7 @@ effects.")
(define-public padthv1
(package
(name "padthv1")
- (version "0.9.23")
+ (version "0.9.24")
(source (origin
(method url-fetch)
(uri
@@ -2370,8 +2385,8 @@ effects.")
"/padthv1-" version ".tar.gz"))
(sha256
(base32
- "0222n74kykirkhq4va09hr37rybxs0nxjbmamp38jf94bfz5y8gp"))))
- (build-system gnu-build-system)
+ "0p3qp2lzhmj8i17bcqzsi0782nz7s90hx3s8vax6bxl4mqxsvnxb"))))
+ (build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
(inputs
@@ -2395,7 +2410,7 @@ special variant of additive synthesis.")
(define-public amsynth
(package
(name "amsynth")
- (version "1.12.3")
+ (version "1.12.4")
(source
(origin
(method url-fetch)
@@ -2403,7 +2418,7 @@ special variant of additive synthesis.")
"download/release-" version
"/amsynth-" version ".tar.gz"))
(sha256
- (base32 "0xqcm3ggaj004gfmlsds2x6q8dxlz1akz6dbwkynv9vvdnizm91r"))))
+ (base32 "1fabxx4nv5rsi4kjqachzh2r6zb40lszbv09gcz41ql8qslrw842"))))
(build-system gnu-build-system)
(arguments
(list #:phases
@@ -3312,15 +3327,15 @@ from the command line.")
(define-public qtractor
(package
(name "qtractor")
- (version "0.9.24")
+ (version "0.9.25")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.sourceforge.net/qtractor/"
"qtractor-" version ".tar.gz"))
(sha256
(base32
- "0bkr3ahpz54ssrvgkg3dw1jxp3hh7ayxr51jy3csm327is9gnd31"))))
- (build-system gnu-build-system)
+ "0x99yjabznr2pl867j3h9zdsjzkxzxm2c0xk1xwk50gfp8gwg9bh"))))
+ (build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no "check" target
(inputs
diff --git a/gnu/packages/myrddin.scm b/gnu/packages/myrddin.scm
new file mode 100644
index 0000000000..897276f57d
--- /dev/null
+++ b/gnu/packages/myrddin.scm
@@ -0,0 +1,65 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Guix Together <jgart@dismail.de>
+;;;
+;;; 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 packages myrddin)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix utils)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages pkg-config)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages))
+
+(define-public myrddin
+ (package
+ (name "myrddin")
+ (version "0.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/oridb/mc")
+ (commit (string-append "r" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0acqqz74ypmjvi1yqz7g1ymyk3mmkzwqgmdd3s7s287bdy4a72gc"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "bootstrap" make-flags)
+ (apply invoke "make" make-flags))))))
+ (native-inputs
+ (list bison pkg-config))
+ (home-page "https://myrlang.org")
+ (synopsis "Compiler and tools for the Myrddin programming language")
+ (description
+ "Myrddin is a programming language. It features strong type checking,
+generics, type inference, closures, and traits. It aims for C like low level
+control. This combination makes Myrddin suitable for anything ranging from
+desktop applications, to embedded systems and potentially even kernel
+development.")
+ (license license:expat)))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 004c97cd20..26f4be421a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -26,7 +26,7 @@
;;; Copyright © 2018, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021, 2022 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>
@@ -67,6 +67,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
@@ -2824,14 +2825,14 @@ can be whipped up with little effort.")
(define-public mtr
(package
(name "mtr")
- (version "0.94")
+ (version "0.95")
(source
(origin
(method url-fetch)
(uri (string-append "ftp://ftp.bitwizard.nl/mtr/"
"mtr-" version ".tar.gz"))
(sha256
- (base32 "1glxvlqskcmjkxlqk9i12hcfaxb389cx2n8ji7776gmix3aq4z1z"))))
+ (base32 "0haanralbvd12pvkyihgkmx9ld74dnzm1s7mzparfandl416ibff"))))
(build-system gnu-build-system)
(inputs
(list libcap ncurses))
@@ -3357,11 +3358,14 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(license license:bsd-3)))
(define-public opendht
- (let ((commit "6c58d4f2e9b7f1de15db8d3a736c8cf1ea5f2886")
- (revision "1"))
+ ;; The version/commit is kept in sync with what Jami uses in its daemon
+ ;; contrib build system (see:
+ ;; https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/opendht/rules.mak).
+ (let ((commit "dbbfdaab0f4119abf79646313e0dbc52881dcd56")
+ (revision "0"))
(package
(name "opendht")
- (version (git-version "2.3.0" revision commit))
+ (version (git-version "2.3.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3370,21 +3374,65 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(file-name (git-file-name name version))
(sha256
(base32
- "06l0z1dmxyjh8gdrmxyq4vnfnv3x400bhx0lxm7l90f8zc5r2bim"))))
- ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
+ "07x8vw999qpfl6qwj5k5l2mcjy1vp32sd567f6imbsnh9vlx2bdv"))))
(outputs '("out" "tools" "debug"))
- (build-system cmake-build-system)
- (inputs
- (list argon2
- nettle
- readline
- jsoncpp
- openssl ;required for the DHT proxy
- fmt))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:imported-modules `((guix build python-build-system) ;for site-packages
+ ,@%gnu-build-system-modules)
+ #:modules '(((guix build python-build-system) #:prefix python:)
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:tests? #f ;tests require networking
+ #:configure-flags
+ #~(list "--enable-tests"
+ "--enable-proxy-server"
+ "--enable-push-notifications"
+ "--enable-proxy-server-identity"
+ "--enable-proxy-client")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-python-installation-prefix
+ ;; Specify the installation prefix for the compiled Python module
+ ;; that would otherwise attempt to installs itself to Python's own
+ ;; site-packages directory.
+ (lambda _
+ (substitute* "python/Makefile.am"
+ (("--root=\\$\\(DESTDIR)/")
+ (string-append "--root=/ --single-version-externally-managed "
+ "--prefix=" #$output)))))
+ (add-after 'unpack 'specify-runpath-for-python-module
+ (lambda _
+ (substitute* "python/setup.py.in"
+ (("extra_link_args=\\[(.*)\\]" _ args)
+ (string-append "extra_link_args=[" args
+ ", '-Wl,-rpath=" #$output "/lib']")))))
+ (add-after 'install 'move-and-wrap-tools
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((tools (assoc-ref outputs "tools"))
+ (dhtcluster (string-append tools "/bin/dhtcluster"))
+ (site-packages (python:site-packages inputs outputs)))
+ (mkdir tools)
+ (rename-file (string-append #$output "/bin")
+ (string-append tools "/bin"))
+ ;; TODO: Contribute a patch to python/Makefile.am to
+ ;; automate this.
+ (copy-file "python/tools/dhtcluster.py" dhtcluster)
+ (chmod dhtcluster #o555)
+ (wrap-program dhtcluster
+ `("GUIX_PYTHONPATH" prefix (,site-packages)))))))))
+ (inputs (list bash-minimal fmt readline))
(propagated-inputs
- (list gnutls ;included in opendht/crypto.h
- msgpack ;included in several installed headers
- restinio)) ;included in opendht/http.h
+ (list msgpack ;included in several installed headers
+ restinio ;included in opendht/http.h
+ ;; The following are listed in the 'Requires.private' field of
+ ;; opendht.pc:
+ argon2
+ gnutls
+ jsoncpp
+ nettle
+ openssl)) ;required for the DHT proxy
(native-inputs
(list autoconf
automake
@@ -3393,50 +3441,6 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
python-cython
libtool
cppunit))
- (arguments
- `(#:imported-modules ((guix build python-build-system) ;for site-packages
- ,@%cmake-build-system-modules)
- #:modules (((guix build python-build-system) #:prefix python:)
- (guix build cmake-build-system)
- (guix build utils))
- #:tests? #f ; Tests require network connection.
- #:configure-flags
- '( ;;"-DOPENDHT_TESTS=on"
- "-DOPENDHT_STATIC=off"
- "-DOPENDHT_TOOLS=on"
- "-DOPENDHT_PYTHON=on"
- "-DOPENDHT_PROXY_SERVER=on"
- "-DOPENDHT_PUSH_NOTIFICATIONS=on"
- "-DOPENDHT_PROXY_SERVER_IDENTITY=on"
- "-DOPENDHT_PROXY_CLIENT=on")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-python-installation-prefix
- ;; Specify the installation prefix for the compiled Python module
- ;; that would otherwise attempt to installs itself to Python's own
- ;; site-packages directory.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "python/CMakeLists.txt"
- (("--root=\\\\\\$ENV\\{DESTDIR\\}")
- (string-append "--root=/ --single-version-externally-managed "
- "--prefix=${CMAKE_INSTALL_PREFIX}")))))
- (add-after 'unpack 'specify-runpath-for-python-module
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "python/setup.py.in"
- (("extra_link_args=\\[(.*)\\]" _ args)
- (string-append "extra_link_args=[" args
- ", '-Wl,-rpath=" out "/lib']"))))))
- (add-after 'install 'move-and-wrap-tools
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (tools (assoc-ref outputs "tools"))
- (site-packages (python:site-packages inputs outputs)))
- (mkdir tools)
- (rename-file (string-append out "/bin")
- (string-append tools "/bin"))
- (wrap-program (string-append tools "/bin/dhtcluster")
- `("GUIX_PYTHONPATH" prefix (,site-packages)))))))))
(home-page "https://github.com/savoirfairelinux/opendht/")
(synopsis "Lightweight Distributed Hash Table (DHT) library")
(description "OpenDHT provides an easy to use distributed in-memory data
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 5ec54b52eb..ce94557a8c 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2016, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2018-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
@@ -68,7 +68,7 @@
"032801kg24j04xmf09m0vxzlcz86sv21s24lv9l4cfv08k1c4byp"))
(modules '((guix build utils)))
(snippet
- `(begin
+ '(begin
;; Patch for compatibility with ICU 68 and newer, which
;; removed the public TRUE and FALSE macros.
(substitute* '("deps/v8/src/objects/intl-objects.cc"
@@ -90,8 +90,7 @@
(("deps/http_parser/http_parser.gyp") "")
(("deps/uv/include/\\*.h") "")
(("deps/uv/uv.gyp") "")
- (("deps/zlib/zlib.gyp") ""))
- #t))))
+ (("deps/zlib/zlib.gyp") ""))))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--shared-cares"
@@ -153,6 +152,10 @@
;; This requires a DNS resolver.
(delete-file "test/parallel/test-dns.js")
+ ;; This test is timing-sensitive, and fails sporadically on
+ ;; slow, busy, or even very fast machines.
+ (delete-file "test/parallel/test-fs-utimes.js")
+
;; FIXME: This test fails randomly:
;; https://github.com/nodejs/node/issues/31213
(delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
@@ -280,20 +283,20 @@
;; download them from the internet:
(format #t "nodedir=~a\n" out)))))))))
(native-inputs
- `(;; Runtime dependencies for binaries used as a bootstrap.
- ("c-ares" ,c-ares)
- ("http-parser" ,http-parser)
- ("icu4c" ,icu4c)
- ("libuv" ,libuv)
- ("nghttp2" ,nghttp2 "lib")
- ("openssl" ,openssl)
- ("zlib" ,zlib)
- ;; Regular build-time dependencies.
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("procps" ,procps)
- ("python" ,python-2)
- ("util-linux" ,util-linux)))
+ ;; Runtime dependencies for binaries used as a bootstrap.
+ (list c-ares
+ http-parser
+ icu4c
+ libuv
+ `(,nghttp2 "lib")
+ openssl
+ zlib
+ ;; Regular build-time dependencies.
+ perl
+ pkg-config
+ procps
+ python-2
+ util-linux))
(native-search-paths
(list (search-path-specification
(variable "NODE_PATH")
@@ -307,10 +310,11 @@
libuv
`(,nghttp2 "lib")
openssl
- python-wrapper ;; for node-gyp (supports python3)
+ python-wrapper ;for node-gyp (supports python3)
zlib))
(synopsis "Evented I/O for V8 JavaScript")
- (description "Node.js is a platform built on Chrome's JavaScript runtime
+ (description
+ "Node.js is a platform built on Chrome's JavaScript runtime
for easily building fast, scalable network applications. Node.js uses an
event-driven, non-blocking I/O model that makes it lightweight and efficient,
perfect for data-intensive real-time applications that run across distributed
@@ -731,14 +735,14 @@ source files.")
(define-public node-lts
(package
(inherit node)
- (version "14.18.1")
+ (version "14.18.3")
(source (origin
(method url-fetch)
(uri (string-append "https://nodejs.org/dist/v" version
"/node-v" version ".tar.xz"))
(sha256
(base32
- "1vc9rypkgr5i5y946jnyr9jjpydxvm74p1s17rg2zayzvlddg89z"))
+ "026nd6vihjdqz4jn0slg89m8m5vvkvjzgg1aip3dcg9lrm1w8fkq"))
(modules '((guix build utils)))
(snippet
`(begin
@@ -812,6 +816,10 @@ source files.")
;; These tests require networking.
(delete-file "test/parallel/test-https-agent-unref-socket.js")
+ ;; This test is timing-sensitive, and fails sporadically on
+ ;; slow, busy, or even very fast machines.
+ (delete-file "test/parallel/test-fs-utimes.js")
+
;; FIXME: This test fails randomly:
;; https://github.com/nodejs/node/issues/31213
(delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index fbf8f42334..1b0f278605 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -3,9 +3,10 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2021 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Tanguy Le Carrour <tanguy@bioneland.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -253,14 +254,14 @@ to docs.openstack.org and developer.openstack.org.")
(define-public python-os-testr
(package
(name "python-os-testr")
- (version "0.8.0")
+ (version "2.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "os-testr" version))
(sha256
(base32
- "0mknd9hlmxmihr755gjkxyjp180380jajq5i3zm34q7y7bi62lss"))))
+ "10xaqg3wxly13652hdvh9c69y4s12ird0ircffya3kvpl5pky0pz"))))
(build-system python-build-system)
(arguments
;; os-testr uses itself to run the tests. It seems like pbr writes the
@@ -268,7 +269,7 @@ to docs.openstack.org and developer.openstack.org.")
;; when building the package. Skip the tests for now.
`(#:tests? #f))
(propagated-inputs
- (list python-babel python-subunit python-testrepository python-testtools))
+ (list python-babel python-stestr python-testrepository python-testtools))
(native-inputs
(list python-pbr))
(home-page "https://www.openstack.org/")
@@ -363,35 +364,24 @@ common features used in Tempest.")
(define-public python-oslo.config
(package
(name "python-oslo.config")
- (version "5.2.0")
+ (version "8.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "oslo.config" version))
(sha256
(base32
- "0ymf7jxbq29fifyvkwhfiys1qvljqfxdw8ajwzwaf3yiqidgpxqd"))))
+ "0q3v4yicqls9zsfxkmh5mrgz9dailaz3ir25p458gj6dg3bldhx0"))))
(build-system python-build-system)
+ (arguments '(#:tests? #f)) ;XXX circular dependency on oslo.log
(propagated-inputs
(list python-debtcollector
python-netaddr
python-oslo.i18n
- python-pbr
python-rfc3986
- python-six
+ python-requests
python-stevedore
python-pyyaml))
- (native-inputs
- (list python-bandit
- python-coverage
- python-mock
- python-openstackdocstheme
- python-oslotest
- python-reno
- python-sphinx
- python-testrepository
- python-testscenarios
- python-testtools))
(home-page "https://launchpad.net/oslo")
(synopsis "Oslo Configuration API")
(description
@@ -449,15 +439,12 @@ pipeline and used by various modules such as logging.")
(base32
"0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3"))))
(build-system python-build-system)
+ (arguments
+ '(#:tests? #f)) ;avoid circular dependency on oslo.config
(propagated-inputs
(list python-babel python-six))
(native-inputs
- (list python-pbr
- ;; Tests
- python-mock
- python-mox3
- python-oslotest
- python-testscenarios))
+ (list python-pbr))
(home-page "https://launchpad.net/oslo")
(synopsis "Oslo internationalization (i18n) library")
(description
@@ -469,19 +456,23 @@ in an application or library.")
(define-public python-oslo.log
(package
(name "python-oslo.log")
- (version "3.36.0")
+ (version "4.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "oslo.log" version))
(sha256
(base32
- "0h7hplf1h8k24v75m3mq1jlrl74x5ynyr4hwgffsg5campxnza4x"))))
+ "0dlnxjci9mpwhgfv19fy1z7xrdp8m95skrj5dr60all3pr7n22f6"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "stestr" "run")))))))
(propagated-inputs
(list python-dateutil
python-debtcollector
- python-monotonic
python-oslo.config
python-oslo.context
python-oslo.i18n
@@ -491,8 +482,7 @@ in an application or library.")
python-pyinotify
python-six))
(native-inputs
- (list python-mock python-oslotest python-subunit
- python-testrepository python-testtools))
+ (list python-fixtures python-oslotest python-stestr python-testtools))
(home-page "https://launchpad.net/oslo")
(synopsis "Python logging library of the Oslo project")
(description
@@ -504,22 +494,25 @@ handlers and support for context specific logging (like resource id’s etc).")
(define-public python-oslo.serialization
(package
(name "python-oslo.serialization")
- (version "2.24.0")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "oslo.serialization" version))
(sha256
(base32
- "08bxkp98c617y58x630xq44iiffm7f0f3cwh6zbnlkgq0zgh7jk1"))))
+ "10sdgvyb0d3lcmb8b4l5gs40bkfbai08kvsdwp658dxd2yqf21rh"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "stestr" "run")))))))
(propagated-inputs
- (list python-msgpack python-netaddr python-oslo.utils python-six
- python-pytz))
+ (list python-msgpack python-oslo.utils python-pbr python-pytz))
(native-inputs
- (list python-pbr
- ;; Tests.
- python-mock python-oslo.i18n python-oslotest))
+ ;; For tests.
+ (list python-netaddr python-oslo.i18n python-oslotest python-stestr))
(home-page "https://launchpad.net/oslo")
(synopsis "Oslo serialization library")
(description
@@ -620,35 +613,37 @@ for debugging, and better support for mocking results.")
(define-public python-oslo.utils
(package
(name "python-oslo.utils")
- (version "3.36.2")
+ (version "4.12.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "oslo.utils" version))
(sha256
(base32
- "1ipjcgg9z697wmibhcbg5lqpk5gafakdx4qkff3w255zr0mvw04r"))))
+ "0kfgr6lr3r34nzmkvnyywr0x3lkwpwy35m1dj4rkk3ydqvi1xaip"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "stestr" "run")))))))
(propagated-inputs
(list python-debtcollector
python-oslo.i18n
python-iso8601
- python-monotonic
python-netaddr
python-netifaces
+ python-pbr
+ python-packaging-next
python-pyparsing
- python-pytz
- python-six))
+ python-pytz))
(native-inputs
- (list python-pbr
- ;; Tests.
- python-bandit
- python-ddt
+ ;; For tests.
+ (list python-ddt
+ python-eventlet
python-fixtures
- python-oslo.config
python-oslotest
- python-mock
- python-testrepository
+ python-stestr
python-testscenarios
python-testtools))
(home-page "https://launchpad.net/oslo")
diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm
index efdafe3d45..2b6fc00abc 100644
--- a/gnu/packages/orange.scm
+++ b/gnu/packages/orange.scm
@@ -34,13 +34,13 @@
(define-public python-orange-canvas-core
(package
(name "python-orange-canvas-core")
- (version "0.1.19")
+ (version "0.1.24")
(source
(origin
(method url-fetch)
(uri (pypi-uri "orange-canvas-core" version))
(sha256
- (base32 "03wav2msfm32y8zwq69v1v6qyh1ld76xla2z60avf49yhbwjgwal"))))
+ (base32 "0m3dszdkc5bc80ahcvrqxz8jahs33js9cx1mc6rc9ihysq2ddnfz"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -51,15 +51,13 @@
(substitute* "orangecanvas/application/tests/test_mainwindow.py"
(("test_help_requests") "_test_help_requests"))
(setenv "HOME" "/tmp")
- (setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
(propagated-inputs
(list python-anyqt
python-cachecontrol
python-commonmark
python-dictdiffer
python-docutils
- python-pyqt
python-qasync
python-requests))
(home-page "https://github.com/biolab/orange-canvas-core")
@@ -73,13 +71,13 @@ data-mining application.")
(define-public python-orange-widget-base
(package
(name "python-orange-widget-base")
- (version "4.12.0")
+ (version "4.16.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "orange-widget-base" version))
(sha256
- (base32 "13sy3s8rdqs3i3ghixljpqvnfz81qmbb0kqlasw39zvf39qc22kz"))))
+ (base32 "0a0sijsvzijj71sxq8ckpgz59z1cq9sxn4fya3z23ibdzjzwrsi7"))))
(build-system python-build-system)
(arguments
`(;; unittest fails to load one test, all other tests are passing:
@@ -90,11 +88,10 @@ data-mining application.")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" "/tmp")
- (setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
(propagated-inputs
(list python-anyqt python-matplotlib python-orange-canvas-core
- python-pyqtgraph))
+ python-pyqtgraph python-typing-extensions))
(home-page "https://github.com/biolab/orange-widget-base")
(synopsis "Base Widget for Orange Canvas")
(description
@@ -105,13 +102,13 @@ GUI based workflow. It is primarily used in the Orange framework.")
(define-public orange
(package
(name "orange")
- (version "3.28.0")
+ (version "3.31.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Orange3" version))
(sha256
- (base32 "1ac4xjjkx06z10hl7k0zh1z3qhkl5vng15l9jkpkmck9spinbzil"))))
+ (base32 "0jqay46nysgfxldik7f6mfi8iylai2gwfpq60vklrfi1rhqf3pn6"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -128,11 +125,12 @@ GUI based workflow. It is primarily used in the Orange framework.")
;; We use a correct version of PyQtWebEngine, but the build scripts
;; consider it incorrect anyways. Remove the constraint entirely to
;; work around this bug.
- (substitute* "requirements-gui.txt" (("PyQtWebEngine>=5.12") ""))
- #t))
- (add-before 'check 'set-HOME
+ (substitute* "requirements-pyqt.txt" (("PyQtWebEngine>=5.12") ""))))
+ (add-before 'check 'pre-check
;; Tests need a writable home.
- (lambda _ (setenv "HOME" "/tmp") #t))
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "QT_QPA_PLATFORM" "offscreen")))
(add-after 'install 'wrap-executable
;; Ensure that icons are found at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -140,8 +138,7 @@ GUI based workflow. It is primarily used in the Orange framework.")
(wrap-program (string-append out "/bin/orange-canvas")
`("QT_PLUGIN_PATH" prefix
,(list (string-append (assoc-ref inputs "qtsvg")
- "/lib/qt5/plugins/")))))
- #t)))))
+ "/lib/qt5/plugins/"))))))))))
(native-inputs
(list python-cython))
(inputs
@@ -162,10 +159,12 @@ GUI based workflow. It is primarily used in the Orange framework.")
python-orange-canvas-core
python-orange-widget-base
python-pandas
+ python-pygments
python-pyqt
python-pyqtgraph
python-pyqtwebengine
python-pyyaml
+ python-qtconsole
python-requests
python-scikit-learn
python-scipy
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 265763cc74..8891690daa 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1234,8 +1234,8 @@ environments.")
(license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
(define-public guix-build-coordinator
- (let ((commit "309fc55a83f8f95d6fc2fd8683d61283321b99a3")
- (revision "46"))
+ (let ((commit "048c609667f1690fe0a8d8c9b772f9bc6dd412e0")
+ (revision "47"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@@ -1246,7 +1246,7 @@ environments.")
(commit commit)))
(sha256
(base32
- "0ivla0pqixgdiwh1znv426354hw45wibwlm5xpixrqbjp9fnllpz"))
+ "13sf3gv1jdaq6ncyw4s58zw0l2xjnksqjynlbqzx08i45xpj5yv8"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -1763,14 +1763,14 @@ the boot loader configuration.")
(define-public flatpak
(package
(name "flatpak")
- (version "1.12.1")
+ (version "1.12.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
version "/flatpak-" version ".tar.xz"))
(sha256
- (base32 "0my82ijg1ipa4lwrvh88jlrxbabfqfz2ssfb8cn6k0pfgz53p293"))
+ (base32 "0sbvywfc57sb58maxins4sg7rfwrm1wcgw68069qbsyp8wrz45fp"))
(patches (search-patches "flatpak-fix-path.patch"))))
;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
@@ -1836,8 +1836,7 @@ cp -r /tmp/locale/*/en_US.*")))
("python-pyparsing" ,python-pyparsing)
("socat" ,socat)
("which" ,which)))
- (propagated-inputs (list glib-networking gnupg-2.2.32
- gsettings-desktop-schemas))
+ (propagated-inputs (list glib-networking gnupg gsettings-desktop-schemas))
(inputs
`(("appstream-glib" ,appstream-glib)
("bubblewrap" ,bubblewrap)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index a31d64f66b..b70382d8c8 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
@@ -61,14 +61,14 @@
(define-public parallel
(package
(name "parallel")
- (version "20211122")
+ (version "20211222")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
- (base32 "0blnv1mpnlc949m5r4hg1smmsmyyzna0izhqg0dcp92n5hr5dcj8"))))
+ (base32 "176i8vgaxh5hp3ki1glib6fcmcl86v307s5xfxcqb92j9k7r3105"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 0ff8608c9c..f56868439e 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Steve Sprang <scs@stevesprang.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
@@ -15,7 +15,7 @@
;;; Copyright © 2017, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -177,6 +177,8 @@ 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.")
+ (properties
+ '((release-monitoring-url . "https://github.com/keepassxreboot/keepassxc/releases")))
;; While various parts of the software are licensed under different licenses,
;; the combined work falls under the GPLv3.
(license license:gpl3)))
@@ -500,8 +502,7 @@ any X11 window.")
(string-append " SYSTEM_EXTENSION_DIR=\""
"${PASSWORD_STORE_SYSTEM_EXTENSION_DIR:-"
extension-dir
- "}\"\n"))))
- #t))
+ "}\"\n"))))))
(add-before 'install 'patch-passmenu-path
;; FIXME Wayland support requires ydotool and dmenu-wl packages
;; We are ignoring part of the script that gets executed if
@@ -520,18 +521,18 @@ any X11 window.")
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
- (install-file "contrib/dmenu/passmenu" bin)
- #t)))
+ (install-file "contrib/dmenu/passmenu" bin))))
(add-after 'install 'wrap-path
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (path (map (lambda (pkg)
- (string-append (assoc-ref inputs pkg) "/bin"))
- '("coreutils" "getopt" "git" "gnupg" "qrencode"
- "sed" "tree" "which" "wl-clipboard" "xclip"))))
+ (let* ((out (assoc-ref outputs "out"))
+ (requisites '("getopt" "git" "gpg" "qrencode" "sed"
+ "tree" "which" "wl-copy" "xclip"))
+ (path (map (lambda (pkg)
+ (dirname (search-input-file
+ inputs (string-append "/bin/" pkg))))
+ requisites)))
(wrap-program (string-append out "/bin/pass")
- `("PATH" ":" prefix (,(string-join path ":"))))
- #t))))
+ `("PATH" ":" prefix (,(string-join path ":"))))))))
#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)
"WITH_ALLCOMP=yes"
(string-append "BASHCOMPDIR="
@@ -546,17 +547,18 @@ any X11 window.")
(separator #f) ;single entry
(files '("lib/password-store/extensions")))))
(inputs
- `(("dmenu" ,dmenu)
- ("getopt" ,util-linux)
- ("git" ,git)
- ("gnupg" ,gnupg)
- ("qrencode" ,qrencode)
- ("sed" ,sed)
- ("tree" ,tree)
- ("which" ,which)
- ("wl-clipboard" ,wl-clipboard)
- ("xclip" ,xclip)
- ("xdotool" ,xdotool)))
+ (list dmenu
+ util-linux
+ git
+ gnupg
+ qrencode
+ sed
+ ;; XXX v1.7.4 tests are broken with tree@2: <issues.guix.gnu.org/53238>.
+ tree-1
+ which
+ wl-clipboard
+ xclip
+ xdotool))
(home-page "https://www.passwordstore.org/")
(synopsis "Encrypted password manager")
(description "Password-store is a password manager which uses GnuPG to
diff --git a/gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch b/gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch
new file mode 100644
index 0000000000..bd5924ef87
--- /dev/null
+++ b/gnu/packages/patches/bubblewrap-fix-locale-in-tests.patch
@@ -0,0 +1,34 @@
+From 9282223de4b511aeda3b7d2caf3810a56a865710 Mon Sep 17 00:00:00 2001
+From: kiasoc5 <kiasoc5@tutanota.com>
+Date: Mon, 10 Jan 2022 14:16:32 -0500
+Subject: [PATCH] Use C locale unconditionally for tests.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The ‘en_US.utf8’ locale is available. However, the ‘locale -a’ command won’t list it.
+---
+ tests/libtest-core.sh | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/tests/libtest-core.sh b/tests/libtest-core.sh
+index 9632e90..82951dd 100644
+--- a/tests/libtest-core.sh
++++ b/tests/libtest-core.sh
+@@ -41,12 +41,7 @@ assert_not_reached () {
+ #
+ # If we can't find the locale command assume we have support for C.UTF-8
+ # (e.g. musl based systems)
+-if type -p locale >/dev/null; then
+- export LC_ALL=$(locale -a | grep -iEe '^(C|en_US)\.(UTF-8|utf8)$' | head -n1 || true)
+- if [ -z "${LC_ALL}" ]; then fatal "Can't find suitable UTF-8 locale"; fi
+-else
+- export LC_ALL=C.UTF-8
+-fi
++export LC_ALL=en_US.utf8
+ # A GNU extension, used whenever LC_ALL is not C
+ unset LANGUAGE
+
+--
+2.34.1
+
diff --git a/gnu/packages/patches/calibre-fix-zeroconf.patch b/gnu/packages/patches/calibre-fix-zeroconf.patch
new file mode 100644
index 0000000000..d7d0f18667
--- /dev/null
+++ b/gnu/packages/patches/calibre-fix-zeroconf.patch
@@ -0,0 +1,38 @@
+Fix a build failure when upgrading zeroconf from 0.28.8 to 0.38.1:
+
+https://issues.guix.gnu.org/53247
+
+Patch copied from Gentoo:
+
+https://bugs.gentoo.org/800233#c5
+
+diff --color -Naru a/src/calibre/devices/smart_device_app/driver.py b/src/calibre/devices/smart_device_app/driver.py
+--- a/src/calibre/devices/smart_device_app/driver.py 2021-08-08 08:32:03.104016444 +0200
++++ b/src/calibre/devices/smart_device_app/driver.py 2021-08-08 08:33:30.699018403 +0200
+@@ -2040,13 +2040,6 @@
+ # Function to monkeypatch zeroconf to remove the 15 character name length restriction.
+ # Copied from https://github.com/jstasiak/python-zeroconf version 0.28.1
+
+-
+-from zeroconf import (BadTypeInNameException, _HAS_A_TO_Z,
+- _HAS_ONLY_A_TO_Z_NUM_HYPHEN_UNDERSCORE,
+- _HAS_ASCII_CONTROL_CHARS,
+- _HAS_ONLY_A_TO_Z_NUM_HYPHEN)
+-
+-
+ def service_type_name(type_: str, *, allow_underscores: bool = False) -> str:
+ """
+ Validate a fully qualified service name, instance or subtype. [rfc6763]
+@@ -2087,6 +2080,12 @@
+ :param type_: Type, SubType or service name to validate
+ :return: fully qualified service name (eg: _http._tcp.local.)
+ """
++
++ from zeroconf import (BadTypeInNameException, _HAS_A_TO_Z,
++ _HAS_ONLY_A_TO_Z_NUM_HYPHEN_UNDERSCORE,
++ _HAS_ASCII_CONTROL_CHARS,
++ _HAS_ONLY_A_TO_Z_NUM_HYPHEN)
++
+ if not (type_.endswith('._tcp.local.') or type_.endswith('._udp.local.')):
+ raise BadTypeInNameException("Type '%s' must end with '._tcp.local.' or '._udp.local.'" % type_)
+
diff --git a/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch b/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch
deleted file mode 100644
index aad2d99996..0000000000
--- a/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch
+++ /dev/null
@@ -1,780 +0,0 @@
-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/dealii-fix-compiliation-with-boost-1.78.patch b/gnu/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch
new file mode 100644
index 0000000000..1937aa9afc
--- /dev/null
+++ b/gnu/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch
@@ -0,0 +1,40 @@
+From cbef761731627cece2a6f0276b87dacabbdc8a72 Mon Sep 17 00:00:00 2001
+From: David Wells <drwells@email.unc.edu>
+Date: Tue, 4 Jan 2022 12:46:30 -0500
+Subject: [PATCH] Fix compilation with boost 1.78.
+
+I bisected (fortunately Boost.Geometry a header-only library so adding the
+include directory sufficed) and
+https://github.com/boostorg/geometry/commit/6eb9e238bcb37e26dc31d16acf826784a2ba30f4
+is where this problem starts for us. See also
+https://github.com/boostorg/geometry/issues/792 - the easiest fix for all such
+issues is to just include the project header `boost/geometry/geometry.hpp`.
+
+In this particular case, if you look at the commit which causes grid_tools.cc
+fails to compile, its because we were relying on some implicit includes. In
+particular, we need the distance header to find the distance between points and
+boxes, but that was previously included in another file.
+
+This patch has been adapted from
+e0e76835519d122fd12b5858e16d08641a641c6a to apply to dealii 9.3.2.
+
+See https://github.com/dealii/dealii/pull/13165.
+---
+ include/deal.II/numerics/rtree.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/deal.II/numerics/rtree.h b/include/deal.II/numerics/rtree.h
+index 1b9d04dacd..1e1bfd2932 100644
+--- a/include/deal.II/numerics/rtree.h
++++ b/include/deal.II/numerics/rtree.h
+@@ -26,6 +26,7 @@
+ #include <deal.II/boost_adaptors/segment.h>
+
+ DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
++#include <boost/geometry/algorithms/distance.hpp>
+ #include <boost/geometry/index/rtree.hpp>
+ #include <boost/geometry/strategies/strategies.hpp>
+ DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
+--
+2.30.2
+
diff --git a/gnu/packages/patches/dealii-fix-sundials.patch b/gnu/packages/patches/dealii-fix-sundials.patch
new file mode 100644
index 0000000000..7dd5df45da
--- /dev/null
+++ b/gnu/packages/patches/dealii-fix-sundials.patch
@@ -0,0 +1,60 @@
+From af73f368f7f9d4a00df075d1a9f50fc495f8e87a Mon Sep 17 00:00:00 2001
+From: Timo Heister <timo.heister@gmail.com>
+Date: Sat, 25 Dec 2021 12:30:45 -0500
+Subject: [PATCH] fix sundials compilation
+
+---
+ include/deal.II/sundials/n_vector.templates.h | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/include/deal.II/sundials/n_vector.templates.h b/include/deal.II/sundials/n_vector.templates.h
+index 2b49e3efc9..746f63a03b 100644
+--- a/include/deal.II/sundials/n_vector.templates.h
++++ b/include/deal.II/sundials/n_vector.templates.h
+@@ -253,13 +253,13 @@ namespace SUNDIALS
+ template <
+ typename VectorType,
+ typename std::enable_if_t<!IsBlockVector<VectorType>::value, int> = 0>
+- MPI_Comm
++ const MPI_Comm &
+ get_communicator(N_Vector v);
+
+ template <
+ typename VectorType,
+ typename std::enable_if_t<IsBlockVector<VectorType>::value, int> = 0>
+- MPI_Comm
++ const MPI_Comm &
+ get_communicator(N_Vector v);
+
+ /**
+@@ -481,7 +481,7 @@ SUNDIALS::internal::NVectorOperations::destroy(N_Vector v)
+
+ template <typename VectorType,
+ std::enable_if_t<IsBlockVector<VectorType>::value, int>>
+-MPI_Comm
++const MPI_Comm &
+ SUNDIALS::internal::NVectorOperations::get_communicator(N_Vector v)
+ {
+ return unwrap_nvector_const<VectorType>(v)->block(0).get_mpi_communicator();
+@@ -491,7 +491,7 @@ SUNDIALS::internal::NVectorOperations::get_communicator(N_Vector v)
+
+ template <typename VectorType,
+ std::enable_if_t<!IsBlockVector<VectorType>::value, int>>
+-MPI_Comm
++const MPI_Comm &
+ SUNDIALS::internal::NVectorOperations::get_communicator(N_Vector v)
+ {
+ return unwrap_nvector_const<VectorType>(v)->get_mpi_communicator();
+@@ -519,7 +519,8 @@ SUNDIALS::internal::NVectorOperations::get_communicator_as_void_ptr(N_Vector v)
+ (void)v;
+ return nullptr;
+ # else
+- return get_communicator<VectorType>(v);
++ // We need to cast away const here, as SUNDIALS demands a pure `void *`.
++ return &(const_cast<MPI_Comm &>(get_communicator<VectorType>(v)));
+ # endif
+ }
+
+--
+2.30.2
+
diff --git a/gnu/packages/patches/eog-update-libportal-usage.patch b/gnu/packages/patches/eog-update-libportal-usage.patch
new file mode 100644
index 0000000000..220a16ddc4
--- /dev/null
+++ b/gnu/packages/patches/eog-update-libportal-usage.patch
@@ -0,0 +1,40 @@
+Fix eog to work with libportal-0.5
+
+This patch is extracted from upstream, see here
+https://gitlab.gnome.org/GNOME/eog/-/commit/a06e6325907e136678b0bbe7058c25d688034afd
+
+diff --git a/meson.build b/meson.build
+index 9a32e4bb..9d49aa45 100644
+--- a/meson.build
++++ b/meson.build
+@@ -165,10 +165,14 @@ config_h.set('HAVE_EXEMPI', enable_xmp)
+ # xdg-desktop-portal support with libportal (optional)
+ enable_libportal = get_option('libportal')
+ if enable_libportal
+- libportal_dep = dependency('libportal', version: '>= 0.3', required: false)
++ libportal_dep = dependency('libportal', version: '>= 0.5', required: false)
+ assert(libportal_dep.found() and cc.has_header('libportal/portal.h', dependencies: libportal_dep),
+ 'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false')
+
+- common_deps += libportal_dep
++ libportal_gtk3_dep = dependency('libportal-gtk3', version: '>= 0.5', required: false)
++ assert(libportal_gtk3_dep.found() and cc.has_header('libportal-gtk3/portal-gtk3.h', dependencies: libportal_gtk3_dep),
++ 'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false')
++
++ common_deps += [libportal_dep, libportal_gtk3_dep]
+ endif
+ config_h.set('HAVE_LIBPORTAL', enable_libportal)
+
+diff --git a/src/eog-util.c b/src/eog-util.c
+index 90b9768e..56d23472 100644
+--- a/src/eog-util.c
++++ b/src/eog-util.c
+@@ -45,7 +45,7 @@
+ #include <glib/gi18n.h>
+ #ifdef HAVE_LIBPORTAL
+ #include <libportal/portal.h>
+-#include <libportal/portal-gtk3.h>
++#include <libportal-gtk3/portal-gtk3.h>
+ #endif
+
+ void
diff --git a/gnu/packages/patches/epiphany-update-libportal-usage.patch b/gnu/packages/patches/epiphany-update-libportal-usage.patch
new file mode 100644
index 0000000000..0d8ea045fb
--- /dev/null
+++ b/gnu/packages/patches/epiphany-update-libportal-usage.patch
@@ -0,0 +1,53 @@
+Fix for epiphany with libportal-0.5.
+
+This patch was adapted from upstream
+https://gitlab.gnome.org/GNOME/epiphany/-/commit/e4d259f614f75c26ad0d2094f4f569ffd1bc06d1
+
+diff --git a/lib/ephy-flatpak-utils.c b/lib/ephy-flatpak-utils.c
+index 6fc9a5dec17a63c0660cbc1d95103c8f77231d30..0fd90b3f178392930e812a8391fd81bf1371b8bf 100644
+--- a/lib/ephy-flatpak-utils.c
++++ b/lib/ephy-flatpak-utils.c
+@@ -29,7 +29,7 @@
+ #include <gio/gio.h>
+ #include <gio/gunixfdlist.h>
+ #if USE_LIBPORTAL
+-#include <libportal/portal-gtk3.h>
++#include <libportal-gtk3/portal-gtk3.h>
+ #endif
+ #include <string.h>
+ #include <sys/stat.h>
+diff --git a/lib/meson.build b/lib/meson.build
+index 264f9c5fb66268fc248f780b8d1c06c8291f856d..db0a0557f0ae634d7fb95e57aba0cd901ca4d6c1 100644
+--- a/lib/meson.build
++++ b/lib/meson.build
+@@ -66,6 +66,7 @@ libephymisc_deps = [
+ libxml_dep,
+ m_dep,
+ portal_dep,
++ portal_gtk_dep,
+ sqlite3_dep,
+ webkit2gtk_dep
+ ]
+diff --git a/meson.build b/meson.build
+index 0b9f862b22a23619289342ec39fa0a0274558c25..4285a975004e48366789a4e66f8b23f3af05a636 100644
+--- a/meson.build
++++ b/meson.build
+@@ -95,7 +95,8 @@ libhandy_dep = dependency('libhandy-1', version: '>= 1.5.0')
+ libsecret_dep = dependency('libsecret-1', version: '>= 0.19.0')
+ libxml_dep = dependency('libxml-2.0', version: '>= 2.6.12')
+ nettle_dep = dependency('nettle', version: nettle_requirement)
+-portal_dep = dependency('libportal', version: '>= 0.0.2', required: get_option('libportal'))
++portal_dep = dependency('libportal', version: '>= 0.5', required: get_option('libportal'))
++portal_gtk_dep = dependency('libportal-gtk3', version: '>= 0.5', required: get_option('libportal'))
+ sqlite3_dep = dependency('sqlite3', version: '>= 3.22')
+
+ if get_option('soup2').enabled()
+@@ -108,7 +109,7 @@ else
+ webkit2gtk_web_extension_dep = dependency('webkit2gtk-web-extension-4.1', version: webkitgtk_requirement)
+ endif
+
+-conf.set10('USE_LIBPORTAL', portal_dep.found())
++conf.set10('USE_LIBPORTAL', portal_dep.found() and portal_gtk_dep.found())
+
+ webkit_revision = webkit2gtk_dep.get_variable(pkgconfig : 'revision', default_value : '')
+ if webkit_revision == 'tarball'
diff --git a/gnu/packages/patches/gpaste-fix-paths.patch b/gnu/packages/patches/gpaste-fix-paths.patch
new file mode 100644
index 0000000000..be63878fe6
--- /dev/null
+++ b/gnu/packages/patches/gpaste-fix-paths.patch
@@ -0,0 +1,24 @@
+This is copied from NixOS, which is under MIT licence.
+https://github.com/NixOS/nixpkgs/blob/master/pkgs/desktops/gnome/misc/gpaste/
+--- a/src/gnome-shell/extension.js
++++ b/src/gnome-shell/extension.js
+@@ -6,6 +6,8 @@
+
+ const Config = imports.misc.config;
+
++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
++
+ imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
+ imports.gi.versions.GLib = '2.0';
+ imports.gi.versions.GPaste = '1.0';
+--- a/src/gnome-shell/prefs.js
++++ b/src/gnome-shell/prefs.js
+@@ -6,6 +6,8 @@
+
+ const Gettext = imports.gettext;
+
++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
++
+ //const { GPaste } = imports.gi;
+
+ const ExtensionUtils = imports.misc.extensionUtils;
diff --git a/gnu/packages/patches/htslib-for-stringtie.patch b/gnu/packages/patches/htslib-for-stringtie.patch
new file mode 100644
index 0000000000..3e6cd5bb63
--- /dev/null
+++ b/gnu/packages/patches/htslib-for-stringtie.patch
@@ -0,0 +1,26 @@
+These changes are commits d7e357946ead219b81cc1becbe0de8a99d96ca84 and
+8ed0daa39bc662defa99507f926815431056543a in
+https://github.com/samtools/htscodecs. The stringtie package expects these
+changes to have been applied.
+
+diff -ru htslib-1.12/htscodecs/htscodecs/tokenise_name3.c stringtie-2.2.0/htslib/htscodecs/htscodecs/tokenise_name3.c
+--- a/htscodecs/htscodecs/tokenise_name3.c 2021-02-22 13:07:06.000000000 +0100
++++ b/htscodecs/htscodecs/tokenise_name3.c 2021-12-04 19:27:39.000000000 +0100
+@@ -211,7 +211,7 @@
+ if (!ctx) return NULL;
+ ctx->max_names = max_names;
+ pthread_setspecific(tok_key, ctx);
+- } else if (ctx->max_names < max_names) {
++ } else if (ctx->max_names < max_names+1) {
+ ctx = realloc(ctx, sizeof(*ctx) + ++max_names*sizeof(*ctx->lc));
+ if (!ctx) return NULL;
+ ctx->max_names = max_names;
+@@ -1058,6 +1058,8 @@
+ tok = decode_token_type(ctx, ntok);
+ //fprintf(stderr, "Tok %d = %d\n", ntok, tok);
+
++ ctx->lc[cnum].last_ntok = 0;
++
+ switch (tok) {
+ case N_CHAR:
+ if (len+1 >= name_len) return -1; \ No newline at end of file
diff --git a/gnu/packages/patches/jami-fix-crash-on-quit.patch b/gnu/packages/patches/jami-fix-crash-on-quit.patch
new file mode 100644
index 0000000000..c25bce588a
--- /dev/null
+++ b/gnu/packages/patches/jami-fix-crash-on-quit.patch
@@ -0,0 +1,34 @@
+Retrieved from:
+https://git.jami.net/savoirfairelinux/jami-client-qt/-/commit/83f68573324a453a6d26e025fd6439f175a79d1b.diff.
+
+With the 'client-qt' prefix added to match the file hierarchy of the release tarball.
+
+diff --git a/client-qt/src/mainapplication.cpp b/client-qt/src/mainapplication.cpp
+index 0c3209fc6fa7c528bec197f1cf9332758170441c..278f19287b86dd2c916935ab0930cbe0abb35d26 100644
+--- a/client-qt/src/mainapplication.cpp
++++ b/client-qt/src/mainapplication.cpp
+@@ -155,7 +155,11 @@ MainApplication::MainApplication(int& argc, char** argv)
+ QObject::connect(this, &QApplication::aboutToQuit, [this] { cleanup(); });
+ }
+
+-MainApplication::~MainApplication() {}
++MainApplication::~MainApplication()
++{
++ engine_.reset();
++ lrcInstance_.reset();
++}
+
+ bool
+ MainApplication::init()
+diff --git a/src/mainapplication.h b/src/mainapplication.h
+index 51306be829478b9fbc1c61a08aeb96938be26dac..4047e3abb3cfd3e6250387a37fa5a896e9bc4161 100644
+--- a/client-qt/src/mainapplication.h
++++ b/client-qt/src/mainapplication.h
+@@ -80,7 +80,6 @@ private:
+ private:
+ QScopedPointer<QFile> debugFile_;
+ QScopedPointer<QQmlApplicationEngine> engine_;
+-
+ QScopedPointer<LRCInstance> lrcInstance_;
+
+ QScopedPointer<ConnectivityMonitor> connectivityMonitor_;
diff --git a/gnu/packages/patches/libsigrokdecode-python3.9-fix.patch b/gnu/packages/patches/libsigrokdecode-python3.9-fix.patch
new file mode 100644
index 0000000000..4a6e1223ec
--- /dev/null
+++ b/gnu/packages/patches/libsigrokdecode-python3.9-fix.patch
@@ -0,0 +1,19 @@
+From: Dan Horák <dan@danny.cz>
+Subject: Add support for Python 3.9
+
+Origin: upstream, https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff;h=9b0ad5177bd692f7556a4756bdbd2da81d9c34ce
+Bug-Debian: https://bugs.debian.org/972769
+
+diff --git a/configure.ac b/configure.ac
+index f9958b3..2917cb3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -100,7 +100,7 @@ SR_PKG_CHECK_SUMMARY([srd_pkglibs_summary])
+ # first, since usually only that variant will add "-lpython3.8".
+ # https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build
+ SR_PKG_CHECK([python3], [SRD_PKGLIBS],
+- [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
++ [python-3.9-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
+ AS_IF([test "x$sr_have_python3" = xno],
+ [AC_MSG_ERROR([Cannot find Python 3 development headers.])])
+
diff --git a/gnu/packages/patches/lua-5.4-liblua-so.patch b/gnu/packages/patches/lua-5.4-liblua-so.patch
new file mode 100644
index 0000000000..93dd011143
--- /dev/null
+++ b/gnu/packages/patches/lua-5.4-liblua-so.patch
@@ -0,0 +1,33 @@
+Patch the makefile to create liblua.so.
+
+--- a/src/Makefile 2021-02-09 18:47:17.000000000 +0000
++++ b/src/Makefile 2022-01-03 11:30:36.964501941 +0000
+@@ -33,6 +33,7 @@
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
+
+ LUA_A= liblua.a
++LUA_SO= liblua.so
+ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
+ LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+@@ -44,7 +45,7 @@
+ LUAC_O= luac.o
+
+ ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
+ ALL_A= $(LUA_A)
+
+ # Targets start here.
+@@ -56,6 +57,11 @@
+
+ a: $(ALL_A)
+
++$(LUA_SO): $(CORE_O) $(LIB_O)
++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
++ ln -sf $(LUA_SO).$(R) $(LUA_SO)
++
+ $(LUA_A): $(BASE_O)
+ $(AR) $@ $(BASE_O)
+ $(RANLIB) $@
diff --git a/gnu/packages/patches/lua-5.4-pkgconfig.patch b/gnu/packages/patches/lua-5.4-pkgconfig.patch
new file mode 100644
index 0000000000..eb42633585
--- /dev/null
+++ b/gnu/packages/patches/lua-5.4-pkgconfig.patch
@@ -0,0 +1,110 @@
+Enables generating Lua's pkg-config file.
+
+http://lua-users.org/lists/lua-l/2015-03/msg00338.html
+
+--- a/Makefile 2022-01-03 12:06:37.760402709 +0000
++++ b/Makefile 2022-01-03 12:06:49.568402167 +0000
+@@ -14,6 +14,7 @@
+ INSTALL_BIN= $(INSTALL_TOP)/bin
+ INSTALL_INC= $(INSTALL_TOP)/include
+ INSTALL_LIB= $(INSTALL_TOP)/lib
++INSTALL_PC= $(INSTALL_LIB)/pkgconfig
+ INSTALL_MAN= $(INSTALL_TOP)/man/man1
+ INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
+ INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
+@@ -39,9 +40,12 @@
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
+
+ # What to install.
+-TO_BIN= lua luac
++INTERPRETER= lua
++COMPILER= luac
++TO_BIN= $(INTERPRETER) $(COMPILER)
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
+-TO_LIB= liblua.a
++TO_LIB= liblua.a liblua.so liblua.so.${V}
++TO_PC= lua-$(V).pc
+ TO_MAN= lua.1 luac.1
+
+ # Lua version and release.
+@@ -51,20 +55,26 @@
+ # Targets start here.
+ all: $(PLAT)
+
+-$(PLATS) help test clean:
+- @cd src && $(MAKE) $@
++$(PLATS):
++ @cd src && $(MAKE) $@ V=$(V) R=$(R)
+
+-install: dummy
+- cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
++clean:
++ cd src && $(MAKE) $@
++ $(RM) $(TO_PC)
++
++install: dummy $(TO_PC)
++ cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_PC) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+ cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
+ cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+- cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
++ cd src && $(INSTALL_EXEC) $(TO_LIB) $(INSTALL_LIB)
++ cd src && $(INSTALL_DATA) ../$(TO_PC) $(INSTALL_PC)
+ cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
+
+ uninstall:
+ cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN)
+ cd src && cd $(INSTALL_INC) && $(RM) $(TO_INC)
+ cd src && cd $(INSTALL_LIB) && $(RM) $(TO_LIB)
++ cd src && cd $(INSTALL_PC) && $(RM) $(TO_PC)
+ cd doc && cd $(INSTALL_MAN) && $(RM) $(TO_MAN)
+
+ local:
+@@ -82,11 +92,13 @@
+ @echo "TO_BIN= $(TO_BIN)"
+ @echo "TO_INC= $(TO_INC)"
+ @echo "TO_LIB= $(TO_LIB)"
++ @echo "TO_PC= $(TO_PC)"
+ @echo "TO_MAN= $(TO_MAN)"
+ @echo "INSTALL_TOP= $(INSTALL_TOP)"
+ @echo "INSTALL_BIN= $(INSTALL_BIN)"
+ @echo "INSTALL_INC= $(INSTALL_INC)"
+ @echo "INSTALL_LIB= $(INSTALL_LIB)"
++ @echo "INSTALL_PC= $(INSTALL_PC)"
+ @echo "INSTALL_MAN= $(INSTALL_MAN)"
+ @echo "INSTALL_LMOD= $(INSTALL_LMOD)"
+ @echo "INSTALL_CMOD= $(INSTALL_CMOD)"
+@@ -95,12 +107,29 @@
+
+ # Echo pkg-config data.
+ pc:
+- @echo "version=$R"
+- @echo "prefix=$(INSTALL_TOP)"
+- @echo "libdir=$(INSTALL_LIB)"
+- @echo "includedir=$(INSTALL_INC)"
++ @echo 'prefix=$(INSTALL_TOP)'
++ @echo 'libdir=$(INSTALL_LIB)'
++ @echo 'includedir=$(INSTALL_INC)'
++ @echo 'bindir=$(INSTALL_BIN)'
++ @echo
++ @echo 'INSTALL_LMOD=$(INSTALL_LMOD)'
++ @echo 'INSTALL_CMOD=$(INSTALL_CMOD)'
++ @echo 'INTERPRETER=$${bindir}/$(INTERPRETER)'
++ @echo 'COMPILER=$${bindir}/$(COMPILER)'
++ @echo
++ @echo 'Name: Lua'
++ @echo 'Description: A powerful, fast, lightweight, embeddable scripting language'
++ @echo 'Version: $(R)'
++ @echo
++ @echo 'Libs: -L$${libdir} -llua -lm'
++ @echo 'Cflags: -I$${includedir}'
++
++pkg-config: $(TO_PC)
++$(TO_PC):
++ @$(MAKE) -s pc > $@
++
+
+ # Targets that do not create files (not all makes understand .PHONY).
+-.PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc
++.PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc pkg-config
+
+ # (end of Makefile)
diff --git a/gnu/packages/patches/nautilus-add-libportal-gtk3.patch b/gnu/packages/patches/nautilus-add-libportal-gtk3.patch
new file mode 100644
index 0000000000..cefa47cc64
--- /dev/null
+++ b/gnu/packages/patches/nautilus-add-libportal-gtk3.patch
@@ -0,0 +1,61 @@
+From 55cfd66ccca391fc144f5863ff6bfc1f3b137e2d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= <antoniojpfernandes@gmail.com>
+Date: Tue, 21 Dec 2021 17:42:27 +0000
+Subject: [PATCH] general: Add libportal-gtk3 dependency
+
+The portal-gtk3.h header has been moved into a separate library which
+binds gtk3 explicitly.
+
+https://github.com/flatpak/libportal/pull/53
+---
+ build-aux/flatpak/org.gnome.Nautilus.json | 5 +++-- ;; Changes removed in Guix
+ build-aux/flatpak/org.gnome.Nautilus.yml | 3 ++- ;; Changes removed in Guix
+ meson.build | 4 +++-
+ src/meson.build | 1 +
+ src/nautilus-files-view.c | 2 +-
+ 5 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 927216636..4626fa0bb 100644
+--- a/meson.build
++++ b/meson.build
+@@ -122,8 +122,10 @@ gnome_desktop = dependency('gnome-desktop-3.0', version: '>= 3.0.0')
+ gtk = dependency('gtk+-3.0', version: '>= 3.22.27')
+ libhandy = dependency('libhandy-1', version: '>= 1.1.90')
+ libportal = []
++libportal_gtk3 = []
+ if get_option('libportal')
+- libportal = dependency('libportal', version: '>= 0.3')
++ libportal = dependency('libportal', version: '>= 0.5')
++ libportal_gtk3 = dependency('libportal-gtk3', version: '>= 0.5')
+ endif
+ selinux = []
+ if get_option('selinux')
+diff --git a/src/meson.build b/src/meson.build
+index 682d6f3a3..d7fb76d53 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -285,6 +285,7 @@ nautilus_deps = [
+ libgd_dep,
+ libhandy,
+ libportal,
++ libportal_gtk3,
+ nautilus_extension,
+ selinux,
+ tracker_sparql,
+diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
+index dfb7fb26c..a24005a11 100644
+--- a/src/nautilus-files-view.c
++++ b/src/nautilus-files-view.c
+@@ -93,7 +93,7 @@
+
+ #ifdef HAVE_LIBPORTAL
+ #include <libportal/portal.h>
+-#include <libportal/portal-gtk3.h>
++#include <libportal-gtk3/portal-gtk3.h>
+ #endif
+
+ /* Minimum starting update inverval */
+--
+GitLab
+
diff --git a/gnu/packages/patches/passwordsafe-meson-remove-extra-argument.patch b/gnu/packages/patches/passwordsafe-meson-remove-extra-argument.patch
new file mode 100644
index 0000000000..3cb61a364a
--- /dev/null
+++ b/gnu/packages/patches/passwordsafe-meson-remove-extra-argument.patch
@@ -0,0 +1,20 @@
+diff --git a/data/meson.build b/data/meson.build
+index 46f6373..26a2c18 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -35,7 +35,6 @@ if get_option('profile') == 'development'
+ endif
+ desktop_conf.set('ICON', application_id)
+ desktop = i18n.merge_file(
+- 'desktop',
+ input: configure_file(
+ input: files('org.gnome.PasswordSafe.desktop.in.in'),
+ output: 'org.gnome.PasswordSafe.desktop.in',
+@@ -65,7 +64,6 @@ if get_option('profile') == 'development'
+ endif
+ appdata_conf.set('APPID', application_id)
+ appdata = i18n.merge_file(
+- 'appdata',
+ input: configure_file(
+ input: files('org.gnome.PasswordSafe.appdata.xml.in.in'),
+ output: 'org.gnome.PasswordSafe.appdata.xml.in',
diff --git a/gnu/packages/patches/pjproject-correct-the-cflags-field.patch b/gnu/packages/patches/pjproject-correct-the-cflags-field.patch
deleted file mode 100644
index 8bc503580d..0000000000
--- a/gnu/packages/patches/pjproject-correct-the-cflags-field.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 44f8f6c1c71bec6bf00269b075a2dc801ae6fd45 Mon Sep 17 00:00:00 2001
-From: Vladimir Stoiakin <VStoiakin@lavabit.com>
-Date: Thu, 23 Apr 2020 14:06:40 +0300
-Subject: [PATCH 1/2] libpjproject.pc: correct the field 'cflags'
-
----
- Makefile | 6 ++----
- aconfigure | 4 ++++
- aconfigure.ac | 3 +++
- build.mak.in | 7 +++----
- libpjproject.pc.in | 4 ++--
- 5 files changed, 14 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index ffaf638dd..3fd5cab40 100644
---- a/Makefile
-+++ b/Makefile
-@@ -132,10 +132,8 @@ install:
- sed -e "s!@INCLUDEDIR@!$(includedir)!" | \
- sed -e "s!@LIBDIR@!$(libdir)!" | \
- sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
-- sed -e "s!@PJ_LDLIBS@!!" | \
-- sed -e "s!@PJ_LDXXLIBS@!$(PJ_LDXXLIBS)!" | \
-- sed -e "s!@PJ_INSTALL_CFLAGS@!!" | \
-- sed -e "s!@PJ_INSTALL_CXXFLAGS@!$(PJ_INSTALL_CXXFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
-+ sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \
-+ sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
-
- uninstall:
- $(RM) $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
-diff --git a/aconfigure b/aconfigure
-index 2abbcf533..1ab932bda 100755
---- a/aconfigure
-+++ b/aconfigure
-@@ -706,6 +706,7 @@ GREP
- CPP
- ac_cross_compile
- ac_shlib_suffix
-+ac_cflags
- ac_build_mak_vars
- ac_pjdir
- CC_CFLAGS
-@@ -3952,6 +3953,7 @@ if test "$CC_CFLAGS" = ""; then CC_CFLAGS="-Wall"; fi
-
-
-
-+
- case $host in
- *mingw* | *cygw* | *win32* | *w32* )
- if pwd -W 2&> /dev/null; then
-@@ -5138,8 +5140,10 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
-
- if test "x$ac_cv_c_bigendian" = "xyes"; then
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
- else
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
- fi
-
-
-diff --git a/aconfigure.ac b/aconfigure.ac
-index 83d3559ed..b1d493c08 100644
---- a/aconfigure.ac
-+++ b/aconfigure.ac
-@@ -71,6 +71,7 @@ AC_SUBST(CC_CFLAGS)
-
- AC_SUBST(ac_pjdir)
- AC_SUBST(ac_build_mak_vars)
-+AC_SUBST(ac_cflags)
-
- case $host in
- *mingw* | *cygw* | *win32* | *w32* )
-@@ -144,8 +145,10 @@ AC_C_BIGENDIAN
-
- if test "x$ac_cv_c_bigendian" = "xyes"; then
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
- else
- CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
-+ ac_cflags="$ac_cflags -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
- fi
-
- dnl
-diff --git a/build.mak.in b/build.mak.in
-index abc0c4fa0..a9078bb25 100644
---- a/build.mak.in
-+++ b/build.mak.in
-@@ -299,7 +299,7 @@ export APP_LDXXLIBS := $(PJSUA2_LIB_LDLIB) \
- -lstdc++ \
- $(APP_LDLIBS)
-
--# Here are the variabels to use if application is using the library
-+# Here are the variables to use if application is using the library
- # from within the source distribution
- export PJ_CC := $(APP_CC)
- export PJ_CXX := $(APP_CXX)
-@@ -317,6 +317,5 @@ export PJ_LIBXX_FILES := $(APP_LIBXX_FILES)
- export PJ_INSTALL_DIR := @prefix@
- export PJ_INSTALL_INC_DIR := @includedir@
- export PJ_INSTALL_LIB_DIR := @libdir@
--export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @CFLAGS@
--export PJ_INSTALL_CXXFLAGS := @CXXFLAGS@ $(PJ_INSTALL_CFLAGS)
--export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDLIBS)
-+export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@
-+export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDXXLIBS)
-diff --git a/libpjproject.pc.in b/libpjproject.pc.in
-index fa8d39114..30ea05c07 100644
---- a/libpjproject.pc.in
-+++ b/libpjproject.pc.in
-@@ -9,5 +9,5 @@ Name: libpjproject
- Description: Multimedia communication library
- URL: http://www.pjsip.org
- Version: @PJ_VERSION@
--Libs: -L${libdir} @PJ_LDXXLIBS@
--Cflags: -I${includedir} @PJ_INSTALL_CXXFLAGS@
-+Libs: @PJ_INSTALL_LDFLAGS@
-+Cflags: @PJ_INSTALL_CFLAGS@
---
-2.27.0
-
diff --git a/gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch b/gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch
deleted file mode 100644
index 1199d82f1e..0000000000
--- a/gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 9bcba7fb28055550961b134e517b695a8cd05b2a Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Mon, 3 Aug 2020 17:43:19 -0400
-Subject: [PATCH] libpjproject.pc: Move external libraries to Libs.private.
-
-This is done so users of a shared pjproject library do not get link
-directives (provided via pkg-config file of pjproject) to link against
-pjproject's own library dependencies.
-
-Static linking with pjproject is preserved by moving the external
-libraries link directives to the Libs.private field, which is
-specifically intended for this purpose, via for example:
-
- $ pkg-config --static --libs libpjproject
-
-* build.mak.in (PJ_INSTALL_LDFLAGS_PRIVATE): New variable.
-(PJ_INSTALL_LDFLAGS): Filter out PJ_INSTALL_LDFLAGS_PRIVATE entries.
-* libpjproject.pc.in (Libs.private): New field.
-* Makefile: Substitute PJ_INSTALL_LDFLAGS_PRIVATE as the value for the
-Libs.private field.
----
- Makefile | 5 +++--
- build.mak.in | 3 ++-
- libpjproject.pc.in | 1 +
- 3 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 3fd5cab40..d67badfa4 100644
---- a/Makefile
-+++ b/Makefile
-@@ -54,14 +54,14 @@ doc:
- exit 1; \
- fi; \
- done
--
-+
- LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \
- pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \
- pjnath/lib/libpjnath-$(TARGET_NAME).a \
- pjmedia/lib/libpjmedia-$(TARGET_NAME).a \
- pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \
- pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \
-- pjsip/lib/libpjsip-$(TARGET_NAME).a \
-+ pjsip/lib/libpjsip-$(TARGET_NAME).a \
- pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \
- pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \
- pjsip/lib/libpjsua-$(TARGET_NAME).a
-@@ -133,6 +133,7 @@ install:
- sed -e "s!@LIBDIR@!$(libdir)!" | \
- sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
- sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \
-+ sed -e "s!@PJ_INSTALL_LDFLAGS_PRIVATE@!$(PJ_INSTALL_LDFLAGS_PRIVATE)!" | \
- sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
-
- uninstall:
-diff --git a/build.mak.in b/build.mak.in
-index a9078bb25..1a18a8513 100644
---- a/build.mak.in
-+++ b/build.mak.in
-@@ -318,4 +318,5 @@ export PJ_INSTALL_DIR := @prefix@
- export PJ_INSTALL_INC_DIR := @includedir@
- export PJ_INSTALL_LIB_DIR := @libdir@
- export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@
--export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDXXLIBS)
-+export PJ_INSTALL_LDFLAGS_PRIVATE := $(APP_THIRD_PARTY_LIBS) $(APP_THIRD_PARTY_EXT) @LIBS@
-+export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(filter-out $(PJ_INSTALL_LDFLAGS_PRIVATE),$(APP_LDXXLIBS))
-diff --git a/libpjproject.pc.in b/libpjproject.pc.in
-index 30ea05c07..4372d5016 100644
---- a/libpjproject.pc.in
-+++ b/libpjproject.pc.in
-@@ -10,4 +10,5 @@ Description: Multimedia communication library
- URL: http://www.pjsip.org
- Version: @PJ_VERSION@
- Libs: @PJ_INSTALL_LDFLAGS@
-+Libs.private: @PJ_INSTALL_LDFLAGS_PRIVATE@
- Cflags: @PJ_INSTALL_CFLAGS@
---
-2.27.0
-
diff --git a/gnu/packages/patches/pjproject-install-libpjsua2.patch b/gnu/packages/patches/pjproject-install-libpjsua2.patch
new file mode 100644
index 0000000000..ef9b0de91f
--- /dev/null
+++ b/gnu/packages/patches/pjproject-install-libpjsua2.patch
@@ -0,0 +1,19 @@
+# Retrieved from upstream:
+# https://github.com/pjsip/pjproject/commit/742f7dc252ded778a8b677937791c02e2fbc0dde
+diff --git a/Makefile b/Makefile
+index 31a6d39d4..74e246a44 100644
+--- a/Makefile
++++ b/Makefile
+@@ -121,9 +121,10 @@ cmp_wav:
+
+ install:
+ mkdir -p $(DESTDIR)$(libdir)/
+- cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/
+ if [ "$(PJ_EXCLUDE_PJSUA2)x" = "x" ] ; then \
+- cp -af $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) $(DESTDIR)$(libdir)/; \
++ cp -af $(APP_LIBXX_FILES) $(DESTDIR)$(libdir)/; \
++ else \
++ cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/; \
+ fi
+ mkdir -p $(DESTDIR)$(includedir)/
+ for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
diff --git a/gnu/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch b/gnu/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch
new file mode 100644
index 0000000000..caa2c47c08
--- /dev/null
+++ b/gnu/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch
@@ -0,0 +1,44 @@
+From 5209b53e9689ce28dcd045f384633378d619718f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Wi=C5=9Bniewski?= <vuko@vuko.pl>
+Date: Thu, 5 Nov 2020 16:18:52 +0100
+Subject: [PATCH] convert IFDRational to tuples in tests
+
+This fixes tests with Pillow version >= 7.2.0
+---
+ tests/s_test.py | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/tests/s_test.py b/tests/s_test.py
+index 5d105de..a7cad54 100644
+--- a/tests/s_test.py
++++ b/tests/s_test.py
+***************
+*** 9,14 ****
+--- 9,15 ----
+ import time
+ import unittest
+
++ import PIL
+ from PIL import Image
+ import piexif
+ from piexif import _common, ImageIFD, ExifIFD, GPSIFD, TAGS, InvalidImageDataError
+***************
+*** 580,585 ****
+--- 581,597 ----
+ # test utility methods----------------------------------------------
+
+ def _compare_value(self, v1, v2):
++ if isinstance(v2, PIL.TiffImagePlugin.IFDRational):
++ v2 = (v2.numerator, v2.denominator)
++ if isinstance(v2, tuple):
++ converted_v2 = []
++ for el in v2:
++ if isinstance(el, PIL.TiffImagePlugin.IFDRational):
++ converted_v2.append((el.numerator, el.denominator))
++ else:
++ converted_v2.append(el)
++ v2 = tuple(converted_v2)
++
+ if type(v1) != type(v2):
+ if isinstance(v1, tuple):
+ self.assertEqual(pack_byte(*v1), v2)
diff --git a/gnu/packages/patches/qemu-CVE-2021-20203.patch b/gnu/packages/patches/qemu-CVE-2021-20203.patch
deleted file mode 100644
index 9d2ceaa649..0000000000
--- a/gnu/packages/patches/qemu-CVE-2021-20203.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <SRS0=i+5i=HB=nongnu.org=qemu-devel-bounces+qemu-devel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIM_INVALID,
- DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH,
- MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,
- URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 87556C433E0
- for <qemu-devel@archiver.kernel.org>; Sat, 30 Jan 2021 13:20:40 +0000 (UTC)
-Received: from lists.gnu.org (lists.gnu.org [209.51.188.17])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id EF26964DE1
- for <qemu-devel@archiver.kernel.org>; Sat, 30 Jan 2021 13:20:39 +0000 (UTC)
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EF26964DE1
-Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com
-Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org
-Received: from localhost ([::1]:42488 helo=lists1p.gnu.org)
- by lists.gnu.org with esmtp (Exim 4.90_1)
- (envelope-from <qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org>)
- id 1l5qB3-0008CX-02
- for qemu-devel@archiver.kernel.org; Sat, 30 Jan 2021 08:20:37 -0500
-Received: from eggs.gnu.org ([2001:470:142:3::10]:45174)
- by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
- (Exim 4.90_1) (envelope-from <ppandit@redhat.com>)
- id 1l5q9q-0007ld-1c
- for qemu-devel@nongnu.org; Sat, 30 Jan 2021 08:19:22 -0500
-Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:42898)
- by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256)
- (Exim 4.90_1) (envelope-from <ppandit@redhat.com>)
- id 1l5q9k-0007Ia-TV
- for qemu-devel@nongnu.org; Sat, 30 Jan 2021 08:19:21 -0500
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
- s=mimecast20190719; t=1612012753;
- h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
- to:to:cc:cc:mime-version:mime-version:content-type:content-type:
- content-transfer-encoding:content-transfer-encoding;
- bh=7vu4z8M+bFjhFzEuAYsQG4i3APx7aMqv7tFxRRO5+8Q=;
- b=egCsTdgVBnRlHnVN84HsSpNOUl/NkqEnGuv9rRdG2AZ1Fee5ZatpJm5zJ7YUW2HvzB4rtO
- EaDIKaN1wzf/yHf0CsJ60TPGG3DqQSC/EsTSr2l/GNGq4prDYTXVrS3rXFu9ofByUVvzwU
- q9Iy1X1Bh3S21m7jXY0AYx4Tu9Ikq9w=
-Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com
- [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id
- us-mta-588-1JF7mzMfP1KpRpNKj4cAWQ-1; Sat, 30 Jan 2021 08:19:08 -0500
-X-MC-Unique: 1JF7mzMfP1KpRpNKj4cAWQ-1
-Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com
- [10.5.11.22])
- (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
- (No client certificate requested)
- by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8F0F439380;
- Sat, 30 Jan 2021 13:19:07 +0000 (UTC)
-Received: from localhost.localdomain (unknown [10.33.36.2])
- by smtp.corp.redhat.com (Postfix) with ESMTPS id 17D581002C11;
- Sat, 30 Jan 2021 13:19:04 +0000 (UTC)
-From: P J P <ppandit@redhat.com>
-To: Dmitry Fleytman <dmitry.fleytman@gmail.com>
-Subject: [PATCH] net: vmxnet3: validate configuration values during activate
- (CVE-2021-20203)
-Date: Sat, 30 Jan 2021 18:46:52 +0530
-Message-Id: <20210130131652.954143-1-ppandit@redhat.com>
-MIME-Version: 1.0
-X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22
-Authentication-Results: relay.mimecast.com;
- auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ppandit@redhat.com
-X-Mimecast-Spam-Score: 0
-X-Mimecast-Originator: redhat.com
-Content-Transfer-Encoding: 8bit
-Content-Type: text/plain; charset="US-ASCII"
-Received-SPF: pass client-ip=63.128.21.124; envelope-from=ppandit@redhat.com;
- helo=us-smtp-delivery-124.mimecast.com
-X-Spam_score_int: -30
-X-Spam_score: -3.1
-X-Spam_bar: ---
-X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.255,
- DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
- RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,
- SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
-X-Spam_action: no action
-X-BeenThere: qemu-devel@nongnu.org
-X-Mailman-Version: 2.1.23
-Precedence: list
-List-Id: <qemu-devel.nongnu.org>
-List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
- <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
-List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
-List-Post: <mailto:qemu-devel@nongnu.org>
-List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
-List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
- <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
-Cc: Gaoning Pan <pgn@zju.edu.cn>, QEMU Developers <qemu-devel@nongnu.org>,
- Prasad J Pandit <pjp@fedoraproject.org>
-Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org
-Sender: "Qemu-devel"
- <qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org>
-Archived-At: <https://lore.kernel.org/qemu-devel/20210130131652.954143-1-ppandit@redhat.com/>
-List-Archive: <https://lore.kernel.org/qemu-devel/>
-
-From: Prasad J Pandit <pjp@fedoraproject.org>
-
-While activating device in vmxnet3_acticate_device(), it does not
-validate guest supplied configuration values against predefined
-minimum - maximum limits. This may lead to integer overflow or
-OOB access issues. Add checks to avoid it.
-
-Fixes: CVE-2021-20203
-Buglink: https://bugs.launchpad.net/qemu/+bug/1913873
-Reported-by: Gaoning Pan <pgn@zju.edu.cn>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
----
- hw/net/vmxnet3.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
-index eff299f629..4a910ca971 100644
---- a/hw/net/vmxnet3.c
-+++ b/hw/net/vmxnet3.c
-@@ -1420,6 +1420,7 @@ static void vmxnet3_activate_device(VMXNET3State *s)
- vmxnet3_setup_rx_filtering(s);
- /* Cache fields from shared memory */
- s->mtu = VMXNET3_READ_DRV_SHARED32(d, s->drv_shmem, devRead.misc.mtu);
-+ assert(VMXNET3_MIN_MTU <= s->mtu && s->mtu < VMXNET3_MAX_MTU);
- VMW_CFPRN("MTU is %u", s->mtu);
-
- s->max_rx_frags =
-@@ -1473,6 +1474,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
- /* Read rings memory locations for TX queues */
- pa = VMXNET3_READ_TX_QUEUE_DESCR64(d, qdescr_pa, conf.txRingBasePA);
- size = VMXNET3_READ_TX_QUEUE_DESCR32(d, qdescr_pa, conf.txRingSize);
-+ if (size > VMXNET3_TX_RING_MAX_SIZE) {
-+ size = VMXNET3_TX_RING_MAX_SIZE;
-+ }
-
- vmxnet3_ring_init(d, &s->txq_descr[i].tx_ring, pa, size,
- sizeof(struct Vmxnet3_TxDesc), false);
-@@ -1483,6 +1487,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
- /* TXC ring */
- pa = VMXNET3_READ_TX_QUEUE_DESCR64(d, qdescr_pa, conf.compRingBasePA);
- size = VMXNET3_READ_TX_QUEUE_DESCR32(d, qdescr_pa, conf.compRingSize);
-+ if (size > VMXNET3_TC_RING_MAX_SIZE) {
-+ size = VMXNET3_TC_RING_MAX_SIZE;
-+ }
- vmxnet3_ring_init(d, &s->txq_descr[i].comp_ring, pa, size,
- sizeof(struct Vmxnet3_TxCompDesc), true);
- VMXNET3_RING_DUMP(VMW_CFPRN, "TXC", i, &s->txq_descr[i].comp_ring);
-@@ -1524,6 +1531,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
- /* RX rings */
- pa = VMXNET3_READ_RX_QUEUE_DESCR64(d, qd_pa, conf.rxRingBasePA[j]);
- size = VMXNET3_READ_RX_QUEUE_DESCR32(d, qd_pa, conf.rxRingSize[j]);
-+ if (size > VMXNET3_RX_RING_MAX_SIZE) {
-+ size = VMXNET3_RX_RING_MAX_SIZE;
-+ }
- vmxnet3_ring_init(d, &s->rxq_descr[i].rx_ring[j], pa, size,
- sizeof(struct Vmxnet3_RxDesc), false);
- VMW_CFPRN("RX queue %d:%d: Base: %" PRIx64 ", Size: %d",
-@@ -1533,6 +1543,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
- /* RXC ring */
- pa = VMXNET3_READ_RX_QUEUE_DESCR64(d, qd_pa, conf.compRingBasePA);
- size = VMXNET3_READ_RX_QUEUE_DESCR32(d, qd_pa, conf.compRingSize);
-+ if (size > VMXNET3_RC_RING_MAX_SIZE) {
-+ size = VMXNET3_RC_RING_MAX_SIZE;
-+ }
- vmxnet3_ring_init(d, &s->rxq_descr[i].comp_ring, pa, size,
- sizeof(struct Vmxnet3_RxCompDesc), true);
- VMW_CFPRN("RXC queue %d: Base: %" PRIx64 ", Size: %d", i, pa, size);
---
-2.29.2
-
-
-
diff --git a/gnu/packages/patches/quassel-qt-514-compat.patch b/gnu/packages/patches/quassel-qt-514-compat.patch
deleted file mode 100644
index 7a0c42e8aa..0000000000
--- a/gnu/packages/patches/quassel-qt-514-compat.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-https://github.com/quassel/quassel/commit/579e559a6322209df7cd51c34801fecff5fe734b.patch
-
-Based on the above patch, with some changes due to how the code has changed
-in the time since 0.13.1 was released.
-
-https://git.archlinux.org/svntogit/community.git/plain/trunk/quassel-0.13.1-qt5.14.patch?h=packages/quassel
-
-From 579e559a6322209df7cd51c34801fecff5fe734b Mon Sep 17 00:00:00 2001
-From: Manuel Nickschas <sputnick@quassel-irc.org>
-Date: Tue, 7 Jan 2020 18:34:54 +0100
-Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
-
-Starting from version 5.14, Qt provides stream operators for enum
-types, which collide with the ones we ship in types.h. Disable
-Quassel's stream operators when compiling against Qt 5.14 or later.
-
-Add a unit test that ensures that enum serialization honors the width
-of the underlying type.
----
- src/common/types.h | 2 +
- tests/common/CMakeLists.txt | 2 +
- tests/common/typestest.cpp | 79 +++++++++++++++++++++++++++++++++++++
- 3 files changed, 83 insertions(+)
- create mode 100644 tests/common/typestest.cpp
-
-diff --git a/src/common/types.h b/src/common/types.h
-index d3742b788..e2a9aab5e 100644
---- a/src/common/types.h
-+++ b/src/common/types.h
-@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
- typedef QList<MsgId> MsgIdList;
- typedef QList<BufferId> BufferIdList;
-
-+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
- /**
- * Catch-all stream serialization operator for enum types.
- *
-@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
- value = static_cast<T>(v);
- return in;
- }
-+#endif
-
- // Exceptions
-
-diff --git a/tests/common/typestest.cpp b/tests/common/typestest.cpp
-new file mode 100644
-index 000000000..04031c299
---- /dev/null
-+++ b/tests/common/typestest.cpp
-@@ -0,0 +1,79 @@
-+/***************************************************************************
-+ * Copyright (C) 2005-2020 by the Quassel Project *
-+ * devel@quassel-irc.org *
-+ * *
-+ * This program 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 2 of the License, or *
-+ * (at your option) version 3. *
-+ * *
-+ * This program 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 this program; if not, write to the *
-+ * Free Software Foundation, Inc., *
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
-+ ***************************************************************************/
-+
-+#include <cstdint>
-+
-+#include <QByteArray>
-+#include <QDataStream>
-+#include <QObject>
-+
-+#include "testglobal.h"
-+#include "types.h"
-+
-+using namespace ::testing;
-+
-+class EnumHolder
-+{
-+ Q_GADGET
-+
-+public:
-+ enum class Enum16 : uint16_t {};
-+ enum class Enum32 : uint32_t {};
-+
-+ enum class EnumQt16 : uint16_t {};
-+ Q_ENUM(EnumQt16)
-+ enum class EnumQt32 : uint32_t {};
-+ Q_ENUM(EnumQt32)
-+};
-+
-+// Verify that enums are (de)serialized as their underlying type
-+TEST(TypesTest, enumSerialization)
-+{
-+ QByteArray data;
-+ QDataStream out(&data, QIODevice::WriteOnly);
-+
-+ // Serialize
-+ out << EnumHolder::Enum16(0xabcd);
-+ ASSERT_THAT(data.size(), Eq(2));
-+ out << EnumHolder::Enum32(0x123456);
-+ ASSERT_THAT(data.size(), Eq(6));
-+ out << EnumHolder::EnumQt16(0x4321);
-+ ASSERT_THAT(data.size(), Eq(8));
-+ out << EnumHolder::Enum32(0xfedcba);
-+ ASSERT_THAT(data.size(), Eq(12));
-+ ASSERT_THAT(out.status(), Eq(QDataStream::Status::Ok));
-+
-+ // Deserialize
-+ QDataStream in(data);
-+ EnumHolder::Enum16 enum16;
-+ EnumHolder::Enum32 enum32;
-+ EnumHolder::EnumQt16 enumQt16;
-+ EnumHolder::EnumQt32 enumQt32;
-+ in >> enum16 >> enum32 >> enumQt16 >> enumQt32;
-+ ASSERT_THAT(in.status(), Eq(QDataStream::Status::Ok));
-+ EXPECT_TRUE(in.atEnd());
-+
-+ EXPECT_THAT((int)enum16, Eq(0xabcd));
-+ EXPECT_THAT((int)enum32, Eq(0x123456));
-+ EXPECT_THAT((int)enumQt16, Eq(0x4321));
-+ EXPECT_THAT((int)enumQt32, Eq(0xfedcba));
-+}
-+
-+#include "typestest.moc"
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index b08c049717..3a74a4c613 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -210,7 +210,7 @@ code.")
(define-public protozero
(package
(name "protozero")
- (version "1.7.0")
+ (version "1.7.1")
(source
(origin
(method git-fetch)
@@ -219,7 +219,7 @@ code.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0fdihfl5j68wayjjxvpvhvnjq1anzcfnfl09f68wpzbkg3zmhblz"))))
+ (base32 "052cq5mdjjgcsgk612zkqi8k08p3ikl22r59dk6i6fq41dxldja7"))))
(build-system cmake-build-system)
(home-page "https://github.com/mapbox/protozero")
(synopsis "Minimalistic protocol buffer decoder and encoder in C++")
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index b4e2765d72..181aa8b05c 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -686,6 +686,31 @@ framework and makes it easy to undo any monkey patching. The fixtures are:
in Pytest.")
(license license:bsd-3)))
+(define-public python-pytest-pydocstyle
+ (package
+ (name "python-pytest-pydocstyle")
+ (version "2.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/henry0312/pytest-pydocstyle")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0w6fivz4nb4b70wzmi5sk17qs9pd05rnh03fmch6v00r3dmfpk39"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; test requires the package itself
+ (propagated-inputs
+ (list python-pydocstyle
+ python-pytest)) ;apparently required
+ (home-page "https://github.com/henry0312/pytest-pydocstyle")
+ (synopsis "Pytest plugin to run @command{pydocstyle}")
+ (description "This package provides a Pytest plugin to run
+@command{pydocstyle}.")
+ (license license:expat)))
+
(define-public python-covdefaults
(package
(name "python-covdefaults")
@@ -776,6 +801,35 @@ support and @code{subtests} fixture.")
"Plugin for managing VCR.py cassettes.")
(license license:expat))))
+(define-public python-pytest-doctest-custom
+ (package
+ (name "python-pytest-doctest-custom")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-doctest-custom" version))
+ (sha256
+ (base32 "0kxkdd6q9c3h31kc88lbyfll4c45b0zjd24cbr4c083fcvcy7lip"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "test_pytest_doctest_custom.py")))))))
+ (native-inputs
+ (list python-pytest))
+ (home-page "https://github.com/danilobellini/pytest-doctest-custom")
+ (synopsis
+ "Pytest plugin to customize string representations of doctest results")
+ (description "This package provides a Pytest plugin for customizing string
+representations of doctest results. It can change the display hook used by
+doctest to render the object representations.")
+ (license license:expat)))
+
(define-public python-pytest-checkdocs
(package
(name "python-pytest-checkdocs")
@@ -1020,14 +1074,14 @@ framework.")
(define-public python-pytest-pycodestyle
(package
(name "python-pytest-pycodestyle")
- (version "2.0.0") ;later versions require python-pytest~=5.4
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-pycodestyle" version))
(sha256
(base32
- "02i5gl7pm9cwxk15sn29inz3n8flpj1r3p1l110h43f2na5w8h7z"))))
+ "1clyjypn93hwvz17f4i6n2688835d4y8qsq2aw17d6fkbqiy8mg7"))))
(build-system python-build-system)
(propagated-inputs
(list python-pycodestyle))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 2072e4e164..89c0cf0e0c 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -96,17 +96,22 @@ Python. It does not bind to libotr.")
(define-public python-base58
(package
(name "python-base58")
- (version "2.0.1")
+ (version "2.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "base58" version))
(sha256
(base32
- "0yfaqp76kbdb62hikr5n4jkkfjfmii89grwfy6sw3fmsv5hrap1n"))))
+ "1317ly0db7nnjg5k58f6nqa0svfcvn446xd5bpiyi0bfbczwpl65"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(native-inputs
- (list python-pyhamcrest))
+ (list python-pyhamcrest python-pytest python-pytest-benchmark))
(home-page "https://github.com/keis/base58")
(synopsis "Base58 and Base58Check implementation")
(description "Base58 and Base58Check implementation compatible
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index aa4d5736a7..1cfc8e5869 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016-2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
@@ -239,13 +239,7 @@ Cython.")
(sha256
(base32 "0bp1n771fj44kdp7a00bcvfwirvv2rc803b7g6yf3va7v0j29c8s"))))
(build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "nosetests" "-s" "-v" "skfuzzy")
- #t)))))
+ (arguments '(#:tests? #f)) ;XXX: not compatible with newer numpy.testing
(native-inputs
(list python-nose))
(propagated-inputs
@@ -992,6 +986,12 @@ computing in Python. It extends both the @code{concurrent.futures} and
(add-after 'unpack 'make-files-writable
(lambda _
(for-each make-file-writable (find-files "."))))
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ (substitute* "setup.py"
+ ;; Don't depend on a specific version of Pandas.
+ (("pandas==")
+ "pandas>="))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index c714476aa8..997b98e2a9 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2020 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2017, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2016, 2017, 2019-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu>
@@ -47,6 +47,7 @@
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -82,6 +83,7 @@
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages node)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
@@ -775,6 +777,40 @@ JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign
content using a variety of algorithms.")
(license license:expat)))
+(define-public python-pyscss
+ (package
+ (name "python-pyscss")
+ (version "1.3.7")
+ (source
+ (origin
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/Kronuz/pyScss")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0701hziiiw67blafgpmjhzspmrss8mfvif7fw0rs8fikddwwc9g6"))))
+ (build-system python-build-system)
+ (arguments
+ ;; XXX: error in test collection, possible incompatibility with Pytest 6.
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "--pyargs" "scss")))))))
+ (native-inputs
+ (list python-pytest python-pytest-cov))
+ (inputs
+ (list pcre))
+ (home-page "https://github.com/Kronuz/pyScss")
+ (synopsis "Scss compiler for Python")
+ (description "@code{pyScss} is a compiler for Sass, a superset language of
+CSS3 that adds programming capabilities and some other syntactic sugar.")
+ (license license:expat)))
+
(define-public python-jsonpickle
(package
(name "python-jsonpickle")
@@ -992,6 +1028,28 @@ between a web browser and web server.")
(define-public python2-sockjs-tornado
(package-with-python2 python-sockjs-tornado))
+(define-public python-flask-assets
+ (package
+ (name "python-flask-assets")
+ (version "2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Flask-Assets" version))
+ (sha256
+ (base32 "1hmqldxc7zciksmcl35jx0wbyrrxc7vk2a57mmmd8i07whsymz8x"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Tests require python-flask-script which is incompatible with Flask2.
+ `(#:tests? #f))
+ (propagated-inputs
+ (list python-flask python-webassets))
+ (home-page "https://github.com/miracle2k/flask-assets")
+ (synopsis "Asset management for Flask")
+ (description "This package integrates @code{webassets} with Flask, adding
+support for merging, minifying and compiling CSS and Javascript files.")
+ (license license:bsd-2)))
+
(define-public python-flask-babel
(package
(name "python-flask-babel")
@@ -2356,32 +2414,44 @@ verification of the SSL peer.")
(define-public python-websocket-client
(package
(name "python-websocket-client")
- (version "0.54.0")
+ (version "1.2.3")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "websocket_client" version))
+ (uri (pypi-uri "websocket-client" version))
(sha256
- (base32
- "0j88zmikaypf38lvpkf4aaxrjp9j07dmy5ghj7kli0fv3p4n45g5"))))
+ (base32 "1xba9z6b211pandrlk2l5p8wj6gn7yfkpq1sxfbqjl6c19n8258k"))))
(build-system python-build-system)
- (propagated-inputs
- (list python-six))
- (home-page "https://github.com/liris/websocket-client")
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-network-test
+ (lambda _
+ ;; This test requires networking.
+ (substitute* "websocket/tests/test_http.py"
+ (("def testConnect") "def _testConnect"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "websocket/tests")))))))
+ (native-inputs
+ (list python-pysocks python-pytest python-websockets))
+ (home-page "https://github.com/websocket-client/websocket-client")
(synopsis "WebSocket client for Python")
(description "The Websocket-client module provides the low level APIs for
WebSocket usage in Python programs.")
- (properties `((python2-variant . ,(delay python2-websocket-client))))
(license license:lgpl2.1+)))
-(define-public python2-websocket-client
- (let ((base (package-with-python2
- (strip-python2-variant python-websocket-client))))
- (package/inherit base
- (native-inputs
- `(("python2-backport-ssl-match-hostname"
- ,python2-backport-ssl-match-hostname)
- ,@(package-native-inputs base))))))
+(define-public python-websocket-client-0.59
+ (package
+ (inherit python-websocket-client)
+ (version "0.59.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "websocket-client" version))
+ (sha256
+ (base32 "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))))
(define-public python-purl
(package
@@ -4190,6 +4260,30 @@ name resolutions asynchronously.")
for URL parsing and changing.")
(license license:asl2.0)))
+(define-public python-canvasapi
+ (package
+ (name "python-canvasapi")
+ (version "2.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ucfopen/canvasapi")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0i13wrq2czcaz3h98pvnsl237104v611y9636jf32b1nn76sbp0p"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-pytz python-requests))
+ (native-inputs (list python-requests-mock))
+ (home-page "https://github.com/ucfopen/canvasapi")
+ (synopsis "API wrapper for the Canvas LMS")
+ (description
+ "CanvasAPI is a Python library for accessing Instructure’s Canvas LMS API.
+The library enables developers to programmatically manage Canvas courses,
+users, gradebooks, and more.")
+ (license license:expat)))
+
(define-public python-google
(package
(name "python-google")
@@ -5537,7 +5631,7 @@ based on filters.")
(define-public python-flask-restx
(package
(name "python-flask-restx")
- (version "0.2.0")
+ (version "0.5.1")
(source
;; We fetch from the Git repo because there are no tests in the PyPI
;; archive.
@@ -5548,7 +5642,7 @@ based on filters.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7"))))
+ (base32 "18vrmknyxw6adn62pz3kr9kvazfgjgl4pgimdf8527fyyiwcqy15"))))
(build-system python-build-system)
(propagated-inputs
(list python-aniso8601 python-flask python-jsonschema python-pytz))
@@ -5566,7 +5660,8 @@ based on filters.")
(lambda _
(invoke "pytest" "--benchmark-skip" "-k"
;; Those tests need internet access
- "not test_check and not test_valid_value_check"))))))
+ "not test_check and not test_valid_value_check \
+and not test_override_app_level"))))))
(home-page "https://github.com/python-restx/flask-restx")
(synopsis
"Framework for fast, easy and documented API development with Flask")
@@ -6207,12 +6302,24 @@ provides well-defined APIs to talk to websites lacking one.")
(sha256
(base32 "07fhcjiyif80z1vyh35za29sqx1mmqh568jrbrrs675j4a797sj1"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ ;; Don't pin specific versions of dependencies.
+ (substitute* "requirements.txt"
+ (("^sqlalchemy[=<>].*") "sqlalchemy\n")
+ (("^marshmallow[=<>].*") "marshmallow\n")
+ (("^Flask[=<>].*") "Flask\n"))))
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv"))))))
(propagated-inputs
(list python-flask
- python-marshmallow-3.2
+ python-marshmallow
python-marshmallow-jsonapi
python-simplejson
- python-sqlalchemy-1.3
+ python-sqlalchemy
python-apispec
python-simplejson
python-six))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cfd2d68219..42670f34c3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26,7 +26,7 @@
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016, 2017, 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2021 Arun Isaac <arunisaac@systemreboot.net>
@@ -80,7 +80,7 @@
;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
@@ -92,8 +92,8 @@
;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2019 Kristian Trandem <kristian@devup.no>
;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
-;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2020 EuAndreh <eu@euandre.org>
+;;; Copyright © 2021, 2022 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Ellis Kenyő <me@elken.dev>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
@@ -113,6 +113,9 @@
;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
;;; Copyright © 2021 ZmnSCPxj <ZmnSCPxj@protonmail.com>
;;; Copyright © 2021 Filip Lajszczak <filip@lajszczak.dev>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -768,21 +771,24 @@ implementation for the Telegram Bot API.")
(define-public python-colorlog
(package
(name "python-colorlog")
- (version "4.1.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "colorlog" version))
- (sha256
- (base32
- "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih"))))
+ (version "6.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "colorlog" version))
+ (sha256
+ (base32 "1s7x0v872h8aks8xp01wmv6hzisxqjrh1svbbcycir0980h76krl"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest))
- (arguments
- `(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "pytest" "-p" "no:logging"))))))
(home-page "https://github.com/borntyping/python-colorlog")
(synopsis "Log formatting with colors for python")
(description "The @code{colorlog.ColoredFormatter} is a formatter for use
@@ -1400,7 +1406,7 @@ approximate nearest neighbor search with Python bindings.")
(define-public python-pyls-black
(package
(name "python-pyls-black")
- (version "0.4.6")
+ (version "0.4.7")
(source
(origin
;; There are no tests in the PyPI tarball.
@@ -1410,12 +1416,27 @@ approximate nearest neighbor search with Python bindings.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0cjf0mjn156qp0x6md6mncs31hdpzfim769c2lixaczhyzwywqnj"))))
+ (base32 "0bkhfnlik89j3yamr20br4wm8975f20v33wabi2nyxvj10whr5dj"))
+ ;; Patch to work with python-lsp-server. Taken from
+ ;; <https://github.com/rupert/pyls-black/pull/37>.
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "setup.cfg"
+ (("python-language-server")
+ "python-lsp-server"))
+ (substitute* '("pyls_black/plugin.py" "tests/test_plugin.py")
+ (("pyls_format_document")
+ "pylsp_format_document")
+ (("pyls_format_range")
+ "pylsp_format_range")
+ (("from pyls([ \\.])" _ char)
+ (string-append "from pylsp" char)))))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"))
(propagated-inputs
- (list python-black python-language-server python-toml))
+ (list python-black python-lsp-server python-tomli))
(native-inputs
(list python-flake8 python-isort python-mypy python-pytest
python-pytest-runner))
@@ -1455,26 +1476,31 @@ approximate nearest neighbor search with Python bindings.")
(define-public python-cftime
(package
(name "python-cftime")
- (version "1.0.4.2")
+ (version "1.5.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cftime" version))
(sha256
- (base32 "0w0gi6jnch38hiygl62j4xkcirv4y3dcwrvxl9p7bsk6j27lzihs"))))
+ (base32 "0l1a22zlhdpgaisibvvm7dhij4vzfm661rnv00y2snpyqxpdgi3d"))))
(build-system python-build-system)
(propagated-inputs
(list python-numpy))
(native-inputs
- (list python-coveralls python-cython python-pytest-cov))
- (home-page "https://github.com/Unidata/cftime")
+ (list python-check-manifest
+ python-coverage
+ python-coveralls
+ python-cython
+ python-pytest-cov
+ python-sphinx
+ python-twine
+ python-wheel))
+ (home-page "https://unidata.github.io/cftime/")
(synopsis "Library for time handling")
(description
"This package provides time-handling functionality that used to be part
of the netcdf4 package before.")
- ;; This package claims to include code under the GPLv3 but is released
- ;; under ISC.
- (license (list license:isc license:gpl3+))))
+ (license license:expat)))
(define-public python-netcdf4
(package
@@ -4024,6 +4050,33 @@ logic-free templating system Mustache.")
(lambda _
(invoke "python" "test_pystache.py")))))))))
+(define-public python-pystitcher
+ (package
+ (name "python-pystitcher")
+ (version "1.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/captn3m0/pystitcher")
+ (commit
+ (string-append "v" version))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "03yrzqhcsjdj5zprrk3bh5bbyqfy3vfhxra9974vmkir3m121394"))))
+ (build-system python-build-system)
+ (inputs
+ (list python-html5lib python-importlib-metadata python-markdown
+ python-pypdf3 python-validators))
+ (home-page "https://github.com/captn3m0/pystitcher")
+ (synopsis "Declaratively stitch together a PDF file from multiple sources")
+ (description
+ "This package stitches your PDF files together, generating customizable
+bookmarks using a declarative input in the form of a markdown file.")
+ (license license:expat)))
+
(define-public python-joblib
(package
(name "python-joblib")
@@ -4149,6 +4202,77 @@ important tasks for becoming a daemon process:
structure for Python.")
(license license:asl2.0)))
+(define-public autokey
+ (package
+ (name "autokey")
+ (version "0.95.10")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/autokey/autokey")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f0cqfnb49wwdy7zl2f2ypcnd5pc8r8n7z7ssxkq20d4xfxlgamr"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; Tests are deprecated and broken until next version, see
+ ;; https://github.com/autokey/autokey/issues/327
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/autokey/scripting.py"
+ (("\"wmctrl\"")
+ (string-append "\"" (search-input-file inputs "bin/wmctrl") "\""))
+ (("\"zenity\"")
+ (string-append "\"" (search-input-file inputs "bin/zenity") "\"")))
+ (substitute* "autokey-shell"
+ (("'ipython3'")
+ (string-append "'" (search-input-file inputs "bin/ipython3") "'"))
+ (("'python3'")
+ (string-append "'" (search-input-file inputs "bin/python3") "'")))))
+ ;; Use 'prefix' instead of '=' to allow the user to use additional
+ ;; GI paths from their autokey scripts. GUIX_PYTHONPATH is already
+ ;; wrapped with prefix in python-build-system's wrap.
+ (add-before 'wrap 'wrap-autokey-gi
+ (lambda _
+ (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (for-each
+ (lambda (program)
+ (wrap-program program
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+ (map (lambda (name)
+ (string-append #$output "/bin/" name))
+ '("autokey-gtk"
+ "autokey-shell")))))))))
+ (inputs
+ (list bash-minimal ; for wrap-program
+ gtksourceview-3
+ libappindicator
+ libnotify
+ python-dbus
+ python-ipython
+ python-pygobject
+ python-pyinotify
+ python-pyqt+qscintilla
+ python-xlib
+ wmctrl
+ zenity))
+ (home-page "https://github.com/autokey/autokey")
+ (synopsis
+ "Keyboard and GUI automation utility")
+ (description
+ "AutoKey is a desktop automation utility for X11. It allows the automation of
+virtually any task by responding to typed abbreviations and hotkeys. It
+offers a full-featured GUI (GTK and QT versions) that makes it highly
+accessible for novices, as well as a scripting interface offering the full
+flexibility and power of the Python language.")
+ (license license:gpl3+)))
+
(define-public python-docutils
(package
(name "python-docutils")
@@ -5084,14 +5208,14 @@ and integrated feature-set for programming Python effectively.")
(define-public python-pathspec
(package
(name "python-pathspec")
- (version "0.7.0")
+ (version "0.9.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pathspec" version))
(sha256
(base32
- "15lvs4awlg8xzl0l4gk9y53xx4yqmqvsv44pglv39m70y85afajn"))))
+ "1cdbdb3s6ldnjpwbi0bgl0xlmw4mbfxk08bbdxc3srx26na4jr75"))))
(build-system python-build-system)
(home-page "https://github.com/cpburnz/python-path-specification")
(synopsis "Utility library for gitignore style pattern matching of file paths")
@@ -5103,74 +5227,68 @@ matching of file paths.")
(define-public python-black
(package
(name "python-black")
- (version "20.8b1")
+ (version "21.12b0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "black" version))
(sha256
(base32
- "1spv6sldp3mcxr740dh3ywp25lly9s8qlvs946fin44rl1x5a0hw"))))
+ "1czjwr1bx9ax5l64xfi54sxb1ycdy4s9ciaqg592x7jn79lhzf3p"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'patch-source-shebangs 'patch-extra-shebangs
- (lambda _
- (let ((python3 (which "python3")))
- (substitute* '("tests/data/fmtonoff.py"
- "tests/data/string_prefixes.py"
- "tests/data/function.py"
- "tests/data/python37.py")
+ (add-after 'patch-source-shebangs 'use-absolute-file-names
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let* ((inpts (or native-inputs inputs))
+ (python3 (search-input-file inpts "/bin/python3"))
+ (/bin/false (search-input-file inpts "/bin/false"))
+ (/bin/sleep (search-input-file inpts "/bin/sleep")))
+ (substitute* (find-files "tests" "\\.py$")
(("#!/usr/bin/env python3(\\.[0-9]+)?" _ minor-version)
(string-append "#!" python3 (if (string? minor-version)
minor-version
- "")))))
- #t))
+ ""))))
+ (substitute* "tests/test_primer.py"
+ (("/bin/false") /bin/false)
+ (("/bin/sleep") /bin/sleep)))))
(add-after 'unpack 'disable-broken-tests
(lambda* (#:key outputs inputs #:allow-other-keys)
;; Make installed package available for running the tests
(setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
":" (getenv "PATH")))
- ;; These tests are supposed to be skipped when the blackd
- ;; dependencies are missing, but this doesn't quite work.
- (substitute* "tests/test_black.py"
- (("( *)class BlackDTestCase.*" match indent)
- (string-append indent "@unittest.skip(\"no blackd deps\")\n"
- indent "class BlackDTestCase(unittest.TestCase):\n"))
- (("web.Application") "False")
- (("@unittest_run_loop") ""))
-
- ;; Patching the above file breaks the self test
- (substitute* "tests/test_black.py"
- (("( *)def test_self" match indent)
- (string-append indent "@unittest.skip(\"guix\")\n" match)))
-
- (substitute* "tests/test_black.py"
- (("( *)def test_python38" match indent)
- (string-append indent "@unittest.skip(\"guix\")\n" match)))
- #t))
+ ;; The source formatting test fails because we patch various
+ ;; files; just disable it.
+ (substitute* "tests/test_format.py"
+ (("def test_source_is_formatted" all)
+ (format #f "@pytest.mark.skip(\"Disabled by Guix.\")\n~a"
+ all)))))
;; Remove blackd, because it depends on python-aiohttp and
;; python-aiohttp-cors.
(add-after 'unpack 'remove-entrypoint
(lambda _
(substitute* "setup.py"
(("\\s*\"blackd=blackd:patched_main \\[d\\]\",\n") "")
- (("\"blackd\", ") "")))))))
+ (("\"blackd\", ") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(propagated-inputs
(list python-click
python-attrs
python-appdirs
python-pathspec
python-mypy-extensions
+ python-platformdirs
python-regex
- python-toml
+ python-tomli
python-typed-ast
python-typing-extensions))
(native-inputs
- (list python-setuptools-scm))
- (home-page "https://github.com/ambv/black")
+ (list python-pytest python-pytest-aiohttp python-setuptools-scm))
+ (home-page "https://github.com/psf/black")
(synopsis "The uncompromising code formatter")
(description "Black is the uncompromising Python code formatter.")
(license license:expat)))
@@ -6898,6 +7016,27 @@ the OleFileIO module from PIL, the Python Image Library.")
(define-public python2-olefile
(package-with-python2 python-olefile))
+(define-public python-pypdf3
+ (package
+ (name "python-pypdf3")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyPDF3" version))
+ (sha256
+ (base32 "018hlq9q2qa96vw4j7ppq352znykldwy98h2w9qcpkvpi93sjqhc"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-tqdm))
+ (home-page "https://github.com/sfneal/PyPDF3")
+ (synopsis "Utility to read and write PDFs with Python")
+ (description "PyPDF3 is a pure-python PDF library capable of splitting,
+merging together, cropping, and transforming the pages of PDF files. It can
+also add custom data, viewing options, and passwords to PDF files. It can
+retrieve text and metadata from PDFs as well as merge entire files together.")
+ (license license:bsd-3)))
+
(define-public python-pikepdf
(package
(name "python-pikepdf")
@@ -7097,8 +7236,10 @@ def customize_build(EXTENSIONS, OPTIONS):
del EXTENSIONS['zfp']
del EXTENSIONS['zopfli']
OPTIONS['cythonize']
-")))
- #t)))))
+")))))
+ ;; XXX: The installed scripts import packages that depend on
+ ;; this package; disable import check to avoid the cycle.
+ (delete 'sanity-check))))
(inputs
(list c-blosc
giflib
@@ -7113,6 +7254,7 @@ def customize_build(EXTENSIONS, OPTIONS):
zlib
`(,zstd "lib")))
(propagated-inputs
+ ;; For the Python library.
(list python-numpy))
(native-inputs
;; For building.
@@ -7131,6 +7273,27 @@ buffer transformation, compression, and decompression functions for use in the
tifffile, czifile, and other scientific image input/output modules.")
(license license:bsd-3)))
+(define-public python-executing
+ (package
+ (name "python-executing")
+ (version "0.8.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "executing" version))
+ (sha256
+ (base32 "08q0xh9fd8k41sqpp23q6fb9bf7yj4y2q6sv30pj36vvk8pg8fy2"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; TODO: tests require python-asttokens
+ (native-inputs
+ (list python-setuptools-scm python-toml))
+ (home-page "https://github.com/alexmojaki/executing")
+ (synopsis "Get information about what a Python frame is currently doing")
+ (description "This package lets you get information about what a frame is
+currently doing, particularly the AST node being executed.")
+ (license license:expat)))
+
(define-public python-roifile
(package
(name "python-roifile")
@@ -7315,14 +7478,14 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
(define-public python-pywavelets
(package
(name "python-pywavelets")
- (version "1.1.1")
+ (version "1.2.0")
(home-page "https://github.com/PyWavelets/pywt")
(source (origin
(method url-fetch)
(uri (pypi-uri "PyWavelets" version))
(sha256
(base32
- "1j88c0r4j1d4mb3f8qhz6nalyx21qrzmsm70rjngnkybd87v8r0s"))))
+ "13csbr6ls9q9ww53z2xwwsj0hpsz88rj2iwp623h0kmv8yq6kgbc"))))
(build-system python-build-system)
(arguments
'(#:modules ((ice-9 ftw)
@@ -8319,6 +8482,41 @@ profile, launches a cluster and returns a view. On program exit it shuts the
cluster down and deletes the throwaway profile.")
(license license:expat)))
+(define-public python-ipython-sql
+ (package
+ (name "python-ipython-sql")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ipython-sql" version))
+ (sha256
+ (base32 "0v74ayc6vw98f4jljmwy45qpqbcbhlrb4g1qdyypq9sppxcqx21y"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ ;; The "NEWS.rst" file is missing from the PyPI distribution.
+ ;; (see: https://github.com/catherinedevlin/ipython-sql/issues/164)
+ (substitute* "setup.py"
+ (("NEWS = [^\n]*") "")
+ (("long_description=README \\+ '\\\\n\\\\n' \\+ NEWS,")
+ "long_description=README,")))))))
+ (propagated-inputs
+ (list python-ipython
+ python-ipython-genutils
+ python-prettytable
+ python-six
+ python-sqlalchemy
+ python-sqlparse))
+ (home-page "https://github.com/catherinedevlin/ipython-sql")
+ (synopsis "RDBMS access via IPython")
+ (description "This library connects to a database, using SQLAlchemy URL
+connect strings, then issue SQL commands within IPython or IPython Notebook.")
+ (license license:expat)))
+
(define-public python-traitlets
(package
(name "python-traitlets")
@@ -8534,23 +8732,21 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
(define-public python-pari-jupyter
(package
(name "python-pari-jupyter")
- (version "1.3.2")
+ (version "1.4.0")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "pari_jupyter" version))
+ (uri (pypi-uri "pari-jupyter" version))
(sha256
(base32
- "1yash0p422nnin7z58b99d0p23nx79f5m0mainc9hsjg72jhdhr6"))))
+ "1hwjr66vfjsx28qmxrgsp3z0px1xqwxv53byvsrbwbjp4pbp79sz"))))
(build-system python-build-system)
+ (arguments '(#:tests? #f)) ;no test suite
(propagated-inputs
(list python-ipykernel))
(inputs
(list pari-gp readline))
- (arguments
- `(#:tests? #f)) ; no test suite
- (home-page
- "https://github.com/jdemeyer/pari_jupyter")
+ (home-page "https://github.com/jdemeyer/pari-jupyter")
(synopsis "Jupyter kernel for PARI/GP")
(description "The package provides a PARI/GP kernel for Jupyter.")
(license license:gpl3+)))
@@ -8936,6 +9132,26 @@ parsing (browser/HTTP) user agent strings.")
(define-public python2-user-agents
(package-with-python2 python-user-agents))
+(define-public python-pydbus
+ (package
+ (name "python-pydbus")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pydbus" version))
+ (sha256
+ (base32 "0b0gipvz7vcfa9ddmwq2jrx16d4apb0hdnl5q4i3h8jlzwp1c1s2"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-pygobject))
+ (home-page "https://github.com/LEW21/pydbus")
+ (synopsis "Pythonic D-Bus library")
+ (description "Pydbus provides a pythonic interface to the D-Bus
+message bus system. Pydbus can be used to access remote objects and
+also for object publication. It is based on PyGI, the Python GObject
+Introspection bindings, which is the recommended way to use GLib from Python.")
+ (license license:lgpl2.1+)))
+
(define-public python-dbus
(package
(name "python-dbus")
@@ -9116,14 +9332,14 @@ some are not yet implemented).")
(define-public python-netifaces
(package
(name "python-netifaces")
- (version "0.10.9")
+ (version "0.11.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "netifaces" version))
(sha256
(base32
- "1wxby874kcr3pp4ygzk5aiarbzhg1yi093d56s1qg4k2s7yrzvid"))))
+ "0cnajf5rl4w1sa72j921scbigr6zndig56cq8ggpx45jdqa7jfh4"))))
(build-system python-build-system)
(home-page "https://github.com/al45tair/netifaces")
(synopsis
@@ -9820,6 +10036,113 @@ entire set of Emoji codes as defined by the Unicode Consortium is supported in
addition to a bunch of aliases.")
(license license:bsd-3)))
+(define-public python-sarge
+ (package
+ (name "python-sarge")
+ (version "0.1.7.post1") ; post release only to correct errors in metadata
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sarge" version))
+ (sha256
+ (base32 "0g9a53mfnp96877n1yq2jdk1mcv3xm0d93iisvgcn2prdsp45zv4"))))
+ (build-system python-build-system)
+ (home-page "https://docs.red-dove.com/sarge/")
+ (synopsis "Subprocess wrapper with command pipeline functionality")
+ (description "@code{sarge} is a wrapper for subprocess which provides
+command pipeline functionality.")
+ (license license:bsd-3)))
+
+(define-public python-zipstream-new
+ (package
+ (name "python-zipstream-new")
+ (version "1.1.8")
+ (source
+ (origin
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/arjan-s/python-zipstream")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14vhgg8mcjqi8cpzrw8qzbij2fr2a63l2a8fhil21k2r8vzv92cv"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list python-nose))
+ (home-page "https://github.com/arjan-s/python-zipstream")
+ (synopsis "Zipfile generator that takes input files as well as streams")
+ (description "@code{zipstream.py} is a zip archive generator based on
+@code{zipfile.py}. It was created to generate a zip file generator for
+streaming. This is beneficial for when you want to provide a downloadable
+archive of a large collection of regular files, which would be infeasible
+to generate the archive prior to downloading or of a very large file that
+you do not want to store entirely on disk or on memory.")
+ ;; No copyright headers in the source. The LICENSE file indicates GPL3.
+ (license license:gpl3)))
+
+(define-public python-sentry-sdk
+ (package
+ (name "python-sentry-sdk")
+ (version "1.5.1")
+ (source
+ (origin
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/getsentry/sentry-python")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "128bm136l5zprr3sqqb8j3d6k5i1fhz853mzvh3w8g0w1dw763mx"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "-k"
+ (string-append
+ ;; This test requires extra dependencies.
+ "not test_auto_enabling_integrations"
+ "_catches_import_error"
+ ;; Tests below run pip command.
+ " and not test_unhandled_exception"
+ " and not test_timeout_error"
+ " and not test_performance_no_error"
+ " and not test_performance_error"
+ " and not test_traces_sampler_gets_correct"
+ "_values_in_sampling_context"
+ " and not test_handled_exception"
+ ;; Tests below require network.
+ " and not test_crumb_capture"
+ " and not test_crumb_capture"
+ " and not test_crumb_capture_hint"
+ " and not test_httplib_misuse"
+ ;; Fails with IndexError.
+ " and not test_session_mode_defaults_to"
+ "_request_mode_in_wsgi_handler"))))))))
+ (native-inputs
+ (list python-django
+ python-executing
+ python-gevent
+ python-jsonschema
+ python-mock
+ python-pyrsistent
+ python-pytest
+ python-pytest-cov
+ python-pytest-django
+ python-pytest-forked
+ python-pytest-localserver
+ python-werkzeug))
+ (propagated-inputs
+ (list python-certifi python-urllib3))
+ (home-page "https://github.com/getsentry/sentry-python")
+ (synopsis "Python SDK for Sentry")
+ (description "This package provides a Python SDK for the Sentry
+application monitoring and error tracking software.")
+ (license license:bsd-2)))
+
(define-public python-pep8
;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
@@ -10080,6 +10403,14 @@ These should be used in preference to using a backslash for line continuation.
(sha256
(base32 "1v0y29xlmbr2q12a4nnpm1dm9aw1mjiys1x8jif4z8c90d63cqm6"))))
(build-system python-build-system)
+ (arguments
+ '(#:tests? #f ;no tests
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ ;; Permit newer versions of attrs. Remove for >0.2.
+ (substitute* "setup.py"
+ ((", <21") "")))))))
(propagated-inputs
(list python-attrs python-more-itertools))
(home-page "https://github.com/keisheiled/flake8-implicit-str-concat")
@@ -10786,6 +11117,40 @@ reading and writing MessagePack data.")
(home-page "https://pypi.org/project/msgpack/")
(license license:asl2.0)))
+;; This msgpack library's name changed from "python-msgpack" to "msgpack" with
+;; release 0.5. Some packages like borg still call it by the old name for now.
+;; <https://bugs.gnu.org/30662>
+(define-public python-msgpack-transitional
+ (package
+ (inherit python-msgpack)
+ (name "python-msgpack-transitional")
+ (version "0.5.6")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "msgpack" version))
+ (sha256
+ (base32
+ "1hz2dba1nvvn52afg34liijsm7kn65cmn06dl0xbwld6bb4cis0f"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-msgpack)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'configure-transitional
+ (lambda _
+ ;; Keep using the old name.
+ (substitute* "setup.py"
+ (("TRANSITIONAL = False")
+ "TRANSITIONAL = 1"))
+ ;; This old version is not compatible with Python 3.9
+ (substitute* '("test/test_buffer.py" "test/test_extension.py")
+ ((".tostring\\(") ".tobytes("))
+ (substitute* '("test/test_buffer.py" "test/test_extension.py")
+ ((".fromstring\\(") ".frombytes("))
+ #t))))))))
+
+(define-public python2-msgpack
+ (package-with-python2 python-msgpack))
+
(define-public python-netaddr
(package
(name "python-netaddr")
@@ -11340,6 +11705,35 @@ signature of a file or buffer.")
provides a collection of cache libraries in the same API interface.")
(license license:bsd-3)))
+(define-public python-pylru
+ (package
+ (name "python-pylru")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pylru" version))
+ (sha256
+ (base32 "15yj46307sw703vjfkgnr04dqvaicmfcj0hc6yrciildp55r6bs9"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "test.py")))))))
+ (home-page "https://github.com/jlhutch/pylru")
+ (synopsis "Least recently used (LRU) cache implementation")
+ (description
+ "Pylru implements a true LRU cache along with several support classes.
+Pylru provides a cache class with a simple dict interface. It also provides
+classes to wrap any object that has a dict interface with a cache. Both
+write-through and write-back semantics are supported. Pylru also provides
+classes to wrap functions in a similar way, including a function decorator.")
+ (license license:gpl2+)))
+
(define-public python-legacy-api-wrap
(package
(name "python-legacy-api-wrap")
@@ -11979,26 +12373,28 @@ systems, as a command line tool, and as a Python library.")
(define-public python-bleach
(package
(name "python-bleach")
- (version "3.1.5")
+ (version "4.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bleach" version))
(sha256
- (base32 "0jqa8f1ni10cyf4h7sjpf8mbqlcbkyvmsnli77qrxdcxvc7m4k1w"))))
+ (base32 "1nkibazmw1ry4cfxs9qrkkidxdf2z1hh1b20xq1ahqdsgsrxh009"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(propagated-inputs
- (list python-webencodings python-six))
+ (list python-packaging python-six python-webencodings))
(native-inputs
- (list python-datrie python-genshi python-lxml python-pytest))
+ (list python-pytest))
(home-page "https://github.com/mozilla/bleach")
(synopsis "Whitelist-based HTML-sanitizing tool")
(description "Bleach is an easy whitelist-based HTML-sanitizing tool.")
(license license:asl2.0)))
-(define-public python2-bleach
- (package-with-python2 python-bleach))
-
(define-public python-entrypoints
(package
(name "python-entrypoints")
@@ -12423,32 +12819,30 @@ Jupyter kernels such as IJulia and IRKernel.")
(define-public python-qtconsole
(package
(name "python-qtconsole")
- (version "4.4.3")
+ (version "4.7.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "qtconsole" version))
(sha256
- (base32
- "1b03n1ixzscm0jw97l4dq5iy4fslnqxq5bb8287xb7n2a1gs26xw"))))
+ (base32 "013qgpsm8jzcz3prhq7sxs36l8f7fgagmn3xa010gfhxf7cfldpj"))))
(build-system python-build-system)
(arguments
- ;; XXX: Tests are disabled, because this package needs python-ipython 7,
- ;; but we only have the LTS version 5.x. This means that there might be
- ;; runtime errors, but since this is a dependency of the Jupyter package,
- ;; and Jupyter can be used without the qtconsole we can overlook this for
- ;; now.
- `(#:tests? #f
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda _
(setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (setenv "HOME" "/tmp")
+ ;; FIXME: skip a failing test.
+ (substitute* "qtconsole/tests/test_jupyter_widget.py"
+ (("def test_other_output") "def _test_other_output")))))))
(propagated-inputs
- (list python-ipykernel python-ipython python-pyqt))
+ (list python-ipykernel python-ipython-genutils python-jupyter-client
+ python-jupyter-core python-pygments python-pyqt python-pyzmq
+ python-qtpy python-traitlets))
(native-inputs
- (list python-pytest))
+ (list python-flaky python-pytest))
(home-page "https://jupyter.org")
(synopsis "Jupyter Qt console")
(description "This package provides a Qt-based console for Jupyter with
@@ -12828,20 +13222,21 @@ the standard library.")
(define-public python-texttable
(package
(name "python-texttable")
- (version "1.6.2")
+ (version "1.6.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "texttable" version))
(sha256
(base32
- "1x5l77akfc20x52jma9573qp8l8r07q103pm4l0pbizvh4vp1wzg"))))
+ "1sbn821394rix6xgj3zqk743pj6nqm1qz81zgis2bcpp2ng7pvj2"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (invoke "pytest" "tests.py"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv" "tests.py")))))))
(native-inputs
(list python-pytest))
(home-page "https://github.com/foutaise/texttable/")
@@ -14304,13 +14699,13 @@ ISO 8859, etc.).")
(define-public python-anyqt
(package
(name "python-anyqt")
- (version "0.0.11")
+ (version "0.0.13")
(source
(origin
(method url-fetch)
(uri (pypi-uri "AnyQt" version))
(sha256
- (base32 "0gl2czirzjvhbq963i2awxp8kwbc1grh67lpcwfipyn9w3kdwdj4"))))
+ (base32 "0z7myf0mp1qx4gza6ncqyq9whk67vblmh9n3klk19dv4aakjml2f"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ;there are no tests
@@ -14320,8 +14715,7 @@ ISO 8859, etc.).")
;; Delete files related to other operating systems.
(lambda _
(delete-file "AnyQt/QtMacExtras.py")
- (delete-file "AnyQt/QtWinExtras.py")
- #t)))))
+ (delete-file "AnyQt/QtWinExtras.py"))))))
(home-page "https://github.com/ales-erjavec/anyqt")
(synopsis "PyQt4/PyQt5 compatibility layer")
(description "AnyQt is a PyQt4/PyQt5 compatibility layer.")
@@ -14382,7 +14776,7 @@ applications.")
(define-public python-qasync
(package
(name "python-qasync")
- (version "0.15.0")
+ (version "0.22.0")
(source
(origin
;; There are no tests in the PyPI tarball.
@@ -14392,7 +14786,7 @@ applications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0va9h6v102d7mxz608banjc0l0v02dq3ywhr5i4nqaxx3qkazc2l"))))
+ (base32 "1q9cllrwf94whr0f6mipa0hdq1rcyqvklwx19g35g2dav8f3xkjl"))))
(build-system python-build-system)
(arguments
`(#:test-target "pytest"
@@ -14400,8 +14794,7 @@ applications.")
(modify-phases %standard-phases
(add-before 'check 'set-qpa
(lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen")
- #t)))))
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
(native-inputs
(list python-pytest python-pytest-runner))
(propagated-inputs
@@ -15016,7 +15409,24 @@ development version of CPython that are not available in older releases.")
;; Many tests connect to the network or are otherwise flawed.
;; https://github.com/PythonCharmers/python-future/issues/210
(arguments
- `(#:tests? #f))
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'sanity-check
+ (let ((sanity-check (assoc-ref %standard-phases 'sanity-check)))
+ (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+ (let* ((files (find-files (site-packages inputs outputs)
+ "top_level\\.txt"))
+ (backups (map (lambda (f) (string-append f ".bak"))
+ files)))
+ (for-each copy-file files backups)
+ (substitute* files
+ ;; Nobody be usin' winreg on Guix
+ ;; Also, don't force users to have tkinter when they don't
+ ;; need it
+ (("(winreg|tkinter)") ""))
+ (apply sanity-check args)
+ (for-each rename-file backups files))))))))
(home-page "https://python-future.org")
(synopsis "Single-source support for Python 3 and 2")
(description
@@ -15905,10 +16315,13 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.")
(list python-cachecontrol
python-cachy
python-cleo
- python-clikit
+ python-crashtest
+ python-entrypoints
python-html5lib
python-keyring
- python-msgpack
+ ; Use of deprecated version of msgpack reported upstream:
+ ; https://github.com/python-poetry/poetry/issues/3607
+ python-msgpack-transitional
python-packaging
python-pexpect
python-pip
@@ -18234,7 +18647,7 @@ multitouch applications.")
(define-public python-isort
(package
(name "python-isort")
- (version "5.7.0")
+ (version "5.10.1")
(source
(origin
(method git-fetch)
@@ -18247,11 +18660,17 @@ multitouch applications.")
(snippet '(for-each delete-file (find-files "." "\\.whl$")))
(sha256
(base32
- "0phq4s911mjjdyr5h5siz93jnpkqb2qgphgcfk6axncgxr8i7vi1"))))
+ "09spgl2k9xrprr5gbpfc91a8p7mx7a0c64ydgc91b3jhrmnd9jg1"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'loosen-requirements
+ (lambda _
+ ;; Permit newer versions of black.
+ (substitute* "example_isort_formatting_plugin/pyproject.toml"
+ (("\\^20\\.08b1")
+ ">= 20.08b1"))))
;; A foretaste of what our future python-build-system will need to
;; do.
(replace 'build
@@ -18268,6 +18687,7 @@ multitouch applications.")
(let ((out (assoc-ref outputs "out")))
;; Patch to use the core poetry API.
(substitute* '("example_isort_formatting_plugin/pyproject.toml"
+ "example_isort_sorting_plugin/pyproject.toml"
"example_shared_isort_profile/pyproject.toml")
(("poetry>=0.12")
"poetry-core>=1.0.0")
@@ -18279,6 +18699,7 @@ multitouch applications.")
"--no-isolation" "--outdir=dist"
source-directory))
'("example_isort_formatting_plugin"
+ "example_isort_sorting_plugin"
"example_shared_isort_profile"))
;; Install them to temporary storage, for the test.
(setenv "HOME" (getcwd))
@@ -18292,18 +18713,19 @@ multitouch applications.")
(setenv "PATH" (string-append (getenv "PATH") ":" bin)))
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv" "tests/unit/"
+ "-k" "not test_gitignore" ;requires git
"--ignore=tests/unit/test_deprecated_finders.py")))))))
(native-inputs
- `(("git" ,git-minimal)
- ("python-black" ,python-black)
- ("python-colorama" ,python-colorama)
- ("python-hypothesmith" ,python-hypothesmith)
- ("python-libcst" ,python-libcst-minimal)
- ("python-poetry-core" ,python-poetry-core)
- ("python-pylama" ,python-pylama)
- ("python-pypa-build" ,python-pypa-build)
- ("python-pytest-mock" ,python-pytest-mock)
- ("python-pytest" ,python-pytest)))
+ (list python-black
+ python-colorama
+ python-hypothesmith
+ python-libcst-minimal
+ python-natsort
+ python-poetry-core
+ python-pylama
+ python-pypa-build
+ python-pytest-mock
+ python-pytest))
(home-page "https://github.com/PyCQA/isort")
(synopsis "Python utility/library to sort python imports")
(description "@code{python-isort} is a python utility/library to sort
@@ -18749,6 +19171,19 @@ multitouch applications.")
(define-public python2-packaging
(package-with-python2 python-packaging))
+;; TODO(staging): merge with python-packaging-bootstrap.
+(define-public python-packaging-next
+ (package
+ (inherit python-packaging)
+ (version "21.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "packaging" version))
+ (sha256
+ (base32
+ "1sygirdrqgv4f1ckh9nhpcw1yfidrh3qjl86wq8vk6nq4wlw8iyx"))))))
+
(define-public python-relatorio
(package
(name "python-relatorio")
@@ -19211,13 +19646,13 @@ multitouch applications.")
(define-public python-validators
(package
(name "python-validators")
- (version "0.14.2")
+ (version "0.18.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "validators" version))
(sha256
(base32
- "024m15j33szd0v8k5l4ccish6n0b4knq81gmb4fq25ynwyyyd4mi"))))
+ "19lypf7hm7p203ay3v8zmckc5rv6889zkfdm16nki1972f99mk9p"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -19310,17 +19745,6 @@ multitouch applications.")
complex datatypes to and from native Python datatypes.")
(license license:expat)))
-(define-public python-marshmallow-3.2
- (package
- (inherit python-marshmallow)
- (version "3.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "marshmallow" version))
- (sha256
- (base32 "1w18klwj0z9bqxj252qpj1hz8l46nl27sbc89rkajc7mln73wbws"))))))
-
(define-public python-marshmallow-jsonapi
(package
(name "python-marshmallow-jsonapi")
@@ -19333,7 +19757,7 @@ multitouch applications.")
(base32 "1d9pxcgmln4gls99vwj1h24qv0lz7fb2jqmqrsiv1pid1snc125x"))))
(build-system python-build-system)
(propagated-inputs
- (list python-marshmallow-3.2))
+ (list python-marshmallow))
(native-inputs
(list python-faker
python-flake8
@@ -19458,26 +19882,24 @@ multitouch applications.")
"1b28j265kvibgxrgxx0gwfm6cmv252c8ph1j2vb0cpms8ph5if5v"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ '(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-ssh
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libcloud/compute/ssh.py"
- (("'ssh'") (string-append "'" (assoc-ref inputs "openssh")
- "/bin/ssh" "'")))
- #t))
+ (("'ssh'")
+ (string-append "'" (search-input-file inputs "/bin/ssh")
+ "'")))))
(add-after 'unpack 'patch-tests
(lambda _
(substitute* "libcloud/test/compute/test_ssh_client.py"
- (("class ShellOutSSHClientTests")
+ (("^class ShellOutSSHClientTests")
"@unittest.skip(\"Guix container doesn't have ssh service\")
- class ShellOutSSHClientTests"))
- #t))
+class ShellOutSSHClientTests"))))
(add-before 'check 'copy-secret
(lambda _
(copy-file "libcloud/test/secrets.py-dist"
- "libcloud/test/secrets.py")
- #t)))))
+ "libcloud/test/secrets.py"))))))
(inputs
(list openssh))
(propagated-inputs
@@ -19797,14 +20219,13 @@ design and layout.")
(define-public python-pkginfo
(package
(name "python-pkginfo")
- (version "1.7.0")
+ (version "1.8.2")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "pkginfo" version))
- (sha256
- (base32
- "1d1xn1xmfvz0jr3pj8irdwnwby3r13g0r2gwklr1q5y68p5p16h2"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pkginfo" version))
+ (sha256
+ (base32 "1zrbn2gblb1q1rx0jlbd0vc9h1dm1bj0760p40ff5qjhcw5hsbjl"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -19813,14 +20234,13 @@ design and layout.")
(lambda _
(substitute* "pkginfo/tests/test_installed.py"
(("test_ctor_w_package_no_PKG_INFO")
- "_test_ctor_w_package_no_PKG_INFO"))
- #t)))))
- (home-page
- "https://code.launchpad.net/~tseaver/pkginfo/trunk")
- (synopsis
- "Query metadatdata from sdists, bdists, and installed packages")
+ "_test_ctor_w_package_no_PKG_INFO")))))))
+ (native-inputs
+ (list python-wheel))
+ (home-page "https://code.launchpad.net/~tseaver/pkginfo/trunk")
+ (synopsis "Query metadatdata from sdists, bdists, and installed packages")
(description
- "API to query the distutils metadata written in @file{PKG-INFO} inside a
+ "API to query the distutils metadata written in @file{PKG-INFO} inside a
source distriubtion (an sdist) or a binary distribution (e.g., created by
running bdist_egg). It can also query the EGG-INFO directory of an installed
distribution, and the *.egg-info stored in a \"development checkout\" (e.g,
@@ -19856,9 +20276,6 @@ distributions. It authenticates the user over HTTPS, allows them to pre-sign
their files and supports any packaging format (including wheels).")
(license license:asl2.0)))
-(define-public python2-twine
- (package-with-python2 python-twine))
-
(define-public python-linecache2
(package
(name "python-linecache2")
@@ -23292,34 +23709,40 @@ enumeration library in Python.")
(define-public python-zeroconf
(package
(name "python-zeroconf")
- (version "0.28.8")
+ (version "0.38.1")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "zeroconf" version))
+ (method git-fetch) ; no tests in PyPI release
+ (uri (git-reference
+ (url "https://github.com/jstasiak/python-zeroconf")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0narq8haa3b375vfblbyil77n8bw0wxqnanl91pl0wwwm884mqjb"))))
+ (base32 "1p1a0ywlg5sq0ilcphmz9h4kayscz0q1lyfk57j7mwxyx4gl9cpi"))))
(build-system python-build-system)
- (native-inputs
- (list python-nose))
- (propagated-inputs
- (list 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"))))))
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "-k"
+ (string-append
+ ;; Networking isn't available for these tests.
+ "not test_integration_with_listener_ipv6"
+ " and not test_launch_and_close_v4_v6"
+ " and not test_launch_and_close_context_manager"
+ " and not test_launch_and_close"
+ " and not test_close_multiple_times"))))))))
+ (native-inputs
+ (list python-pytest))
+ (propagated-inputs
+ (list python-ifaddr))
(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).")
+ (description "Pure Python multicast DNS (mDNS) service discovery library
+(Bonjour/Avahi compatible).")
(license license:lgpl2.1+)))
(define-public python2-zeroconf
@@ -24333,23 +24756,24 @@ files. These files are used to translate strings in android apps.")
(define-public python-watchdog
(package
(name "python-watchdog")
- (version "0.9.0")
+ (version "2.1.6")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "watchdog" version))
- (sha256
- (base32
- "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "watchdog" version))
+ (sha256
+ (base32 "1rx2nyl0cyj0v4ja795cl3gi26577c5wg48syr3byz3ndkgpavm3"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'check 'remove-failing
- (lambda _
- (delete-file "tests/test_inotify_buffer.py")
- (delete-file "tests/test_snapshot_diff.py")
- #t)))))
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "-m" "pytest" "-k"
+ ;; This test failed.
+ "not test_kill_auto_restart")))))))
(propagated-inputs
(list python-argh python-pathtools python-pyyaml))
(native-inputs
@@ -24639,14 +25063,14 @@ content models.")
(define-public python-xattr
(package
(name "python-xattr")
- (version "0.9.7")
+ (version "0.9.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xattr" version))
(sha256
(base32
- "0i4xyiqbhjz2g16zbim17zjdbjkw79xsw8k59942vvq4is1cmfxh"))))
+ "0ipkfblyvp5hylahjkw9zss1ii9xnwjypr3b3ncv989szcg7xjq9"))))
(build-system python-build-system)
(propagated-inputs
(list python-cffi))
@@ -24705,14 +25129,14 @@ logging in Python. It also provides some custom formatters and handlers.")
(define-public python-pifpaf
(package
(name "python-pifpaf")
- (version "2.5.0")
+ (version "3.1.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pifpaf" version))
(sha256
(base32
- "1gy9p4nqf70fh38wn4icyfm7i9wrvx22wnjpg71g89wxbz27igaa"))))
+ "19bdmxldc2m570isl7hbqgbb20si4sin7pi5fw8sv9py8dyv2s4n"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -24728,7 +25152,6 @@ logging in Python. It also provides some custom formatters and handlers.")
python-jinja2
python-pbr
python-psutil
- python-six
python-xattr))
(native-inputs
(list python-mock python-os-testr python-requests
@@ -25273,27 +25696,20 @@ cryptographically signed ones).")
(define-public python-dictdiffer
(package
(name "python-dictdiffer")
- (version "0.8.1")
+ (version "0.9.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "dictdiffer" version))
(sha256
(base32
- "1lk3qmy1hkaphk4n7ayfk0wl6m2yvd6r7qkam6yncqfzgkbc1phs"))))
+ "0y3mk74qm2q9hsm37892i1wzn8bbdrvbs4nmnvqwq4z6pxgwzfhp"))))
(build-system python-build-system)
+ (arguments
+ ;; XXX: The PyPI tarball lacks tests and the git repository
+ ;; fails to determine version.
+ '(#:tests? #f))
(native-inputs
- (list python-check-manifest
- python-coverage
- python-isort
- python-mock
- python-pydocstyle
- python-pytest-cache
- python-pytest-cov
- python-pytest-pep8
- python-pytest-runner
- python-pytest
- python-setuptools-scm
- python-tox))
+ (list python-pytest-runner python-setuptools-scm))
(home-page "https://github.com/inveniosoftware/dictdiffer")
(synopsis "Diff and patch Python dictionary objects")
(description
@@ -25382,34 +25798,35 @@ intended for validating data coming into Python as JSON, YAML, etc.")
(define-public python-cmd2
(package
(name "python-cmd2")
- (version "1.0.2")
+ (version "2.3.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cmd2" version))
(sha256
(base32
- "1f18plbc9yyvhn0js3d2bii9yld8zfl775gxsaw9jza5pmlg9ss2"))))
+ "0h1naik558qh48gx2iyy0a0khvw5fz0in69y84mbrhsm9nq7w3bm"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "pytest" "-vv" "-k"
+ ;; These tests fail because no EDITOR is in PATH.
+ "not test_find_editor_not_specified \
+and not test_transcript")
+ (format #t "test suite not run~%")))))))
(propagated-inputs
(list python-attrs python-colorama python-pyperclip python-wcwidth))
(native-inputs
- (list python-codecov
- python-coverage
- python-doc8
- python-flake8
- python-invoke
+ (list python-invoke
python-mock
python-pytest
python-pytest-cov
python-pytest-mock
- python-setuptools-scm
- python-sphinx
- python-sphinx-autobuild
- python-sphinx-rtd-theme
- python-tox
- python-twine
- which))
+ python-setuptools-scm))
(home-page "https://github.com/python-cmd2/cmd2")
(synopsis "Tool for building interactive command line applications")
(description
@@ -25591,17 +26008,31 @@ positioning, and keyboard input.")
(define-public python-readme-renderer
(package
(name "python-readme-renderer")
- (version "26.0")
+ (version "32.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "readme_renderer" version))
(sha256
(base32
- "13fnrv7z3y0yfafzcjbl55cqxncvbxadr72ql4l29pgyvrqxpsfb"))))
+ "11av194kgq6mvp2afpapkb6vyn3y14gingmgsp3n10krlspvw4mm"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'loosen-cmarkgfm-dependency
+ (lambda _
+ ;; Permit newer versions of cmarkgfm.
+ (substitute* "setup.py"
+ (("cmarkgfm>=0\\.5\\.0,<0\\.7\\.0")
+ "cmarkgfm>=0.5.0"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests? (invoke "pytest" "-vv")))))))
(propagated-inputs
- (list python-bleach python-docutils python-pygments python-six))
+ (list python-bleach python-docutils python-pygments
+
+ ;; Optional dependencies.
+ python-cmarkgfm)) ;required by postorius
(native-inputs
(list python-mock python-pytest))
(home-page "https://github.com/pypa/readme_renderer")
@@ -27584,13 +28015,13 @@ compatible with a wide range of versions of the Stripe API.")
(define-public python-platformdirs
(package
(name "python-platformdirs")
- (version "2.4.0")
+ (version "2.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "platformdirs" version))
(sha256
- (base32 "1whycrymqpsl7nsaknmcybzyh4fg4kqk6vd7zwl28kfhnf05wyin"))))
+ (base32 "1njz0h4iky8iglrb85cd07hpa3lp1a2dfr934dj65hxwzvfk61j4"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -27986,3 +28417,174 @@ keyboard-friendly package.")
"This package auto-generates API documentation from Python projects
already existing modules and objects docstrings.")
(license license:agpl3+)))
+
+(define-public python-piexif
+ (package
+ (name "python-piexif")
+ (version "1.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "piexif" version ".zip"))
+ (sha256
+ (base32 "06sz58q4mrw472p8fbnq7wsj8zpi5js5r8phm2hiwfmz0v33bjw3"))
+ (patches
+ (search-patches "python-piexif-fix-tests-with-pillow-7.2.patch"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list unzip python-pillow))
+ (home-page "https://github.com/hMatoba/Piexif")
+ (synopsis "Simplify exif manipulations with Python")
+ (description "Piexif simplifies interacting with EXIF data in
+Python. It includes the tools necessary for extracting, creating,
+manipulating, converting and writing EXIF data to JPEG, WebP and TIFF files.")
+ (license license:expat)))
+
+(define-public python-pyrss2gen
+ (package
+ (name "python-pyrss2gen")
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyRSS2Gen" version))
+ (sha256
+ (base32 "1rvf5jw9hknqz02rp1vg8abgb1lpa0bc65l7ylmlillqx7bswq3r"))))
+ (build-system python-build-system)
+ (home-page "http://dalkescientific.com/Python/PyRSS2Gen.html")
+ (synopsis "Generate RSS 2.0 feeds using a Python data structure")
+ (description "PyRSS2Gen is the interface to generate RSS 2.0 feeds.
+PyRSS2Gen builds the feed up by using a XML generator.")
+ (license license:bsd-3)))
+
+(define-public python-yapsy
+ (package
+ (name "python-yapsy")
+ (version "1.12.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Yapsy" version))
+ (sha256
+ (base32 "12rznbnswfw0w7qfbvmmffr9r317gl1rqg36nijwzsklkjgks4fq"))))
+ (build-system python-build-system)
+ (home-page "http://yapsy.sourceforge.net")
+ (synopsis "Simple plugin system for Python applications")
+ (description "Yapsy, or Yet Another Plugin SYstem, is a small library
+implementing the core mechanisms needed to build a plugin system into a wider
+application.
+
+The main purpose is to depend only on Python's standard libraries and to
+implement only the basic functionalities needed to detect, load and keep track
+of several plugins.")
+ (license license:bsd-3)))
+
+(define-public python-doit
+ (package
+ (name "python-doit")
+ (version "0.34.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "doit" version))
+ (sha256
+ (base32 "0bf0m9n0hyjvjpv051zd26725j8jr23gyvc37v3kkadwbh8dxwcf"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-cloudpickle python-pyinotify))
+ (native-inputs
+ (list python-pytest))
+ (home-page "https://pydoit.org")
+ (synopsis "Automation tool to execute any kind of task in a build-tools
+fashion")
+ (description "doit is an automation tool that brings the power of
+build-tools to execute any kind of task.
+
+A task describes some computation to be done (actions), and contains some
+extra meta-data. The actions can be external programs or Python functions. A
+single task may define more than one action.doit uses the task’s meta-data
+to:
+
+@itemize
+@item cache task results
+@item correct execution order
+@item parallel execution
+@item powerful dependency system
+@end itemize")
+ (license license:expat)))
+
+(define-public python-phpserialize
+ (package
+ (name "python-phpserialize")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "phpserialize" version))
+ (sha256
+ (base32 "19qgkb9z4zjbjxlpwh2w6pxkz2j3iymnydi69jl0jg905lqjsrxz"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; tests missing in pypi archive, anhow they are quite simple and not worth any hassle
+ #:tests? #f))
+ (home-page "http://github.com/mitsuhiko/phpserialize")
+ (synopsis "Python port of the serialize and unserialize functions of PHP")
+ (description
+ "This package provides a port of the serialize and unserialize functions of PHP for Python")
+ (license license:bsd-3)))
+
+(define-public nikola
+ (package
+ (name "nikola")
+ (version "8.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Nikola" version))
+ (sha256
+ (base32 "1vspzvi4039zgjc93bspqjb384r6c9ksvmidbp8csws2pdbc7sh5"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-babel
+ python-blinker
+ python-dateutil
+ python-docutils
+ python-doit
+ python-jinja2 ;; for themes
+ python-lxml
+ python-mako
+ python-markdown
+ python-natsort
+ python-notebook ;; for ipynb
+ python-phpserialize ;; for wordpress import
+ python-piexif
+ python-pillow
+ python-pygments
+ python-pyrss2gen
+ python-requests
+ python-ruamel.yaml ;; for YAML metadata
+ python-unidecode
+ python-yapsy))
+ (native-inputs
+ (list python-coverage
+ python-flake8
+ python-freezegun
+ python-pytest
+ python-pytest-cov))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;;(add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "tests" "--no-cov"
+ "-k" "not test_compiling_markdown[hilite]")))))))
+ (home-page "https://getnikola.com/")
+ (synopsis "Modular, fast and simple static website and blog generator")
+ (description "Nikola generates static websites and blogs. Out of the box,
+it supports reStructuredText, Markdown, IPython (Jupyter) Notebooks and HTML,
+and has plugins for many other formats.")
+ (license license:expat)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 01bf961bbf..5cf41f55b6 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018, 2020, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -1512,7 +1512,7 @@ message.")))
(define-public qtspell
(package
(name "qtspell")
- (version "0.9.0")
+ (version "1.0.1")
(source
(origin
(method git-fetch)
@@ -1521,7 +1521,7 @@ message.")))
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1081makirjxixz44ghwz362vgnk5wcks6ni6w01pl667x8wggsd2"))))
+ (base32 "19ff6jzm699wrxrk57w3d4kl9qxgdipdikpwls9n4aqv4mw7g969"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no test
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 7dd60dd35b..556ff04940 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -685,6 +686,51 @@ your current directory for a regex pattern while respecting your
gitignore rules.")
(license (list license:unlicense license:expat))))
+(define-public git-interactive-rebase-tool
+ (package
+ (name "git-interactive-rebase-tool")
+ (version "2.1.0")
+ (source
+ (origin
+ ;; crates.io does not provide the test data.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mitmaro/git-interactive-rebase-tool")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "173spqqpyc00kvfmldjmjfqizh9b4spq4xw4bskd4dny8qcpz28d"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-test-flags
+ ;; https://github.com/MitMaro/git-interactive-rebase-tool/issues/586
+ '("--release" "--" "--skip=tests::success")
+ #:cargo-inputs
+ (("rust-anyhow" ,rust-anyhow-1)
+ ("rust-chrono" ,rust-chrono-0.4)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-crossterm" ,rust-crossterm-0.19)
+ ("rust-git2" ,rust-git2-0.13)
+ ("rust-num-format" ,rust-num-format-0.4)
+ ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-xi-unicode" ,rust-xi-unicode-0.3))
+ #:cargo-development-inputs
+ (("rust-concat-idents" ,rust-concat-idents-1)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-rstest" ,rust-rstest-0.6)
+ ("rust-serial-test" ,rust-serial-test-0.5)
+ ("rust-tempfile" ,rust-tempfile-3))))
+ (inputs
+ (list zlib))
+ (home-page "https://gitrebasetool.mitmaro.ca/")
+ (synopsis "Terminal based sequence editor for git interactive rebase")
+ (description
+ "This application is a terminal-based sequence editor for git interactive
+rebase.")
+ (license license:gpl3+)))
+
(define-public rust-cbindgen
(package
(name "rust-cbindgen")
@@ -1328,6 +1374,31 @@ library and a dynamic library, and a C header to be used by any C (and
C-compatible) software.")
(license license:expat)))
+(define-public swayhide
+ (package
+ (name "swayhide")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "swayhide" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0x172ffj0lfmbv5nix708l1mfsizxzy74gpxp5amvx0bbaq0p78s"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-exitcode" ,rust-exitcode-1)
+ ("rust-swayipc" ,rust-swayipc-2))))
+ (home-page "https://github.com/NomisIV/swayhide/")
+ (synopsis "Swallow windows on swaywm")
+ (description "swayhide hides the currently active terminal (by moving it
+to the scratchpad), then it executes the supplied command. When the child
+process has finished, the terminal is moved back. This is useful if your
+workflow includes opening graphical programs from the terminal, as the locked
+terminal won't have to take up any space.")
+ (license license:gpl3+)))
+
(define-public tealdeer
(package
(name "tealdeer")
@@ -1437,6 +1508,7 @@ Full featured offline client with caching support.")
(substitute* "Cargo.toml"
(("2.5") "2")
(("~2.3\"") "2\"")
+ (("~2.33\"") "2\"") ; clap
(("3.1") "3"))))
(add-after 'install 'install-manual-page
(lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 6a3e2d9179..79afdcee47 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -569,7 +569,7 @@ your existing infrastructure.")
(define-public python-fido2
(package
(name "python-fido2")
- (version "0.5.0")
+ (version "0.9.3")
(source (origin
(method url-fetch)
(uri
@@ -578,13 +578,17 @@ your existing infrastructure.")
version "/fido2-" version ".tar.gz"))
(sha256
(base32
- "1pl8d2pr6jzqj4y9qiaddhjgnl92kikjxy0bgzm2jshkzzic8mp3"))
+ "1v366h449f8q74jkmy1291ffj2345nm7cdsipgqvgz4w22k8jpml"))
(snippet
;; Remove bundled dependency.
- #~(delete-file "fido2/public_suffix_list.dat"))))
+ '(delete-file "fido2/public_suffix_list.dat"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ `(;; This attempts to access
+ ;; /System/Library/Frameworks/IOKit.framework/IOKit
+ ;; The recommendation is to use tox for testing.
+ #:tests? #false
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'install-public-suffix-list
(lambda* (#:key inputs #:allow-other-keys)
@@ -594,8 +598,7 @@ your existing infrastructure.")
"/share/public-suffix-list-"
,(package-version public-suffix-list)
"/public_suffix_list.dat"))
- "fido2/public_suffix_list.dat")
- #t)))))
+ "fido2/public_suffix_list.dat"))))))
(propagated-inputs
(list python-cryptography python-six))
(native-inputs
@@ -621,7 +624,7 @@ implementing a Relying Party.")
(define-public python-yubikey-manager
(package
(name "python-yubikey-manager")
- (version "2.1.0")
+ (version "4.0.7")
(source (origin
(method url-fetch)
(uri (string-append
@@ -629,25 +632,13 @@ implementing a Relying Party.")
"/yubikey-manager-" version ".tar.gz"))
(sha256
(base32
- "11rsmcaj60k3y5m5gdhr2nbbz0w5dm3m04klyxz0fh5hnpcmr7fm"))))
+ "0kzwal7i4kyywm4f5zh8b823mh0ih2nsh5c0c4dfn4vw3j5dnwlr"))))
(build-system python-build-system)
(arguments
- '(#:modules ((srfi srfi-1)
- (guix build utils)
- (guix build python-build-system))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-libykpers-reference
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "ykman/driver_otp.py"
- (("Ykpers\\('ykpers-1', '1'\\)")
- (string-append
- "Ykpers('"
- (find (negate symbolic-link?)
- (find-files (assoc-ref inputs "yubikey-personalization")
- "^libykpers-.*\\.so\\..*"))
- "')")))
- #t)))))
+ '(;; This attempts to access
+ ;; /System/Library/Frameworks/IOKit.framework/IOKit
+ ;; The recommendation is to use tox for testing.
+ #:tests? #false))
(propagated-inputs
(list python-six
python-pyscard
@@ -657,7 +648,7 @@ implementing a Relying Party.")
python-pyopenssl
python-fido2))
(inputs
- (list yubikey-personalization pcsc-lite libusb))
+ (list pcsc-lite))
(native-inputs
(list swig python-mock))
(home-page "https://developers.yubico.com/yubikey-manager/")
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 0e27b1e5d5..2c3979ca18 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -72,6 +72,7 @@
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils))
@@ -827,36 +828,35 @@ Shell (pdksh).")
(define-public oil
(package
(name "oil")
- (version "0.9.5")
+ (version "0.9.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.gz"))
(sha256
- (base32 "0q29k500is2iif77dkpr7zncjg6ghzmmxs7c9pr2hjz8vvykv58x"))))
+ (base32 "01lmj4diqpla1gwwb1gh1shf4y74qhanpkzcsnb28458rxm1sq32"))))
(build-system gnu-build-system)
(arguments
- `(#:strip-binaries? #f ; strip breaks the binary
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (setenv "CC" ,(cc-for-target))
- (substitute* "configure"
- ((" cc ") " $CC "))
- (invoke "./configure" (string-append "--prefix=" out)
- "--with-readline"))))
- (replace 'check
- ;; The tests are not distributed in the tarballs but upstream
- ;; recommends running this smoke test.
- ;; https://github.com/oilshell/oil/blob/release/0.8.0/INSTALL.txt#L38-L48
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (let* ((oil "_bin/oil.ovm"))
- (invoke/quiet oil "osh" "-c" "echo hi")
- (invoke/quiet oil "osh" "-n" "configure"))))))))
+ (list #:strip-binaries? #f ; strip breaks the binary
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (setenv "CC" #$(cc-for-target))
+ (substitute* "configure"
+ ((" cc ") " $CC "))
+ (invoke "./configure" (string-append "--prefix=" #$output)
+ "--with-readline")))
+ (replace 'check
+ ;; The tests are not distributed in the tarballs but upstream
+ ;; recommends running this smoke test.
+ ;; https://github.com/oilshell/oil/blob/release/0.8.0/INSTALL.txt#L38-L48
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (let* ((oil "_bin/oil.ovm"))
+ (invoke/quiet oil "osh" "-c" "echo hi")
+ (invoke/quiet oil "osh" "-n" "configure"))))))))
(inputs
(list readline))
(home-page "https://www.oilshell.org")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 7a868f0789..2fe70ffee5 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -543,6 +543,35 @@ site/BBS/person you are giving the information to tries to cross-check the
city, state, zip, or area code, it will check out.")
(license license:gpl2+)))
+(define-public conflict
+ (package
+ (name "conflict")
+ (version "20210108")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://invisible-mirror.net/archives/conflict/conflict-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "0mls4climvp7v9hnc3zh01mh270kqcj797ng0xslwb027lipis4h"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda _
+ (substitute* "run_test.sh"
+ (("PATH=\".:\\$BIN:/bin\"")
+ "PATH=\".:$BIN:$PATH\"")))))))
+ (home-page "https://invisible-island.net/conflict/conflict.html")
+ (synopsis "Displays conflicting filenames in your execution path")
+ (description
+ "@code{conflict} examines the user-specifiable list of programs, looking
+for instances in the user's path which conflict (i.e., the name appears in
+more than one point in the path).")
+ (license (license:x11-style "file://COPYING"))))
+
(define-public renameutils
(package
(name "renameutils")
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index e0927ca97c..f6ca6099de 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -235,7 +235,7 @@ efficiency through the use of a compact vector representation of n-grams.")
(define-public speech-dispatcher
(package
(name "speech-dispatcher")
- (version "0.10.2")
+ (version "0.11.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/brailcom/speechd/releases"
@@ -243,7 +243,7 @@ efficiency through the use of a compact vector representation of n-grams.")
version ".tar.gz"))
(sha256
(base32
- "1p72x9vsqvmhz1ym2bcpiqscn063rxdsylv65735cpp107r1jqxh"))))
+ "1inxqabbml2vhp0lvx4khhda4g1dp8wyr8mnk4vz315c7pni5nni"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static"
@@ -252,17 +252,15 @@ efficiency through the use of a compact vector representation of n-grams.")
"--with-voxin=no" "--with-ibmtts=no"
"--with-kali=no" "--with-baratinoo=no")))
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)
- ("texinfo" ,texinfo)))
+ (list gettext-minimal pkg-config texinfo))
(inputs
- `(("dotconf" ,dotconf)
- ("espeak" ,espeak-ng)
- ("glib" ,glib)
- ("libltdl" ,libltdl)
- ("libsndfile" ,libsndfile)
- ("pulseaudio" ,pulseaudio)
- ("python" ,python)))
+ (list dotconf
+ espeak-ng
+ glib
+ libltdl
+ libsndfile
+ pulseaudio
+ python))
(synopsis "Common interface to speech synthesizers")
(description "The Speech Dispatcher project provides a high-level
device independent layer for access to speech synthesis through a simple,
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index 4597a22ba0..c6c4b572bf 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -156,6 +156,32 @@ sources.")
python2-six
python2-sphinxcontrib-websupport)))))
+(define-public python-sphinxcontrib-apidoc
+ (package
+ (name "python-sphinxcontrib-apidoc")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sphinxcontrib-apidoc" version))
+ (sha256
+ (base32
+ "1f9zfzggs8a596jw51fpfmr149n05mrlyy859iydazbvry9gb6vj"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;requires python-pytest<4.0
+ (native-inputs
+ (list python-pbr
+ python-pre-commit
+ python-pytest
+ python-sphinx
+ python-testrepository))
+ (home-page "https://github.com/sphinx-contrib/apidoc")
+ (synopsis "Sphinx extension for running @code{sphinx-apidoc}")
+ (description "This package provides Sphinx extension for running
+@code{sphinx-apidoc} on each build.")
+ (license license:bsd-2)))
+
(define-public python-sphinxcontrib-applehelp
(package
(name "python-sphinxcontrib-applehelp")
@@ -176,6 +202,32 @@ sources.")
Apple help books.")
(license license:bsd-2)))
+(define-public python-sphinx-click
+ (package
+ (name "python-sphinx-click")
+ (version "3.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sphinx-click" version))
+ (sha256
+ (base32
+ "118ppsymp1p2gn8v7mifika817qx6v07mja7kxizq9cg7dpw894v"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;requires python-coverage<5.0
+ (native-inputs
+ (list python-click
+ python-coverage
+ python-docutils
+ python-pbr
+ python-sphinx))
+ (home-page "https://github.com/click-contrib/sphinx-click")
+ (synopsis "Sphinx extension that documents click applications")
+ (description "This package provide sphinx extension that automatically
+documents click applications.")
+ (license license:expat)))
+
(define-public python-sphinx-copybutton
(package
(name "python-sphinx-copybutton")
@@ -462,13 +514,13 @@ integrate Sphinx documents in web templates and to handle searches.")
(define-public python-sphinx-gallery
(package
(name "python-sphinx-gallery")
- (version "0.9.0")
+ (version "0.10.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sphinx-gallery" version))
(sha256
- (base32 "14zyhr7m92nafhhnzfvnbgkf5m91krd9mjyi24zn59bjq6zyr8hl"))))
+ (base32 "1r07sa34511fbnwi2s32q00qdyv5d23d05imyfgnh2ivhfq34gwm"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -838,14 +890,14 @@ documenting acceptable argument types and return value types of functions.")
(define-public python-nbsphinx
(package
(name "python-nbsphinx")
- (version "0.7.1")
+ (version "0.8.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbsphinx" version))
(sha256
(base32
- "0j56bxdj08vn3q1804qwb1ywhga1mdg1awgm7i64wfpfwi8df2zm"))))
+ "1v1lzkfx2lslhslqb110zxmm4dmdg6hs2rahf713c2rk9f10q2dm"))))
(build-system python-build-system)
(propagated-inputs
(list python-docutils
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index ae64e99948..4dd8bb6d96 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012-2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
@@ -294,6 +294,8 @@ TCP-forwarding. It provides a flow control service for these channels.
Additionally, various channel-specific options can be negotiated.")
(license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))
+ (properties
+ '((release-monitoring-url . "https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/")))
(home-page "https://www.openssh.com/")))
;; OpenSSH without X support. This allows to use OpenSSH without dragging X
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 7fb879a7ad..cfeb17e533 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -36,6 +36,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages linux)
@@ -424,6 +425,40 @@ drawing.")
@end itemize")
(license license:expat)))
+(define-public lukesmithxyz-st
+ (let ((commit "e053bd6036331cc7d14f155614aebc20f5371d3a")
+ (revision "0"))
+ (package
+ (inherit st)
+ (name "lukesmithxyz-st")
+ (version "0.8.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LukeSmithxyz/st")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12avzzapkkj4mvd00zh8b6gynk6jysh84jcwlkliyyd82lvyw22v"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments st)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'remove-calls-to-git
+ (lambda _
+ (substitute* "Makefile"
+ (("git submodule init") "")
+ (("git submodule update") ""))))))))
+ (inputs (modify-inputs (package-inputs st)
+ (prepend libxext harfbuzz)))
+ (home-page "https://github.com/LukeSmithxyz/st")
+ (synopsis "Luke Smith's fork of st")
+ (description
+ "This package is Luke's fork of the suckless simple terminal (st) with
+Vim bindings and Xresource compatibility.")
+ (license license:expat))))
+
(define-public surf
(package
(name "surf")
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 77947a57c8..c19cc97862 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -46,7 +46,7 @@
(define-public syncthing
(package
(name "syncthing")
- (version "1.18.5")
+ (version "1.18.6")
; XXX After the go-build-system can use "Go modules", stop using bundled
; dependencies for Syncthing.
(source (origin
@@ -56,7 +56,7 @@
"/syncthing-source-v" version ".tar.gz"))
(sha256
(base32
- "07yzhc8ilwv9r9cpqdzd1i1mcgi4875xbz9k4dfm5rkazvav8kf6"))))
+ "0hlyk2nvsnf4am1vqc4zl91acf2rhpr1gy4gppk2aa5x85h9qisc"))))
(build-system go-build-system)
;; The primary Syncthing executable goes to "out", while the auxiliary
;; server programs and utility tools go to "utils". This reduces the size
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index ae1f9bdb02..c3c5c243eb 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
@@ -217,14 +217,14 @@ cards.")
(define-public newsboat
(package
(name "newsboat")
- (version "2.25")
+ (version "2.26")
(source
(origin
(method url-fetch)
(uri (string-append "https://newsboat.org/releases/" version
"/newsboat-" version ".tar.xz"))
(sha256
- (base32 "0zh1lqgsfhz8cmn6ajvcrfbn9iq2ls3adi2g17syzj8xiwvspaj1"))))
+ (base32 "061w86jffyi49m4d9n974a3pd1svbw3azmh0qx8h2v7h0178791l"))))
(build-system cargo-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@@ -249,12 +249,13 @@ cards.")
(("rust-backtrace" ,rust-backtrace-0.3)
("rust-bitflags" ,rust-bitflags-1)
("rust-chrono" ,rust-chrono-0.4)
- ("rust-clap" ,rust-clap-2)
("rust-curl-sys" ,rust-curl-sys-0.4)
("rust-cxx" ,rust-cxx-1)
("rust-fastrand" ,rust-fastrand-1)
("rust-gettext-rs" ,rust-gettext-rs-0.7)
+ ("rust-lexopt" ,rust-lexopt-0.2)
("rust-libc" ,rust-libc-0.2)
+ ("rust-md5" ,rust-md5-0.7)
("rust-natord" ,rust-natord-1)
("rust-nom" ,rust-nom-7)
("rust-once-cell" ,rust-once-cell-1)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index cf4821fe55..b4b2585935 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -742,7 +742,7 @@ your calls and messages.")
(define-public pjproject
(package
(name "pjproject")
- (version "2.11")
+ (version "2.11.1")
(source
(origin
(method git-fetch)
@@ -752,7 +752,7 @@ your calls and messages.")
(file-name (git-file-name name version))
(sha256
(base32
- "1kn9g1x1vmh4130ghph8mldz5m89gsjs4vpdzlzm98m3808gk5an"))
+ "04s4bgr2d22ym2ajjk6q507hyqss1p59yp8avyyyf5f8032nbaws"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -761,12 +761,12 @@ your calls and messages.")
(substitute* "aconfigure.ac"
(("third_party/build/os-auto.mak") ""))
(substitute* "Makefile"
- (("third_party/build") ""))))))
+ (("third_party/build") ""))))
+ (patches (search-patches "pjproject-install-libpjsua2.patch"))))
(build-system gnu-build-system)
(outputs '("out" "debug" "static"))
(arguments
- `(#:tests? #t
- #:test-target "selftest"
+ `(#:test-target "selftest"
#:configure-flags
(list "--enable-shared"
"--with-external-speex"
@@ -795,11 +795,6 @@ your calls and messages.")
"/lib"))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'make-source-files-writable
- ;; Make all the files writable to prevent the following error:
- ;; "autom4te: cannot open aconfigure: Permission denied".
- (lambda _
- (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
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index a4fe97776d..e9e84d2e1f 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -557,7 +557,7 @@ to all types of devices that provide serial consoles.")
(define-public beep
(package
(name "beep")
- (version "1.4.9")
+ (version "1.4.10")
(source
(origin
(method git-fetch)
@@ -570,16 +570,24 @@ to all types of devices that provide serial consoles.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0jmvqk6g5n0wzj9znw42njxq3mzw1769f4db99b83927hf4aidi4"))))
+ (base32 "05c2gxfqc12rgp88c65q7f5ha9gzh222vdh0qpdq1zmyhqj43pq1"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no tests
- #:make-flags
+ `(#:make-flags
(list (string-append "prefix=" (assoc-ref %outputs "out"))
(string-append "pkgdocdir=$(docdir)/" ,name "-" ,version))
#:phases
(modify-phases %standard-phases
- (delete 'configure)))) ; no configure script
+ (delete 'configure) ; no configure script
+ (add-before 'check 'patch-tests
+ (lambda _
+ (substitute* "GNUmakefile"
+ (("/bin/bash")
+ (which "bash")))
+ (substitute* (find-files "tests" "\\.expected")
+ ;; The build environment lacks /dev/{console,tty*}.
+ ((": Permission denied")
+ ": No such file or directory")))))))
(synopsis "Linux command-line utility to control the PC speaker")
(description "beep allows the user to control the PC speaker with precision,
allowing different sounds to indicate different events. While it can be run
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 13fb92d14a..fc1dac9df9 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -156,6 +157,17 @@ is on expressing the content semantically, avoiding physical markup commands.")
`(,@(substitute-keyword-arguments (package-arguments texinfo)
((#:phases phases)
`(modify-phases ,phases
+ ;; Make sure 'info-reader' can read compressed info files
+ ;; in a pure environment. There are also a few other
+ ;; uncompressors listed in this file (lzip, unxz, bunzip2, ...)
+ ;; but let's not include them because info manuals in Guix
+ ;; are always compressed with 'gzip'.
+ ;; TODO(core-updates): maybe move to the 'texinfo' package.
+ (add-after 'unpack 'absolute-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "info/filesys.c"
+ (("gunzip") (search-input-file inputs "/bin/gunzip"))
+ (("gzip") (search-input-file inputs "/bin/gzip")))))
(add-after 'install 'keep-only-info-reader
(lambda* (#:key outputs #:allow-other-keys)
;; Remove everything but 'bin/info' and associated
@@ -179,7 +191,9 @@ is on expressing the content semantically, avoiding physical markup commands.")
"perl")
#:modules ((ice-9 ftw) (srfi srfi-1)
,@%gnu-build-system-modules)))
- (synopsis "Standalone Info documentation reader")))
+ (synopsis "Standalone Info documentation reader")
+ (inputs (modify-inputs (package-inputs texinfo)
+ (prepend gzip)))))
(define-public texi2html
(package
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 97de5485ef..83a401f328 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -19,6 +19,7 @@
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -157,7 +158,30 @@ saving time. Almost all of the Olson timezones are supported.")
(build-system python-build-system)
;; XXX: The PyPI distribution lacks tests, and the upstream repository
;; lacks a setup.py!
- (arguments '(#:tests? #f))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Add setup.py to fix the build. Otherwise, the build will fail with
+ ;; "no setup.py found".
+ ;;
+ ;; Upstream uses Poetry to build python-pendulum, including parts
+ ;; written in C. Here, we simply add a setup.py file and do not build
+ ;; the parts written in C. This is possible because python-pendulum
+ ;; falls back on pure Python code when the C parts are not available
+ ;; (reference: build.py).
+ (add-after 'unpack 'add-setup.py
+ (lambda _
+ (call-with-output-file "setup.py"
+ (lambda (port)
+ (format port
+ "from setuptools import find_packages, setup
+setup(name='pendulum',
+ version='~a',
+ packages=find_packages())
+"
+ ,version))))))
+ ;; XXX: The PyPI distribution lacks tests.
+ #:tests? #f))
(propagated-inputs
(list python-dateutil python-pytzdata))
(home-page "https://github.com/sdispater/pendulum")
@@ -514,6 +538,39 @@ modifies the @code{time}, @code{gettimeofday} and @code{clock_gettime} system
calls.")
(license gpl2)))
+(define-public tz
+ (package
+ (name "tz")
+ (version "0.6.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/oz/tz")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nbl13xd95np89sbx8fn0jqrh1iy17hsy70kq31hmcvyns8dljhg"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:go ,go-1.17
+ #:import-path "github.com/oz/tz"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key import-path tests? #:allow-other-keys)
+ (when tests?
+ (invoke "go" "test" "-cover" import-path)))))))
+ (inputs
+ `(("github.com/charmbracelet/bubbletea" ,go-github-com-charmbracelet-bubbletea)
+ ("github.com/muesli/termenv" ,go-github-com-muesli-termenv)))
+ (home-page "https://github.com/oz/tz")
+ (synopsis "TUI time zone helper")
+ (description
+"@command{tz} helps you schedule things across time zones. It is an interactive
+TUI program that displays time across a few time zones of your choosing.")
+ (license gpl3+)))
+
(define-public countdown
(package
(name "countdown")
diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm
index af8f2f0ab3..7cbcc8e518 100644
--- a/gnu/packages/tryton.scm
+++ b/gnu/packages/tryton.scm
@@ -366,7 +366,7 @@ Tryton.")
deposit accounting.
A deposit is an amount paid by the customer prior to the company providing it
-with services or goods. A wizard on invoice allows to recall prior deposit of
+with services or goods. A wizard on invoice allows recalling a prior deposit of
the party.")
(license license:gpl3+)))
@@ -488,7 +488,7 @@ accounts for Tryton:
@item Plan Contable para PYMES 2008
@end itemize
-A wizard allows to generate the following AEAT files:
+A wizard allows generating the following AEAT files:
@itemize
@item Modelo 111
@@ -656,8 +656,8 @@ original quantity, once with the inverted quantity.")
(home-page
"https://docs.tryton.org/projects/modules-account-invoice-defer")
(synopsis "Tryton module to defer expense and revenue")
- (description "The @emph{Account Invoice Defer} Tryton module allows to
-defer the expense or the revenue of an invoice line over many periods.")
+ (description "The @emph{Account Invoice Defer} Tryton module allows
+deferring the expense or the revenue of an invoice line over many periods.")
(license license:gpl3+)))
(define-public trytond-account-invoice-history
@@ -701,7 +701,7 @@ the historization of the invoice and its related fields.")
"https://docs.tryton.org/projects/modules-account-invoice-line-standalone")
(synopsis "Tryton module to have standalone invoice lines")
(description "The @emph{Account Invoice Line Standalone} Tryton module
-allows to create invoice line not linked to an invoice.")
+allows creating an invoice line not linked to an invoice.")
(license license:gpl3+)))
(define-public trytond-account-invoice-secondary-unit
@@ -823,8 +823,8 @@ methods.")
(home-page
"https://docs.tryton.org/projects/modules-account-payment-clearing")
(synopsis "Tryton module for payment clearing")
- (description "The @emph{Account Payment Clearing} Tryton module allows to
-generate account move when a payment is succeeded between the
+ (description "The @emph{Account Payment Clearing} Tryton module allows
+generating an account move when a payment succeeded between the
receivable/payable account to a clearing account defined on the payment
journal.")
(license license:gpl3+)))
@@ -851,8 +851,8 @@ journal.")
trytond-party))
(home-page "https://docs.tryton.org/projects/modules-account-payment-sepa")
(synopsis "Tryton module for SEPA payment")
- (description "The @emph{Account Payment SEPA} Tryton module allows to
-generate SEPA files for a Payment Group.")
+ (description "The @emph{Account Payment SEPA} Tryton module allows
+generating SEPA files for a Payment Group.")
(license license:gpl3+)))
(define-public trytond-account-payment-sepa-cfonb
@@ -955,7 +955,7 @@ and category.")
trytond-party))
(home-page "https://docs.tryton.org/projects/modules-account-statement")
(synopsis "Tryton module with account statements")
- (description "The @emph{Account Statement} Tryton module allows to book
+ (description "The @emph{Account Statement} Tryton module allows booking
statements. Statement can be used for bank statement, cash daybook etc.")
(license license:gpl3+)))
@@ -1141,8 +1141,8 @@ continental accounting model for stock valuation.")
(home-page
"https://docs.tryton.org/projects/modules-account-stock-landed-cost")
(synopsis "Tryton module for landed cost")
- (description "The @emph{Account Stock Landed Cost} Tryton module allows to
-allocate landed cost on Supplier Shipments after their reception.")
+ (description "The @emph{Account Stock Landed Cost} Tryton module allows
+allocating landed cost on Supplier Shipments after their reception.")
(license license:gpl3+)))
(define-public trytond-account-stock-landed-cost-weight
@@ -1186,7 +1186,7 @@ from the Product Measurements")
(list trytond trytond-account trytond-account-invoice trytond-party))
(home-page "https://docs.tryton.org/projects/modules-account-tax-cash")
(synopsis "Tryton module to support tax report on cash basis")
- (description "The @emph{Account Tax Cash} Tryton module allows to make tax
+ (description "The @emph{Account Tax Cash} Tryton module allows making a tax
report on cash basis.")
(license license:gpl3+)))
@@ -1264,8 +1264,8 @@ required to analyse accounting using multiple different axes.")
(list trytond trytond-account-invoice trytond-analytic-account))
(home-page "https://docs.tryton.org/projects/modules-analytic-invoice")
(synopsis "Tryton module to add analytic accounting on invoice")
- (description "The @emph{Analytic Invoice} Tryton module allows to set
-analytic accounts on invoice line.")
+ (description "The @emph{Analytic Invoice} Tryton module allows setting
+analytic accounts on an invoice line.")
(license license:gpl3+)))
(define-public trytond-analytic-purchase
@@ -1286,8 +1286,8 @@ analytic accounts on invoice line.")
trytond-purchase))
(home-page "https://docs.tryton.org/projects/modules-analytic-purchase")
(synopsis "Tryton module to add analytic accounting on purchase")
- (description "The @emph{Analytic Purchase} Tryton module allows to set
-analytic accounts on purchase line.")
+ (description "The @emph{Analytic Purchase} Tryton module allows setting
+analytic accounts on a purchase line.")
(license license:gpl3+)))
(define-public trytond-analytic-sale
@@ -1308,8 +1308,8 @@ analytic accounts on purchase line.")
trytond-sale))
(home-page "https://docs.tryton.org/projects/modules-analytic-sale")
(synopsis "Tryton module to add analytic accounting on sale")
- (description "The @emph{Analytic Sale} Tryton module allows to set
-analytic accounts on sale line.")
+ (description "The @emph{Analytic Sale} Tryton module allows setting
+analytic accounts on a sale line.")
(license license:gpl3+)))
(define-public trytond-attendance
@@ -1515,8 +1515,8 @@ the weight is greater or equal but smaller than the next line.")
trytond-product))
(home-page "https://docs.tryton.org/projects/modules-commission")
(synopsis "Tryton module for commission")
- (description "The @emph{Commission} Tryton module allows to manageq
-commission for sale's agents. A commission move is created when posting the
+ (description "The @emph{Commission} Tryton module allows manageing a
+commission for sales agents. A commission move is created when posting the
invoice, following the agent's commission plan.")
(license license:gpl3+)))
@@ -1538,8 +1538,8 @@ invoice, following the agent's commission plan.")
trytond-commission))
(home-page "https://docs.tryton.org/projects/modules-commission-waiting")
(synopsis "Tryton module for commission waiting")
- (description "The @emph{Commission Waiting} Tryton module allows to
-generate account move for each commission between the expense/revenue account
+ (description "The @emph{Commission Waiting} Tryton module allows
+generating an account move for each commission between the expense/revenue account
to a waiting account defined on the agent.")
(license license:gpl3+)))
@@ -1590,7 +1590,7 @@ management.
The Company Work Time module adds 4 new fields (Hours per Work Day, Hours per
Work Week, Hours per Work Month, Hours per Work Year) on the company form that
-allow to define how much hours are spent by an employee in a day, a week, a
+allows defining how many hours are spent by an employee in a day, a week, a
month and a year of work.")
(license license:gpl3+)))
@@ -1666,7 +1666,7 @@ currency and rate.")
trytond-product))
(home-page "https://docs.tryton.org/projects/modules-customs")
(synopsis "Tryton module for customs")
- (description "The @emph{Customs} Tryton module allows to define customs
+ (description "The @emph{Customs} Tryton module allows defining customs
duty based on the tariff code.")
(license license:gpl3+)))
@@ -1799,8 +1799,8 @@ versions of 2010 and 2020.")
(list python-ldap3 trytond))
(home-page "https://docs.tryton.org/projects/modules-ldap-authentication")
(synopsis "Tryton module to authenticate users through LDAP")
- (description "The @emph{LDAP Authentication} Tryton module allows to
-authenticate users via a LDAP server.")
+ (description "The @emph{LDAP Authentication} Tryton module allows
+authenticating users via a LDAP server.")
(license license:gpl3+)))
(define-public trytond-marketing
@@ -1893,7 +1893,7 @@ mailing lists.")
(list trytond))
(home-page "https://docs.tryton.org/projects/modules-notification-email")
(synopsis "Tryton module for sending email notifications")
- (description "The @emph{Notification Email} Tryton module allows to define
+ (description "The @emph{Notification Email} Tryton module allows defining
email templates which will be sent to a list of recipients when a trigger is
fired on a record event. Extra reports from the same record can be attached
to the email.")
@@ -1965,7 +1965,7 @@ party.")
(list trytond trytond-party))
(home-page "https://docs.tryton.org/projects/modules-party-relationship")
(synopsis "Party Relationship module for Tryton")
- (description "The @emph{Party Relationship} Tryton module allows to define
+ (description "The @emph{Party Relationship} Tryton module allows defining
different types of relations between parties.")
(license license:gpl3+)))
@@ -2311,8 +2311,8 @@ for production management: Bill of material and production order.")
(home-page
"https://docs.tryton.org/projects/modules-production-outsourcing")
(synopsis "Tryton module to outsource production")
- (description "The @emph{Production Outsourcing} Tryton module allows to
-outsource production order per routing. When such outsourced production is
+ (description "The @emph{Production Outsourcing} Tryton module allows
+outsourcing production orders per routing. When such outsourced production is
set to @code{waiting}, a purchase order is created and its cost is added to
the production.")
(license license:gpl3+)))
@@ -2358,7 +2358,7 @@ routings for production: Routing, Step and Operation.")
(home-page "https://docs.tryton.org/projects/modules-production-split")
(synopsis "Tryton module to split production")
(description "The @emph{Production Split} Tryton module adds on the
-production a wizard that allows to split it. The production is split into
+production a wizard that allows splitting it. The production is split into
productions of Quantity. If a count is set, it will be split only this number
of times. On occasion there can be a production with the remaining
quantity.")
@@ -2386,7 +2386,7 @@ quantity.")
trytond-stock))
(home-page "https://docs.tryton.org/projects/modules-production-work")
(synopsis "Tryton module for production work")
- (description "The @emph{Production Work} Tryton module allows to manage
+ (description "The @emph{Production Work} Tryton module allows managing a
work order for each production. It also adds in the production cost for the
work cost.")
(license license:gpl3+)))
@@ -2410,8 +2410,8 @@ work cost.")
(home-page
"https://docs.tryton.org/projects/modules-production-work-timesheet")
(synopsis "Tryton module for timesheet on production work")
- (description "The @emph{Production Work Timesheet} Tryton module allows to
-enter timesheet for production works.")
+ (description "The @emph{Production Work Timesheet} Tryton module allows
+entering a timesheet for production works.")
(license license:gpl3+)))
(define-public trytond-project
@@ -2986,7 +2986,7 @@ line.")
trytond-sale-price-list))
(home-page "https://docs.tryton.org/projects/modules-sale-extra")
(synopsis "Tryton module for sale extra")
- (description "The @emph{Sale Extra} Tryton module allows to add extra line
+ (description "The @emph{Sale Extra} Tryton module allows adding an extra line
on sale based on criteria.")
(license license:gpl3+)))
@@ -3183,8 +3183,8 @@ customer's names and codes for products or variants.")
trytond-sale-price-list))
(home-page "https://docs.tryton.org/projects/modules-sale-promotion")
(synopsis "Tryton module for sale promotion")
- (description "The @emph{Sale Promotion} module allows to apply promotions
-on sale based on criteria.")
+ (description "The @emph{Sale Promotion} module allows applying promotions
+on a sale based on criteria.")
(license license:gpl3+)))
(define-public trytond-sale-promotion-coupon
@@ -3557,7 +3557,7 @@ location to pick products.")
trytond-stock))
(home-page "https://docs.tryton.org/projects/modules-stock-consignment")
(synopsis "Tryton module to manage consignment stock")
- (description "The @emph{Stock Consignment} Tryton module allow to manage
+ (description "The @emph{Stock Consignment} Tryton module allows managing
consignment stock from supplier or at customer warehouse.")
(license license:gpl3+)))
@@ -3624,8 +3624,8 @@ wizard \"Create Inventories\" under the \"Inventories\" sub-menu.")
(list trytond trytond-stock))
(home-page "https://docs.tryton.org/projects/modules-stock-location-move")
(synopsis "Tryton module to move storage locations")
- (description "The @emph{Stock Location} move Tryton module allows to
-define some Locations as movable
+ (description "The @emph{Stock Location} move Tryton module allows
+defining some Locations as movable
(like palette).")
(license license:gpl3+)))
@@ -3717,7 +3717,7 @@ it is no more used to compute the forecast quantity of the stock.")
(list trytond trytond-product trytond-stock trytond-stock-lot))
(home-page "https://docs.tryton.org/projects/modules-stock-lot-unit")
(synopsis "Tryton module to define unit on stock lot")
- (description "The @emph{Stock Lot Unit} Tryton module allows to define a
+ (description "The @emph{Stock Lot Unit} Tryton module allows defining a
unit and quantity on stock lot.")
(license license:gpl3+)))
@@ -3738,7 +3738,7 @@ unit and quantity on stock lot.")
(list trytond trytond-company trytond-product trytond-stock))
(home-page "https://docs.tryton.org/projects/modules-stock-package")
(synopsis "Tryton module for stock packaging")
- (description "The @emph{Stock Package} Tryton module allows to store
+ (description "The @emph{Stock Package} Tryton module allows storing
packaging information about customer and supplier return shipments.")
(license license:gpl3+)))
@@ -3961,7 +3961,7 @@ measurement and the quantity of their moves.")
(home-page "https://docs.tryton.org/projects/modules-stock-split")
(synopsis "Tryton module to split stock move")
(description "The @emph{Stock Split} Tryton module adds on the stock move
-a wizard that allows to split them. The move is split into moves of Quantity.
+a wizard that allows splitting them. The move is split into moves of Quantity.
If Counts is set, it will be split only this number of times. On occasion
there can be a move with the remaining quantity.")
(license license:gpl3+)))
@@ -4015,7 +4015,7 @@ mechanisms and introduces the concepts of order point.")
(home-page "https://docs.tryton.org/projects/modules-stock-supply-day")
(synopsis "Tryton module to add supply weekdays")
(description "The @emph{Stock Supply Day} Tryton module adds a Week Days
-list on the Product Supplier form. This allow to restrict the supply week
+list on the Product Supplier form. This allows restricting the supply week
days for each supplier on each product. If no days are defined for a supplier
a supplying may happens at any day of the week.")
(license license:gpl3+)))
@@ -4082,7 +4082,7 @@ supply mechanisms via production request.")
(list trytond trytond-company trytond-company-work-time))
(home-page "https://docs.tryton.org/projects/modules-timesheet")
(synopsis "Tryton module with timesheets")
- (description "The @emph{Timesheet} Tryton module allows to track the time
+ (description "The @emph{Timesheet} Tryton module allows tracking the time
spent by employees on various works. This module also comes with several
reports that show the time spent by employees on works following various time
periods.")
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3a4cced9d7..5a78dc3a6f 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2016, 2019, 2021 Eric Bavier <bavier@posteo.net>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2018, 2020, 2021 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
@@ -2416,7 +2416,7 @@ from Subversion to any supported Distributed Version Control System (DVCS).")
(define-public tig
(package
(name "tig")
- (version "2.5.4")
+ (version "2.5.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2424,7 +2424,7 @@ from Subversion to any supported Distributed Version Control System (DVCS).")
version "/tig-" version ".tar.gz"))
(sha256
(base32
- "19va4jn46s0vjv9f337g3ad6hy1f285ynl27i9gkd9l70b9q90n4"))))
+ "04skfsw5wkf6p47lis7x4xyfbpjik3id1km75q0fd2g8xa5jrfi4"))))
(build-system gnu-build-system)
(native-inputs
(list asciidoc xmlto))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1f5651108d..89738e83b0 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -41,7 +41,7 @@
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
@@ -3790,7 +3790,7 @@ supported players in addition to this package.")
(define-public handbrake
(package
(name "handbrake")
- (version "1.4.2")
+ (version "1.5.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/HandBrake/HandBrake/"
@@ -3798,7 +3798,7 @@ supported players in addition to this package.")
"HandBrake-" version "-source.tar.bz2"))
(sha256
(base32
- "0qgvdpnjjvh9937cr0yry1lkz5fj6x9pz32fx7s80c9fvjvq33lb"))
+ "1w1hjj6gvdydypw4mdn281w0x163is59cfm7k6bq371hsl3gx69r"))
(modules '((guix build utils)))
(snippet
;; Remove "contrib" and source not necessary for
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index c4d4fefa66..a16a12c7aa 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -132,6 +132,7 @@
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@@ -152,7 +153,7 @@
(define-public qemu
(package
(name "qemu")
- (version "6.1.0")
+ (version "6.2.0")
(source
(origin
(method url-fetch)
@@ -160,9 +161,8 @@
version ".tar.xz"))
(sha256
(base32
- "15iw7982g6vc4jy1l9kk1z9sl5bm1bdbwr74y7nvwjs1nffhig7f"))
- (patches (search-patches "qemu-CVE-2021-20203.patch"
- "qemu-build-info-manual.patch"
+ "0iavlsy9hin8k38230j8lfmyipx3965zljls1dp34mmc8n75vqb8"))
+ (patches (search-patches "qemu-build-info-manual.patch"
"qemu-fix-agent-paths.patch"))
(modules '((guix build utils)))
(snippet
@@ -1066,7 +1066,7 @@ all common programming languages. Vala bindings are also provided.")
(define-public lxc
(package
(name "lxc")
- (version "4.0.10")
+ (version "4.0.11")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1074,31 +1074,30 @@ all common programming languages. Vala bindings are also provided.")
version ".tar.gz"))
(sha256
(base32
- "1sgsic9dzj3wv2k5bx2vhcgappivhp1glkqfc2yrgr6jas052351"))))
+ "0b7hv4n8b3lndhr0jf9j1gkbzxm8897a1myjsfgwzad9gkhq395g"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config docbook2x))
(inputs
(list gnutls libcap libseccomp libselinux))
(arguments
- `(#:configure-flags
- (list (string-append "--docdir=" (assoc-ref %outputs "out")
- "/share/doc/" ,name "-" ,version)
- "--sysconfdir=/etc"
- "--localstatedir=/var")
- #:phases
- (modify-phases %standard-phases
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bashcompdir (string-append out "/etc/bash_completion.d")))
- (invoke "make" "install"
- (string-append "bashcompdir=" bashcompdir)
- ;; Don't install files into /var and /etc.
- "LXCPATH=/tmp/var/lib/lxc"
- "localstatedir=/tmp/var"
- "sysconfdir=/tmp/etc"
- "sysconfigdir=/tmp/etc/default")))))))
+ (list #:configure-flags
+ #~(list (string-append "--docdir=" #$output "/share/doc/"
+ #$name "-" #$version)
+ "--sysconfdir=/etc"
+ "--localstatedir=/var")
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (invoke "make" "install"
+ (string-append "bashcompdir=" #$output
+ "/etc/bash_completion.d")
+ ;; Don't install files into /var and /etc.
+ "LXCPATH=/tmp/var/lib/lxc"
+ "localstatedir=/tmp/var"
+ "sysconfdir=/tmp/etc"
+ "sysconfigdir=/tmp/etc/default"))))))
(synopsis "Linux container tools")
(home-page "https://linuxcontainers.org/")
(description
@@ -1110,7 +1109,7 @@ manage system or application containers.")
(define-public lxcfs
(package
(name "lxcfs")
- (version "4.0.9")
+ (version "4.0.11")
(home-page "https://github.com/lxc/lxcfs")
(source (origin
(method git-fetch)
@@ -1119,7 +1118,7 @@ manage system or application containers.")
(file-name (git-file-name name version))
(sha256
(base32
- "0zx58lair8hwi4bxm5h7i8n1j5fcdgw5cr6f4wk9qhks0sr5dip5"))))
+ "02cgzh97cgxh9iyf7gkn5ikdc0sfzqfjj6al0hikdf9rbwcscqwd"))))
(arguments
'(#:configure-flags '("--localstatedir=/var")))
(native-inputs
@@ -1136,7 +1135,7 @@ It started as a side project of LXC but can be used by any run-time.")
(define-public lxd
(package
(name "lxd")
- (version "4.17")
+ (version "4.22")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1144,7 +1143,7 @@ It started as a side project of LXC but can be used by any run-time.")
"lxd-" version "/lxd-" version ".tar.gz"))
(sha256
(base32
- "1kzmgyg5kw3zw9qa6jabld6rmb53b6yy69h7y9znsdlf74jllljl"))))
+ "119345936fcm1vv06k82k9hvj5yjf9jdrwqm9ccphhl5mswf8xq9"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/lxc/lxd"
@@ -1158,22 +1157,17 @@ It started as a side project of LXC but can be used by any run-time.")
(add-after 'unpack 'unpack-dist
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
- ;; remove the link back to the top level
- (delete-file (string-append "_dist/src/" import-path))
- ;; move all the deps into the src directory
- (copy-recursively "_dist/src" "../../.."))
- #t))
+ ;; Move all the dependencies into the src directory.
+ (copy-recursively "_dist/src" "../../.."))))
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
- (invoke "make" "build" "CC=gcc" "TAG_SQLITE3=libsqlite3")
- #t)))
+ (invoke "make" "build" "CC=gcc" "TAG_SQLITE3=libsqlite3"))))
(replace 'check
(lambda* (#:key tests? import-path #:allow-other-keys)
(when tests?
(with-directory-excursion (string-append "src/" import-path)
- (invoke "make" "check" "CC=gcc" "TAG_SQLITE3=libsqlite3")))
- #t))
+ (invoke "make" "check" "CC=gcc" "TAG_SQLITE3=libsqlite3")))))
(replace 'install
(lambda* (#:key inputs outputs import-path #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -1184,7 +1178,7 @@ It started as a side project of LXC but can be used by any run-time.")
(completions-dir
(string-append out "/share/bash-completion/completions")))
(with-directory-excursion (string-append "src/" import-path)
- ;; wrap lxd with runtime dependencies
+ ;; Wrap lxd with run-time dependencies.
(wrap-program (string-append bin-dir "lxd")
`("PATH" ":" prefix
,(fold (lambda (input paths)
@@ -1197,20 +1191,19 @@ It started as a side project of LXC but can be used by any run-time.")
'("bash" "acl" "rsync" "tar" "xz" "btrfs-progs"
"gzip" "dnsmasq" "squashfs-tools" "iproute2"
"criu" "iptables"))))
- ;; remove unwanted binaries
+ ;; Remove unwanted binaries.
(for-each (lambda (prog)
(delete-file (string-append bin-dir prog)))
'("deps" "macaroon-identity" "generate"))
- ;; install documentation
+ ;; Install documentation.
(for-each (lambda (file)
(install-file file doc-dir))
(find-files "doc"))
- ;; install bash completion
+ ;; Install bash completion.
(rename-file "scripts/bash/lxd-client" "scripts/bash/lxd")
- (install-file "scripts/bash/lxd" completions-dir)))
- #t)))))
+ (install-file "scripts/bash/lxd" completions-dir))))))))
(native-inputs
- (list ;; test dependencies:
+ (list ;; Test dependencies:
;; ("go-github-com-rogpeppe-godeps" ,go-github-com-rogpeppe-godeps)
;; ("go-github-com-tsenart-deadcode" ,go-github-com-tsenart-deadcode)
;; ("go-golang-org-x-lint" ,go-golang-org-x-lint)
@@ -1222,7 +1215,7 @@ It started as a side project of LXC but can be used by any run-time.")
("libraft" ,libraft)
("libcap" ,libcap)
("lxc" ,lxc)
- ;; runtime dependencies:
+ ;; Run-time dependencies.
("bash" ,bash-minimal)
("rsync" ,rsync)
("tar" ,tar)
@@ -1925,7 +1918,7 @@ virtual machines.")
(define-public bubblewrap
(package
(name "bubblewrap")
- (version "0.4.1")
+ (version "0.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/containers/bubblewrap/"
@@ -1933,7 +1926,8 @@ virtual machines.")
version ".tar.xz"))
(sha256
(base32
- "00ycgi6q2yngh06bnz50wkvar6r2jnjf3j158grhi9k13jdrpimr"))))
+ "0608l2sjwhnb1c0mslah1h6yjvqr17wk60by6i710qwxg4rszz8n"))
+ (patches (search-patches "bubblewrap-fix-locale-in-tests.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -1949,7 +1943,9 @@ virtual machines.")
(substitute* "tests/test-run.sh"
(("/var/tmp") tmp-dir)
;; Tests create a temporary python script, so fix its shebang.
- (("/usr/bin/env python") (which "python"))
+ (("/usr/bin/env python3") (which "python3"))
+ ;; Tests call /usr/bin/env, so fix its path.
+ (("/usr/bin/env") (which "env"))
;; Some tests try to access /usr, but that doesn't exist.
;; Give them /gnu instead.
(("/usr") "/gnu")
@@ -1958,18 +1954,21 @@ virtual machines.")
(("--ro-bind /lib /lib") "--ro-bind /gnu /lib")
((" */bin/bash") (which "bash"))
(("/bin/sh") (which "sh"))
- (("findmnt") (which "findmnt"))))
+ (("findmnt") (which "findmnt")))
+ (substitute* "tests/libtest.sh"
+ (("/var/tmp") tmp-dir)
+ (("/usr") "/gnu")
+ (("--ro-bind /bin /bin") "--ro-bind /gnu /bin")
+ (("--ro-bind /sbin /sbin") "--ro-bind /gnu /sbin")
+ (("--ro-bind /lib /lib") "--ro-bind /gnu /lib")))
#t))
;; Remove the directory we gave to tests to have a clean package.
(add-after 'check 'remove-tmp-dir
(lambda* (#:key outputs #:allow-other-keys)
(delete-file-recursively (string-append (assoc-ref outputs "out") "/tmp"))
#t)))))
- (inputs
- (list libcap))
- (native-inputs
- `(("python" ,python-wrapper)
- ("util-linux" ,util-linux)))
+ (inputs (list libcap))
+ (native-inputs (list python-wrapper util-linux))
(home-page "https://github.com/containers/bubblewrap")
(synopsis "Unprivileged sandboxing tool")
(description "Bubblewrap is aimed at running applications in a sandbox,
diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index 22fc639fcf..c0fabe848b 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -153,50 +153,52 @@ RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network protocols are supported.")
(license license:gpl2+)))
(define-public tigervnc-client
- (package
- (name "tigervnc-client")
- (version "1.11.0")
- (source (origin
- (method git-fetch)
- (uri
- (git-reference
- (url "https://github.com/TigerVNC/tigervnc")
- (commit (string-append "v" version))))
- (sha256
- (base32
- "1bg79ahr4mzy48ak0caxy3ckdsxmhpchypggaz6lxjjk92hgsz91"))
- (file-name (git-file-name name version))))
- (build-system cmake-build-system)
- (arguments
- '(#:tests? #f ; Tests that do exists are not automated.
- #:phases (modify-phases %standard-phases
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion "vncviewer"
- (invoke "make" "install")))))))
- (native-inputs
- (list autoconf gettext-minimal automake))
- (inputs
- (list zlib
- gnutls
- libjpeg-turbo
- fltk
- linux-pam
- libx11
- libxext
- libxtst
- libxrandr
- libxdamage
- pixman))
- (home-page "https://tigervnc.org/")
- (synopsis "High-performance, platform-neutral
+ ;; xorg-server 21 support was merged 2 weeks after the last (1.12.0) release.
+ (let ((revision "0")
+ (commit "b484c229853a08c7f254a4c6efbaf3c9e85b5074"))
+ (package
+ (name "tigervnc-client")
+ (version (git-version "1.12.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/TigerVNC/tigervnc")
+ (commit commit)))
+ (sha256
+ (base32 "125dnn05ps7vfsxlxmzm05w99lhm8hk8j4hpxl1mlzb5j0hp1061"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f ; Tests that do exists are not automated.
+ #:phases (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion "vncviewer"
+ (invoke "make" "install")))))))
+ (native-inputs
+ (list autoconf gettext-minimal automake))
+ (inputs
+ (list zlib
+ gnutls
+ libjpeg-turbo
+ fltk
+ linux-pam
+ libx11
+ libxext
+ libxtst
+ libxrandr
+ libxdamage
+ pixman))
+ (home-page "https://tigervnc.org/")
+ (synopsis "High-performance, platform-neutral
implementation of VNC (client)")
- (description "TigerVNC is a client/server implementation of VNC (Virtual
+ (description "TigerVNC is a client/server implementation of VNC (Virtual
Network Computing). It provides enough performance to run even 3D and video
applications. It also provides extensions for advanced authentication methods
and TLS encryption. This package installs only the VNC client, the
application which is needed to connect to VNC servers.")
- (license license:gpl2)))
+ (license license:gpl2))))
;; A VNC server is, in fact, an X server so it seems like a good idea
;; to build on the work already done for xorg-server package. This is
@@ -267,32 +269,13 @@ application which is needed to connect to VNC servers.")
(let*
((tvnc-src (assoc-ref %build-inputs "tigervnc-src"))
(tvnc-xserver (string-append tvnc-src "/unix/xserver")))
- (copy-recursively tvnc-xserver ".")
- #t)))
+ (copy-recursively tvnc-xserver "."))))
(add-after 'copy-tvnc-xserver 'patch-xserver
(lambda _
- (let*
- ((tvnc-src (assoc-ref %build-inputs "tigervnc-src"))
- (xorg-server-version ,(package-version xorg-server))
- (which-patch (lambda ()
- (let*
- ((patch-num (apply string-append
- (list-head (string-split xorg-server-version
- #\.)
- 2)))
- (fn (format #f "~a/unix/xserver~a.patch" tvnc-src patch-num)))
- (when (not (file-exists? fn))
- (error (format #f "Patch file, ~a,
-corresponding to the input xorg-server version, does not exist. Installation
-will fail. " fn)))
-
- fn))) ; VNC patches for xserver have the
- ; form xserverXY[Y].patch, where
- ; X.Y[Y].Z is the Xorg server
- ; version.
- (xserver-patch (which-patch)))
- (invoke "patch" "-p1" "-i" xserver-patch)
- (invoke "autoreconf" "-fiv"))))
+ (invoke "patch" "-p1" "-i"
+ (string-append (assoc-ref %build-inputs "tigervnc-src")
+ "/unix/xserver21.1.1.patch"))
+ (invoke "autoreconf" "-fiv")))
(add-before 'build 'build-tigervnc
(lambda _
(let* ((out (assoc-ref %outputs "out"))
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 1a56d9a933..681791c147 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014, 2019 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -691,7 +691,7 @@ is fully configurable and extensible in Common Lisp.")
(define-public lagrange
(package
(name "lagrange")
- (version "1.9.2")
+ (version "1.9.5")
(source
(origin
(method url-fetch)
@@ -699,7 +699,7 @@ is fully configurable and extensible in Common Lisp.")
(string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
"download/v" version "/lagrange-" version ".tar.gz"))
(sha256
- (base32 "1j4r2c6f9fqc22f14fjh28s324kfbb9ahf08nv0xlazy1y5g7f6d"))
+ (base32 "184wyhr6raqr0sk21ap98hf85cmilv5rrfsyhvcc4dfjy61m5mqh"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -709,23 +709,7 @@ is fully configurable and extensible in Common Lisp.")
(build-system cmake-build-system)
(arguments
`(#:tests? #false ;no tests
- #:configure-flags (list "-DTFDN_ENABLE_SSE41=OFF")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-build-error
- (lambda _
- ;; XXX: Remove in next release. Applied upstream. See
- ;; <https://git.skyjake.fi/gemini/lagrange/commit/b710eee5a92166ceb87932fe53b226be64b4d259>.
- (substitute* "src/ui/text.c"
- (("width <= 1") "width && width <= 1")
- (("colorId") "fgColorId"))
- (substitute* "src/ui/text_simple.c"
- (("colorId") "fgColorId")
- (("const iColor clr =") "iColor clr;")
- (("ansiForeground_Color\\((.+)\\);" _ params)
- (string-append "ansiColors_Color("
- params
- ", none_ColorId, &clr, NULL);"))))))))
+ #:configure-flags (list "-DTFDN_ENABLE_SSE41=OFF")))
(native-inputs
(list pkg-config zip))
(inputs
@@ -918,20 +902,19 @@ interface.")
(define-public telescope
(package
(name "telescope")
- (version "0.6.1")
+ (version "0.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/omar-polo/telescope/releases/download/"
version "/telescope-" version ".tar.gz"))
(sha256
- (base32 "1hm9gi6yz62h8yh2br85bgycr2xaf5lr7z4gl0p25g7d7qb53ixd"))))
+ (base32 "0b606caw2n02rny5yf1xh3lg0r3bwpxmcz6m4bv3mdd2ym8jjs84"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ;no tests
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)))
+ (list gettext-minimal pkg-config))
(inputs
(list libevent libressl ncurses))
(home-page "https://git.omarpolo.com/telescope/about/")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b2e1e66546..3ddecb15c4 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -19,7 +19,7 @@
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2018, 2020, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2017, 2018, 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2017, 2021 Pierre Langlois <pierre.langlois@gmx.com>
@@ -54,6 +54,7 @@
;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4621,20 +4622,24 @@ their web site.")
(method url-fetch)
(uri (pypi-uri "feedparser" version ".tar.gz"))
(sha256
- (base32
- "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
+ (base32 "0qcnkyjjfj5gg5rhd1j4zzlqx5h34bma18zwgj68q95b0l543q2w"))))
(build-system python-build-system)
(propagated-inputs
(list python-sgmllib3k))
(arguments
- '(#:tests? #f))
- (home-page
- "https://github.com/kurtmckee/feedparser")
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "tests/runtests.py")))))))
+ (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 (list license:bsd-2 ; source code
license:freebsd-doc)))) ; documentation
(define-public python2-feedparser
@@ -5854,17 +5859,16 @@ deployments.")
(string-append "CC=" ,(cc-for-target))
;; Use absolute path of GCC so it's found at runtime.
(string-append "PTHREAD_CC="
- (assoc-ref %build-inputs "gcc")
- "/bin/gcc")
+ (search-input-file %build-inputs
+ "/bin/gcc"))
"--localstatedir=/var")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'use-absolute-file-names
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((bash (assoc-ref inputs "bash-minimal"))
- (sh (string-append bash "/bin/sh"))
- (coreutils (assoc-ref inputs "coreutils"))
- (rm (string-append coreutils "/bin/rm")))
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let* ((inpts (or native-inputs inputs))
+ (sh (search-input-file inpts "/bin/sh"))
+ (rm (search-input-file inpts "/bin/rm")))
(substitute* '("bin/varnishtest/vtc_varnish.c"
"bin/varnishtest/vtc_process.c"
"bin/varnishtest/vtc_haproxy.c"
@@ -5894,9 +5898,7 @@ deployments.")
;; Make sure 'crti.o' et.al is found.
`("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))))))))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("python-sphinx" ,python-sphinx)
- ("rst2man" ,python-docutils)))
+ (list pkg-config python-sphinx python-docutils))
(inputs
(list bash-minimal
coreutils
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index bffa635949..865ffdb61f 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -2089,14 +2089,14 @@ before the system goes to sleep.")
(define-public python-pyperclip
(package
(name "python-pyperclip")
- (version "1.6.4")
+ (version "1.8.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyperclip" version))
(sha256
(base32
- "1p505c23ji06r28k1y67siihsbdzdf1brhlqpyv9ams4gk9863pp"))))
+ "0mxzm43z2anr55gyz7awagvam4d5c2rlxhp9hjyg0d29n2l58lhh"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; Not clear how to make tests pass.
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index c08a2349dc..38a0a25524 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2019 Ingo Ruhnke <grumbel@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 André A. Gomes <andremegafone@gmail.com>
;;;
@@ -1014,7 +1014,7 @@ inhibit interface which allows applications to prevent automatic sleep.")
(define-public ristretto
(package
(name "ristretto")
- (version "0.12.1")
+ (version "0.12.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/ristretto/"
@@ -1022,10 +1022,12 @@ inhibit interface which allows applications to prevent automatic sleep.")
"ristretto-" version ".tar.bz2"))
(sha256
(base32
- "1vnpzyb966pfbn7md0q26kl972iqwfywg4lfg3jahrl4l6f3z18k"))))
+ "0sfrvb19xkiphcp2ddqxgvh9hbramlm6qi7sv99s407c4acqdvhf"))))
(build-system gnu-build-system)
(native-inputs
- (list intltool desktop-file-utils pkg-config))
+ (list intltool desktop-file-utils
+ `(,glib "bin") ; for gdbus-codegen
+ pkg-config))
(inputs
(list gtk+ libexif libxfce4ui tumbler))
(home-page "https://docs.xfce.org/apps/ristretto/start")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 1a425779e5..14e35d19ae 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6174,7 +6174,7 @@ programs that cannot use the window system directly.")
(define-public perl-x11-xcb
(package
(name "perl-x11-xcb")
- (version "0.18")
+ (version "0.19")
(source (origin
(method url-fetch)
(uri (string-append
@@ -6182,7 +6182,7 @@ programs that cannot use the window system directly.")
"X11-XCB-" version ".tar.gz"))
(sha256
(base32
- "1cjpghw7cnackw20lbd7yzm222kz5bnrwz52f8ay24d1f4pwrnxf"))))
+ "1rn8g0yy82v5zp12rhxic332dvqs63l7mykg028ngvccs7rllipp"))))
(build-system perl-build-system)
(arguments
'(;; Disable parallel build to prevent a race condition.
@@ -6193,8 +6193,7 @@ programs that cannot use the window system directly.")
(lambda _
(setenv "PERL5LIB"
(string-append (getcwd) ":"
- (getenv "PERL5LIB")))
- #t))
+ (getenv "PERL5LIB")))))
(add-before 'build 'patch-Makefile
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
@@ -6202,8 +6201,7 @@ programs that cannot use the window system directly.")
;; an error such as "XCB.so: undefined symbol: xcb_xinerama_id"
(("^LDDLFLAGS = ")
(string-append "LDDLFLAGS = "
- "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm ")))
- #t)))
+ "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm "))))))
;; Tests require a running X11 server.
#:tests? #f))
(native-inputs
@@ -6681,7 +6679,7 @@ output.")
(define-public console-setup
(package
(name "console-setup")
- (version "1.205")
+ (version "1.207")
(source
(origin
(method git-fetch)
@@ -6689,7 +6687,7 @@ output.")
(url "https://salsa.debian.org/installer-team/console-setup.git")
(commit version)))
(sha256
- (base32 "0sf560s14firyvzpgww79ydzc6p3jvjkbvsi8zsr5m3hr833w0ba"))
+ (base32 "0fj93apsknx3lzbi2025pzr19q1gwnim8g4007aqqkhidc1msgx5"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -6708,8 +6706,7 @@ output.")
(substitute* '("Keyboard/ckbcomp")
(("\"cat ")
(string-append "\"" (which "cat")
- " ")))
- #t))
+ " ")))))
(add-before 'build 'make-doubled-bdfs
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(invoke "make" "-C" "Fonts"
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index e46bb591a9..cd8d512edc 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -55,7 +55,8 @@
#:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools))
#:use-module (gnu packages bash)
#:use-module ((gnu packages base)
- #:select (coreutils glibc glibc-utf8-locales))
+ #:select (coreutils glibc glibc-utf8-locales tar))
+ #:use-module ((gnu packages compression) #:select (gzip))
#:autoload (gnu packages guile-xyz) (guile-netlink)
#:autoload (gnu packages hurd) (hurd)
#:use-module (gnu packages package-management)
@@ -1709,7 +1710,14 @@ proxy of 'guix-daemon'...~%")
(string-append "GUIX_LOCPATH="
#$glibc-utf8-locales
"/lib/locale")
- "LC_ALL=en_US.utf8")
+ "LC_ALL=en_US.utf8"
+ ;; Make 'tar' and 'gzip' available so
+ ;; that 'guix perform-download' can use
+ ;; them when downloading from Software
+ ;; Heritage via '(guix swh)'.
+ (string-append "PATH="
+ #$(file-append tar "/bin") ":"
+ #$(file-append gzip "/bin")))
(if proxy
(list (string-append "http_proxy=" proxy)
(string-append "https_proxy=" proxy))
diff --git a/gnu/services/ci.scm b/gnu/services/ci.scm
index 0c3566bcaf..172f85fe8e 100644
--- a/gnu/services/ci.scm
+++ b/gnu/services/ci.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020, 2021 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021, 2022 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -84,6 +84,8 @@
#$home-directory)
,(string-append "LAMINAR_BIND_HTTP="
#$bind-http)
+ ,(string-append "LAMINAR_BIND_RPC="
+ #$bind-rpc)
,(string-append "LAMINAR_TITLE="
#$title)
,(string-append "LAMINAR_KEEP_RUNDIRS="
diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm
index 98611462c2..33649b0f7c 100644
--- a/gnu/services/pam-mount.scm
+++ b/gnu/services/pam-mount.scm
@@ -90,7 +90,7 @@
(module #~(string-append #$pam-mount "/lib/security/pam_mount.so"))))
(list (lambda (pam)
(if (member (pam-service-name pam)
- '("login" "su" "slim" "gdm-password"))
+ '("login" "su" "slim" "gdm-password" "sddm"))
(pam-service
(inherit pam)
(auth (append (pam-service-auth pam)
diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm
index 7c83f13b2a..e678bae87c 100644
--- a/gnu/services/telephony.scm
+++ b/gnu/services/telephony.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -227,7 +227,7 @@ SET-ACCOUNT-DETAILS."
(define-configuration/no-serialization jami-configuration
(jamid
- (file-like libring)
+ (file-like libjami)
"The Jami daemon package to use.")
(dbus
(file-like dbus)
@@ -265,7 +265,7 @@ consistent state."))
CONFIG, a <jami-configuration> object."
(match-record config <jami-configuration>
(jamid dbus enable-logging? debug? auto-answer?)
- `(,(file-append jamid "/lib/ring/dring")
+ `(,(file-append jamid "/libexec/jamid")
"--persistent" ;stay alive after client quits
,@(if enable-logging?
'() ;logs go to syslog by default
@@ -739,7 +739,7 @@ argument, either a registered username or the fingerprint of the account.")
(const %jami-accounts))
(service-extension activation-service-type
jami-dbus-session-activation)))
- (description "Run the Jami daemon (@command{dring}). This service is
+ (description "Run the Jami daemon (@command{jamid}). This service is
geared toward the use case of hosting Jami rendezvous points over a headless
server. If you use Jami on your local machine, you may prefer to setup a user
Shepherd service for it instead; this way, the daemon will be shared via your
diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm
index dcbc93e3bf..b209b9b9cf 100644
--- a/gnu/system/locale.scm
+++ b/gnu/system/locale.scm
@@ -147,7 +147,7 @@ data format changes between libc versions."
(define %default-locale-libcs
;; The libcs for which we build locales by default.
- (list glibc-2.31 glibc))
+ (list glibc))
(define %default-locale-definitions
;; Arbitrary set of locales that are built by default. They are here mostly
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 0fc9fb57f4..c2f7efa966 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -283,7 +283,7 @@ useful when FULL-BOOT? is true."
#+@(operating-system-kernel-arguments os "/dev/vda1")))
(define rw-image
- #~(format #f "/tmp/.~a-rw" (basename #$base-image)))
+ #~(format #f "/tmp/guix-image-~a" (basename #$base-image)))
(define qemu-exec
#~(list #+(file-append qemu "/bin/"
diff --git a/gnu/tests/telephony.scm b/gnu/tests/telephony.scm
index 998bdbccf9..bc464a431a 100644
--- a/gnu/tests/telephony.scm
+++ b/gnu/tests/telephony.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gnu.org>.
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>.
;;;
;;; This file is part of GNU Guix.
;;;
@@ -174,7 +174,7 @@ accounts provisioning feature of the service."
;; in the service; use retries.
(with-retries 20 1
(not (zero? (status:exit-val
- (system* "pgrep" "dring")))))))
+ (system* "pgrep" "jamid")))))))
marionette))
(test-assert "service can be restarted"
diff --git a/guix/build-system/clojure.scm b/guix/build-system/clojure.scm
index 39b7f44e89..634854cf1b 100644
--- a/guix/build-system/clojure.scm
+++ b/guix/build-system/clojure.scm
@@ -81,8 +81,7 @@
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
- (let ((private-keywords '(#:source #:target
- #:inputs #:native-inputs
+ (let ((private-keywords '(#:target #:inputs #:native-inputs
#:clojure #:jdk #:zip)))
(if target
diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index 2056c04153..0aabc95b90 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2015, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -240,6 +240,7 @@ build system."
#:parallel-tests? #$parallel-tests?
#:validate-runpath? #$validate-runpath?
#:patch-shebangs? #$patch-shebangs?
+ #:make-dynamic-linker-cache? #f ;cross-compiling
#:strip-binaries? #$strip-binaries?
#:strip-flags #$strip-flags
#:strip-directories #$strip-directories))))
diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm
index 09148f8730..5e0e5bbad3 100644
--- a/guix/build-system/go.scm
+++ b/guix/build-system/go.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2016 Petter <petter@mykolab.ch>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
-;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;;
@@ -276,6 +276,7 @@ commit hash and its date rather than a proper release tag."
#:unpack-path #$unpack-path
#:build-flags #$build-flags
#:tests? #$tests?
+ #:make-dynamic-linker-cache? #f ;cross-compiling
#:allow-go-reference? #$allow-go-reference?
#:inputs %build-inputs)))
diff --git a/guix/build-system/guile.scm b/guix/build-system/guile.scm
index f64f214675..36a88e181a 100644
--- a/guix/build-system/guile.scm
+++ b/guix/build-system/guile.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018-2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -162,6 +162,7 @@
#:native-search-paths '#$(map
search-path-specification->sexp
native-search-paths)
+ #:make-dynamic-linker-cache? #f ;cross-compiling
#:phases #$phases))))
(mlet %store-monad ((guile (package->derivation (or guile (default-guile))
diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm
index 003a065aa6..a0b968cef3 100644
--- a/guix/build-system/qt.scm
+++ b/guix/build-system/qt.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2015, 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -247,6 +247,7 @@ build system."
#:parallel-tests? #$parallel-tests?
#:validate-runpath? #$validate-runpath?
#:patch-shebangs? #$patch-shebangs?
+ #:make-dynamic-linker-cache? #f ;cross-compiling
#:strip-binaries? #$strip-binaries?
#:strip-flags #$strip-flags
#:strip-directories #$strip-directories))))
diff --git a/guix/build/clojure-utils.scm b/guix/build/clojure-utils.scm
index a9ffad3c8f..8817cab52a 100644
--- a/guix/build/clojure-utils.scm
+++ b/guix/build/clojure-utils.scm
@@ -135,7 +135,7 @@ all libraries found under the source directories."
(define-with-docs %aot-exclude
"A default list of symbols deciding what not to compile.
See the doc string of '%aot-include' for more details."
- '())
+ '(data-readers))
(define-with-docs %tests?
"Enable tests by default."
diff --git a/guix/build/compile.scm b/guix/build/compile.scm
index b86ec3b743..82761a2190 100644
--- a/guix/build/compile.scm
+++ b/guix/build/compile.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2014, 2016-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -37,6 +37,21 @@
;;;
;;; Code:
+(define (strip-keyword-arguments keywords args) ;XXX: copied from (guix utils)
+ "Remove all of the keyword arguments listed in KEYWORDS from ARGS."
+ (let loop ((args args)
+ (result '()))
+ (match args
+ (()
+ (reverse result))
+ (((? keyword? kw) arg . rest)
+ (loop rest
+ (if (memq kw keywords)
+ result
+ (cons* arg kw result))))
+ ((head . tail)
+ (loop tail (cons head result))))))
+
(define optimizations-for-level
(or (and=> (false-if-exception
(resolve-interface '(system base optimize)))
@@ -60,9 +75,18 @@
(loop rest `(#f ,kw ,@result))))))
(lambda (level)
- (if (<= level 1)
- %lightweight-optimizations
- %default-optimizations)))))
+ ;; In the upcoming Guile 3.0.8, .go files include code of their
+ ;; inlinable exports and free variables are resolved at compile time
+ ;; (both are enabled at -O1) to permit cross-module inlining
+ ;; (enabled at -O2). Unfortunately, this currently leads to
+ ;; non-reproducible and more expensive builds, so we turn it off
+ ;; here:
+ ;; <https://wingolog.org/archives/2021/05/13/cross-module-inlining-in-guile>.
+ (strip-keyword-arguments '(#:inlinable-exports? #:resolve-free-vars?
+ #:cross-module-inlining?)
+ (if (<= level 1)
+ %lightweight-optimizations
+ %default-optimizations))))))
(define (supported-warning-type? type)
"Return true if TYPE, a symbol, denotes a supported warning type."
diff --git a/guix/import/github.scm b/guix/import/github.scm
index 888b148ffb..8c1898c0c5 100644
--- a/guix/import/github.scm
+++ b/guix/import/github.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +26,7 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
+ #:use-module (srfi srfi-71)
#:use-module (guix utils)
#:use-module (guix i18n)
#:use-module (guix diagnostics)
@@ -37,7 +39,10 @@
#:use-module (guix upstream)
#:use-module (guix http-client)
#:use-module (web uri)
- #:export (%github-updater))
+ #:export (%github-api %github-updater))
+
+;; For tests.
+(define %github-api (make-parameter "https://api.github.com"))
(define (find-extension url)
"Return the extension of the archive e.g. '.tar.gz' given a URL, or
@@ -148,11 +153,11 @@ tags show up in the \"Releases\" tab of the web UI. For instance,
'https://api.github.com/repos/aconchillo/guile-json/releases' returns the
empty list."
(define release-url
- (string-append "https://api.github.com/repos/"
+ (string-append (%github-api) "/repos/"
(github-user-slash-repository url)
"/releases"))
(define tag-url
- (string-append "https://api.github.com/repos/"
+ (string-append (%github-api) "/repos/"
(github-user-slash-repository url)
"/tags"))
@@ -181,12 +186,15 @@ empty list."
(x x)))))
(define (latest-released-version url package-name)
- "Return a string of the newest released version name given a string URL like
+ "Return the newest released version and its tag given a string URL like
'https://github.com/arq5x/bedtools2/archive/v2.24.0.tar.gz' and the name of
-the package e.g. 'bedtools2'. Return #f if there is no releases"
+the package e.g. 'bedtools2'. Return #f (two values) if there are no
+releases."
(define (pre-release? x)
(assoc-ref x "prerelease"))
+ ;; This procedure returns (version . tag) pair, or #f
+ ;; if RELEASE doesn't seyem to correspond to a version.
(define (release->version release)
(let ((tag (or (assoc-ref release "tag_name") ;a "release"
(assoc-ref release "name"))) ;a tag
@@ -197,22 +205,22 @@ the package e.g. 'bedtools2'. Return #f if there is no releases"
((and (< name-length (string-length tag))
(string=? (string-append package-name "-")
(substring tag 0 (+ name-length 1))))
- (substring tag (+ name-length 1)))
+ (cons (substring tag (+ name-length 1)) tag))
;; some tags start with a "v" e.g. "v0.25.0"
;; or with the word "version" e.g. "version.2.1"
;; where some are just the version number
((string-prefix? "version" tag)
- (if (char-set-contains? char-set:digit (string-ref tag 7))
- (substring tag 7)
- (substring tag 8)))
+ (cons (if (char-set-contains? char-set:digit (string-ref tag 7))
+ (substring tag 7)
+ (substring tag 8)) tag))
((string-prefix? "v" tag)
- (substring tag 1))
+ (cons (substring tag 1) tag))
;; Finally, reject tags that don't start with a digit:
;; they may not represent a release.
((and (not (string-null? tag))
(char-set-contains? char-set:digit
(string-ref tag 0)))
- tag)
+ (cons tag tag))
(else #f))))
(let* ((json (and=> (fetch-releases-or-tags url)
@@ -229,14 +237,14 @@ https://github.com/settings/tokens"))
(match (remove pre-release? json)
(() json) ; keep everything
(releases releases)))
- version>?)
- ((latest-release . _) latest-release)
- (() #f)))))
+ (lambda (x y) (version>? (car x) (car y))))
+ (((latest-version . tag) . _) (values latest-version tag))
+ (() (values #f #f))))))
(define (latest-release pkg)
"Return an <upstream-source> for the latest release of PKG."
- (define (origin-github-uri origin)
- (match (origin-uri origin)
+ (define (github-uri uri)
+ (match uri
((? string? url)
url) ;surely a github.com URL
((? download:git-reference? ref)
@@ -244,14 +252,20 @@ https://github.com/settings/tokens"))
((urls ...)
(find (cut string-contains <> "github.com") urls))))
- (let* ((source-uri (origin-github-uri (package-source pkg)))
+ (let* ((original-uri (origin-uri (package-source pkg)))
+ (source-uri (github-uri original-uri))
(name (package-name pkg))
- (newest-version (latest-released-version source-uri name)))
+ (newest-version version-tag
+ (latest-released-version source-uri name)))
(if newest-version
(upstream-source
(package name)
(version newest-version)
- (urls (list (updated-github-url pkg newest-version))))
+ (urls (if (download:git-reference? original-uri)
+ (download:git-reference
+ (inherit original-uri)
+ (commit version-tag))
+ (list (updated-github-url pkg newest-version)))))
#f))) ; On GitHub but no proper releases
(define %github-updater
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index d5021669be..77b3c6380c 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -239,10 +239,10 @@
,@(or (and=> (assoc-ref data 'depend)
(lambda (inputs)
`((propagated-inputs
- ,(map (lambda (tex-name)
- (let ((name (guix-name tex-name)))
- (list name (list 'unquote (string->symbol name)))))
- inputs)))))
+ (list ,@(map (lambda (tex-name)
+ (let ((name (guix-name tex-name)))
+ (string->symbol name)))
+ inputs))))))
'())
,@(or (and=> (assoc-ref data 'catalogue-ctan)
(lambda (url)
diff --git a/guix/inferior.scm b/guix/inferior.scm
index febac29766..783be64fa4 100644
--- a/guix/inferior.scm
+++ b/guix/inferior.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018-2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -815,7 +815,7 @@ determines whether CHANNELS are authenticated."
(add-indirect-root* cached)
(return cached))
(mbegin %store-monad
- (add-temp-root* profile)
+ (add-temp-root* (derivation->output-path profile))
(return profile))))))))
(define* (inferior-for-channels channels
diff --git a/guix/packages.scm b/guix/packages.scm
index da8b66dfa6..9d5b23eb8a 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -395,7 +395,7 @@ from forcing GEXP-PROMISE."
;; 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"
- "powerpc64le-linux" "powerpc-linux"))
+ "powerpc64le-linux" "powerpc-linux" "riscv64-linux"))
(define %hurd-systems
;; The GNU/Hurd systems for which support is being developed.
@@ -406,7 +406,7 @@ from forcing GEXP-PROMISE."
;;
;; XXX: MIPS is unavailable in CI:
;; <https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00790.html>.
- (fold delete %supported-systems '("mips64el-linux" "powerpc-linux")))
+ (fold delete %supported-systems '("mips64el-linux" "powerpc-linux" "riscv64-linux")))
(define-inlinable (sanitize-inputs inputs)
"Sanitize INPUTS by turning it into a list of name/package tuples if it's
diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm
index 9715dc7779..4e792c6a03 100644
--- a/guix/scripts/hash.scm
+++ b/guix/scripts/hash.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2014, 2016-2017, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
@@ -134,8 +134,9 @@ and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
(alist-delete 'format result))))
(option '(#\r "recursive") #f #f
(lambda (opt name arg result)
- (warning (G_ "'--recursive' is deprecated, \
-use '--serializer' instead~%"))
+ (unless (eqv? name #\r)
+ (warning (G_ "'--recursive' is deprecated, \
+use '--serializer=nar' instead~%")))
(alist-cons 'serializer nar-hash
(alist-delete 'serializer result))))
(option '(#\S "serializer") #t #f
diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm
index 546639818f..a92932cbc9 100644
--- a/guix/scripts/shell.scm
+++ b/guix/scripts/shell.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,7 +21,8 @@
#:use-module ((guix diagnostics) #:select (location))
#:use-module (guix scripts environment)
#:autoload (guix scripts build) (show-build-options-help)
- #:autoload (guix transformations) (show-transformation-options-help)
+ #:autoload (guix transformations) (transformation-option-key?
+ show-transformation-options-help)
#:use-module (guix scripts)
#:use-module (guix packages)
#:use-module (guix profiles)
@@ -40,6 +41,7 @@
#:use-module ((guix build utils) #:select (mkdir-p))
#:use-module (guix cache)
#:use-module ((ice-9 ftw) #:select (scandir))
+ #:autoload (gnu packages) (cache-is-authoritative?)
#:export (guix-shell))
(define (show-help)
@@ -201,51 +203,35 @@ a hash-prefixed comment, or a blank line."
(const #f)))
(define (options-with-caching opts)
- "If OPTS contains exactly one 'load' or one 'manifest' key, automatically
-add a 'profile' key (when a profile for that file is already in cache) or a
-'gc-root' key (to add the profile to cache)."
- (define (single-file-for-caching opts)
- (let loop ((opts opts)
- (file #f))
- (match opts
- (() file)
- ((('package . _) . _) #f)
- ((('load . ('package candidate)) . rest)
- (and (not file) (loop rest candidate)))
- ((('manifest . candidate) . rest)
- (and (not file) (loop rest candidate)))
- ((('expression . _) . _) #f)
- ((_ . rest) (loop rest file)))))
-
- ;; Check whether there's a single 'load' or 'manifest' option. When that is
- ;; the case, arrange to automatically cache the resulting profile.
- (match (single-file-for-caching opts)
- (#f opts)
- (file
- (let* ((root (profile-cached-gc-root file))
- (stat (and root (false-if-exception (lstat root)))))
- (if (and (not (assoc-ref opts 'rebuild-cache?))
- stat
- (<= (stat:mtime ((@ (guile) stat) file))
- (stat:mtime stat)))
- (let ((now (current-time)))
- ;; Update the atime on ROOT to reflect usage.
- (utime root
- now (stat:mtime stat) 0 (stat:mtimensec stat)
- AT_SYMLINK_NOFOLLOW)
- (alist-cons 'profile root
- (remove (match-lambda
- (('load . _) #t)
- (('manifest . _) #t)
- (_ #f))
- opts))) ;load right away
- (if (and root (not (assq-ref opts 'gc-root)))
- (begin
- (if stat
- (delete-file root)
- (mkdir-p (dirname root)))
- (alist-cons 'gc-root root opts))
- opts))))))
+ "If OPTS contains only options that allow us to compute a cache key,
+automatically add a 'profile' key (when a profile for that file is already in
+cache) or a 'gc-root' key (to add the profile to cache)."
+ ;; Attempt to compute a file name for use as the cached profile GC root.
+ (let* ((root timestamp (profile-cached-gc-root opts))
+ (stat (and root (false-if-exception (lstat root)))))
+ (if (and (not (assoc-ref opts 'rebuild-cache?))
+ stat
+ (<= timestamp (stat:mtime stat)))
+ (let ((now (current-time)))
+ ;; Update the atime on ROOT to reflect usage.
+ (utime root
+ now (stat:mtime stat) 0 (stat:mtimensec stat)
+ AT_SYMLINK_NOFOLLOW)
+ (alist-cons 'profile root
+ (remove (match-lambda
+ (('load . _) #t)
+ (('manifest . _) #t)
+ (('package . _) #t)
+ (('ad-hoc-package . _) #t)
+ (_ #f))
+ opts))) ;load right away
+ (if (and root (not (assq-ref opts 'gc-root)))
+ (begin
+ (if stat
+ (delete-file root)
+ (mkdir-p (dirname root)))
+ (alist-cons 'gc-root root opts))
+ opts))))
(define (auto-detect-manifest opts)
"If OPTS do not specify packages or a manifest, load a \"guix.scm\" or
@@ -308,28 +294,87 @@ echo ~a >> ~a
(make-parameter (string-append (cache-directory #:ensure? #f)
"/profiles")))
-(define (profile-cache-key file)
+(define (profile-cache-primary-key)
+ "Return the \"primary key\" used when computing keys for the profile cache.
+Return #f if no such key can be obtained and caching cannot be
+performed--e.g., because the package cache is not authoritative."
+ (and (cache-is-authoritative?)
+ (match (current-channels)
+ (()
+ #f)
+ (((= channel-commit commits) ...)
+ (string-join commits)))))
+
+(define (profile-file-cache-key file system)
"Return the cache key for the profile corresponding to FILE, a 'guix.scm' or
'manifest.scm' file, or #f if we lack channel information."
- (match (current-channels)
- (() #f)
- (((= channel-commit commits) ...)
+ (match (profile-cache-primary-key)
+ (#f #f)
+ (primary-key
(let ((stat (stat file)))
(bytevector->base32-string
;; Since FILE is not canonicalized, only include the device/inode
;; numbers. XXX: In some rare cases involving Btrfs and NFS, this can
;; be insufficient: <https://lwn.net/Articles/866582/>.
(sha256 (string->utf8
- (string-append (string-join commits) ":"
+ (string-append primary-key ":" system ":"
(number->string (stat:dev stat)) ":"
(number->string (stat:ino stat))))))))))
-(define (profile-cached-gc-root file)
- "Return the cached GC root for FILE, a 'guix.scm' or 'manifest.scm' file, or
-#f if we lack information to cache it."
- (match (profile-cache-key file)
- (#f #f)
- (key (string-append (%profile-cache-directory) "/" key))))
+(define (profile-spec-cache-key specs system)
+ "Return the cache key corresponding to SPECS built for SYSTEM, where SPECS
+is a list of package specs. Return #f if caching is not possible."
+ (match (profile-cache-primary-key)
+ (#f #f)
+ (primary-key
+ (bytevector->base32-string
+ (sha256 (string->utf8
+ (string-append primary-key ":" system ":"
+ (object->string specs))))))))
+
+(define (profile-cached-gc-root opts)
+ "Return two values: the file name of a GC root for use as a profile cache
+for the options in OPTS, and a timestamp which, if greater than the GC root's
+mtime, indicates that the GC root is stale. If OPTS do not permit caching,
+return #f and #f."
+ (define (key->file key)
+ (string-append (%profile-cache-directory) "/" key))
+
+ (let loop ((opts opts)
+ (system (%current-system))
+ (file #f)
+ (specs '()))
+ (match opts
+ (()
+ (if file
+ (values (and=> (profile-file-cache-key file system) key->file)
+ (stat:mtime (stat file)))
+ (values (and=> (profile-spec-cache-key specs system) key->file)
+ 0)))
+ (((and spec ('package . _)) . rest)
+ (if (not file)
+ (loop rest system file (cons spec specs))
+ (values #f #f)))
+ ((('load . ('package candidate)) . rest)
+ (if (and (not file) (null? specs))
+ (loop rest system candidate specs)
+ (values #f #f)))
+ ((('manifest . candidate) . rest)
+ (if (and (not file) (null? specs))
+ (loop rest system candidate specs)
+ (values #f #f)))
+ ((('expression . _) . _)
+ ;; Arbitrary expressions might be non-deterministic or otherwise depend
+ ;; on external state so do not cache when they're used.
+ (values #f #f))
+ ((((? transformation-option-key?) . _) . _)
+ ;; Transformation options are potentially "non-deterministic", or at
+ ;; least depending on external state (with-source, with-commit, etc.),
+ ;; so do not cache anything when they're used.
+ (values #f #f))
+ ((('system . system) . rest)
+ (loop rest system file specs))
+ ((_ . rest) (loop rest system file specs)))))
;;;
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 98e788c657..414e931c8a 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -772,7 +772,7 @@ and TARGET arguments."
dry-run? derivations-only?
use-substitutes? target
full-boot?
- volatile?
+ volatile-vm-root?
(graphic? #t)
container-shared-network?
(mappings '())
@@ -827,7 +827,8 @@ static checks."
(mlet* %store-monad
((sys (system-derivation-for-action image action
#:full-boot? full-boot?
- #:volatile? volatile?
+ #:volatile?
+ volatile-vm-root?
#:graphic? graphic?
#:container-shared-network? container-shared-network?
#:mappings mappings))
@@ -999,6 +1000,8 @@ Some ACTIONS support additional ARGS.\n"))
(display (G_ "
--volatile for 'image', make the root file system volatile"))
(display (G_ "
+ --persistent for 'vm', make the root file system persistent"))
+ (display (G_ "
--label=LABEL for 'image', label disk image with LABEL"))
(display (G_ "
--save-provenance save provenance information"))
@@ -1080,7 +1083,10 @@ Some ACTIONS support additional ARGS.\n"))
(alist-cons 'install-bootloader? #f result)))
(option '("volatile") #f #f
(lambda (opt name arg result)
- (alist-cons 'volatile-root? #t result)))
+ (alist-cons 'volatile-image-root? #t result)))
+ (option '("persistent") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'volatile-vm-root? #f result)))
(option '("label") #t #f
(lambda (opt name arg result)
(alist-cons 'label arg result)))
@@ -1149,7 +1155,8 @@ Some ACTIONS support additional ARGS.\n"))
(image-size . guess)
(install-bootloader? . #t)
(label . #f)
- (volatile-root? . #f)
+ (volatile-image-root? . #f)
+ (volatile-vm-root? . #t)
(graph-backend . "graphviz")))
(define (verbosity-level opts)
@@ -1219,7 +1226,8 @@ resulting from command-line parsing."
((docker-image) docker-image-type)
(else image-type)))
(image-size (assoc-ref opts 'image-size))
- (volatile? (assoc-ref opts 'volatile-root?))
+ (volatile?
+ (assoc-ref opts 'volatile-image-root?))
(shared-network?
(assoc-ref opts 'container-shared-network?))
(base-image (if (operating-system? obj)
@@ -1279,7 +1287,8 @@ resulting from command-line parsing."
#:validate-reconfigure
(assoc-ref opts 'validate-reconfigure)
#:full-boot? (assoc-ref opts 'full-boot?)
- #:volatile? (assoc-ref opts 'volatile-root?)
+ #:volatile-vm-root?
+ (assoc-ref opts 'volatile-vm-root?)
#:graphic? (not (assoc-ref opts 'no-graphic?))
#:container-shared-network?
(assoc-ref opts 'container-shared-network?)
diff --git a/guix/transformations.scm b/guix/transformations.scm
index c43c00cdd3..0976f0d824 100644
--- a/guix/transformations.scm
+++ b/guix/transformations.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -56,6 +56,7 @@
tuned-package
show-transformation-options-help
+ transformation-option-key?
%transformation-options))
;;; Commentary:
@@ -796,6 +797,12 @@ are replaced by their latest upstream version."
(and (eq? k key) proc)))
%transformations))
+(define (transformation-option-key? key)
+ "Return true if KEY is an option key (as returned while parsing options with
+%TRANSFORMATION-OPTIONS) corresponding to a package transformation option.
+For example, (transformation-option-key? 'with-input) => #t."
+ (->bool (transformation-procedure key)))
+
;;;
;;; Command-line handling.
diff --git a/guix/ui.scm b/guix/ui.scm
index 251a3a4ab9..fc6f44e9ea 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
@@ -1514,13 +1514,15 @@ HYPERLINKS? is true, emit hyperlink escape sequences when appropriate."
;; the initial "+ " prefix.
(if (> width 2) (- width 2) width))
+ (define (split-lines str indent)
+ (string->recutils
+ (fill-paragraph str width* indent)))
+
(define (dependencies->recutils packages)
(let ((list (string-join (delete-duplicates
(map package-full-name
(sort packages package<?))) " ")))
- (string->recutils
- (fill-paragraph list width*
- (string-length "dependencies: ")))))
+ (split-lines list (string-length "dependencies: "))))
(define (package<? p1 p2)
(string<? (package-full-name p1) (package-full-name p2)))
@@ -1530,7 +1532,8 @@ HYPERLINKS? is true, emit hyperlink escape sequences when appropriate."
(format port "version: ~a~%" (package-version p))
(format port "outputs: ~a~%" (string-join (package-outputs p)))
(format port "systems: ~a~%"
- (string-join (package-transitive-supported-systems p)))
+ (split-lines (string-join (package-transitive-supported-systems p))
+ (string-length "systems: ")))
(format port "dependencies: ~a~%"
(match (package-direct-inputs p)
(((labels inputs . _) ...)
diff --git a/guix/utils.scm b/guix/utils.scm
index 536323978e..cba6464523 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -712,7 +712,8 @@ architecture (x86_64)?"
(define* (target-64bit? #:optional (system (or (%current-target-system)
(%current-system))))
- (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))
+ (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64"
+ "powerpc64" "riscv64")))
(define* (cc-for-target #:optional (target (%current-target-system)))
(if target
diff --git a/m4/guix.m4 b/m4/guix.m4
index 6c8e4f1c85..700c0dfd4a 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -89,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|powerpc64le-linux|i586-gnu)
+ x86_64-linux|i686-linux|armhf-linux|aarch64-linux|powerpc64le-linux|riscv64-linux|i586-gnu)
;;
mips64el-linux|powerpc-linux)
AC_MSG_WARN([building Guix on `$guix_system', which is not supported])
diff --git a/tests/gremlin.scm b/tests/gremlin.scm
index 41cefd9c7c..3dbb8d3643 100644
--- a/tests/gremlin.scm
+++ b/tests/gremlin.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2018, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2022 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,9 +21,11 @@
(define-module (test-gremlin)
#:use-module (guix elf)
#:use-module (guix tests)
- #:use-module ((guix utils) #:select (call-with-temporary-directory))
+ #:use-module ((guix utils) #:select (call-with-temporary-directory
+ target-aarch64?))
#:use-module (guix build utils)
#:use-module (guix build gremlin)
+ #:use-module (gnu packages bootstrap)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
@@ -94,8 +97,17 @@
(loop result))))))
(define ground-truth
(remove (lambda (entry)
+ ;; See vdso(7) for the list of vDSO names across
+ ;; architectures.
(or (string-prefix? "linux-vdso.so" entry)
- (string-prefix? "linux-vdso64.so" entry)))
+ (string-prefix? "linux-vdso32.so" entry) ;32-bit powerpc
+ (string-prefix? "linux-vdso64.so" entry) ;64-bit powerpc
+ (string-prefix? "linux-gate.so" entry) ;i386
+ ;; FIXME: ELF files on aarch64 do not always include a
+ ;; NEEDED entry for the dynamic linker, and it is unclear
+ ;; if that is OK. See: https://issues.guix.gnu.org/52943
+ (and (target-aarch64?)
+ (string-contains entry (glibc-dynamic-linker)))))
(read-ldd-output pipe)))
(and (zero? (close-pipe pipe))
diff --git a/tests/guix-graph.sh b/tests/guix-graph.sh
index 666660ab4b..e813e01c31 100644
--- a/tests/guix-graph.sh
+++ b/tests/guix-graph.sh
@@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2015-2016, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
#
# This file is part of GNU Guix.
@@ -23,11 +23,10 @@
module_dir="t-guix-graph-$$"
mkdir "$module_dir"
-trap "rm -rf $module_dir" EXIT
tmpfile1="$module_dir/t-guix-graph1-$$"
tmpfile2="$module_dir/t-guix-graph2-$$"
-trap 'rm -f "$tmpfile1" "$tmpfile2"' EXIT
+trap 'rm -r "$module_dir"' EXIT
cat > "$module_dir/foo.scm"<<EOF
diff --git a/tests/guix-package-net.sh b/tests/guix-package-net.sh
index 6d21c6cff6..a3beb238fe 100644
--- a/tests/guix-package-net.sh
+++ b/tests/guix-package-net.sh
@@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012-2015, 2017, 2019, 2022 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
# Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
#
@@ -50,7 +50,10 @@ profile="t-profile-$$"
profile_alt="t-profile-alt-$$"
rm -f "$profile"
-trap 'rm -f "$profile" "$profile_alt" "$profile-"[0-9]* "$profile_alt-"[0-9]* ; rm -rf t-home-'"$$" EXIT
+module_dir="t-guix-package-net-$$"
+mkdir "$module_dir"
+
+trap 'rm -f "$profile" "$profile_alt" "$profile.lock" "$profile_alt.lock" "$profile-"[0-9]* "$profile_alt-"[0-9]* ; rm -r "$module_dir" t-home-'"$$" EXIT
guix package --bootstrap -p "$profile" -i guile-bootstrap
@@ -177,10 +180,6 @@ guix package -p "$profile" -p "$profile_alt" --search-paths \
| grep "LIBRARY_PATH.*$profile/lib.$profile_alt/lib"
# Simulate an upgrade and make sure the package order is preserved.
-module_dir="t-guix-package-net-$$"
-trap 'rm -rf "$module_dir"' EXIT
-
-mkdir "$module_dir"
cat > "$module_dir/new.scm" <<EOF
(define-module (new)
#:use-module (guix)
diff --git a/tests/import-github.scm b/tests/import-github.scm
new file mode 100644
index 0000000000..979a0fc12b
--- /dev/null
+++ b/tests/import-github.scm
@@ -0,0 +1,139 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
+;;;
+;;; 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 (test-import-github)
+ #:use-module (json)
+ #:use-module (srfi srfi-35)
+ #:use-module (srfi srfi-64)
+ #:use-module (guix git-download)
+ #:use-module (guix http-client)
+ #:use-module (guix import github)
+ #:use-module (guix packages)
+ #:use-module (guix tests)
+ #:use-module (guix upstream)
+ #:use-module (ice-9 match))
+
+(test-begin "github")
+
+(define (call-with-releases thunk tags releases)
+ (mock ((guix http-client) http-fetch
+ (lambda* (uri #:key headers)
+ (unless (string-prefix? "mock://" uri)
+ (error "the URI ~a should not be used" uri))
+ (define components
+ (string-split (substring uri 8) #\/))
+ (pk 'stuff components headers)
+ (define (scm->json-port scm)
+ (open-input-string (scm->json-string scm)))
+ (match components
+ (("repos" "foo" "foomatics" "releases")
+ (scm->json-port releases))
+ (("repos" "foo" "foomatics" "tags")
+ (scm->json-port tags))
+ (rest (error "TODO ~a" rest)))))
+ (parameterize ((%github-api "mock://"))
+ (thunk))))
+
+;; Copied from tests/minetest.scm
+(define (upstream-source->sexp upstream-source)
+ (define url (upstream-source-urls upstream-source))
+ (unless (git-reference? url)
+ (error "a <git-reference> is expected"))
+ `(,(upstream-source-package upstream-source)
+ ,(upstream-source-version upstream-source)
+ ,(git-reference-url url)
+ ,(git-reference-commit url)))
+
+(define* (expected-sexp new-version new-commit)
+ `("foomatics" ,new-version "https://github.com/foo/foomatics" ,new-commit))
+
+(define (example-package old-version old-commit)
+ (package
+ (name "foomatics")
+ (version old-version)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/foo/foomatics")
+ (commit old-commit)))
+ (sha256 #f) ; not important for following tests
+ (file-name (git-file-name name version))))
+ (build-system #f)
+ (license #f)
+ (synopsis #f)
+ (description #f)
+ (home-page #f)))
+
+(define* (found-sexp old-version old-commit tags releases)
+ (and=>
+ (call-with-releases (lambda ()
+ ((upstream-updater-latest %github-updater)
+ (example-package old-version old-commit)))
+ tags releases)
+ upstream-source->sexp))
+
+(define-syntax-rule (test-release test-case old-version
+ old-commit new-version new-commit
+ tags releases)
+ (test-equal test-case
+ (expected-sexp new-version new-commit)
+ (found-sexp old-version old-commit tags releases)))
+
+(test-release "newest release is choosen"
+ "1.0.0" "v1.0.0" "1.9" "v1.9"
+ #()
+ ;; a mixture of current, older and newer versions
+ #((("tag_name" . "v0.0"))
+ (("tag_name" . "v1.0.1"))
+ (("tag_name" . "v1.9"))
+ (("tag_name" . "v1.0.0"))
+ (("tag_name" . "v1.0.2"))))
+
+(test-release "tags are used when there are no formal releases"
+ "1.0.0" "v1.0.0" "1.9" "v1.9"
+ ;; a mixture of current, older and newer versions
+ #((("name" . "v0.0"))
+ (("name" . "v1.0.1"))
+ (("name" . "v1.9"))
+ (("name" . "v1.0.0"))
+ (("name" . "v1.0.2")))
+ #())
+
+(test-release "\"version-\" prefixes are recognised"
+ "1.0.0" "v1.0.0" "1.9" "version-1.9"
+ #((("name" . "version-1.9")))
+ #())
+
+(test-release "prefixes are optional"
+ "1.0.0" "v1.0.0" "1.9" "1.9"
+ #((("name" . "1.9")))
+ #())
+
+(test-release "prefixing by package name is acceptable"
+ "1.0.0" "v1.0.0" "1.9" "foomatics-1.9"
+ #((("name" . "foomatics-1.9")))
+ #())
+
+(test-release "not all prefixes are acceptable"
+ "1.0.0" "v1.0.0" "1.0.0" "v1.0.0"
+ #((("name" . "v1.0.0"))
+ (("name" . "barstatics-1.9")))
+ #())
+
+(test-end "github")
diff --git a/tests/texlive.scm b/tests/texlive.scm
index 368e36e31a..f718e3a0a0 100644
--- a/tests/texlive.scm
+++ b/tests/texlive.scm
@@ -177,19 +177,19 @@ completely compatible with Plain TeX.")
(('package
('inherit ('simple-texlive-package
"texlive-texsis"
- ('list "doc/man/man1/"
+ ('list "bibtex/bst/texsis/"
+ "doc/man/man1/"
"doc/otherformats/texsis/base/"
- "bibtex/bst/texsis/"
"tex/texsis/base/"
"tex/texsis/config/")
('base32 (? string? hash))
#:trivial? #t))
('propagated-inputs
- (("texlive-cm" ',texlive-cm)
- ("texlive-hyphen-base" ',texlive-hyphen-base)
- ("texlive-knuth-lib" ',texlive-knuth-lib)
- ("texlive-plain" ',texlive-plain)
- ("texlive-tex" ',texlive-tex)))
+ ('list 'texlive-cm
+ 'texlive-hyphen-base
+ 'texlive-knuth-lib
+ 'texlive-plain
+ 'texlive-tex))
('home-page "https://www.tug.org/texlive/")
('synopsis "Plain TeX macros for Physicists")
('description (? string? description))