summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2019-12-12 04:10:59 +0200
committerEfraim Flashner <efraim@flashner.co.il>2019-12-12 04:10:59 +0200
commitc9e676d0b141f510c19e26edb1e6fad079b9b502 (patch)
tree79abb4a4b92ecf4504a46e55ffa7971a06c8a5df
parentd45720d8b456e82380601d77e25bd05c6e0dc36a (diff)
parentdcb7ce500bd025455982d74c3384c707f35bbb46 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
-rw-r--r--doc/contributing.texi13
-rw-r--r--doc/guix.texi148
-rw-r--r--gnu/build/file-systems.scm5
-rw-r--r--gnu/local.mk14
-rw-r--r--gnu/machine.scm12
-rw-r--r--gnu/machine/ssh.scm4
-rw-r--r--gnu/packages/admin.scm12
-rw-r--r--gnu/packages/audio.scm19
-rw-r--r--gnu/packages/bioconductor.scm57
-rw-r--r--gnu/packages/bioinformatics.scm29
-rw-r--r--gnu/packages/bittorrent.scm5
-rw-r--r--gnu/packages/check.scm4
-rw-r--r--gnu/packages/cluster.scm18
-rw-r--r--gnu/packages/commencement.scm8
-rw-r--r--gnu/packages/compression.scm30
-rw-r--r--gnu/packages/cran.scm262
-rw-r--r--gnu/packages/crypto.scm17
-rw-r--r--gnu/packages/docker.scm10
-rw-r--r--gnu/packages/emacs-xyz.scm499
-rw-r--r--gnu/packages/emacs.scm9
-rw-r--r--gnu/packages/enlightenment.scm8
-rw-r--r--gnu/packages/file-systems.scm64
-rw-r--r--gnu/packages/finance.scm30
-rw-r--r--gnu/packages/firmware.scm6
-rw-r--r--gnu/packages/freedesktop.scm8
-rw-r--r--gnu/packages/games.scm1590
-rw-r--r--gnu/packages/geo.scm82
-rw-r--r--gnu/packages/gnome-xyz.scm6
-rw-r--r--gnu/packages/gnome.scm687
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/guile-xyz.scm4
-rw-r--r--gnu/packages/guile.scm16
-rw-r--r--gnu/packages/haskell-web.scm68
-rw-r--r--gnu/packages/i2p.scm11
-rw-r--r--gnu/packages/kde-frameworks.scm5
-rw-r--r--gnu/packages/kde.scm235
-rw-r--r--gnu/packages/linux.scm73
-rw-r--r--gnu/packages/lisp.scm10
-rw-r--r--gnu/packages/lxqt.scm4
-rw-r--r--gnu/packages/maths.scm39
-rw-r--r--gnu/packages/mes.scm81
-rw-r--r--gnu/packages/messaging.scm5
-rw-r--r--gnu/packages/music.scm4
-rw-r--r--gnu/packages/networking.scm45
-rw-r--r--gnu/packages/nss.scm9
-rw-r--r--gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch140
-rw-r--r--gnu/packages/patches/gnome-control-center-udisks.patch221
-rw-r--r--gnu/packages/patches/guile-finalization-crash.patch61
-rw-r--r--gnu/packages/patches/mes-remove-store-name.patch121
-rw-r--r--gnu/packages/patches/ncompress-fix-softlinks.patch24
-rw-r--r--gnu/packages/patches/nss-CVE-2019-11745.patch24
-rw-r--r--gnu/packages/patches/python-pyatspi-python-37.patch82
-rw-r--r--gnu/packages/patches/ruby-safe-yaml-add-require-time.patch19
-rw-r--r--gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch45
-rw-r--r--gnu/packages/patches/totem-meson-compat.patch14
-rw-r--r--gnu/packages/patches/totem-meson-easy-codec.patch65
-rw-r--r--gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch103
-rw-r--r--gnu/packages/pretty-print.scm2
-rw-r--r--gnu/packages/python-web.scm67
-rw-r--r--gnu/packages/python-xyz.scm114
-rw-r--r--gnu/packages/regex.scm4
-rw-r--r--gnu/packages/ruby.scm66
-rw-r--r--gnu/packages/ssh.scm14
-rw-r--r--gnu/packages/statistics.scm24
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/version-control.scm14
-rw-r--r--gnu/packages/video.scm27
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/vpn.scm12
-rw-r--r--gnu/packages/web.scm3
-rw-r--r--gnu/packages/wm.scm47
-rw-r--r--gnu/packages/xiph.scm2
-rw-r--r--gnu/packages/xml.scm14
-rw-r--r--gnu/packages/xorg.scm6
-rw-r--r--gnu/services.scm87
-rw-r--r--gnu/services/mcron.scm2
-rw-r--r--gnu/system.scm10
-rw-r--r--gnu/system/examples/vm-image.tmpl9
-rw-r--r--guix/build/emacs-build-system.scm13
-rw-r--r--guix/build/qt-build-system.scm4
-rw-r--r--guix/build/syscalls.scm3
-rw-r--r--guix/derivations.scm52
-rw-r--r--guix/import/cran.scm4
-rw-r--r--guix/import/crate.scm17
-rw-r--r--guix/import/utils.scm84
-rw-r--r--guix/profiles.scm4
-rw-r--r--guix/scripts/import/cran.scm7
-rw-r--r--guix/scripts/import/crate.scm5
-rw-r--r--guix/scripts/import/elpa.scm7
-rw-r--r--guix/scripts/import/gem.scm5
-rw-r--r--guix/scripts/import/hackage.scm5
-rw-r--r--guix/scripts/import/opam.scm5
-rw-r--r--guix/scripts/import/pypi.scm5
-rw-r--r--guix/scripts/import/stackage.scm5
-rw-r--r--guix/scripts/lint.scm8
-rw-r--r--guix/scripts/pack.scm21
-rw-r--r--guix/scripts/pull.scm1
-rw-r--r--guix/scripts/system.scm107
-rw-r--r--tests/crate.scm357
-rw-r--r--tests/derivations.scm18
-rw-r--r--tests/gem.scm25
-rw-r--r--tests/guix-lint.sh11
-rw-r--r--tests/import-utils.scm23
-rw-r--r--tests/processes.scm40
104 files changed, 5053 insertions, 1503 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi
index ee72b2f94d..4ecff0a2dd 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -961,6 +961,19 @@ often better to clone the repository. Don't use the @command{name} field in
the URL: it is not very useful and if the name changes, the URL will probably
be wrong.
+@item
+See if Guix builds with
+@example
+guix environment --pure guix -- make
+@end example
+and look for warnings, especially those about use of undefined symbols.
+
+@item
+Make sure your changes do not break Guix and simulate a @code{guix pull} with:
+@example
+guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master
+@end example
+
@end enumerate
When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as
diff --git a/doc/guix.texi b/doc/guix.texi
index 7d50f31d20..01980bf2d3 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -39,7 +39,7 @@ Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@*
Copyright @copyright{} 2016 Julien Lepiller@*
Copyright @copyright{} 2016 Alex ter Weele@*
Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*
-Copyright @copyright{} 2017, 2018 Clément Lassieur@*
+Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@*
Copyright @copyright{} 2017, 2018 Mathieu Othacehe@*
Copyright @copyright{} 2017 Federico Beffa@*
Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
@@ -5053,7 +5053,7 @@ Yet another option is to produce a SquashFS image with the following
command:
@example
-guix pack -f squashfs guile emacs geiser
+guix pack -f squashfs bash guile emacs geiser
@end example
@noindent
@@ -5088,6 +5088,21 @@ package names passed on the command line or in the manifest file.
This produces a SquashFS image containing all the specified binaries and
symlinks, as well as empty mount points for virtual file systems like
procfs.
+
+@quotation Note
+Singularity @emph{requires} you to provide @file{/bin/sh} in the image.
+For that reason, @command{guix pack -f squashfs} always implies @code{-S
+/bin=bin}. Thus, your @command{guix pack} invocation must always start
+with something like:
+
+@example
+guix pack -f squashfs bash @dots{}
+@end example
+
+If you forget the @code{bash} (or similar) package, @command{singularity
+run} and @command{singularity exec} will fail with an unhelpful ``no
+such file or directory'' message.
+@end quotation
@end table
@cindex relocatable binaries
@@ -7442,6 +7457,7 @@ native package build:
(gexp->derivation "vi"
#~(begin
(mkdir #$output)
+ (mkdir (string-append #$output "/bin"))
(system* (string-append #+coreutils "/bin/ln")
"-s"
(string-append #$emacs "/bin/emacs")
@@ -9676,6 +9692,14 @@ and exit.
Only enable the checkers specified in a comma-separated list using the
names returned by @code{--list-checkers}.
+@item --load-path=@var{directory}
+@itemx -L @var{directory}
+Add @var{directory} to the front of the package module search path
+(@pxref{Package Modules}).
+
+This allows users to define their own packages and make them visible to
+the command-line tools.
+
@end table
@node Invoking guix size
@@ -11244,9 +11268,12 @@ corresponding device mapping established.
This is a list of symbols denoting mount flags. Recognized flags
include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow
access to special files), @code{no-suid} (ignore setuid and setgid
-bits), @code{no-atime} (do not update file access times), and @code{no-exec}
-(disallow program execution). @xref{Mount-Unmount-Remount,,, libc, The GNU C
-Library Reference Manual}, for more information on these flags.
+bits), @code{no-atime} (do not update file access times),
+@code{strict-atime} (update file access time), @code{lazy-time} (only
+update time on the in-memory version of the file inode), and
+@code{no-exec} (disallow program execution).
+@xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference
+Manual}, for more information on these flags.
@item @code{options} (default: @code{#f})
This is either @code{#f}, or a string denoting mount options passed to the
@@ -18280,7 +18307,7 @@ When @var{interface} is @code{127.0.0.1}, only local clients can
connect; when it is @code{0.0.0.0}, connections can come from any
networking interface.
-@item @code{package} (default: @code{bitlbee})
+@item @code{bitlbee} (default: @code{bitlbee})
The BitlBee package to use.
@item @code{plugins} (default: @code{'()})
@@ -25900,6 +25927,15 @@ switch to it@footnote{This action (and the related actions
@code{switch-generation} and @code{roll-back}) are usable only on
systems already running Guix System.}.
+@quotation Note
+@c The paragraph below refers to the problem discussed at
+@c <https://lists.gnu.org/archive/html/guix-devel/2014-08/msg00057.html>.
+It is highly recommended to run @command{guix pull} once before you run
+@command{guix system reconfigure} for the first time (@pxref{Invoking
+guix pull}). Failing to do that you would see an older version of Guix
+once @command{reconfigure} has completed.
+@end quotation
+
This effects all the configuration specified in @var{file}: user
accounts, system services, global package list, setuid programs, etc.
The command starts system services specified in @var{file} that are not
@@ -25918,14 +25954,27 @@ It also adds a bootloader menu entry for the new OS configuration,
entries for older configurations to a submenu, allowing you to choose
an older system generation at boot time should you need it.
-@quotation Note
-@c The paragraph below refers to the problem discussed at
-@c <https://lists.gnu.org/archive/html/guix-devel/2014-08/msg00057.html>.
-It is highly recommended to run @command{guix pull} once before you run
-@command{guix system reconfigure} for the first time (@pxref{Invoking
-guix pull}). Failing to do that you would see an older version of Guix
-once @command{reconfigure} has completed.
-@end quotation
+@cindex provenance tracking, of the operating system
+Upon completion, the new system is deployed under
+@file{/run/current-system}. This directory contains @dfn{provenance
+meta-data}: the list of channels in use (@pxref{Channels}) and
+@var{file} itself, when available. This information is useful should
+you later want to inspect how this particular generation was built.
+
+In fact, assuming @var{file} is self-contained, you can later rebuild
+generation @var{n} of your operating system with:
+
+@example
+guix time-machine \
+ -C /var/guix/profiles/system-@var{n}-link/channels.scm -- \
+ system reconfigure \
+ /var/guix/profiles/system-@var{n}-link/configuration.scm
+@end example
+
+You can think of it as some sort of built-in version control! Your
+system is not just a binary artifact: @emph{it carries its own source}.
+@xref{Service Reference, @code{provenance-service-type}}, for more
+information on provenance tracking.
@item switch-generation
@cindex generations
@@ -26187,6 +26236,25 @@ This works as per @command{guix build} (@pxref{Invoking guix build}).
Return the derivation file name of the given operating system without
building anything.
+@cindex provenance tracking, of the operating system
+@item --save-provenance
+As discussed above, @command{guix system init} and @command{guix system
+reconfigure} always save provenance information @i{via} a dedicated
+service (@pxref{Service Reference, @code{provenance-service-type}}).
+However, other commands don't do that by default. If you wish to, say,
+create a virtual machine image that contains provenance information, you
+can run:
+
+@example
+guix system vm-image --save-provenance config.scm
+@end example
+
+That way, the resulting image will effectively ``embed its own source''
+in the form of meta-data in @file{/run/current-system}. With that
+information, one can rebuild the image to make sure it really contains
+what it pretends to contain; or they could use that to derive a variant
+of the image.
+
@item --file-system-type=@var{type}
@itemx -t @var{type}
For the @code{disk-image} action, create a file system of the given
@@ -26260,6 +26328,10 @@ bootloader boot menu:
@table @code
+@item describe
+Describe the current system generation: its file name, the kernel and
+bootloader used, etc., as well as provenance information when available.
+
@item list-generations
List a summary of each generation of the operating system available on
disk, in a human-readable way. This is similar to the
@@ -27043,6 +27115,54 @@ programs under @file{/run/current-system/profile}. Other services can
extend it by passing it lists of packages to add to the system profile.
@end defvr
+@cindex provenance tracking, of the operating system
+@defvr {Scheme Variable} provenance-service-type
+This is the type of the service that records @dfn{provenance meta-data}
+in the system itself. It creates several files under
+@file{/run/current-system}:
+
+@table @file
+@item channels.scm
+This is a ``channel file'' that can be passed to @command{guix pull -C}
+or @command{guix time-machine -C}, and which describes the channels used
+to build the system, if that information was available
+(@pxref{Channels}).
+
+@item configuration.scm
+This is the file that was passed as the value for this
+@code{provenance-service-type} service. By default, @command{guix
+system reconfigure} automatically passes the OS configuration file it
+received on the command line.
+
+@item provenance
+This contains the same information as the two other files but in a
+format that is more readily processable.
+@end table
+
+In general, these two pieces of information (channels and configuration
+file) are enough to reproduce the operating system ``from source''.
+
+@quotation Caveats
+This information is necessary to rebuild your operating system, but it
+is not always sufficient. In particular, @file{configuration.scm}
+itself is insufficient if it is not self-contained---if it refers to
+external Guile modules or to extra files. If you want
+@file{configuration.scm} to be self-contained, we recommend that modules
+or files it refers to be part of a channel.
+
+Besides, provenance meta-data is ``silent'' in the sense that it does
+not change the bits contained in your system, @emph{except for the
+meta-data bits themselves}. Two different OS configurations or sets of
+channels can lead to the same system, bit-for-bit; when
+@code{provenance-service-type} is used, these two systems will have
+different meta-data and thus different store file names, which makes
+comparison less trivial.
+@end quotation
+
+This service is automatically added to your operating system
+configuration when you use @command{guix system reconfigure},
+@command{guix system init}, or @command{guix deploy}.
+@end defvr
@node Shepherd Services
@subsection Shepherd Services
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index cb90fa0907..13c44aa728 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -577,6 +578,10 @@ corresponds to the symbols listed in FLAGS."
(logior MS_NOEXEC (loop rest)))
(('no-atime rest ...)
(logior MS_NOATIME (loop rest)))
+ (('strict-atime rest ...)
+ (logior MS_STRICTATIME (loop rest)))
+ (('lazy-time rest ...)
+ (logior MS_LAZYTIME (loop rest)))
(()
0))))
diff --git a/gnu/local.mk b/gnu/local.mk
index 4592e4c38a..0224b7101b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -23,6 +23,8 @@
# Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
+# Copyright © 2019 Brett Gilio <brettg@posteo.de>
#
# This file is part of GNU Guix.
#
@@ -924,10 +926,8 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-2.28-supported-locales.patch \
%D%/packages/patches/glibc-supported-locales.patch \
%D%/packages/patches/glm-restore-install-target.patch \
- %D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
%D%/packages/patches/gmp-faulty-test.patch \
- %D%/packages/patches/gnome-control-center-udisks.patch \
%D%/packages/patches/gnome-shell-theme.patch \
%D%/packages/patches/gnome-tweaks-search-paths.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
@@ -947,6 +947,7 @@ dist_patch_DATA = \
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
%D%/packages/patches/guile-default-utf8.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
+ %D%/packages/patches/guile-finalization-crash.patch \
%D%/packages/patches/guile-linux-syscalls.patch \
%D%/packages/patches/guile-present-coding.patch \
%D%/packages/patches/guile-relocatable.patch \
@@ -1132,6 +1133,7 @@ dist_patch_DATA = \
%D%/packages/patches/mcrypt-CVE-2012-4409.patch \
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
+ %D%/packages/patches/mes-remove-store-name.patch \
%D%/packages/patches/mesa-skip-disk-cache-test.patch \
%D%/packages/patches/mesa-timespec-test-32bit.patch \
%D%/packages/patches/mescc-tools-boot.patch \
@@ -1164,6 +1166,7 @@ dist_patch_DATA = \
%D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \
%D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/m4-gnulib-libio.patch \
+ %D%/packages/patches/ncompress-fix-softlinks.patch \
%D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netcdf-tst_h_par.patch \
%D%/packages/patches/netpbm-CVE-2017-2586.patch \
@@ -1176,6 +1179,7 @@ dist_patch_DATA = \
%D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/nm-plugin-path.patch \
%D%/packages/patches/nsis-env-passthru.patch \
+ %D%/packages/patches/nss-CVE-2019-11745.patch \
%D%/packages/patches/nss-freebl-stubs.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-pkgconfig.patch \
@@ -1295,7 +1299,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-testtools.patch \
%D%/packages/patches/python-paste-remove-timing-test.patch \
- %D%/packages/patches/python-pyatspi-python-37.patch \
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
@@ -1332,7 +1335,6 @@ dist_patch_DATA = \
%D%/packages/patches/retroarch-disable-online-updater.patch \
%D%/packages/patches/ruby-rubygems-276-for-ruby24.patch \
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \
- %D%/packages/patches/ruby-safe-yaml-add-require-time.patch \
%D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
%D%/packages/patches/runc-CVE-2019-5736.patch \
%D%/packages/patches/rust-1.19-mrustc.patch \
@@ -1363,7 +1365,6 @@ dist_patch_DATA = \
%D%/packages/patches/soundconverter-remove-gconf-dependency.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/streamlink-update-test.patch \
- %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \
%D%/packages/patches/supercollider-boost-1.70-build-fix.patch \
%D%/packages/patches/superlu-dist-awpm-grid.patch \
%D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \
@@ -1400,8 +1401,6 @@ dist_patch_DATA = \
%D%/packages/patches/ttf2eot-cstddef.patch \
%D%/packages/patches/ttfautohint-source-date-epoch.patch \
%D%/packages/patches/tomb-fix-errors-on-open.patch \
- %D%/packages/patches/totem-meson-compat.patch \
- %D%/packages/patches/totem-meson-easy-codec.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/txr-shell.patch \
%D%/packages/patches/u-boot-fix-mkimage-header-verification.patch \
@@ -1443,6 +1442,7 @@ dist_patch_DATA = \
%D%/packages/patches/wavpack-CVE-2018-7253.patch \
%D%/packages/patches/wavpack-CVE-2018-7254.patch \
%D%/packages/patches/weasyprint-library-paths.patch \
+ %D%/packages/patches/websocketpp-fix-for-boost-1.70.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
%D%/packages/patches/wicd-urwid-1.3.patch \
diff --git a/gnu/machine.scm b/gnu/machine.scm
index 05b03b21d4..bdd92d9592 100644
--- a/gnu/machine.scm
+++ b/gnu/machine.scm
@@ -33,7 +33,6 @@
machine
machine?
- this-machine
machine-operating-system
machine-environment
@@ -89,15 +88,18 @@
;;; Declarations for machines in a deployment.
;;;
-(define-record-type* <machine> machine
- make-machine
+(define-record-type* <machine> machine make-machine
machine?
- this-machine
- (operating-system machine-operating-system) ; <operating-system>
+ (operating-system %machine-operating-system); <operating-system>
(environment machine-environment) ; symbol
(configuration machine-configuration ; configuration object
(default #f))) ; specific to environment
+(define (machine-operating-system machine)
+ "Return the operating system of MACHINE."
+ (operating-system-with-provenance
+ (%machine-operating-system machine)))
+
(define (machine-display-name machine)
"Return the host-name identifying MACHINE."
(operating-system-host-name (machine-operating-system machine)))
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 23ae917b79..d6ce1253a4 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -74,7 +74,6 @@
(define-record-type* <machine-ssh-configuration> machine-ssh-configuration
make-machine-ssh-configuration
machine-ssh-configuration?
- this-machine-ssh-configuration
(host-name machine-ssh-configuration-host-name) ; string
(system machine-ssh-configuration-system) ; string
(build-locally? machine-ssh-configuration-build-locally? ; boolean
@@ -103,6 +102,9 @@ one from the configuration's parameters if one was not provided."
(port (machine-ssh-configuration-port config))
(identity (machine-ssh-configuration-identity config))
(host-key (machine-ssh-configuration-host-key config)))
+ (unless host-key
+ (warning (G_ "<machine-ssh-configuration> without a 'host-key' \
+is deprecated~%")))
(open-ssh-session host-name
#:user user
#:port port
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 6fbceb4421..c2be85e81e 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -209,10 +209,10 @@ and provides a \"top-like\" mode (monitoring).")
`(("pkg-config" ,pkg-config)
;; This is the Guile we use as a cross-compiler...
- ("guile" ,guile-2.2)))
+ ("guile" ,guile-2.2/bug-fix)))
(inputs
;; ... and this is the one that appears in shebangs when cross-compiling.
- `(("guile" ,guile-2.2)
+ `(("guile" ,guile-2.2/bug-fix) ;for <https://bugs.gnu.org/37757>
;; The 'shepherd' command uses Readline when used interactively. It's
;; an unusual use case though, so we don't propagate it.
@@ -449,7 +449,7 @@ hostname.")
(define-public shadow
(package
(name "shadow")
- (version "4.7")
+ (version "4.8")
(source (origin
(method url-fetch)
(uri (string-append
@@ -457,7 +457,7 @@ hostname.")
"download/" version "/shadow-" version ".tar.xz"))
(sha256
(base32
- "0v71474rx38lg9kidrm4xbk35sg3icv3s5pk2b42icp3lyj9dqg5"))))
+ "0r5c1p8mfwhw11gb6mjsx1k7d4c32dxai7yss8n5pwy1p61ndd34"))))
(build-system gnu-build-system)
(arguments
`(;; Assume System V `setpgrp (void)', which is the default on GNU
@@ -629,7 +629,7 @@ would need and has several interesting built-in capabilities.")
(define-public netcat-openbsd
(package
(name "netcat-openbsd")
- (version "1.203-2")
+ (version "1.206-1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -638,7 +638,7 @@ would need and has several interesting built-in capabilities.")
(file-name (git-file-name name version))
(sha256
(base32
- "0j85gzbjzs6yrhgabh3zkwzd27qkr5s0zjjczl0hah8q7yhrjk3m"))))
+ "08r3mmck3s5pbvwyq19wp5g8jqcxza3cm8nkc6jm7rqn4jdydc4z"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 7b0c540d7a..24c294b8e2 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1966,15 +1966,15 @@ lv2-c++-tools.")
(define-public openal
(package
(name "openal")
- (version "1.19.1")
+ (version "1.20.0")
(source (origin
(method url-fetch)
(uri (string-append
- "http://openal-soft.org/openal-releases/openal-soft-"
+ "https://openal-soft.org/openal-releases/openal-soft-"
version ".tar.bz2"))
(sha256
(base32
- "1sdjhkz2gd6lbnwphi1b6aw3br4wv2lik5vnqh6mxfc8a7zqfbsw"))))
+ "03p6s5gap0lvig2fs0a8nib5rxsc24dbqjsydpwvlm5l49wlk2f0"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no check target
@@ -1983,26 +1983,19 @@ lv2-c++-tools.")
(add-after
'unpack 'use-full-library-paths
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Alc/backends/pulseaudio.c"
+ (substitute* "alc/backends/pulseaudio.cpp"
(("#define PALIB \"libpulse\\.so\\.0\"")
(string-append "#define PALIB \""
(assoc-ref inputs "pulseaudio")
"/lib/libpulse.so.0"
"\"")))
- (substitute* "Alc/backends/alsa.c"
+ (substitute* "alc/backends/alsa.cpp"
(("LoadLib\\(\"libasound\\.so\\.2\"\\)")
(string-append "LoadLib(\""
(assoc-ref inputs "alsa-lib")
"/lib/libasound.so.2"
"\")")))
#t)))))
- (native-inputs
- `(;; FIXME: On i686-linux, GCC 7 hits an internal compiler error
- ;; upon building utils/makehrtf.c:3281:
- ;; "internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:908"
- ;; https://ci.guix.gnu.org/log/r2fjx9m75m9rifg2yjbnn853wqy2547n-openal-1.19.1
- ;; Remove this when the default compiler is GCC 9 or later.
- ("gcc" ,gcc-9)))
(inputs
`(("alsa-lib" ,alsa-lib)
("pulseaudio" ,pulseaudio)))
@@ -2014,7 +2007,7 @@ emitters are among the features handled by the API. More advanced effects,
including air absorption, occlusion, and environmental reverb, are available
through the EFX extension. It also facilitates streaming audio, multi-channel
buffers, and audio capture.")
- (home-page "http://openal-soft.org/")
+ (home-page "https://openal-soft.org/")
(license license:lgpl2.0+)))
(define-public freealut
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 5c191a2c0b..e584a7bced 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -3044,6 +3044,63 @@ for DNA and protein sequences. This package supports several sequence
kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.")
(license license:gpl2+)))
+;; This is a CRAN package, but it depends on multtest from Bioconductor.
+(define-public r-mutoss
+ (package
+ (name "r-mutoss")
+ (version "0.1-12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "mutoss" version))
+ (sha256
+ (base32
+ "1yk7p7pb2xm38d3j19ysgwmix48lvimbhkhjjwk5jmr1a0ysx298"))))
+ (properties `((upstream-name . "mutoss")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-multcomp" ,r-multcomp)
+ ("r-multtest" ,r-multtest)
+ ("r-mvtnorm" ,r-mvtnorm)
+ ("r-plotrix" ,r-plotrix)))
+ (home-page "https://github.com/kornl/mutoss/")
+ (synopsis "Unified multiple testing procedures")
+ (description
+ "This package is designed to ease the application and comparison of
+multiple hypothesis testing procedures for FWER, gFWER, FDR and FDX. Methods
+are standardized and usable by the accompanying mutossGUI package.")
+ ;; Any version of the GPL.
+ (license (list license:gpl2+ license:gpl3+))))
+
+;; This is a CRAN package, but it depends on mutoss, which depends on multtest
+;; from Bioconductor, so we put it here.
+(define-public r-metap
+ (package
+ (name "r-metap")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "metap" version))
+ (sha256
+ (base32
+ "0pfbcixjrzx81l9wqhlp55khg9k63zf8pvg2n39c19akr4ppzhvf"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-lattice" ,r-lattice)
+ ("r-mutoss" ,r-mutoss)
+ ("r-rdpack" ,r-rdpack)
+ ("r-tfisher" ,r-tfisher)))
+ (home-page "http://www.dewey.myzen.co.uk/meta/meta.html")
+ (synopsis "Meta-analysis of significance values")
+ (description
+ "The canonical way to perform meta-analysis involves using effect sizes.
+When they are not available this package provides a number of methods for
+meta-analysis of significance values including the methods of Edgington,
+Fisher, Stouffer, Tippett, and Wilkinson; a number of data-sets to replicate
+published results; and a routine for graphical display.")
+ (license license:gpl2)))
+
(define-public r-triform
(package
(name "r-triform")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 74a44874ee..bdb3ff761b 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -8239,6 +8239,35 @@ identify genotyping errors, and to perform single-QTL and two-QTL,
two-dimensional genome scans.")
(license license:gpl3)))
+(define-public r-qtl2
+ (package
+ (name "r-qtl2")
+ (version "0.20")
+ (source (origin
+ (method git-fetch)
+ ;; Not yet available in cran.
+ (uri (git-reference
+ (url "https://github.com/rqtl/qtl2.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0l1asr28q25jzbwrbg5490962sg3y4sjrd0qf09p78ws1aq8vfs0"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-data-table" ,r-data-table)
+ ("r-jsonlite" ,r-jsonlite)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcppeigen" ,r-rcppeigen)
+ ("r-rsqlite" ,r-rsqlite)
+ ("r-yaml" ,r-yaml)))
+ (home-page "https://kbroman.org/qtl2/")
+ (synopsis
+ "QTL analysis software for high-dimensional data and complex cross designs")
+ (description
+ "R/qtl2 (aka qtl2) is a reimplementation of the QTL analysis software
+R/qtl, to better handle high-dimensional data and complex cross designs.")
+ (license license:gpl3)))
+
(define-public r-zlibbioc
(package
(name "r-zlibbioc")
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 8ef017845f..c5930fccb5 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -416,7 +417,7 @@ desktops.")
(define-public qbittorrent
(package
(name "qbittorrent")
- (version "4.1.9.1")
+ (version "4.2.0")
(source
(origin
(method git-fetch)
@@ -425,7 +426,7 @@ desktops.")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "19zgqlby7i1kr20wa4zd99qzd062a879xxxbmlf40rnqiqy4bhyi"))))
+ (base32 "17vm6aa2k8k1q14z9r2r06c794bcr4m0l0fdsn08wid6mj1zjsbx"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 720f7fccbc..c0cb4ae7fd 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -1749,7 +1749,7 @@ possible to write plugins to add your own checks.")
(let ((pylint (package-with-python2
(strip-python2-variant python-pylint))))
(package (inherit pylint)
- (version "1.7.2")
+ (version "1.9.5")
(source
(origin
(method git-fetch)
@@ -1759,7 +1759,7 @@ possible to write plugins to add your own checks.")
(file-name (git-file-name (package-name pylint) version))
(sha256
(base32
- "0yyc1gxq66li2adyx8njs83dh1pliylzkdmihw0k5bn6z4aakh8s"))))
+ "02a89d8a47s7nfiv1ady3j0sg2sbyja3np145brarfp5x9qxz9x2"))))
(arguments
`(,@(package-arguments pylint)
#:phases
diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm
index 9548352d12..03700b0bcb 100644
--- a/gnu/packages/cluster.scm
+++ b/gnu/packages/cluster.scm
@@ -26,6 +26,7 @@
#:use-module (guix packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages sphinx)
@@ -87,7 +88,7 @@ independently or together to provide resilient infrastructures.")
(define-public libraft
(package
(name "libraft")
- (version "0.9.5")
+ (version "0.9.11")
(home-page "https://github.com/canonical/raft")
(source (origin
(method git-fetch)
@@ -96,10 +97,17 @@ independently or together to provide resilient infrastructures.")
(file-name (git-file-name name version))
(sha256
(base32
- "1q49f5mmv6nr6dxhnp044xwc6jlczgh0nj0bl6718wiqh28411x0"))))
- (arguments '(#:configure-flags '("--disable-uv")))
- ;; The uv plugin tests fail, if libuv (or the example) is enabled,
- ;; because setting up the environment requires too much privileges.
+ "00rsq4z9nykmf7r5rlpv1y6bvckcmg3zv57vh1h681y5pij6cch1"))))
+ (arguments '(#:configure-flags '("--enable-uv")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ (substitute* "Makefile.am"
+ ((".*test_uv_append.c.*") ""))
+ #t)))))
+ (inputs
+ `(("libuv" ,libuv)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 90cd001ba2..5618062a22 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -176,9 +176,11 @@
(version (string-append version "-" revision "." (string-take commit 7)))
(source (origin
(method url-fetch)
- (uri (string-append "https://gitlab.com/janneke/tinycc"
- "/-/archive/" commit
- "/tinycc-" commit ".tar.gz"))
+ (uri (list (string-append "mirror://gnu/guix/mirror"
+ "/tinycc-" commit ".tar.gz")
+ (string-append "https://gitlab.com/janneke/tinycc"
+ "/-/archive/" commit
+ "/tinycc-" commit ".tar.gz")))
(sha256
(base32
"1hmzn1pq0x22ppd80hyrn5qzqq94mxd0ychzj6vrr2vnj2frjv5b"))))
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 905931acbd..df42c474d9 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -24,6 +24,7 @@
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2108,3 +2109,32 @@ at run time, and must be installed separately.")
archives generated by @command{makeself} or @command{mojo} without running the
possibly untrusted extraction shell script.")
(license license:gpl3+))))
+
+(define-public ncompress
+ (package
+ (name "ncompress")
+ (version "4.2.4.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vapier/ncompress")
+ (commit (string-append "v" version))))
+ (patches (search-patches "ncompress-fix-softlinks.patch"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0s3ik7k5a5vzcfiayhsxrc87drg3l425aqapspmw5py91b9jhc8r"))))
+ (arguments
+ '(#:make-flags (list "CC=gcc"
+ (string-append "BINDIR=" %output "/bin")
+ (string-append "MANDIR=" %output "/share/man/man1"))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))
+ (build-system gnu-build-system)
+ (home-page "https://github.com/vapier/ncompress/")
+ (synopsis "Original Lempel-Ziv compress/uncompress programs")
+ (description "(N)compress provides the original compress and uncompress
+programs that used to be the de facto UNIX standard for compressing and
+uncompressing files. These programs implement a fast, simple Lempel-Ziv (LZW)
+file compression algorithm.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 592200bb13..ad8c6ebe67 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -421,14 +421,14 @@ such as copy/paste from an R session.")
(define-public r-callr
(package
(name "r-callr")
- (version "3.3.2")
+ (version "3.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "callr" version))
(sha256
(base32
- "12dbqzjngbyaqdyw0yq1blyfx8pagcvx1vqj2jm451hs25nhdrnh"))))
+ "1hvxw2glizq8g0qnxakcxh8jc5scn0hp1x8i70fdpqwwbgx49slr"))))
(build-system r-build-system)
(propagated-inputs
`(("r-r6" ,r-r6)
@@ -619,14 +619,14 @@ applications.")
(define-public r-htmltable
(package
(name "r-htmltable")
- (version "1.13.2")
+ (version "1.13.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "htmlTable" version))
(sha256
(base32
- "0h6jslchlx1dzqqdb70c3n9xlapcym9ykycvr0hc4q3450y8qmvh"))))
+ "0g9r156k9yl1f092hfw3b9wjx11akf0shbi3x0d0mvpnflvc8nfl"))))
(properties `((upstream-name . "htmlTable")))
(build-system r-build-system)
(propagated-inputs
@@ -2472,14 +2472,14 @@ data). Weighted versions of MLE, MME and QME are available.")
(define-public r-energy
(package
(name "r-energy")
- (version "1.7-6")
+ (version "1.7-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "energy" version))
(sha256
(base32
- "16m8bxfgr9sdisjy2qrv6fv5xxwcc9q890l0hpbwq6qzisrdn3lh"))))
+ "13wnx5nwk7nsv7vf5sxhz4y0rxrnzm76ldgywk1bxrz67srqzf37"))))
(build-system r-build-system)
(propagated-inputs
`(("r-boot" ,r-boot)
@@ -2821,14 +2821,14 @@ Optimization problems by using the simplex algorithm.")
(define-public r-geometry
(package
(name "r-geometry")
- (version "0.4.4")
+ (version "0.4.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "geometry" version))
(sha256
(base32
- "1mx5n5mw63nij4n6crs9165mlls4fnh1ipw5ch467rjsidgl0mg8"))))
+ "1n10l8ax3783v3lgaacb15qsn8b3f0wpmhg3k39j31s6ciyd3vcg"))))
(build-system r-build-system)
(propagated-inputs
`(("r-magic" ,r-magic)
@@ -3745,18 +3745,20 @@ plots in @code{ggplot2}.")
(define-public r-cli
(package
(name "r-cli")
- (version "1.1.0")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "cli" version))
(sha256
(base32
- "02hdwvdq5nic6dhxj88jbgsc9m8yrz3yibigg6szkggxyk6hzh2g"))))
+ "1gv3zqdipj29ivkw5dsi1qdlra7q4lcrcqvlg9fns7d670yglfki"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
- ("r-crayon" ,r-crayon)))
+ ("r-crayon" ,r-crayon)
+ ("r-fansi" ,r-fansi)
+ ("r-glue" ,r-glue)))
(home-page "https://github.com/r-lib/cli#readme")
(synopsis "Helpers for developing command line interfaces")
(description "This package provides a suite of tools designed to build
@@ -4121,31 +4123,6 @@ functions to compile LaTeX documents, and install missing LaTeX packages
automatically.")
(license license:expat)))
-(define-public r-metap
- (package
- (name "r-metap")
- (version "1.1")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "metap" version))
- (sha256
- (base32
- "10kv7z8pik5iy374h399vws0ldf41y2nczlwh8axqf9dcwl084i0"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-lattice" ,r-lattice)
- ("r-rdpack" ,r-rdpack)))
- (home-page "http://www.dewey.myzen.co.uk/meta/meta.html")
- (synopsis "Meta-analysis of significance values")
- (description
- "The canonical way to perform meta-analysis involves using effect sizes.
-When they are not available this package provides a number of methods for
-meta-analysis of significance values including the methods of Edgington,
-Fisher, Stouffer, Tippett, and Wilkinson; a number of data-sets to replicate
-published results; and a routine for graphical display.")
- (license license:gpl2)))
-
(define-public r-network
(package
(name "r-network")
@@ -4191,6 +4168,30 @@ supports arbitrary vertex/edge/graph attributes.")
software developed by the Statnet Project.")
(license license:gpl3)))
+(define-public r-statcheck
+ (package
+ (name "r-statcheck")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "statcheck" version))
+ (sha256
+ (base32
+ "0ivybdcrymlsfv6pg6p5bv70qdvgxf2vgp0kf4r0pf2fcvav1mcp"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ggplot2" ,r-ggplot2)
+ ("r-plyr" ,r-plyr)
+ ("r-rmarkdown" ,r-rmarkdown)))
+ (home-page "https://cran.r-project.org/web/packages/statcheck/")
+ (synopsis "Extract statistics from articles and recompute p-values")
+ (description "This package can automatically extract statistical
+null-hypothesis significant testing (NHST) results from articles and recompute
+the p-values based on the reported test statistic and degrees of freedom to
+detect possible inconsistencies.")
+ (license license:gpl2)))
+
(define-public r-sna
(package
(name "r-sna")
@@ -4215,6 +4216,35 @@ methods, structural equivalence detection, network regression, random graph
generation, and 2D/3D network visualization.")
(license license:gpl2+)))
+(define-public r-tfisher
+ (package
+ (name "r-tfisher")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "TFisher" version))
+ (sha256
+ (base32
+ "0vz74ww1lf1prfwz74hfsi3a8nzq8ss7aqjr85c1d87vss2796xx"))))
+ (properties `((upstream-name . "TFisher")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-matrix" ,r-matrix)
+ ("r-mvtnorm" ,r-mvtnorm)
+ ("r-sn" ,r-sn)))
+ (home-page "https://cran.r-project.org/web/packages/TFisher/")
+ (synopsis "Optimal thresholding Fisher's p-value combination method")
+ (description
+ "This package provides the @dfn{cumulative distribution function} (CDF),
+quantile, and statistical power calculator for a collection of thresholding
+Fisher's p-value combination methods, including Fisher's p-value combination
+method, truncated product method and, in particular, soft-thresholding
+Fisher's p-value combination method which is proven to be optimal in some
+context of signal detection. The p-value calculator for the omnibus version
+of these tests are also included.")
+ (license license:gpl2)))
+
(define-public r-ttr
(package
(name "r-ttr")
@@ -4515,14 +4545,14 @@ applied econometric analysis.")
(define-public r-cubature
(package
(name "r-cubature")
- (version "2.0.3")
+ (version "2.0.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "cubature" version))
(sha256
(base32
- "0wvs80i4axj7pdcy9gjl08qzjbcjkldha94xy4gdxc34vgmh7gvr"))))
+ "0jpyq8j7x06dpiz29w48av879ygldzgls9z810192hsymkmfaz6r"))))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)))
@@ -4683,22 +4713,50 @@ ordered factor data types.")
exponentiation.")
(license license:gpl2)))
+(define-public r-egg
+ (package
+ (name "r-egg")
+ (version "0.4.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "egg" version))
+ (sha256
+ (base32
+ "1fy7srpiavfn8kyrr1m84an7acgwi6ydzrg71m3b0vk7y9ybmj0m"))))
+ (properties `((upstream-name . "egg")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ggplot2" ,r-ggplot2)
+ ("r-gridextra" ,r-gridextra)
+ ("r-gtable" ,r-gtable)))
+ (home-page "https://cran.r-project.org/web/packages/egg")
+ (synopsis "Extensions for ggplot2")
+ (description
+ "This package provides miscellaneous functions to help customize ggplot2
+objects. High-level functions are provided to post-process ggplot2 layouts
+and allow alignment between plot panels, as well as setting panel sizes to
+fixed values. Other functions include a custom @code{geom}, and helper
+functions to enforce symmetric scales or add tags to facetted plots.")
+ (license license:gpl3)))
+
(define-public r-heatmaply
(package
(name "r-heatmaply")
- (version "0.16.0")
+ (version "1.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "heatmaply" version))
(sha256
(base32
- "1qhxk48qh61qjxdlhl0qffdh3yh8iiwccid5ssngdv433q0cmyc1"))))
+ "0576gml3bcl7r1biigzj1rag2xzz422knbw7arc8d2gsakjj757g"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
("r-colorspace" ,r-colorspace)
("r-dendextend" ,r-dendextend)
+ ("r-egg" ,r-egg)
("r-ggplot2" ,r-ggplot2)
("r-htmlwidgets" ,r-htmlwidgets)
("r-magrittr" ,r-magrittr)
@@ -5335,18 +5393,17 @@ additional external tools on any platform.")
(define-public r-openxlsx
(package
(name "r-openxlsx")
- (version "4.1.3")
+ (version "4.1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "openxlsx" version))
(sha256
(base32
- "087zivh9xdh1kk8zci67ys0m2xq0slzwgnf0jl05yy4gsgb6nmyx"))))
+ "1mwxldw9i9nfksx1i6h1kfs7vmsz9fgyllbsipar4vnfyqhqp8q7"))))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)
- ("r-rlang" ,r-rlang)
("r-stringi" ,r-stringi)
("r-zip" ,r-zip)))
(home-page "https://github.com/awalker89/openxlsx")
@@ -5541,14 +5598,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
(define-public r-renv
(package
(name "r-renv")
- (version "0.8.3")
+ (version "0.9.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "renv" version))
(sha256
(base32
- "0034jlaq7z40q3hcpkjlaff37dpn46kvxvzw4scbwlw4x9q8sx9j"))))
+ "0mwqpcay6v1hnvhggsrn1chvdlhi9hwvsswas8ysygfy5wxxz1sm"))))
(properties `((upstream-name . "renv")))
(build-system r-build-system)
(home-page "https://rstudio.github.io/renv")
@@ -5868,14 +5925,14 @@ structured in groups, etc. and hierarchical cluster analysis.")
(define-public r-factoextra
(package
(name "r-factoextra")
- (version "1.0.5")
+ (version "1.0.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "factoextra" version))
(sha256
(base32
- "1l6m8k7qhdw8ndar8nhmym0lfyd1i2iszl1cicjax0vq23ss6xw1"))))
+ "0bpsbcmp6jpa9qk53dhfzghrz98dh0h0n68brl7rjz724yjbvhn8"))))
(build-system r-build-system)
(propagated-inputs
`(("r-abind" ,r-abind)
@@ -9204,14 +9261,14 @@ image formats, including PNG, Postscript, SVG, PGF.")
(define-public r-multicool
(package
(name "r-multicool")
- (version "0.1-10")
+ (version "0.1-11")
(source
(origin
(method url-fetch)
(uri (cran-uri "multicool" version))
(sha256
(base32
- "1ybg9piya9psqg42w9i3zsnavbxhkfklfwl7cb420i5nkq6wpc2v"))))
+ "0xk408qbz9cxwf51j3pmy55gcjcnws8mc6j3vyn9zhramxj7x40w"))))
(build-system r-build-system)
(propagated-inputs `(("r-rcpp" ,r-rcpp)))
(home-page "https://cran.r-project.org/web/packages/multicool/")
@@ -10996,13 +11053,13 @@ This makes it a convenient and fast interface to C/C++ and Fortran code.")
(define-public r-spam
(package
(name "r-spam")
- (version "2.4-0")
+ (version "2.5-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "spam" version))
(sha256
- (base32 "0xb7a0x1i93kzijr518m9plzmg8s3mxh5anwfx9xrkg5ipldvz10"))))
+ (base32 "1wfv45jq8zy8kyjr308zicc1461y1777qll1cy6lw4071f9rvba2"))))
(build-system r-build-system)
(propagated-inputs
`(("r-dotcall64" ,r-dotcall64)))
@@ -11451,14 +11508,14 @@ by change of variable.")
(define-public r-listenv
(package
(name "r-listenv")
- (version "0.7.0")
+ (version "0.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "listenv" version))
(sha256
(base32
- "0ma5jsri2zqkrlsm9nqpikl7imbwfy1glsmk13mblw0q245h49k1"))))
+ "0ps8bk7zlhbviawrw7vw25skjq81hkk3ijyi6g74dmfqy8zsyapx"))))
(build-system r-build-system)
(native-inputs
`(("r-r-rsp" ,r-r-rsp))) ; vignette builder
@@ -11474,14 +11531,14 @@ subsetting.")
(define-public r-globals
(package
(name "r-globals")
- (version "0.12.4")
+ (version "0.12.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "globals" version))
(sha256
(base32
- "0szyv1ayyk31bh3xqlkj43020w44xq6s4rw2bxwizyjssxm3b1br"))))
+ "1ha8iasgijp4q3v2b0b17y1wh7cd3nvzd9b03w49qm2bidkaf68m"))))
(build-system r-build-system)
(propagated-inputs
`(("r-codetools" ,r-codetools)))
@@ -12392,14 +12449,14 @@ running IRkernel session.")
(define-public r-irkernel
(package
(name "r-irkernel")
- (version "1.0.2")
+ (version "1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "IRkernel" version))
(sha256
(base32
- "040qig675zaxsf81ranmvk293amrswi5098k69wyq0vgqyin6vwp"))))
+ "1viqxs91dys1z4cf7gb59rmqvzb8lc7jdp4azrpmhgwa8qf46s94"))))
(properties `((upstream-name . "IRkernel")))
(build-system r-build-system)
(arguments
@@ -14662,6 +14719,89 @@ they are often difficult to interpret. Rex allows you to build complex
regular expressions from human readable expressions")
(license license:expat)))
+(define-public r-xmlparsedata
+ (package
+ (name "r-xmlparsedata")
+ (version "1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "xmlparsedata" version))
+ (sha256
+ (base32
+ "0gjr3l5z5dp276lchr2649as1rkj56d2mlvbr66yg393zzw50lsh"))))
+ (properties `((upstream-name . "xmlparsedata")))
+ (build-system r-build-system)
+ (home-page "https://github.com/r-lib/xmlparsedata#readme")
+ (synopsis "Parse data of @code{R} code as an @code{XML} tree")
+ (description
+ "This package provides tools to convert the output of
+@code{utils::getParseData()} to an @code{XML} tree, that one can search via
+@code{XPath}, and is easier to manipulate in general.")
+ (license license:expat)))
+
+(define-public r-cyclocomp
+ (package
+ (name "r-cyclocomp")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "cyclocomp" version))
+ (sha256
+ (base32
+ "0gky3svk02wiajw7nfjh30684h3qxili4bvsab0m7b6cggw6bgyd"))))
+ (properties `((upstream-name . "cyclocomp")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-callr" ,r-callr)
+ ("r-crayon" ,r-crayon)
+ ("r-desc" ,r-desc)
+ ("r-remotes" ,r-remotes)
+ ("r-withr" ,r-withr)))
+ (home-page "https://github.com/MangoTheCat/cyclocomp")
+ (synopsis "Cyclomatic complexity of R code")
+ (description
+ "Cyclomatic complexity is a software metric, used to indicate the
+complexity of a program. It is a quantitative measure of the number of
+linearly independent paths through a program's source code. This package
+provides tools to compute this metric.")
+ (license license:expat)))
+
+(define-public r-lintr
+ (package
+ (name "r-lintr")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "lintr" version))
+ (sha256
+ (base32
+ "09gbci4v5n4gsfzminly8332fw7faxdi1kkyvpa10dydx02sjcwb"))))
+ (properties `((upstream-name . "lintr")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-codetools" ,r-codetools)
+ ("r-crayon" ,r-crayon)
+ ("r-cyclocomp" ,r-cyclocomp)
+ ("r-digest" ,r-digest)
+ ("r-httr" ,r-httr)
+ ("r-jsonlite" ,r-jsonlite)
+ ("r-knitr" ,r-knitr)
+ ("r-rex" ,r-rex)
+ ("r-rstudioapi" ,r-rstudioapi)
+ ("r-stringdist" ,r-stringdist)
+ ("r-testthat" ,r-testthat)
+ ("r-xml2" ,r-xml2)
+ ("r-xmlparsedata" ,r-xmlparsedata)))
+ (home-page "https://github.com/jimhester/lintr")
+ (synopsis "Linter for R code")
+ (description "This package checks adherence to a given style, syntax
+errors and possible semantic issues. It supports on the fly checking of R
+code edited with @code{RStudio IDE}, @code{Emacs} and @code{Vim}.")
+ (license license:expat)))
+
(define-public r-sctransform
(package
(name "r-sctransform")
@@ -15098,14 +15238,14 @@ easily.")
(define-public r-umap
(package
(name "r-umap")
- (version "0.2.3.1")
+ (version "0.2.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "umap" version))
(sha256
(base32
- "0rzz1s029cn1w1bf5va2pav2lg9j1mq97ibwcln39drvm67kj76d"))))
+ "1dzbwq96k5vqr64wk6s26ks4311h570xg6gf0prr4vnn033pqnch"))))
(build-system r-build-system)
(propagated-inputs
`(("r-openssl" ,r-openssl)
@@ -15123,14 +15263,14 @@ in R, including a translation of the original algorithm into R.")
(define-public r-uwot
(package
(name "r-uwot")
- (version "0.1.4")
+ (version "0.1.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "uwot" version))
(sha256
(base32
- "1y9wpzs92d1fl2x5figfywd48lkyhwx37j542z0rf6ckrl46n89n"))))
+ "0pz9wa89xq4d119q86lskrznf979m0r1db8iaprcz7kxbi6b8lrj"))))
(build-system r-build-system)
(propagated-inputs
`(("r-dqrng" ,r-dqrng)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 80c598ed86..e63823de2c 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -852,15 +852,16 @@ cannot sign messages in OpenBSD format yet.")
(define-public enchive
(package
(name "enchive")
- (version "3.4")
+ (version "3.5")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/skeeto/" name "/archive/"
- version ".tar.gz"))
- (sha256
- (base32
- "17hrxpp4cpn10bk48sfvfjc8hghky34agsnypam1v9f36kbalqfk"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/skeeto/enchive")
+ (commit version)))
+ (sha256
+ (base32
+ "0fdrfc5l42lj2bvmv9dmkmhmm7qiszwk7cmdvnqad3fs7652g0qa"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target '
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 70d2062448..948cc30cf6 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -617,7 +617,15 @@ provisioning etc.")
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (out-bin (string-append out "/bin")))
+ (out-bin (string-append out "/bin"))
+ (etc (string-append out "/etc")))
+ (with-directory-excursion "src/github.com/docker/cli/contrib/completion"
+ (install-file "bash/docker"
+ (string-append etc "/bash_completion.d"))
+ (install-file "fish/docker.fish"
+ (string-append etc "/fish/completions"))
+ (install-file "zsh/_docker"
+ (string-append etc "/zsh/site-functions")))
(chdir "build")
(install-file "docker" out-bin)
#t))))))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 53f5a89341..44e38ee545 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -7965,14 +7965,14 @@ passive voice.")
(name "emacs-org")
;; emacs-org-contrib inherits from this package. Please update its sha256
;; checksum as well.
- (version "9.2.6")
+ (version "9.3")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/org-"
version ".tar"))
(sha256
(base32
- "0ikd78k4yw4sm5x7l3dsbvfcmvnv5qna2mxirr560gvcnzhr0zg4"))))
+ "0pyfx4xzzi3qqip958rs7j5ca1r4i5v6dfkx5kbp2ndhqmxbfxjw"))))
(build-system emacs-build-system)
(home-page "https://orgmode.org/")
(synopsis "Outline-based notes management and organizer")
@@ -7986,14 +7986,14 @@ programming and reproducible research.")
(package
(inherit emacs-org)
(name "emacs-org-contrib")
- (version "20190904")
+ (version "20191203")
(source (origin
(method url-fetch)
(uri (string-append "https://orgmode.org/elpa/"
"org-plus-contrib-" version ".tar"))
(sha256
(base32
- "08s3fk3jim0y2v00l6ah8y08ba8wbcf29z6fxqzyaxj58a5sq81a"))))
+ "1kvw95492acb7gqn8gxbp1vg4fyw80w43yvflxnfxdf6jnnw2wah"))))
(arguments
`(#:modules ((guix build emacs-build-system)
(guix build utils)
@@ -9227,15 +9227,16 @@ configuration of Chinese fonts.")
(define-public emacs-php-mode
(package
(name "emacs-php-mode")
- (version "20171225.342")
+ (version "1.22.1")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://melpa.org/packages/php-mode-"
- version ".tar"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ejmr/php-mode.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1zz682f34v4wsm2dyj1gnrnvsrqdq1cy7j8p6cvc398w2fziyg3q"))))
+ "1yc7f39bv2ni8q5372r4kj04z7rikvc8w1mqx5c4zph5r02jab7i"))))
(build-system emacs-build-system)
(home-page "https://github.com/ejmr/php-mode")
(synopsis "Major mode for editing PHP code")
@@ -10149,19 +10150,19 @@ additions:
(license license:gpl3+))))
(define-public emacs-dired-sidebar
- (let ((commit "06bd0d40bab812c61a668129daf29ba359424454")
- (revision "0"))
+ (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
+ (revision "1"))
(package
(name "emacs-dired-sidebar")
(home-page "https://github.com/jojojames/dired-sidebar")
- (version (git-version "0.0.1" revision commit))
+ (version (git-version "0.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
- "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
+ "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dired-subtree" ,emacs-dired-hacks)))
@@ -10499,13 +10500,14 @@ query them from the comfort of your editor.")
(version "0.1.2")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "http://stable.melpa.org/packages/prop-menu-"
- version ".el"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/david-christiansen/prop-menu-el.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "01bk4sjafzz7gqrkv9jg0pa85qr34vbk3q8ga2b0m61bndywzgpr"))))
+ "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
(build-system emacs-build-system)
(home-page
"https://github.com/david-christiansen/prop-menu-el")
@@ -17229,6 +17231,52 @@ Nix expressions. It supports syntax highlighting, indenting and refilling of
comments.")
(license license:lgpl2.1+)))
+(define-public emacs-libmpdel
+ (package
+ (name "emacs-libmpdel")
+ (version "1.1.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitea.petton.fr/mpdel/libmpdel.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
+ (build-system emacs-build-system)
+ (home-page "https://gitea.petton.fr/mpdel/libmpdel")
+ (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
+ (description
+ "An Emacs library client to communicate with Music Player Daemon (MPD), a
+flexible, powerful, server-side application for playing music.")
+ (license license:gpl3+)))
+
+(define-public emacs-mpdel
+ (package
+ (name "emacs-mpdel")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitea.petton.fr/mpdel/mpdel.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
+ (build-system emacs-build-system)
+ (inputs
+ `(("emacs-libmpdel" ,emacs-libmpdel)))
+ (home-page "https://gitea.petton.fr/mpdel/mpdel")
+ (synopsis "Emacs user interface for Music Player Daemon (MPD)")
+ (description
+ "MPDel provides an Emacs user interface to control playback (play, pause,
+next, volume) and display and control the current playlist as well as your
+stored playlists.")
+ (license license:gpl3+)))
+
(define-public emacs-simple-mpc
;; There have been no releases.
(let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
@@ -17618,7 +17666,7 @@ the standard @code{Dockerfile} file format.")
(define-public emacs-lsp-mode
(package
(name "emacs-lsp-mode")
- (version "6.1")
+ (version "6.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -17627,14 +17675,15 @@ the standard @code{Dockerfile} file format.")
(file-name (git-file-name name version))
(sha256
(base32
- "0jn5slhv9zfs446a5966bfg9dq144g22v79wnkx9hxq7if78p652"))))
+ "0f9d0zhblcjzrpggqclww2g7fyjky5rzpp7zj424005ahv0zd3xf"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-f" ,emacs-f)
("emacs-ht" ,emacs-ht)
("emacs-markdown-mode" ,emacs-markdown-mode)
- ("emacs-spinner" ,emacs-spinner)))
+ ("emacs-spinner" ,emacs-spinner)
+ ("emacs-hydra" ,emacs-hydra)))
(home-page "https://github.com/emacs-lsp/lsp-mode")
(synopsis "Emacs client and library for the Language Server Protocol")
(description "@code{LSP-mode} is a client and library implementation for
@@ -19145,17 +19194,17 @@ text-property translator.")
(define-public emacs-org-noter
(package
(name "emacs-org-noter")
- (version "1.3.0")
+ (version "1.4.1")
(source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://stable.melpa.org/packages/org-noter-"
- version
- ".el"))
- (sha256
- (base32
- "1hczwva73gsyanl1ldhdvql01gy0hy2g861yzkaklyb763sx58x4"))))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/weirdNox/org-noter.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-org" ,emacs-org)))
(home-page "https://github.com/weirdNox/org-noter")
@@ -19682,6 +19731,54 @@ You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
@code{tao-theme-use-height}.")
(license license:gpl3+))))
+(define-public emacs-almost-mono-themes
+ (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
+ (revision "0"))
+ (package
+ (name "emacs-almost-mono-themes")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cryon/almost-mono-themes.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/cryon/almost-mono-themes")
+ (synopsis "Almost monochromatic themes for emacs in a few variants")
+ (description
+ "This package provides a collection of almost monochrome Emacs themes:
+@code{almost-mono-black} and @code{almost-mono-white}.")
+ (license license:gpl3+))))
+
+(define-public emacs-quasi-monochrome
+ (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
+ (revision "0"))
+ (package
+ (name "emacs-quasi-monochrome")
+ (version (git-version "1.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lbolla/emacs-quasi-monochrome.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
+ (synopsis "Dark color theme for Emacs")
+ (description
+ "This package provides a dark color theme with a black background, high
+contrast and few colors.")
+ (license license:gpl3+))))
+
(define-public emacs-doom-themes
(package
(name "emacs-doom-themes")
@@ -19716,6 +19813,33 @@ Emacs that integrate with major modes like Org-mode.")
(home-page "https://github.com/hlissner/emacs-doom-themes")
(license license:expat)))
+(define-public emacs-modus-themes
+ (package
+ (name "emacs-modus-themes")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/protesilaos/modus-themes.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "15g63675c5df2p0kk2sqj2c8qriyh69lcbggknqlaxapr13giz4x"))))
+ (build-system emacs-build-system)
+ (home-page "https://gitlab.com/protesilaos/modus-themes")
+ (synopsis "Emacs themes designed for colour-contrast accessibility")
+ (description
+ "This is a set of accessible themes for GNU Emacs. The contrast ratio
+between foreground and background values should always be >= 7:1, which
+conforms with the WCAG AAA accessibility standard.
+
+The Modus themes project consists of two standalone items, one where dark text
+is cast on a light backdrop (Modus Operandi) and another where light text is
+displayed against a dark background (Modus Vivendi).")
+ (license license:gpl3+)))
+
(define-public emacs-elixir-mode
(package
(name "emacs-elixir-mode")
@@ -19946,8 +20070,8 @@ fish-completion. It can be used in both Eshell and M-x shell.")
(license license:gpl3+))))
(define-public emacs-telega
- (let ((commit "019e923f933370d75dbe0a8473a18eb66fe94c0e")
- (revision "1")
+ (let ((commit "56aef884921d99e5170d5425dbe0fce645620511")
+ (revision "2")
(version "0.4.4"))
(package
(name "emacs-telega")
@@ -19960,11 +20084,11 @@ fish-completion. It can be used in both Eshell and M-x shell.")
(commit commit)))
(sha256
(base32
- "058814agkq8mp9ajpj8sz51rm9nigs2xpsdij05wjkxhfq30kqva"))
+ "0a8k3j20nz4xwswg9qp9xpaakk3q3ibiz8mkryk92zmrdmaah5mi"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f
+ `(#:test-target "test"
#:modules ((guix build gnu-build-system)
((guix build emacs-build-system) #:prefix emacs:)
(guix build utils)
@@ -19974,31 +20098,79 @@ fish-completion. It can be used in both Eshell and M-x shell.")
(guix build emacs-utils))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'unpack-patch
+ (add-after 'unpack 'prefix-patch
(lambda _
(substitute* "server/Makefile"
(("CC=cc")
"CC=gcc")
(("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
(string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
- "/bin")))
+ "/bin"))
+ ;; Manually invoke `run_tests.py` after install phase.
+ (("python3 run_tests.py")
+ ""))
+ #t))
+ ;; Modify telega-util to reflect unique dir name in
+ ;; `telega-install-data' phase.
+ (add-after 'unpack 'telega-data-patch
+ (lambda _
+ (substitute* "telega-util.el"
+ (("\\(concat \"etc/\" filename\\) telega--lib-directory")
+ "(concat \"telega-data/\" filename)
+ (locate-dominating-file telega--lib-directory
+ \"telega-data\")"))
+ #t))
+ ;; The telega test suite checks for a version of Emacs
+ ;; compiled with imagemagick and svg support. Since we
+ ;; are using `emacs-minimal`, this step will fail.
+ ;; Grok the failing test, and remove problematic assertions.
+ (add-after 'unpack 'ert-suite-patch
+ (lambda _
+ (substitute* "telega-core.el"
+ (("\\(image-type-available-p 'imagemagick\\) nil")
+ "t")
+ (("\\(image-type-available-p 'svg\\) nil")
+ "t"))
+ #t))
+ ;; The server test suite has a hardcoded path.
+ ;; Reset this behavior to use the proper path.
+ (add-after 'unpack 'server-suite-patch
+ (lambda _
+ (substitute* "server/run_tests.py"
+ (("~/.telega/telega-server")
+ (string-append (assoc-ref %outputs "out")
+ "/bin/telega-server")))
+ #t))
+ (add-after 'install 'run-server-suite
+ (lambda _
+ (invoke "python3" "server/run_tests.py")
#t))
(delete 'configure)
-
+
;; Build emacs-side using `emacs-build-system'
(add-after 'compress-documentation 'emacs-add-source-to-load-path
(assoc-ref emacs:%standard-phases 'add-source-to-load-path))
- (add-after 'emacs-set-emacs-load-path 'emacs-install
+ (add-after 'emacs-add-source-to-load-path 'emacs-install
(assoc-ref emacs:%standard-phases 'install))
- (add-after 'emacs-install 'emacs-build
+ ;; This step installs subdir /etc, which contains images, sounds and
+ ;; various other data, next to the site-lisp dir.
+ (add-after 'emacs-install 'telega-install-data
+ (lambda* (#:key outputs #:allow-other-keys)
+ (copy-recursively
+ "etc"
+ (string-append (assoc-ref outputs "out")
+ "/share/emacs/telega-data/"))
+ #t))
+ (add-after 'telega-install-data 'emacs-build
(assoc-ref emacs:%standard-phases 'build))
- (add-after 'emacs-install 'emacs-make-autoloads
+ (add-after 'emacs-build 'emacs-make-autoloads
(assoc-ref emacs:%standard-phases 'make-autoloads)))))
(propagated-inputs
`(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
(native-inputs
`(("tdlib" ,tdlib)
- ("emacs" ,emacs-minimal)))
+ ("emacs" ,emacs-minimal)
+ ("python" ,python)))
(synopsis "GNU Emacs client for the Telegram messenger")
(description
"Telega is full-featured, unofficial client for the Telegram messaging
@@ -20081,3 +20253,244 @@ top-level header, start the minor mode with @code{org-present}, and page through
each slide with left/right keys.")
(home-page "https://github.com/rlister/org-present")
(license license:gpl2))))
+
+(define-public emacs-fullframe
+ (package
+ (name "emacs-fullframe")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tomterl/fullframe.git")
+ (commit version)))
+ (sha256
+ (base32
+ "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/tomterl/fullframe")
+ (synopsis "Generalized automatic execution in a single frame")
+ (description "This library provides helpers for single-window-per-frame
+execution of buffer-exposing commands.")
+ (license license:gpl3+)))
+
+(define-public emacs-repl-toggle
+ (package
+ (name "emacs-repl-toggle")
+ (version "0.6.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tomterl/repl-toggle.git")
+ (commit version)))
+ (sha256
+ (base32
+ "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-fullframe" ,emacs-fullframe)))
+ (home-page "https://github.com/tomterl/repl-toggle")
+ (synopsis "Switch to and from current major mode's REPL")
+ (description "This package provides a function to switch to and from a
+REPL appropriate to the current major mode.")
+ (license license:gpl3+)))
+
+(define-public emacs-blackout
+ (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
+ (revision "1"))
+ (package
+ (name "emacs-blackout")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/raxod502/blackout.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/raxod502/blackout")
+ (synopsis "Clean up mode lighters")
+ (description "This package provides a function for hiding and customizing
+display of major and minor modes in the mode line.")
+ (license license:gpl3+))))
+
+(define-public emacs-ivy-omni-org
+ (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
+ (revision "1"))
+ (package
+ (name "emacs-ivy-omni-org")
+ (version (git-version "0.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/akirak/ivy-omni-org.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-ivy" ,emacs-ivy)
+ ("emacs-dash" ,emacs-dash)))
+ (synopsis "Browse anything in Org mode")
+ (description "This package allows Org items to be accessed via the Ivy
+interface.")
+ (home-page "https://github.com/akirak/ivy-omni-org")
+ (license license:gpl3+))))
+
+(define-public emacs-shackle
+ (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
+ (revision "1"))
+ (package
+ (name "emacs-shackle")
+ (version (git-version "1.0.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wasamasa/shackle.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
+ (build-system emacs-build-system)
+ (synopsis "Enforce rules for popups")
+ (description "This package provides a global minor mode in which users
+can specify how popup-displaying functions occupy the screen.")
+ (home-page "https://github.com/wasamasa/shackle")
+ (license license:gpl3+))))
+
+(define-public emacs-helm-lacarte
+ (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
+ (revision "1"))
+ (package
+ (name "emacs-helm-lacarte")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emacs-helm/helm-lacarte.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-helm" ,emacs-helm)
+ ("emacs-lacarte" ,emacs-lacarte)))
+ (synopsis "Helm interface to @code{lacarte.el}")
+ (description "This package provides a Helm interface to
+@code{lacarte.el}, a package that displays mode-specific commands as menu
+items.")
+ (home-page "https://github.com/emacs-helm/helm-lacarte")
+ (license license:gpl3+))))
+
+(define-public emacs-esh-help
+ (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
+ (revision "1"))
+ (package
+ (name "emacs-esh-help")
+ (version (git-version "1.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tom-tan/esh-help.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)))
+ (synopsis "Help functions for Eshell")
+ (description "This package provides a @code{run-help} function inspired
+by @code{zsh} as well as @code{eldoc} support.")
+ (home-page "https://github.com/tom-tan/esh-help")
+ (license license:gpl3+))))
+
+(define-public emacs-isearch-dabbrev
+ (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
+ (revision "1"))
+ (package
+ (name "emacs-isearch-dabbrev")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Dewdrops/isearch-dabbrev.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
+ (build-system emacs-build-system)
+ (synopsis "Use @code{dabbrev} within @code{isearch}")
+ (description "This package allows @code{dabbrev-expand} to be used
+within @code{isearch-mode}.")
+ (home-page "https://github.com/Dewdrops/isearch-dabbrev")
+ (license license:gpl3+))))
+
+(define-public emacs-helm-linux-disks
+ (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
+ (revision "1"))
+ (package
+ (name "emacs-helm-linux-disks")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Akirak/helm-linux-disks.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-helm" ,emacs-helm)))
+ (synopsis "Mount/unmount volumes in Linux via Helm")
+ (description "This package provides a Helm interface to run operations
+on removable volumes in Linux.")
+ (home-page "https://github.com/Akirak/helm-linux-disks")
+ (license license:gpl3+))))
+
+(define-public emacs-psession
+ (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
+ (revision "1"))
+ (package
+ (name "emacs-psession")
+ (version (git-version "1.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thierryvolpiatto/psession.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-async" ,emacs-async)))
+ (synopsis "Persistent save of @code{elisp} objects.")
+ (description "This package provides minor modes for saving Emacs session
+data, including buffers, window configuration, variables, and more.")
+ (home-page "https://github.com/thierryvolpiatto/psession")
+ (license license:gpl3+))))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 95859b8a88..eba7f88551 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -143,6 +143,11 @@
(display
(string-append "(when (require 'guix-emacs nil t)\n"
" (guix-emacs-autoload-packages))\n"))))
+ ;; Remove the extraneous subdirs.el file, as it causes Emacs to
+ ;; add recursively all the the sub-directories of a profile's
+ ;; share/emacs/site-lisp union when added to EMACSLOADPATH,
+ ;; which leads to conflicts.
+ (delete-file (string-append lisp-dir "/subdirs.el"))
#t))))))
(inputs
`(("gnutls" ,gnutls)
@@ -187,8 +192,8 @@
(list (search-path-specification
(variable "EMACSLOADPATH")
;; The versioned entry is for the Emacs' builtin libraries.
- (files (list (string-append "share/emacs/" version "/lisp")
- "share/emacs/site-lisp")))
+ (files (list "share/emacs/site-lisp"
+ (string-append "share/emacs/" version "/lisp"))))
(search-path-specification
(variable "INFOPATH")
(files '("share/info")))))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 262a39d828..d79ca949f2 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -69,7 +69,7 @@
(define-public efl
(package
(name "efl")
- (version "1.23.2")
+ (version "1.23.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -77,7 +77,7 @@
version ".tar.xz"))
(sha256
(base32
- "14yljnnmb89s8j6ip08ip5d01zkgzbzr1h4fr4bwk9lh8r59x3ds"))))
+ "00b9lp3h65254kdb1ys15fv7p3ln7qsvf15jkw4kli5ymagadkjk"))))
(build-system meson-build-system)
(native-inputs
`(("check" ,check)
@@ -194,7 +194,7 @@ removable devices or support for multimedia.")
(define-public terminology
(package
(name "terminology")
- (version "1.5.0")
+ (version "1.6.0")
(source (origin
(method url-fetch)
(uri
@@ -202,7 +202,7 @@ removable devices or support for multimedia.")
"terminology/terminology-" version ".tar.xz"))
(sha256
(base32
- "0v4amfg8ji0mb6j7kcxh3wz1xw5zyxg4rw6ylx17rfw2nc1yamfy"))
+ "0xxx4xyhis6fy3frgb34ip0aj0kc4zashf60gzbxmq5gadbb0p5r"))
(modules '((guix build utils)))
;; Remove the bundled fonts.
(snippet
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 85bfd8dd38..1594cac846 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -41,6 +41,7 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages glib)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
@@ -146,63 +147,56 @@ non-determinism in the build process.")
(define-public glusterfs
(package
(name "glusterfs")
- (version "3.10.12")
+ (version "7.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.gluster.org/pub/gluster/glusterfs/"
- (version-major+minor version) "/" version
- "/glusterfs-" version ".tar.gz"))
+ (version-major version) "/"
+ (version-major+minor version) "/"
+ "glusterfs-" version ".tar.gz"))
(sha256
(base32
- "01ysvamvfv2l5pswa1rygpg8w0954h2wkh1ba97h3nx03m5n0prg"))
- (patches
- (search-patches "glusterfs-use-PATH-instead-of-hardcodes.patch"))))
+ "0yzhx710ypj0j3m5dcgmmgvkp7p0rmmp2p7ld0axrm4vpwc2b1wa"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
- (let ((out (assoc-ref %outputs "out")))
- (list (string-append "--with-initdir=" out "/etc/init.d")
- (string-append "--with-mountutildir=" out "/sbin")))
+ (let ((out (assoc-ref %outputs "out"))
+ (p2 (assoc-ref %build-inputs "python-2")))
+ (list (string-append "PYTHON=" p2 "/bin/python")
+ (string-append "--with-initdir=" out "/etc/init.d")
+ (string-append "--with-mountutildir=" out "/sbin")
+ "--enable-cmocka" ; unit tests
+ ;; "--enable-debug" ; debug build options
+ ;; "--enable-asan" ; Address Sanitizer
+ ;; "--enable-tsan" ; ThreadSanitizer
+ ))
#:phases
(modify-phases %standard-phases
- (add-before 'configure 'replace-config.sub
- (lambda* (#:key inputs #:allow-other-keys)
- ;; The distributed config.sub is intentionally left empty and
- ;; must be replaced.
- (install-file (string-append (assoc-ref inputs "automake")
- "/share/automake-"
- ,(version-major+minor (package-version automake)) "/config.sub")
- ".")
- #t))
- ;; Fix flex error. This has already been fixed with upstream commit
- ;; db3fe245a9e8812829eae7d143e49d0bfdfef9a7, but is not available in
- ;; current releases.
- (add-before 'configure 'fix-lex
- (lambda _
- (substitute* "libglusterfs/src/Makefile.in"
- (("libglusterfs_la_LIBADD = @LEXLIB@")
- "libglusterfs_la_LIBADD ="))
- #t)))))
+ (add-before 'configure 'autogen
+ (lambda _ (invoke "./autogen.sh"))))))
(native-inputs
- `(("cmocka" ,cmocka)
- ("pkg-config" ,pkg-config)
+ `(("pkg-config" ,pkg-config)
+ ("libtirpc", libtirpc)
+ ("rpcsvc-proto", rpcsvc-proto)
("python-2" ,python-2) ; must be version 2
("flex" ,flex)
("bison" ,bison)
- ("automake" ,automake)))
+ ("libtool" ,libtool)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("cmocka" ,cmocka)))
(inputs
`(("acl" ,acl)
- ;; GlusterFS fails to build with libressl because HMAC_CTX_new and
- ;; HMAC_CTX_free are undefined.
+ ("fuse", fuse)
("openssl" ,openssl)
("liburcu" ,liburcu)
("libuuid" ,util-linux)
("libxml2" ,libxml2)
- ("lvm2" ,lvm2)
("readline" ,readline)
- ("sqlite" ,sqlite) ; for tiering
- ("zlib" ,zlib)))
+ ("zlib" ,zlib)
+ ("libaio", libaio)
+ ("rdma-core", rdma-core)))
(home-page "https://www.gluster.org")
(synopsis "Distributed file system")
(description "GlusterFS is a distributed scalable network file system
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 1412c7ca95..5588fe00ea 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -43,6 +43,8 @@
#:use-module (guix build-system go)
#:use-module (guix utils)
#:use-module (gnu packages)
+ #:use-module (gnu packages aidc)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -1172,7 +1174,7 @@ Trezor wallet.")
(package
(inherit bitcoin-core)
(name "bitcoin-abc")
- (version "0.20.4")
+ (version "0.20.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.bitcoinabc.org/"
@@ -1180,7 +1182,15 @@ Trezor wallet.")
version ".tar.gz"))
(sha256
(base32
- "0fld54z3l7z7k5n35rrjichjnx37j9xp0rv8i69m3x4qfj1xk2np"))))
+ "0py5ilfi4r8qh5r9637vwch27sqrrn0dg9rz8bccnj3lp2xpzw27"))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python) ; for the tests
+ ("util-linux" ,util-linux) ; provides the hexdump command for tests
+ ("qttools" ,qttools)))
(inputs
`(("bdb" ,bdb-5.3)
("boost" ,boost)
@@ -1188,19 +1198,9 @@ Trezor wallet.")
("miniupnpc" ,miniupnpc)
("openssl" ,openssl)
("protobuf" ,protobuf)
- ("qtbase" ,qtbase)))
- (arguments
- (substitute-keyword-arguments (package-arguments bitcoin-core)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'fix-tests
- ;; Disable 'check-devtools' test which tries to run a
- ;; python script that doesn't exist.
- (lambda _
- (substitute* "Makefile.in"
- (("^check-local: check-devtools")
- "check-local:"))
- #t))))))
+ ("qrencode" ,qrencode)
+ ("qtbase" ,qtbase)
+ ("zlib" ,zlib)))
(home-page "https://www.bitcoinabc.org/")
(synopsis "Bitcoin ABC peer-to-peer full node for the Bitcoin Cash protocol")
(description
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 467a676faf..c4bcf19d17 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -187,7 +187,7 @@ by the b43-open driver of Linux-libre.")
(define-public seabios
(package
(name "seabios")
- (version "1.12.1")
+ (version "1.13.0")
(source
(origin
(method git-fetch)
@@ -196,10 +196,10 @@ by the b43-open driver of Linux-libre.")
(commit (string-append "rel-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1g9y03r5ky58q2g9rhbwfhs42z0zb9f59wfxpwh6zjqa6fyv1r80"))))
+ (base32 "1n1bd6msfs7xn8844sz2qnm7hb5x2qfl3zb06kp4bx9vdc3i6619"))))
(build-system gnu-build-system)
(native-inputs
- `(("python-2" ,python-2)))
+ `(("python" ,python-wrapper)))
(arguments
`(#:tests? #f ; no check target
#:phases
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index e0c8168641..87b7c16b0b 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -240,7 +240,7 @@ the freedesktop.org XDG Base Directory specification.")
(define-public elogind
(package
(name "elogind")
- (version "241.3")
+ (version "241.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -249,7 +249,7 @@ the freedesktop.org XDG Base Directory specification.")
(file-name (git-file-name name version))
(sha256
(base32
- "0jpb55prqq5cm3w2gy9766cbaqknjvbrbniyshb8bz1q31vf4jlq"))))
+ "13nd0chackqclgvw43910k4pkw2q773dh6wq9s5f3d97ibnik48k"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -991,7 +991,7 @@ which speak the Qualcomm MSM Interface (QMI) protocol.")
(define-public modem-manager
(package
(name "modem-manager")
- (version "1.4.14")
+ (version "1.10.8")
(source (origin
(method url-fetch)
(uri (string-append
@@ -999,7 +999,7 @@ which speak the Qualcomm MSM Interface (QMI) protocol.")
"ModemManager-" version ".tar.xz"))
(sha256
(base32
- "18hvffwcncwz14kdzk42jbkh362n0kjv3kgx7axbqx572pawvrmb"))))
+ "16hnl0sdriqgv4v30mfs64mdl9rw7lsh802zlm3ggwxxil3p9qfb"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2d136574bc..f3cce6c508 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -45,6 +45,7 @@
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
+;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -118,6 +119,8 @@
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages kde)
+ #:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages less)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libedit)
@@ -174,6 +177,7 @@
#:use-module (guix build-system scons)
#:use-module (guix build-system python)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (srfi srfi-26))
@@ -6318,7 +6322,7 @@ GameController.")
(define-public quadrapassel
(package
(name "quadrapassel")
- (version "3.31.3")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/quadrapassel/"
@@ -6326,8 +6330,18 @@ GameController.")
"quadrapassel-" version ".tar.xz"))
(sha256
(base32
- "08i01nsgfb502xzzrrcxxbs7awb0j1h4c08vmj0j18ipa1sz8vb8"))))
- (build-system glib-or-gtk-build-system)
+ "1zhi1957knz9dm98drn2dh95mr33sdch590yddh1f8r6bzsfjvpy"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ ;; Don't create 'icon-theme.cache'.
+ (lambda _
+ (substitute* "build-aux/meson_post_install.py"
+ (("gtk-update-icon-cache") (which "true")))
+ #t)))))
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
("gettext" ,gnu-gettext)
@@ -7889,3 +7903,1573 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
@end itemize")
(home-page "https://github.com/bernds/q5Go")
(license license:gpl2+)))
+
+(define-public ktuberling
+ (package
+ (name "ktuberling")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/ktuberling-" version ".tar.xz"))
+ (sha256
+ (base32 "1qdf4q6wjh1lnlqw5c8z4rpj9w5vbyjfri1dah6yjm3mwppbc12j"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("perl" ,perl)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kdelibs4support" ,kdelibs4support)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Stamp drawing toy")
+ (description "KTuberling is a drawing toy intended for small children and
+adults who remain young at heart. The game has no winner; the only purpose is
+to make the funniest faces you can. Several activites are possible, e.g.:
+
+@itemize
+@item Give the potato a funny face, clothes, and other goodies
+@item Build a small town, complete with school, zoo, and fire department
+@item Create a fantastic moonscape with spaceships and aliens
+@item Top a pizza
+@end itemize
+
+KTuberling can speak the name of each the object in several languages,
+to assist in learning basic vocabulary.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public picmi
+ (package
+ (name "picmi")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/picmi-" version ".tar.xz"))
+ (sha256
+ (base32 "0z9mpmv49w914gqdx274brdzl6d1bz9j9nkvbwgmr3iq1ba49m3f"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kdeclarative" ,kdeclarative)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("knewstuff" ,knewstuff)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Number logic game")
+ (description "Picmi is a number logic game in which cells in a grid have
+to be colored or left blank according to numbers given at the side of the
+grid. The aim is to reveal a hidden picture.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kolf
+ (package
+ (name "kolf")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kolf-" version ".tar.xz"))
+ (sha256
+ (base32 "06sfd0llr5cc3zf1vrpcxgw9bm009ky7y8822kynic9ipcd4z1hw"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("ktextwidgets" ,ktextwidgets)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Miniature golf game")
+ (description "Kolf is a miniature golf game for one to ten players. The
+game is played from an overhead view, with a short bar representing the golf
+club. Kolf features many different types of objects, such as water hazards,
+slopes, sand traps, and black holes (warps), among others.
+
+Features are:
+@itemize
+@item Single and Multi-player (up to ten players) modes
+@item High scores table
+@item Dynamic courses
+@item Third-party courses
+@item Course editor
+@end itemize
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public libkmahjongg
+ (package
+ (name "libkmahjongg")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/libkmahjongg-" version ".tar.xz"))
+ (sha256
+ (base32 "0rdimk11hrc8qrmiv26z0ddjzi1k6806c0rfskx4cwmildmh6zgx"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (inputs
+ `(("kauth" ,kauth)
+ ("kcompletion" ,kcompletion)
+ ;("kconfig" ,kconfig)
+ ("kcodecs" ,kcodecs)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Shared library for kmahjongg and kshisen")
+ (description "Shared library and common files for kmahjongg, kshisen and
+other Mah Jongg like games.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kmahjongg
+ (package
+ (name "kmahjongg")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/kmahjongg-" version ".tar.xz"))
+ (sha256
+ (base32 "08na845h0nhmfrszdmvfq5y1dy7kgbrlzjp0f5snvbbf7w44ci6p"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kdeclarative" ,kdeclarative)
+ ("ki18n" ,ki18n)
+ ("knewstuff" ,knewstuff)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("libkmahjongg" ,libkmahjongg)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Tile laying patience")
+ (description "In KMahjongg the tiles are scrambled and staked on top of
+each other to resemble a certain shape. The player is then expected to remove
+all the tiles off the game board by locating each tile's matching pair.
+
+A variety of tile layouts are included, as well as an editor to create new
+layouts.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kshisen
+ (package
+ (name "kshisen")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/kshisen-" version ".tar.xz"))
+ (sha256
+ (base32 "1bq5m48af4h5apfp3bfsp76nlpv6h5sc0gd544zv7cgpfznz1sds"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ;("perl" ,perl)
+ ;("pkg-config" ,pkg-config)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kauth" ,kauth)
+ ("kcompletion" ,kcompletion)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("libkmahjongg" ,libkmahjongg)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Shisen-Sho solitaire game")
+ (description "KShisen is a solitaire-like game played using the standard
+set of Mahjong tiles. Unlike Mahjong however, KShisen has only one layer of
+scrambled tiles
+
+This package is part of the KDE games module.")
+ (license license:gpl2+)))
+
+(define-public kajongg
+ (package
+ (name "kajongg")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/kajongg-" version ".tar.xz"))
+ (sha256
+ (base32 "0ql6p5zifdpdf65r7ki9ml123azpwwk9x3x8r9ij6xhjnf7p7x6w"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ;("perl" ,perl)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("ki18n" ,ki18n)
+ ("libkmahjongg" ,libkmahjongg)
+ ("python" ,python)
+ ("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)))
+ (propagated-inputs
+ `(("python-twisted" ,python-twisted)
+ ("python-pyqt" ,python-pyqt)))
+ ;; FIXME: Need to wrap PYTHONPATH
+ (home-page "https://games.kde.org/")
+ (synopsis "Classical Mah Jongg game for 4 players")
+ (description "Kajongg is the ancient Chinese board game for 4 players.
+
+If you are looking for the Mah Jongg solitaire please use the application
+kmahjongg.
+
+Kajongg can be used in two different ways: Scoring a manual game where you
+play as always and use Kajongg for the computation of scores and for
+bookkeeping. Or you can use Kajongg to play against any combination of other
+human players or computer players.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kbreakout
+ (package
+ (name "kbreakout")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kbreakout-" version ".tar.xz"))
+ (sha256
+ (base32 "0gwzx1z9mxrjlcjzglg8cxkyd6900whcar3b5j9laxxarc6xhj8w"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Breakout like game")
+ (description "KBreakout is similar to the classics breakout and xboing,
+featuring a number of added graphical enhancements and effects. You control a
+paddle at the bottom of the playing-field, and must destroy bricks at the top
+by bouncing balls against them.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kmines
+ (package
+ (name "kmines")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kmines-" version ".tar.xz"))
+ (sha256
+ (base32 "0ac3za36lh8hpx6mqfic9amwmzhzhzplm9hg3pw12gxl5a9mvfsf"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("ktextwidgets" ,ktextwidgets)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Classical mine sweeper game")
+ (description "KMines is a classic Minesweeper game. The idea is to
+uncover all the squares without blowing up any mines. When a mine is blown
+up, the game is over.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public konquest
+ (package
+ (name "konquest")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/konquest-" version ".tar.xz"))
+ (sha256
+ (base32 "02gjxskhi10a1sqh3skcild8zria7wncz1a4sbz7ax1p851q76k1"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kguiaddons" ,kguiaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Simple turn-based strategy game")
+ (description "Konquest is the KDE version of Gnu-Lactic Konquest. Players
+conquer other planets by sending ships to them. The goal is to build an
+interstellar empire and ultimately conquer all other player's planets. The
+game can be played with up to nine empires, commanded either by the computer
+or by puny earthlings.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kbounce
+ (package
+ (name "kbounce")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/kbounce-" version ".tar.xz"))
+ (sha256
+ (base32 "02rfv0qzz5cmyfx8f56a45hbm9gsp6m3dcy8ajwx88rw5wpbrr11"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Jezzball arcade game")
+ (description "KBounce is a single player arcade game with the elements of
+puzzle. It is played on a field, surrounded by wall, with two or more balls
+bouncing around within the walls. The object of the game is to build new
+walls to decrease the size of the active field.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kblocks
+ (package
+ (name "kblocks")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/kblocks-" version ".tar.xz"))
+ (sha256
+ (base32 "0qrm0dihzhkxsq9l49ndzms802x6jn92vvabb2zf2q9z593m69cx"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Single player falling blocks puzzle game")
+ (description "KBlocks is the classic Tetris-like falling blocks game.
+
+The idea is to stack the falling blocks to create horizontal lines without any
+gaps. When a line is completed it is removed, and more space is available in
+the play area. When there is not enough space for blocks to fall, the game is
+over.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public ksudoku
+ (package
+ (name "ksudoku")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/"
+ version "/src/ksudoku-" version ".tar.xz"))
+ (sha256
+ (base32 "0rcscz91hilm7l3am5w02n0n8l7xhi4l0n4sskznh68kblw0ggw2"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("karchive", karchive)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kguiaddons" ,kguiaddons)
+ ("ki18n" ,ki18n)
+ ("kiconthemes" ,kiconthemes)
+ ("kio" ,kio)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("glu" ,glu)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Sudoku puzzle game and solver")
+ (description "KSudoku is a Sudoku game and solver, supporting a range of
+2D and 3D Sudoku variants. In addition to playing Sudoku, it can print Sudoku
+puzzle sheets and find the solution to any Sudoku puzzle.
+
+The word Sudoku means \"single number in an allotted place\" in Japanese.
+These are the basic rules: Every Sudoku is a square divided into 3x3
+subsquares with 3x3 cells each.
+
+Some cells are filled with a number at the beginning. The remaining ones are
+to be filled by the player using numbers from 1 to 9, without repeating a
+number twice on each column, row or subsquare (each of them must contain only
+one 1, one 2, one 3, and so on). The game requires logic and patience.
+Solving takes usually 10 to 30 minutes, depending on puzzle level, your skill
+and experience.
+
+The numerals in Sudoku puzzles are used for convenience (for example in 16x16
+board we use letters): arithmetic relationships between numbers are
+irrelevant.
+
+This program supports also 16x16 games with numbers from 1 to 16 and 256
+cells with 16 cols, rows and subsquares!
+
+More information at http://en.wikipedia.org/wiki/Sudoku
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public klines
+ (package
+ (name "klines")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/klines-" version ".tar.xz"))
+ (sha256
+ (base32 "1g1f46jp0rb8gpqkgcf915ydpsscn1sxk3gjvm8bcqgx9ddq59xa"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Place 5 equal pieces together, but wait, there are 3 new ones")
+ (description "KLines is a simple but highly addictive one player game.
+
+The player has to move the colored balls around the game board, gathering them
+into the lines of the same color by five. Once the line is complete it is
+removed from the board, therefore freeing precious space. In the same time
+the new balls keep arriving by three after each move, filling up the game
+board.
+
+KLines is a single-player game where the player removes colored balls from the
+board by arranging them into lines of five or more. However, every time the
+player moves a ball, three more balls are added to the board.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kgoldrunner
+ (package
+ (name "kgoldrunner")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version "/src/kgoldrunner-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "16rcvq796r3asz4v4ap75xvwnxd3dd2nsq5r9vxvzl6rrf1w9bj4"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Action and puzzle solving game")
+ (description "KGoldrunner is an action game where the hero runs through a
+maze, climbs stairs, dig holes and dodges enemies in order to collect all the
+gold nuggets and escape to the next level. Your enemies are also after the
+gold. Worse still, they are after you!.
+
+KGoldrunner is a fast-paced platform game where the player must navigate a
+maze while collecting gold nuggets and avoiding enemies. A variety of level
+packs are included, as well as an editor to create new levels.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kdiamond
+ (package
+ (name "kdiamond")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kdiamond-" version ".tar.xz"))
+ (sha256
+ (base32 "1v5yb9hb26lk277zhw8d37ks829yfqr5anzx1qhms44gca5kqhva"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion", kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("knotifications" ,knotifications)
+ ("knotifyconfig" ,knotifyconfig)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Three-in-a-row game")
+ (description "KDiamond is a three-in-a-row game like Bejeweled. It
+features unlimited fun with randomly generated games and five difficulty
+levels with varying number of diamond colors and board sizes.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kfourinline
+ (package
+ (name "kfourinline")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kfourinline-" version ".tar.xz"))
+ (sha256
+ (base32 "1vprs6dc1ccn3g6k594i9s94xy4b91vzlqjysyc6fqcq2fs54ny3"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdelibs4support" ,kdelibs4support)
+ ("kdnssd" ,kdnssd)
+ ("ki18n" ,ki18n)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Place 4 pieces in a row")
+ (description "KFourInLine is a board game for two players based on the
+Connect-Four game.
+
+KFourInLine is a game where two players take turns dropping pieces into a
+grid, the winner being the first to place four pieces in a line.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kblackbox
+ (package
+ (name "kblackbox")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kblackbox-" version ".tar.xz"))
+ (sha256
+ (base32 "1x42sfpf75c6mavwkc7g7dm11y9s5dpj8igphly5kvm0pajqby0n"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("karchive" ,karchive)
+ ("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("ktextwidgets" ,ktextwidgets)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Find atoms in a grid by shooting electrons")
+ (description "KBlackbox is a game of hide and seek played on a grid of
+boxes where the computer has hidden several balls. The position of the hidden
+balls can be deduced by shooting beams into the box
+
+KBlackBox is a game of hide and seek played on an grid of boxes, where the
+player shoots rays into the grid to deduce the positions of hidden objects.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public knetwalk
+ (package
+ (name "knetwalk")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/knetwalk-" version ".tar.xz"))
+ (sha256
+ (base32 "1i340salzgqdw8y33wrrydmpgx3pvwf5wrbljlh67cjf6s4csx7d"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("ktextwidgets" ,ktextwidgets)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Turn the board pieces to get all computers connected")
+ (description "KNetWalk is a small game where you have to build up a
+computer network by rotating the wires to connect the terminals to the server.
+When the network is build, a highscore-list comes up where competitions can be
+fought out.
+
+KNetwalk is a puzzle game where the player arranges sections of wire to
+connect all the computers on the board.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public bomber
+ (package
+ (name "bomber")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/bomber-" version ".tar.xz"))
+ (sha256
+ (base32 "1lvzd0mzgq25akvwvkm57l3plm65k731v2i1ahakn985bb5gc3is"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletiom" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Arcade bombing game")
+ (description "Bomber is a single player arcade game.
+
+The player is invading various cities in a plane that is decreasing in height.
+The goal of the game is to destroy all the buildings and advance to the next
+level. Each level gets a bit harder by increasing the speed of the plane and
+the height of the buildings.
+
+Bomber is a game where you fly a spaceship and attempt to bomb the buildings
+below you. Each pass the spaceship makes, it gets lower and lower. If you've
+not destroyed a building in your path, you will crash into it.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public granatier
+ (package
+ (name "granatier")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/granatier-" version ".tar.xz"))
+ (sha256
+ (base32 "141qmdinz7ikbbrs8dq6cap3nl22sl7pw62r80pf3xxwn2q4phpa"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("knewstuff" ,knewstuff)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Bomberman clone")
+ (description "Granatier is a clone of the classic Bomberman game,
+inspired by the work of the Clanbomber clone.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public ksirk
+ (package
+ (name "ksirk")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/ksirk-" version ".tar.xz"))
+ (sha256
+ (base32 "1b1wixs2hp5qnvdygfwa3kvy0kn94ysa4ifmx90q6r3yfr2lpfca"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcrash" ,kcrash)
+ ("ki18n" ,ki18n)
+ ("kiconthemes" ,kiconthemes)
+ ("kio" ,kio)
+ ("knewstuff" ,knewstuff)
+ ("kwallet" ,kwallet)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("phonon" ,phonon)
+ ("qca" ,qca)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)
+ ("zlib" ,zlib)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Computerized version of the well known strategy board game
+'Risk'")
+ (description "KsirK is a multi-player network-enabled game. The goal of
+the game is simply to conquer the world by attacking your neighbors with your
+armies.
+
+At the beginning of the game, countries are distributed to all the players.
+Each country contains one army represented by an infantryman. Each player has
+some armies to distribute to his countries. On each turn, each player can
+attack his neighbours, eventually conquering one or more countries. At the
+end of each turn, some bonus armies are distributed to the players in function
+of the number of countries they own. The winner is the player that conquered
+all the world.
+
+Features:
+@itemize
+@item Support for 1-6 human or computer players
+@item Multi-player gaming over a network
+@item You can easily create new skins with SVG graphics and the skin editor
+@item Hot New Stuff support. You can easily download and install new skins
+@end itemize
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public palapeli
+ (package
+ (name "palapeli")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/palapeli-" version ".tar.xz"))
+ (sha256
+ (base32 "1g91ydbc0x2y2gn3lcb5w03mn7k78l5bq4cb1s59kx6yjbflv3pw"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("karchive" ,karchive)
+ ("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kcrash" ,kcrash)
+ ("ki18n" ,ki18n)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("kitemviews" ,kitemviews)
+ ("knotifications" ,knotifications)
+ ("kservice" ,kservice)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)
+ ("shared-mime-info" ,shared-mime-info)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Jigsaw puzzle game")
+ (description "Palapeli is a jigsaw puzzle game. Unlike other games in
+that genre, you are not limited to aligning pieces on imaginary grids. The
+pieces are freely moveable. Also, Palapeli features real persistency, i.e.
+everything you do is saved on your disk immediately.
+
+Palapeli is the Finnish word for jigsaw puzzle.
+
+This package is part of the KDE games module.")
+ (license license:gpl2+)))
+
+(define-public kiriki
+ (package
+ (name "kiriki")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kiriki-" version ".tar.xz"))
+ (sha256
+ (base32 "1xg25dj95g81dc5l7k47am4j52abrwwfx4h73lvsbn4lc8lfmshw"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kiconthemes" ,kiconthemes)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Yahtzee dice game")
+ (description "Kiriki is an addictive and fun dice game, designed to be
+played by as many as six players.
+
+Participants have to collect points by rolling five dice for up to three times
+per single turn to make combinations with the highest score.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kigo
+ (package
+ (name "kigo")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kigo-" version ".tar.xz"))
+ (sha256
+ (base32 "00l5gcbi8xyj9c1lngkrddka3a4m4cd78prfplrpq32ma9xq681f"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("knewstuff", knewstuff)
+ ("ktextwidgets" ,ktextwidgets)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Go board game")
+ (description "Kigo is an open-source implementation of the popular Go
+game.
+
+Go is a strategic board game for two players. It is also known as
+igo (Japanese), weiqi or wei ch'i (Chinese) or baduk (Korean). Go is noted
+for being rich in strategic complexity despite its simple rules. The game is
+played by two players who alternately place black and white stones (playing
+pieces, now usually made of glass or plastic) on the vacant intersections of a
+grid of 19x19 lines (9x9 or 13x13 for easier games).
+
+You also need to install a go engine, e.g. @code{gnugo}.
+
+This package is part of the KDE games module.")
+ (license license:gpl3+)))
+
+(define-public kubrick
+ (package
+ (name "kubrick")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kubrick-" version ".tar.xz"))
+ (sha256
+ (base32 "0ma8wja4rqlsmsr8cyicfpkwlgqva4450ls4c0ql53p0kabf04gx"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("glu" ,glu)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Game based on Rubik's Cube")
+ (description "Kubrick is a game based on the Rubik's Cube puzzle.
+
+The cube sizes range from 2x2x2 up to 6x6x6, or you can play with irregular
+\"bricks\" such as 5x3x2 or \"mats\" such as 6x4x1 or 2x2x1. The game has a
+selection of puzzles at several levels of difficulty, as well as demos of
+pretty patterns and solution moves, or you can make up your own puzzles. The
+game has unlimited undo, redo, save and reload capabilities.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public lskat
+ (package
+ (name "lskat")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/lskat-" version ".tar.xz"))
+ (sha256
+ (base32 "1qk5hd27zb42pbcxq5wyzz62nj5f0qdmgy54r9rnk92pzzzk94s9"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kguiaddons" ,kguiaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Lieutnant Skat card game")
+ (description "Lieutnant Skat (from German \"Offiziersskat\") is a fun and
+engaging card game for two players, where the second player is either live
+opponent, or a built in artificial intelligence.
+
+Lieutnant Skat is a simplified variant of the Skat card game for two players.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kapman
+ (package
+ (name "kapman")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kapman-" version ".tar.xz"))
+ (sha256
+ (base32 "03pq38caam30q4bw14c045kayw2d87xq1yaa3s2jkrylylfq3p0f"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Pac-Man clone")
+ (description "Kapman is a clone of the well known game Pac-Man.
+
+You must run through the maze to eat all pills without being captured by a
+ghost. By eating an energizer, Kapman gets the ability to eat ghosts for a
+few seconds. When a stage is cleared of pills and energizer the player is
+taken to the next stage with slightly increased game speed
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kspaceduel
+ (package
+ (name "kspaceduel")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kspaceduel-" version ".tar.xz"))
+ (sha256
+ (base32 "1hppni0ihs7psc0dly5rxyy2a38nzhlig9yfyhi3lkh36z05pql8"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Two player game with shooting spaceships flying around a sun")
+ (description "KSpaceduel is a space battle game for one or two players,
+where two ships fly around a star in a struggle to be the only survivor.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public bovo
+ (package
+ (name "bovo")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/bovo-" version ".tar.xz"))
+ (sha256
+ (base32 "0dbpng0w52nahmx7brsll66zw23ql1g6pcvn2k4g2lnvxch0i59g"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Classic pen and paper game: five in a line")
+ (description "Bovo is a Gomoku (from Japanese 五目並べ - lit. \"five
+points\") like game for two players, where the opponents alternate in placing
+their respective pictogram on the game board. The winner is the first to
+complete a line of five markers. (Also known as: Connect Five, Five in a row,
+X and O, Naughts and Crosses)
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public killbots
+ (package
+ (name "killbots")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/killbots-" version ".tar.xz"))
+ (sha256
+ (base32 "1qi86q7diw7glkp9v33yim9nhz2da4balbxa1hjrdgjdv8zdbxbm"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Port of the classic BSD console game robots")
+ (description "Killbots is a simple game of evading killer robots.
+
+Who created the robots and why they have been programmed to destroy, no one
+knows. All that is known is that the robots are numerous and their sole
+objective is to destroy you. Fortunately for you, their creator has focused
+on quantity rather than quality and as a result the robots are severely
+lacking in intelligence. Your superior wit and a fancy teleportation device
+are your only weapons against the never-ending stream of mindless automatons.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public ksnakeduel
+ (package
+ (name "ksnakeduel")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/ksnakeduel-" version ".tar.xz"))
+ (sha256
+ (base32 "0mprrnpax8pv7ab36zwhvdfj8id52w8g6x76nnj8qvkdlkjiqdnn"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kguiaddons" ,kguiaddons)
+ ("ki18n" ,ki18n)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Snake race played against the computer")
+ (description "KSnakeDuel is a fast action game where you steer a snake
+which has to eat food. While eating the snake grows. But once a player
+collides with the other snake or the wall the game is lost. This becomes of
+course more and more difficult the longer the snakes grow.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kollision
+ (package
+ (name "kollision")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kollision-" version ".tar.xz"))
+ (sha256
+ (base32 "1p7qrn3d0ybpvc9k6k5wzj54dsrp1rqh39844maz0ay2fhvmch12"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Simple ball dodging game")
+ (description "In Kollision you use mouse to control a small blue ball in a
+closed space environment filled with small red balls, which move about
+chaotically. Your goal is to avoid touching any of those red balls with your
+blue one, because the moment you do the game will be over. The longer you can
+stay in game the higher will your score be.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public knavalbattle
+ (package
+ (name "knavalbattle")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+"/src/knavalbattle-" version ".tar.xz"))
+ (sha256
+ (base32 "0sdfjplqkb30x2mvh66pkzay6vn5px87779sh2s8lpl6fcw0v9g4"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kauth" ,kauth)
+ ("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kdnssd" ,kdnssd)
+ ("ki18n" ,ki18n)
+ ("ktextwidgets" ,ktextwidgets)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Battleship board game with built-in game server")
+ (description "KBattleship is a Battle Ship game for KDE.
+
+Ships are placed on a board which represents the sea. Players try to hit each
+others ships in turns without knowing where they are placed. The first player
+to destroy all ships wins the game.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public kreversi
+ (package
+ (name "kreversi")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+"/src/kreversi-" version ".tar.xz"))
+ (sha256
+ (base32 "0b6q8df2bawgnrswhq59z37axad0q3zpvvzxdds7sz1lw505xw9h"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kdeclarative" ,kdeclarative)
+ ("ki18n" ,ki18n)
+ ("kiconthemes" ,kiconthemes)
+ ("kio" ,kio)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Old reversi board game, also known as othello")
+ (description "KReversi is a simple one player strategy game played
+against the computer.
+
+If a player's piece is captured by an opposing player, that piece is turned
+over to reveal the color of that player. A winner is declared when one player
+has more pieces of his own color on the board and there are no more possible
+moves.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
+
+(define-public ksquares
+ (package
+ (name "ksquares")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/ksquares-" version ".tar.xz"))
+ (sha256
+ (base32 "0hv8hls5s627lys08nnw72rfzsafj3dmp49mh2afzmh6lgk9h5vy"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kcompletion" ,kcompletion)
+ ("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Dots and Boxes game")
+ (description "KSquares is an implementation of the popular paper based
+game Squares. Two players take turns connecting dots on a grid to complete
+squares, the player with the most squares wins.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+))))
+
+(define-public kjumpingcube
+ (package
+ (name "kjumpingcube")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/kjumpingcube-" version ".tar.xz"))
+ (sha256
+ (base32 "0d67zqkf2xffjkj671gl2n6nj6jajyn6rgqqj5i6gm500mqi9rm1"))))
+ (properties `((tags . ("Desktop" "KDE" "Games"))))
+ (build-system qt-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("kdoctools" ,kdoctools)))
+ (inputs
+ `(("kconfig" ,kconfig)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("ki18n" ,ki18n)
+ ("kio" ,kio)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libkdegames" ,libkdegames)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://games.kde.org/")
+ (synopsis "Simple tactical game for number-crunchers")
+ (description "KJumpingcube is a simple tactical game for one or two
+players, played on a grid of numbered squares. Each turn, players compete for
+control of the board by capturing or adding to one square.
+
+This package is part of the KDE games module.")
+ (license (list license:gpl2+ license:fdl1.2+))))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 477e9a460a..41801ed0e6 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
+;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -64,6 +65,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages sqlite)
@@ -112,7 +114,7 @@ topology functions.")
(define-public gnome-maps
(package
(name "gnome-maps")
- (version "3.30.3.1")
+ (version "3.32.2.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -120,7 +122,7 @@ topology functions.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0xqk3yrds0w8bjmpf4jw0370phvm65av82nqrx7fp1648h9nq7xi"))))
+ "1m191iq1gjaqz79ci3dkbmwrkxp7pzknngimlf5bqib5x8yairlb"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -1213,3 +1215,79 @@ supports loading GPX tracks, background imagery and OSM data from local
sources as well as from online sources and allows to edit the OSM data (nodes,
ways, and relations) and their metadata tags.")
(license license:gpl2+)))
+
+(define-public libmaxminddb
+ (package
+ (name "libmaxminddb")
+ (version "1.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/maxmind/libmaxminddb"
+ "/releases/download/" version "/"
+ "/libmaxminddb-" version ".tar.gz"))
+ (sha256
+ (base32 "0mnimbaxnnarlw7g1rh8lpxsyf7xnmzwcczcc3lxw8xyf6ljln6x"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-cc-to-gcc
+ (lambda _
+ (setenv "CC" "gcc"))))))
+ (native-inputs
+ `(("perl" ,perl)))
+ (home-page "https://maxmind.github.io/libmaxminddb/")
+ (synopsis "C library for the MaxMind DB file format")
+ (description "The libmaxminddb library provides a C library for reading
+MaxMind DB files, including the GeoIP2 databases from MaxMind. The MaxMind DB
+format is a custom, but open, binary format designed to facilitate fast
+lookups of IP addresses while allowing flexibility in the type of data
+associated with an address.")
+ (license license:asl2.0)))
+
+(define-public python-maxminddb
+ (package
+ (name "python-maxminddb")
+ (version "1.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "maxminddb" version))
+ (sha256
+ (base32
+ "0y9giw81k4wdmpryr4k42w50z292mf364a6vs1vxf83ksc9ig6j4"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;; Tests require a copy of the maxmind database
+ (inputs
+ `(("libmaxminddb" ,libmaxminddb)))
+ (home-page "http://www.maxmind.com/")
+ (synopsis "Reader for the MaxMind DB format")
+ (description "MaxMind DB is a binary file format that stores data indexed
+by IP address subnets (IPv4 or IPv6). This is a Python module for reading
+MaxMind DB files.")
+ (license license:asl2.0)))
+
+(define-public python-geoip2
+ (package
+ (name "python-geoip2")
+ (version "2.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "geoip2" version))
+ (sha256
+ (base32
+ "1w7cay5q6zawjzivqbwz5cqx1qbdjw6kbriccb7l46p7b39fkzzp"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;; Tests require a copy of the maxmind database
+ (inputs
+ `(("python-maxminddb" ,python-maxminddb)
+ ("python-requests" ,python-requests)))
+ (home-page "http://www.maxmind.com/")
+ (synopsis "MaxMind GeoIP2 API")
+ (description "Provides an API for the GeoIP2 web services and databases.
+The API also works with MaxMind’s free GeoLite2 databases.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 760131b83d..d05bdf0ac0 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -100,6 +100,8 @@ like Gnome, Unity, Budgie, Pantheon, XFCE, Mate and others.")
(begin
(use-modules (guix build utils))
(copy-recursively (assoc-ref %build-inputs "source") "icons")
+ (substitute* "icons/Delft/index.theme"
+ (("gnome") "Adwaita"))
(delete-file "icons/README.md")
(delete-file "icons/LICENSE")
(delete-file "icons/logo.jpg")
@@ -115,7 +117,7 @@ the Obsidian icon theme.")
(define-public gnome-shell-extension-dash-to-dock
(package
(name "gnome-shell-extension-dash-to-dock")
- (version "65")
+ (version "66")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -124,7 +126,7 @@ the Obsidian icon theme.")
version))))
(sha256
(base32
- "0ln49l9s0yfl30pi77pz7xlmh63l9vjppi863kry5lay10dsvz47"))
+ "04krl6rxlp1qc97psraf2kwin7h0mx4c7pnfpi7vhplmvasrwkfh"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 108004434c..2997647d23 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
-;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
@@ -42,6 +42,7 @@
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 David Wilson <david@daviwil.com>
+;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -104,6 +105,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages ibus)
+ #:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages inkscape)
@@ -116,6 +118,7 @@
#:use-module (gnu packages lirc)
#:use-module (gnu packages lua)
#:use-module (gnu packages mail)
+ #:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages music)
#:use-module (gnu packages ncurses)
@@ -472,10 +475,65 @@ can be used to configure a source directory checked out from Git and some
commonly used macros.")
(license license:gpl2+)))
+(define-public gnome-contacts
+ (package
+ (name "gnome-contacts")
+ (version "3.32.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/gnome-contacts/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'generate-vapis
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; To generate goa's missing .vapi file
+ (define goa
+ (assoc-ref inputs "gnome-online-accounts:lib"))
+
+ (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
+ "--library=goa-1.0"
+ (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
+ #t)))))
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("gtk+:bin" ,gtk+ "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cheese" ,cheese)
+ ("docbook-xml" ,docbook-xml)
+ ("dockbook-xsl" ,docbook-xsl)
+ ("evolution-data-server" ,evolution-data-server)
+ ("gettext" ,gettext-minimal)
+ ("gnome-desktop" ,gnome-desktop)
+ ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
+ ("gobject-introspection" ,gobject-introspection)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("gtk+" ,gtk+)
+ ("libgee" ,libgee)
+ ("libxslt" ,libxslt)
+ ("telepathy-glib" ,telepathy-glib)
+ ("vala" ,vala)))
+ (propagated-inputs
+ `(("folks", folks)
+ ("telepathy-mission-control" ,telepathy-mission-control)))
+ (synopsis "GNOME's integrated address book")
+ (description
+ "GNOME Contacts organizes your contact information from online and
+offline sources, providing a centralized place for managing your contacts.")
+ (home-page "https://wiki.gnome.org/Apps/Contacts")
+ (license license:gpl2+)))
+
(define-public gnome-desktop
(package
(name "gnome-desktop")
- (version "3.30.2")
+ (version "3.32.2")
(source
(origin
(method url-fetch)
@@ -484,8 +542,8 @@ commonly used macros.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0k6iccfj9naw42dl2mgljfvk12dmvg06plg86qd81nksrf9ycxal"))))
- (build-system gnu-build-system)
+ "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
+ (build-system meson-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
@@ -495,27 +553,39 @@ commonly used macros.")
(substitute* "libgnome-desktop/gnome-languages.c"
(("\"locale\"")
(string-append "\"" libc "/bin/locale\"")))
- #t))))))
+ #t)))
+ (add-before 'check 'pre-check
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Tests require a running X server and locales.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ (setenv "GUIX_LOCPATH"
+ (string-append (assoc-ref inputs "glibc-locales")
+ "/lib/locale"))
+ #t)))))
(native-inputs
- `(("gobject-introspection" ,gobject-introspection)
+ `(("glib:bin" ,glib "bin") ; for gdbus-codegen
+ ("glibc-locales" ,glibc-locales) ; for tests
+ ("gobject-introspection" ,gobject-introspection)
("itstool" ,itstool)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
- ("xmllint" ,libxml2)))
+ ("xmllint" ,libxml2)
+ ("xorg-server" ,xorg-server-for-tests)))
(propagated-inputs
;; Required by gnome-desktop-3.0.pc.
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("gtk+" ,gtk+)))
- (inputs
- `(("gdk-pixbuf" ,gdk-pixbuf)
- ("glib" ,glib)
+ ("gtk+" ,gtk+)
("iso-codes" ,iso-codes)
("libseccomp" ,libseccomp)
("libx11" ,libx11)
+ ("xkeyboard-config" ,xkeyboard-config)))
+ (inputs
+ `(("gdk-pixbuf" ,gdk-pixbuf)
+ ("glib" ,glib)
("libxext" ,libxext)
("libxkbfile" ,libxkbfile)
- ("libxrandr" ,libxrandr)
- ("xkeyboard-config" ,xkeyboard-config)))
+ ("libxrandr" ,libxrandr)))
(home-page "https://www.gnome.org/")
(synopsis
"Libgnome-desktop, gnome-about, and desktop-wide documents")
@@ -563,7 +633,7 @@ and keep up to date translations of documentation.")
(define-public gnome-disk-utility
(package
(name "gnome-disk-utility")
- (version "3.30.2")
+ (version "3.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -571,7 +641,7 @@ and keep up to date translations of documentation.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1365fabz3q7n3bl775z82m1nzg18birxxyd7l2ssbbkqrx3h7wgi"))))
+ "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
(build-system meson-build-system)
(arguments
'(#:phases
@@ -854,7 +924,7 @@ on the GNOME Desktop with a single simple application.")
(define-public gsettings-desktop-schemas
(package
(name "gsettings-desktop-schemas")
- (version "3.28.1")
+ (version "3.32.0")
(source
(origin
(method url-fetch)
@@ -863,8 +933,8 @@ on the GNOME Desktop with a single simple application.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0bshwm49cd01ighsxqlbqn10q0ch71ff99gcrx8pr2gyky2ad3pq"))))
- (build-system gnu-build-system)
+ "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
+ (build-system meson-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'unpack 'set-adwaita-theme-file-name
@@ -954,18 +1024,16 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
`(("icon-naming-utils" ,icon-naming-utils)
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
- (home-page "https://art.gnome.org/")
- (synopsis
- "GNOME icon theme")
- (description
- "Icons for the GNOME desktop.")
+ (home-page "https://wiki.gnome.org/Personalization")
+ (synopsis "GNOME icon theme")
+ (description "Icons for the GNOME desktop.")
(license license:lgpl3))) ; or Creative Commons BY-SA 3.0
;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
(define-public adwaita-icon-theme
(package (inherit gnome-icon-theme)
(name "adwaita-icon-theme")
- (version "3.30.1")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -973,7 +1041,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1kp1lis3dr16jmlgycz1b29jsr6ir8wmqj6laqwlhs663cmjlxbd"))))
+ "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
(native-inputs
`(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
@@ -2234,7 +2302,7 @@ controls using the Bonobo component framework.")
(define-public libwnck
(package
(name "libwnck")
- (version "3.30.0")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -2242,10 +2310,12 @@ controls using the Bonobo component framework.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0f9lvhm3w25046dqq8xyg7nzggxpmdriwrb661nng05a8qk0svdc"))))
- (build-system gnu-build-system)
+ "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
+ (build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
+ ("glib" ,glib "bin") ; for glib-mkenums
+ ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
("intltool" ,intltool)))
(propagated-inputs
`(("gtk+" ,gtk+)
@@ -2273,6 +2343,10 @@ Hints specification (EWMH).")
(sha256
(base32
"15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
(propagated-inputs
`(("gtk+" ,gtk+-2)
("libxres" ,libxres)
@@ -2442,7 +2516,7 @@ engineering.")
(define-public seahorse
(package
(name "seahorse")
- (version "3.30.1.1")
+ (version "3.32.2")
(source
(origin
(method url-fetch)
@@ -2451,12 +2525,13 @@ engineering.")
version ".tar.xz"))
(sha256
(base32
- "12x7xmwh62yl0ax90v8nkx3jqzviaz9hz2g56yml78wzww20gawy"))
+ "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
(patches (search-patches
"seahorse-gkr-use-0-on-empty-flags.patch"))))
(build-system meson-build-system)
(arguments
- '(#:phases
+ '(#:glib-or-gtk? #t
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
@@ -2472,6 +2547,7 @@ engineering.")
("openldap" ,openldap)
("openssh" ,openssh)
("avahi" ,avahi)
+ ("libpwquality" ,libpwquality)
("libsecret" ,libsecret)
("libsoup" ,libsoup)))
(native-inputs
@@ -2481,7 +2557,7 @@ engineering.")
("pkg-config" ,pkg-config)
("vala" ,vala)
("xmllint" ,libxml2)))
- (home-page "https://launchpad.net/gnome-themes-standard")
+ (home-page "https://wiki.gnome.org/Apps/Seahorse")
(synopsis "Manage encryption keys and passwords in the GNOME keyring")
(description
"Seahorse is a GNOME application for managing encryption keys and
@@ -2918,7 +2994,7 @@ libxml to ease remote use of the RESTful API.")
(define-public libsoup
(package
(name "libsoup")
- (version "2.68.2")
+ (version "2.68.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsoup/"
@@ -2926,7 +3002,7 @@ libxml to ease remote use of the RESTful API.")
"libsoup-" version ".tar.xz"))
(sha256
(base32
- "0crr9qprmacr626fx83cx81ggk85zsgxr4mn577kpzj6m40k1bai"))))
+ "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
@@ -3089,7 +3165,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
(define-public five-or-more
(package
(name "five-or-more")
- (version "3.30.0")
+ (version "3.32.0")
(source
(origin
(method url-fetch)
@@ -3098,16 +3174,29 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
name "-" version ".tar.xz"))
(sha256
(base32
- "00d729p251kh96624i7qg2370r5mxwafs016i6hy01vsr71jzb9x"))))
- (build-system glib-or-gtk-build-system)
+ "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ (lambda _
+ (substitute* "meson_post_install.py"
+ (("gtk-update-icon-cache") (which "true")))
+ #t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
+ ("appstream-glib" ,appstream-glib)
("desktop-file-utils" ,desktop-file-utils)
+ ("glib:bin" ,glib "bin") ; for glib-compile-resources
("intltool" ,intltool)
("itstool" ,itstool)
+ ("vala" ,vala)
("xmllint" ,libxml2)))
(inputs
`(("gtk+" ,gtk+)
+ ("libgnome-games-support" ,libgnome-games-support)
("librsvg" ,librsvg)))
(home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
(synopsis "Logic puzzle game")
@@ -3120,7 +3209,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
(define-public gnome-mines
(package
(name "gnome-mines")
- (version "3.30.1.1")
+ (version "3.32.2")
(source
(origin
(method url-fetch)
@@ -3129,12 +3218,17 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
name "-" version ".tar.xz"))
(sha256
(base32
- "08ddk400sg1g3q26gnm5mgv81vdqyix0yl7pd47p50vkc1w6f33z"))))
+ "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
(build-system meson-build-system)
(arguments
- `(#:phases
+ '(#:glib-or-gtk? #t
+ #:phases
(modify-phases %standard-phases
- (delete 'bootstrap))))
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ (lambda _
+ (substitute* "build-aux/meson_post_install.py"
+ (("gtk-update-icon-cache") (which "true")))
+ #t)))))
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-compile-resources
("pkg-config" ,pkg-config)
@@ -3158,7 +3252,7 @@ floating in an ocean using only your brain and a little bit of luck.")
(define-public gnome-sudoku
(package
(name "gnome-sudoku")
- (version "3.30.0")
+ (version "3.32.0")
(source
(origin
(method url-fetch)
@@ -3167,13 +3261,24 @@ floating in an ocean using only your brain and a little bit of luck.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1xy986s51jnrcqwan2hy4bjdg6797yr9s7gxx2z2q4j4gkx3qa1f"))))
- (build-system glib-or-gtk-build-system)
+ "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ (lambda _
+ (substitute* "build-aux/post_install.py"
+ (("gtk-update-icon-cache") (which "true")))
+ #t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
("desktop-file-utils" ,desktop-file-utils)
+ ("glib:bin" ,glib "bin") ; for glib-compile-resources
("intltool" ,intltool)
("itstool" ,itstool)
+ ("vala" ,vala)
("xmllint" ,libxml2)))
(inputs
`(("gtk+" ,gtk+)
@@ -3193,7 +3298,7 @@ more fun.")
(define-public gnome-terminal
(package
(name "gnome-terminal")
- (version "3.30.3")
+ (version "3.32.2")
(source
(origin
(method url-fetch)
@@ -3202,7 +3307,7 @@ more fun.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0bar8qazk39acsif31h8i408nl82mzdcdg6p7ymak4l9pxyscxf8"))))
+ "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags
@@ -3505,7 +3610,7 @@ services for numerous locations.")
(define-public gnome-settings-daemon
(package
(name "gnome-settings-daemon")
- (version "3.30.2")
+ (version "3.32.1")
(source
(origin
(method url-fetch)
@@ -3514,7 +3619,7 @@ services for numerous locations.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12"))))
+ "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -3674,7 +3779,7 @@ both a traditional UI or a modern UI with a GtkHeaderBar.")
(define-public devhelp
(package
(name "devhelp")
- (version "3.30.1")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -3682,10 +3787,11 @@ both a traditional UI or a modern UI with a GtkHeaderBar.")
name "-" version ".tar.xz"))
(sha256
(base32
- "036sddvhs0blqpc2ixmjdl9vxynvkn5jpgn0jxr1fxcm4rh3q07a"))))
+ "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
(build-system meson-build-system)
(arguments
- '(#:phases
+ '(#:glib-or-gtk? #t
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
@@ -4004,7 +4110,7 @@ GNOME Games, but it may be used by others.")
(define-public gnome-klotski
(package
(name "gnome-klotski")
- (version "3.22.3")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -4012,13 +4118,25 @@ GNOME Games, but it may be used by others.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0prc0s28pdflgzyvk1g0yfx982q2grivmz3858nwpqmbkha81r7f"))))
- (build-system glib-or-gtk-build-system)
+ "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ ;; Don't create 'icon-theme.cache'.
+ (lambda _
+ (substitute* "build-aux/meson_post_install.py"
+ (("gtk-update-icon-cache") (which "true")))
+ #t)))))
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils)
+ ("glib:bin" ,glib "bin") ; for glib-compile-resources
("intltool" ,intltool)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
+ ("vala" ,vala)
("xmllint" ,libxml2)))
(inputs
`(("gtk+" ,gtk+)
@@ -4036,7 +4154,7 @@ as possible!")
(define-public grilo
(package
(name "grilo")
- (version "0.3.3")
+ (version "0.3.10")
(source
(origin
(method url-fetch)
@@ -4045,13 +4163,15 @@ as possible!")
name "-" version ".tar.xz"))
(sha256
(base32
- "1qx072m0gl6m3d5g5cbbf13p4h217icmlxjnrn829x5xqwi451sw"))))
- (build-system gnu-build-system)
+ "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
+ (build-system meson-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
("intltool" ,intltool)
("pkg-config" ,pkg-config)
- ("gobject-introspection" ,gobject-introspection)))
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk-doc" ,gtk-doc)
+ ("vala" ,vala)))
(inputs
`(("cyrus-sasl" ,cyrus-sasl)
("glib" ,glib)
@@ -4060,26 +4180,12 @@ as possible!")
("liboauth" ,liboauth)
("libsoup" ,libsoup)
("totem-pl-parser" ,totem-pl-parser)))
- (arguments
- `(#: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/Makefile.in"
- "libs/pls/Makefile.in"
- "libs/net/Makefile.in")
- (("@INTROSPECTION_GIRDIR@")
- (string-append out "/share/gir-1.0/"))
- (("@INTROSPECTION_TYPELIBDIR@")
- (string-append out "/lib/girepository-1.0/")))
- #t))))))
(native-search-paths
(list (search-path-specification
(variable "GRL_PLUGIN_PATH")
(files (list (string-append "lib/grilo-"
(version-major+minor version)))))))
- (home-page "https://live.gnome.org/Grilo")
+ (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
(synopsis "Framework for discovering and browsing media")
(description
"Grilo is a framework focused on making media discovery and browsing easy
@@ -4141,7 +4247,7 @@ for application developers.")
(define-public totem
(package
(name "totem")
- (version "3.30.0")
+ (version "3.32.1")
(source
(origin
(method url-fetch)
@@ -4150,9 +4256,7 @@ for application developers.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0rahkybxbmxhlmrrgrzxny1xm7wycx7ib4blxp1i2l1q3i8s84b0"))
- (patches (search-patches "totem-meson-easy-codec.patch"
- "totem-meson-compat.patch"))))
+ "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -4161,7 +4265,9 @@ for application developers.")
("glib:bin" ,glib "bin") ;for 'glib-mkenums'
("intltool" ,intltool)
("itstool" ,itstool)
- ("xmllint" ,libxml2)))
+ ("xmllint" ,libxml2)
+ ("python-pylint" ,python-pylint)
+ ("xorg-server" ,xorg-server-for-tests)))
(propagated-inputs
`(("dconf" ,dconf)))
(inputs
@@ -4189,8 +4295,7 @@ for application developers.")
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("adwaita-icon-theme" ,adwaita-icon-theme)
("python" ,python)
- ("python-pygobject" ,python2-pygobject)
- ;; XXX TODO pylint needed for python support
+ ("python-pygobject" ,python-pygobject)
("totem-pl-parser" ,totem-pl-parser)
("grilo" ,grilo)
("grilo-plugins" ,grilo-plugins)
@@ -4198,12 +4303,6 @@ for application developers.")
(arguments
`(#:glib-or-gtk? #t
- ;; Disable parallel builds until
- ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28813 is
- ;; fixed. Try enabling it when updating this package in case
- ;; upstream has fixed it.
- #:parallel-build? #f
-
;; Disable automatic GStreamer plugin installation via PackageKit and
;; all that.
#:configure-flags '("-D" "enable-easy-codec-installation=no"
@@ -4211,7 +4310,6 @@ for application developers.")
;; Do not build .a files for the plugins, it's
;; completely useless. This saves 2 MiB.
"--default-library" "shared")
-
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
@@ -4225,6 +4323,13 @@ for application developers.")
(lambda _
(setenv "DESTDIR" "/")
#t))
+ (add-before
+ 'check 'pre-check
+ (lambda _
+ ;; Tests require a running X server.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ #t))
(add-after
'install 'wrap-totem
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -4336,7 +4441,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
(define-public eog
(package
(name "eog")
- (version "3.28.4")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -4344,7 +4449,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1wrq3l3z0x6q0hnc1vqr2hnyb1b14qw6aqvc5dldfgbs0yys6p55"))))
+ "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -4682,7 +4787,7 @@ a secret password store, an adblocker, and a modern UI.")
(define-public epiphany
(package
(name "epiphany")
- (version "3.30.4")
+ (version "3.32.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/epiphany/"
@@ -4690,7 +4795,7 @@ a secret password store, an adblocker, and a modern UI.")
"epiphany-" version ".tar.xz"))
(sha256
(base32
- "0nk0krzrfck6hhfs52f4sjmj93yjyvabm72bq8i8f9l1pass5vgd"))))
+ "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
(build-system meson-build-system)
(arguments
@@ -4831,7 +4936,7 @@ to format Docbook and Mallard documents.")
(define-public yelp
(package
(name "yelp")
- (version "3.30.0")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -4839,7 +4944,7 @@ to format Docbook and Mallard documents.")
name "-" version ".tar.xz"))
(sha256
(base32
- "060a902j15k76fyhk8xfl38ipvrrcc0qd7nm2mcck4ifb45b0zv4"))))
+ "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
@@ -5014,7 +5119,7 @@ share them with others via social networking and more.")
(define-public file-roller
(package
(name "file-roller")
- (version "3.30.1")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -5022,11 +5127,12 @@ share them with others via social networking and more.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0kiragsqyixyx15747b71qc4nw8y4jx9d55wgg612xb0hp5l9pj1"))))
+ "0w8s6hakgsvb2nqwbv0lr8ki4cbf1pz5z3qwkb0b2k7ppbh7j2n6"))))
(build-system meson-build-system)
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
("intltool" ,intltool)
+ ("itstool" ,itstool)
("pkg-config" ,pkg-config)
("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
("glib:bin" ,glib "bin")))
@@ -5037,7 +5143,7 @@ share them with others via social networking and more.")
("json-glib" ,json-glib)
("libarchive" ,libarchive)
("libnotify" ,libnotify)
- ("itstool" ,itstool)
+ ("nettle" ,nettle)
("libxml2" ,libxml2)))
(synopsis "Graphical archive manager for GNOME")
(description "File Roller is an archive manager for the GNOME desktop
@@ -5049,7 +5155,7 @@ such as gzip tarballs.")
(define-public gnome-session
(package
(name "gnome-session")
- (version "3.30.1")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -5057,7 +5163,7 @@ such as gzip tarballs.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0fbpq103md4g9gi67rxnwvha21629nxx7qazddy6q6494sbqbzpa"))))
+ "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
(arguments
'(#:glib-or-gtk? #t
#:phases
@@ -5178,7 +5284,7 @@ javascript engine and the GObject introspection framework.")
(define-public gedit
(package
(name "gedit")
- (version "3.30.2")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -5186,38 +5292,72 @@ javascript engine and the GObject introspection framework.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0qwig35hzvjaqic9x92jcpmycnvcybsbnbiw6rppryx0arwb3wza"))))
- (build-system glib-or-gtk-build-system)
+ "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
+ (build-system meson-build-system)
(arguments
- `(#:phases
+ `(#:glib-or-gtk? #t
+ #:configure-flags
+ ;; Otherwise, the RUNPATH will lack the final path component.
+ (list (string-append "-Dc_link_args=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib/gedit"))
+
+ ;; XXX: Generated .h files are sometimes used before being built.
+ #:parallel-build? #f
+
+ #:phases
(modify-phases %standard-phases
- (add-after
- 'install 'wrap-gedit
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (gtksourceview (assoc-ref inputs "gtksourceview"))
- (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
- (python-path (getenv "PYTHONPATH")))
- (wrap-program (string-append out "/bin/gedit")
- ;; For plugins.
- `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
- `("PYTHONPATH" ":" prefix (,python-path))
- ;; For language-specs.
- `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
- "/share")))))
- #t)))))
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ ;; Don't create 'icon-theme.cache'.
+ (lambda _
+ (substitute* "build-aux/meson/post_install.py"
+ (("gtk-update-icon-cache") (which "true")))
+ #t))
+ (add-after 'unpack 'patch-libgd-fetch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((libgd (assoc-ref inputs "libgd")))
+ ;; Calling git is unnecessary because libgd is fetched as a
+ ;; native input to this package.
+ (substitute* "meson.build"
+ ((".*git.*") ""))
+ (copy-recursively libgd "subprojects/libgd")
+ #t)))
+ (add-after 'install 'wrap-gedit
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gtksourceview (assoc-ref inputs "gtksourceview"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+ (python-path (getenv "PYTHONPATH")))
+ (wrap-program (string-append out "/bin/gedit")
+ ;; For plugins.
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+ `("PYTHONPATH" ":" prefix (,python-path))
+ ;; For language-specs.
+ `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
+ "/share")))))
+ #t)))))
(propagated-inputs
`(("dconf" ,dconf)))
(native-inputs
- `(("intltool" ,intltool)
+ `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+ ("intltool" ,intltool)
("itstool" ,itstool)
+ ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection)
+ ("libgd"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.gnome.org/GNOME/libgd")
+ (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
+ (file-name (git-file-name "libgd" version))
+ (sha256
+ (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("gspell" ,gspell)
("gtk+" ,gtk+)
- ("gtksourceview" ,gtksourceview-3)
+ ("gtksourceview" ,gtksourceview)
("libpeas" ,libpeas)
("libxml2" ,libxml2)
("iso-codes" ,iso-codes)
@@ -5265,7 +5405,7 @@ to display dialog boxes from the commandline and shell scripts.")
(define-public mutter
(package
(name "mutter")
- (version "3.30.2")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -5273,39 +5413,46 @@ to display dialog boxes from the commandline and shell scripts.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0qr3w480p31nbiad49213rj9rk6p9fl82a68pzznpz36p30dq96z"))))
+ "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
;; versions of cogl and clutter. As a result, many of the inputs,
;; propagated-inputs, and configure flags used in cogl and clutter are
;; needed here as well.
- (build-system gnu-build-system)
+ (build-system meson-build-system)
(arguments
- '(#:configure-flags
- ;; XXX: build fails with [-Werror]:
- ;; backends/meta-cursor-renderer.c:112:5: error:
- ;; implicit declaration of function ?roundf?
- (list "--enable-compile-warnings=minimum"
-
- "--enable-native-backend"
+ '(;; XXX: All mutter tests fail with the following error:
+ ;; Settings schema 'org.gnome.mutter' is not installed
+ #:tests? #f
+ #:glib-or-gtk? #t
+ #:configure-flags
+ ;; Otherwise, the RUNPATH will lack the final path component.
+ (list (string-append "-Dc_link_args=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib:"
+ (assoc-ref %outputs "out") "/lib/mutter-4")
;; The following flags are needed for the bundled clutter
- "--enable-x11-backend=yes"
-
- (string-append "--with-xwayland-path="
+ (string-append "-Dxwayland_path="
(assoc-ref %build-inputs "xorg-server-xwayland")
"/bin/Xwayland")
;; the remaining flags are needed for the bundled cogl
- "--enable-cogl-gst"
- (string-append "--with-gl-libname="
+ (string-append "-Dopengl_libname="
(assoc-ref %build-inputs "mesa")
"/lib/libGL.so"))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'disable-werror
+ (lambda _
+ ;; XXX: build fails with [-Werror]:
+ ;; backends/meta-cursor-renderer.c:112:5: error:
+ ;; implicit declaration of function ?roundf?
+ (substitute* "meson.build"
+ (("'-Werror=.*',") ""))
+ #t))
;; Replace references to systemd libraries to elogind references.
(add-before 'configure 'use-elogind
(lambda _
- (substitute* (list "configure"
+ (substitute* (list "meson.build"
"src/backends/native/meta-launcher.c"
"src/core/main.c")
(("systemd") "elogind"))
@@ -5315,6 +5462,7 @@ to display dialog boxes from the commandline and shell scripts.")
("gobject-introspection" ,gobject-introspection)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server-for-tests)
;; For git build
("autoconf" ,autoconf)
("automake" ,automake)
@@ -5344,13 +5492,16 @@ to display dialog boxes from the commandline and shell scripts.")
(inputs
`(("elogind" ,elogind)
("gnome-desktop" ,gnome-desktop)
+ ("gnome-settings-daemon" ,gnome-settings-daemon)
("libcanberra-gtk" ,libcanberra)
("libgudev" ,libgudev)
("libice" ,libice)
("libsm" ,libsm)
+ ("libwacom" ,libwacom)
("libxkbfile" ,libxkbfile)
("libxrandr" ,libxrandr)
("libxtst" ,libxtst)
+ ("pipewire" ,pipewire)
("startup-notification" ,startup-notification)
("upower-glib" ,upower)
("xkeyboard-config" ,xkeyboard-config)
@@ -5368,7 +5519,7 @@ window manager.")
(define-public gnome-online-accounts
(package
(name "gnome-online-accounts")
- (version "3.30.2")
+ (version "3.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -5376,7 +5527,7 @@ window manager.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1p1gdgryziklrgngn6m13xnvfx4gb01h723nndfi9944r24fbiq5"))))
+ "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
(outputs '("out" "lib"))
(build-system glib-or-gtk-build-system)
(arguments
@@ -5402,6 +5553,7 @@ window manager.")
("gobject-introspection" ,gobject-introspection)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
+ ("vala" ,vala)
("xsltproc" ,libxslt)))
(propagated-inputs
`(("glib" ,glib) ; required by goa-1.0.pc
@@ -5424,7 +5576,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
(define-public evolution-data-server
(package
(name "evolution-data-server")
- (version "3.30.5")
+ (version "3.32.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -5433,7 +5585,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
(patches (search-patches "evolution-data-server-locales.patch"))
(sha256
(base32
- "1s952wyhgcbmq9nfgk75v15zdy1h3wy5p5rmkqibaavmc0pk3mli"))))
+ "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@@ -5460,11 +5612,13 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
(delete-file-recursively "tests/book-migration")
(substitute* "tests/CMakeLists.txt"
(("add_subdirectory\\(book-migration\\)") ""))
- ;; tests/libedata-cal/test-cal-meta-backend.c:1328:test_get_attachment_uris:
- ;; assertion failed (uris->data == expected_uri):
- ;; ("" == "file:///tests/libedata-cal/components/event-1.ics")
- (substitute* "tests/libedata-cal/CMakeLists.txt"
- (("test-cal-meta-backend") ""))
+ ;; tests/libebook/client/test-book-client-view-operations:8077):
+ ;; e-data-server-WARNING **:
+ ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
+ ;; runtime check failed:
+ ;; (!g_main_context_pending (closure->main_context))
+ (substitute* "tests/libebook/client/CMakeLists.txt"
+ (("test-book-client-view-operations") ""))
#t))
(add-after 'unpack 'patch-paths
(lambda _
@@ -5583,7 +5737,7 @@ users.")
(define-public network-manager
(package
(name "network-manager")
- (version "1.14.4")
+ (version "1.18.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/NetworkManager/"
@@ -5592,7 +5746,7 @@ users.")
(patches (search-patches "nm-plugin-path.patch"))
(sha256
(base32
- "064cgj9za0kzarks0lrv0qw2ysdphb5l97iw0c964bfiqzjfv8rm"))
+ "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -5995,7 +6149,7 @@ libxml2.")
(define-public gdm
(package
(name "gdm")
- (version "3.30.3")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6003,7 +6157,7 @@ libxml2.")
name "-" version ".tar.xz"))
(sha256
(base32
- "15f7lz7z75krgbq8vb800afj96h8mw2fpy1s28za2911x5vgq0ak"))))
+ "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags
@@ -6112,7 +6266,7 @@ libxml2.")
"\") == 0 && "
"g_strcmp0(base_name, \"fail.desktop\") == 0)"))
(("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
- "{ self->priv->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
+ "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
#t))
;; GDM requires that there be at least one desktop entry
;; file. This phase installs a hidden one that simply
@@ -6210,7 +6364,7 @@ usage and information about running processes.")
(define-public gnome-bluetooth
(package
(name "gnome-bluetooth")
- (version "3.28.0")
+ (version "3.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6218,7 +6372,7 @@ usage and information about running processes.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0q7yzklrlayj99risj096mr5x35anx94wvr6nbf6pwbvvzv7453p"))))
+ "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
(build-system meson-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
@@ -6229,10 +6383,11 @@ usage and information about running processes.")
("xmllint" ,libxml2)))
(propagated-inputs
;; gnome-bluetooth-1.0.pc refers to all these.
- `(("gtk+" ,gtk+)
- ("udev" ,eudev)))
+ `(("glib" ,glib)
+ ("gtk+" ,gtk+)))
(inputs
- `(("libcanberra" ,libcanberra)
+ `(("eudev" ,eudev)
+ ("libcanberra" ,libcanberra)
("libnotify" ,libnotify)))
(synopsis "GNOME Bluetooth subsystem")
(home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
@@ -6244,7 +6399,7 @@ devices using the GNOME desktop.")
(define-public gnome-control-center
(package
(name "gnome-control-center")
- (version "3.30.3")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6252,9 +6407,7 @@ devices using the GNOME desktop.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0gih1cmqbv803kp30704sllghb0impa0mmv3j8pndfg4zr2mnq9r"))
- (patches
- (search-patches "gnome-control-center-udisks.patch"))))
+ "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
@@ -6301,7 +6454,11 @@ devices using the GNOME desktop.")
("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
("intltool" ,intltool)
("pkg-config" ,pkg-config)
- ("xsltproc" ,libxslt)))
+ ("xsltproc" ,libxslt)
+ ;; For tests
+ ("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("python-dbusmock" ,python-dbusmock)
+ ("xorg-server" ,xorg-server-for-tests)))
(inputs
`(("accountsservice" ,accountsservice)
("clutter-gtk" ,clutter-gtk)
@@ -6317,6 +6474,7 @@ devices using the GNOME desktop.")
("gnome-session" ,gnome-session)
("gnome-settings-daemon" ,gnome-settings-daemon)
("grilo" ,grilo)
+ ("gsound" ,gsound)
("ibus" ,ibus)
("libcanberra" ,libcanberra)
("libgnomekbd" ,libgnomekbd)
@@ -6349,7 +6507,7 @@ properties, screen resolution, and other GNOME parameters.")
(define-public gnome-shell
(package
(name "gnome-shell")
- (version "3.30.2")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6357,7 +6515,7 @@ properties, screen resolution, and other GNOME parameters.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0kacd4w9lc5finsvs170i7827qkxwd1ddj0g2giizwffpjdjqqr2"))
+ "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
(patches (search-patches "gnome-shell-theme.patch"))
(modules '((guix build utils)))
(snippet
@@ -6573,7 +6731,7 @@ easy, safe, and automatic.")
(define-public tracker
(package
(name "tracker")
- (version "2.0.4")
+ (version "2.2.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/tracker/"
@@ -6581,35 +6739,26 @@ easy, safe, and automatic.")
"tracker-" version ".tar.xz"))
(sha256
(base32
- "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"))))
- (build-system glib-or-gtk-build-system)
+ "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
+ (build-system meson-build-system)
(arguments
- `(#:phases
+ `(#:glib-or-gtk? #t
+ #:configure-flags
+ ;; Otherwise, the RUNPATH will lack the final path component.
+ (list (string-append "-Dc_link_args=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib:"
+ (assoc-ref %outputs "out") "/lib/tracker-2.0"))
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-broken-tests
(lambda _
- ;; FIXME: Most of these fail with GLib-GIO-FATAL-ERROR: Settings
- ;; schema 'org.freedesktop.Tracker.FTS' is not installed.
- (substitute* "tests/libtracker-miner/Makefile.in"
- (("tracker-file-notifier-test\\$\\(EXEEXT\\)") "")
- (("tracker-miner-fs-test\\$\\(EXEEXT\\)") "")
- (("tracker-monitor-test\\$\\(EXEEXT\\)") ""))
- (substitute* "tests/libtracker-fts/Makefile.in"
- (("tracker-fts-test\\$\\(EXEEXT\\)") ""))
- (substitute* "tests/libtracker-data/Makefile.in"
- (("tracker-ontology\\$\\(EXEEXT\\)") "")
- (("tracker-ontology-change\\$\\(EXEEXT\\)") "")
- (("tracker-backup\\$\\(EXEEXT\\)") "")
- (("tracker-sparql-blank\\$\\(EXEEXT\\)") "")
- (("tracker-sparql\\$\\(EXEEXT\\)") ""))
;; These fail because the SPARQL backend could not be loaded.
;; That's because /etc/machine-id is missing, but
;; DBUS_FATAL_WARNINGS does not help here.
- (substitute* "tests/libtracker-sparql/Makefile.in"
- (("tracker-gb-737023-test\\$\\(EXEEXT\\)") "")
- (("tracker-sparql-test\\$\\(EXEEXT\\)") ""))
- (substitute* "tests/tracker-steroids/Makefile.in"
- (("tracker-test\\$\\(EXEEXT\\)") ""))
+ (substitute* "tests/libtracker-sparql/meson.build"
+ (("'sparql',") ""))
+ (substitute* "tests/tracker-steroids/meson.build"
+ (("test\\(.*") ""))
#t))
;; Two tests fail if LANG is not set.
(add-before 'check 'pre-check
@@ -6619,39 +6768,101 @@ easy, safe, and automatic.")
(setenv "DBUS_FATAL_WARNINGS" "0")
#t)))))
(native-inputs
- `(("gnome-common" ,gnome-common)
+ `(("glib:bin" ,glib "bin")
+ ("gnome-common" ,gnome-common)
("gobject-introspection" ,gobject-introspection)
+ ("python-pygobject" ,python-pygobject)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("gtk+" ,gtk+)
("dbus" ,dbus)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
("sqlite" ,sqlite)
("python" ,python)
("poppler" ,poppler)
- ("libgsf" ,libgsf)
- ("libexif" ,libexif)
("libpng" ,libpng)
("libtiff" ,libtiff)
- ("libvorbis" ,libvorbis)
- ("flac" ,flac)
- ("totem-pl-parser" ,totem-pl-parser)
("zlib" ,zlib)
- ("exempi" ,exempi)
("libxml2" ,libxml2)
- ("upower" ,upower)
("libunistring" ,libunistring)
- ("giflib" ,giflib)
("json-glib" ,json-glib)
("openjpeg" ,openjpeg-1)
- ("libosinfo" ,libosinfo)
- ("libcue" ,libcue)
("libseccomp" ,libseccomp)
("libsoup" ,libsoup)
- ("libuuid" ,util-linux)))
+ ("libuuid" ,util-linux)
+ ("network-manager" ,network-manager)))
+ (synopsis "Metadata database, indexer and search tool")
+ (home-page "https://wiki.gnome.org/Projects/Tracker")
+ (description
+ "Tracker is an advanced framework for first class objects with associated
+metadata and tags. It provides a one stop solution for all metadata, tags,
+shared object databases, search tools and indexing.")
+ ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
+ ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
+ (license (list license:gpl2+
+ license:lgpl2.1+
+ license:lgpl2.0+))))
+
+(define-public tracker-miners
+ (package
+ (name "tracker-miners")
+ (version "2.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/tracker-miners/"
+ (version-major+minor version)
+ "/tracker-miners-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t
+ #:configure-flags
+ (list "-Dminer_rss=false" ; libgrss is required.
+ ;; Ensure the RUNPATH contains all installed library locations.
+ (string-append "-Dc_link_args=-Wl,-rpath="
+ (assoc-ref %outputs "out")
+ "/lib/tracker-miners-2.0")
+ ;; TODO: Enable functional tests. Currently, the following error
+ ;; appears:
+ ;; Exception: The functional tests require DConf to be the default
+ ;; GSettings backend. Got GKeyfileSettingsBackend instead.
+ "-Dfunctional_tests=false")))
+ (native-inputs
+ `(("dbus" ,dbus)
+ ("intltool" ,intltool)
+ ("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("pkg-config" ,pkg-config)
+ ("python-pygobject" ,python-pygobject)))
+ (inputs
+ `(("exempi" ,exempi)
+ ("ffmpeg" ,ffmpeg)
+ ("flac" ,flac)
+ ("giflib" ,giflib)
+ ("glib" ,glib)
+ ("gstreamer" ,gstreamer)
+ ("icu4c" ,icu4c)
+ ("libcue" ,libcue)
+ ("libexif" ,libexif)
+ ("libgsf" ,libgsf)
+ ("libgxps" ,libgxps)
+ ("libiptcdata" ,libiptcdata)
+ ("libjpeg" ,libjpeg)
+ ("libosinfo" ,libosinfo)
+ ("libpng" ,libpng)
+ ("libseccomp" ,libseccomp)
+ ("libtiff" ,libtiff)
+ ("libvorbis" ,libvorbis)
+ ("libxml2" ,libxml2)
+ ("poppler" ,poppler)
+ ("taglib" ,taglib)
+ ("totem-pl-parser" ,totem-pl-parser)
+ ("tracker" ,tracker)
+ ("upower" ,upower)
+ ("zlib" ,zlib)))
(synopsis "Metadata database, indexer and search tool")
(home-page "https://wiki.gnome.org/Projects/Tracker")
(description
@@ -6667,7 +6878,7 @@ shared object databases, search tools and indexing.")
(define-public nautilus
(package
(name "nautilus")
- (version "3.30.5")
+ (version "3.32.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6675,7 +6886,7 @@ shared object databases, search tools and indexing.")
name "-" version ".tar.xz"))
(sha256
(base32
- "144r4py9b8w9ycsg6fggjg05kwvymh003qsb3h6apgpch5y3zgnv"))))
+ "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
@@ -6696,9 +6907,11 @@ shared object databases, search tools and indexing.")
("exempi" ,exempi)
("gnome-desktop" ,gnome-desktop)
("gnome-autoar" ,gnome-autoar)
+ ("gst-plugins-base" ,gst-plugins-base)
("libseccomp" ,libseccomp)
("libselinux" ,libselinux)
("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
@@ -6718,7 +6931,7 @@ files.")
(define-public baobab
(package
(name "baobab")
- (version "3.30.0")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -6727,7 +6940,7 @@ files.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0kx721s1hhw1g0nvbqhb93g8iq6f852imyhfhl02zcqy4ipx0kay"))))
+ "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t))
@@ -6754,7 +6967,7 @@ is complete it provides a graphical representation of each selected folder.")
(define-public gnome-backgrounds
(package
(name "gnome-backgrounds")
- (version "3.30.0")
+ (version "3.32.0")
(source
(origin
(method url-fetch)
@@ -6763,11 +6976,11 @@ is complete it provides a graphical representation of each selected folder.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1179jrl16bp9gqabqhw7nnfp8qzf5y1vf9fi45bni6rfmwm3mrpc"))))
+ "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
(build-system meson-build-system)
(native-inputs
`(("intltool" ,intltool)))
- (home-page "https://git.gnome.org/browse/gnome-backgrounds")
+ (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
(synopsis "Background images for the GNOME desktop")
(description
"GNOME backgrounds package contains a collection of graphics files which
@@ -6782,7 +6995,7 @@ can add your own files to the collection.")
(define-public gnome-screenshot
(package
(name "gnome-screenshot")
- (version "3.30.0")
+ (version "3.32.0")
(source
(origin
(method url-fetch)
@@ -6791,7 +7004,7 @@ can add your own files to the collection.")
name "-" version ".tar.xz"))
(sha256
(base32
- "06dx3svxq6sar4913mrz5lzb7hmc66wck138vmyxj8x8iv1iw0w8"))))
+ "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
(build-system meson-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@@ -6816,7 +7029,7 @@ beautifying border effects.")
(define-public dconf-editor
(package
(name "dconf-editor")
- (version "3.30.2")
+ (version "3.32.0")
(source
(origin
(method url-fetch)
@@ -6825,7 +7038,7 @@ beautifying border effects.")
name "-" version ".tar.xz"))
(sha256
(base32
- "06f736spn20s7qjsz00xw44v8r8bjhyrz1v3bix6v416jc5jp6ia"))))
+ "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
(build-system meson-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -6917,6 +7130,7 @@ associations for GNOME.")
("gnome-backgrounds" ,gnome-backgrounds)
("gnome-bluetooth" ,gnome-bluetooth)
("gnome-calculator" ,gnome-calculator)
+ ("gnome-contacts" ,gnome-contacts)
("gnome-control-center" ,gnome-control-center)
("gnome-disk-utility" ,gnome-disk-utility)
("gnome-default-applications" ,gnome-default-applications)
@@ -7064,7 +7278,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
(define-public gnome-clocks
(package
(name "gnome-clocks")
- (version "3.30.1")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -7072,7 +7286,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
name "-" version ".tar.xz"))
(sha256
(base32
- "009fr6zwv37wryi0c0syi4i7pxpdbn3gliws68l99cjsbn2qd6pc"))))
+ "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t))
@@ -7102,7 +7316,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.")
(define-public gnome-calendar
(package
(name "gnome-calendar")
- (version "3.30.1")
+ (version "3.32.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -7110,7 +7324,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1avi7a29y8d8kzwslp51nwy6s692alms7917454j0xpfc6hnw62s"))))
+ "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
@@ -7232,7 +7446,7 @@ existing databases over the internet.")
(define-public gnome-tweaks
(package
(name "gnome-tweaks")
- (version "3.30.2")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-tweaks/"
@@ -7242,7 +7456,7 @@ existing databases over the internet.")
(list (search-patch "gnome-tweaks-search-paths.patch")))
(sha256
(base32
- "0j63siy1i5pl2g6di1r9vjn54m9ahh42wj20j6689pza2lamay1z"))))
+ "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -7291,7 +7505,7 @@ GNOME Shell appearance and extension, etc.")
(define-public gnome-shell-extensions
(package
(name "gnome-shell-extensions")
- (version "3.30.1")
+ (version "3.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -7299,7 +7513,7 @@ GNOME Shell appearance and extension, etc.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1grxn4f5x754r172wmnf0h0xpy69afmj359zsj1rwgqlzw4i4c5p"))))
+ "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
(build-system meson-build-system)
(arguments
'(#:configure-flags '("-Dextension_set=all")))
@@ -7756,7 +7970,7 @@ Bluefish supports many programming and markup languages.")
(define-public gnome-system-monitor
(package
(name "gnome-system-monitor")
- (version "3.30.0")
+ (version "3.32.1")
(source
(origin
(method url-fetch)
@@ -7765,7 +7979,7 @@ Bluefish supports many programming and markup languages.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0g0y565bjs6bdszrnxsz1f7hcm1x59i3mfvplysirh7nz3hpz888"))))
+ "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
@@ -7798,7 +8012,7 @@ kill/reinice processes.")
(define-public python-pyatspi
(package
(name "python-pyatspi")
- (version "2.26.0")
+ (version "2.34.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -7807,9 +8021,7 @@ kill/reinice processes.")
"/pyatspi-" version ".tar.xz"))
(sha256
(base32
- "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))
- ;; Patch from upstream, fixed in newer versions.
- (patches (search-patches "python-pyatspi-python-37.patch"))))
+ "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -7839,7 +8051,7 @@ accessibility infrastructure.")
(define-public orca
(package
(name "orca")
- (version "3.30.2")
+ (version "3.32.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -7848,7 +8060,7 @@ accessibility infrastructure.")
name "-" version ".tar.xz"))
(sha256
(base32
- "17asibc46i5gr2fw04jvvdi85zzmxwlnhyq7r6cr3m5prrdr8a53"))))
+ "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:phases
@@ -8098,7 +8310,7 @@ photo-booth-like software, such as Cheese.")
(define-public cheese
(package
(name "cheese")
- (version "3.30.0")
+ (version "3.32.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -8106,7 +8318,7 @@ photo-booth-like software, such as Cheese.")
version ".tar.xz"))
(sha256
(base32
- "0zz2bgjaf2lsmfs3zn24925vbjb0rycr39i288brlbzixrpcyljr"))))
+ "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
(arguments
;; Tests require GDK.
`(#:tests? #f
@@ -8304,7 +8516,7 @@ micro-pauses and rest breaks, and restricts you to your daily limit.")
(define-public ghex
(package
(name "ghex")
- (version "3.18.3")
+ (version "3.18.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/ghex/"
@@ -8312,10 +8524,21 @@ micro-pauses and rest breaks, and restricts you to your daily limit.")
"ghex-" version ".tar.xz"))
(sha256
(base32
- "1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66"))))
- (build-system glib-or-gtk-build-system)
+ "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ ;; Don't create 'icon-theme.cache'.
+ (lambda _
+ (substitute* "meson_post_install.py"
+ (("gtk-update-icon-cache") (which "true")))
+ #t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
+ ("glib:bin" ,glib "bin") ; for glib-compile-schemas
("gnome-common" ,gnome-common)
("which" ,which)
("intltool" ,intltool)
@@ -8374,7 +8597,7 @@ generic enough to work for everyone.")
(define-public evolution
(package
(name "evolution")
- (version "3.30.5")
+ (version "3.32.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/evolution/"
@@ -8382,7 +8605,7 @@ generic enough to work for everyone.")
"evolution-" version ".tar.xz"))
(sha256
(base32
- "1hhxj3rh921pp3l3c5k33bdypcas1p66krzs65k1qn82c5fpgl2h"))))
+ "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
(build-system cmake-build-system)
(arguments
`(#:imported-modules (,@%cmake-build-system-modules
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index ce45ef33f7..abce1aa41a 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -260,14 +260,14 @@ compatible to GNU Pth.")
(define-public gnupg
(package
(name "gnupg")
- (version "2.2.18")
+ (version "2.2.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "02pcdmb9p4a8hil88gyd86mnc85jldss3cl02jvbkcjmrbi7rlrh"))))
+ "1h6yx6sdpz3lf9gdppgxqcf73baynr8gflmh43286fkgw3058994"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 4b18bd43da..674b24e594 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2218,7 +2218,7 @@ from @code{tree-il}.")
(define-public guile-file-names
(package
(name "guile-file-names")
- (version "0.2")
+ (version "0.3")
(source (origin
(method url-fetch)
(uri (string-append "http://brandon.invergo.net/software/download/"
@@ -2226,7 +2226,7 @@ from @code{tree-il}.")
version ".tar.gz"))
(sha256
(base32
- "1kwx5hanl40960w2nhyga7ry4l6c3c57zdrihk4yajj87vn3pmi8"))))
+ "01chizdxkhw6aqv629vxka9f5x3534ij7r0jqndawsg2vxm1r9sz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index f0317def1d..889635a345 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -250,6 +250,18 @@ without requiring the source code to be rewritten.")
(variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/2.2/site-ccache")))))))
+(define-public guile-2.2/bug-fix
+ ;; This variant contains a bug fix for a relatively rare crash that could
+ ;; affect shepherd as PID 1: <https://bugs.gnu.org/37757>.
+ (package
+ (inherit guile-2.2)
+ (version (string-append (package-version guile-2.2) "-1"))
+ (source (origin
+ (inherit (package-source guile-2.2))
+ (patches
+ (append (search-patches "guile-finalization-crash.patch")
+ (origin-patches (package-source guile-2.2))))))))
+
(define-public guile-2.2/fixed
;; A package of Guile 2.2 that's rarely changed. It is the one used
;; in the `base' module, and thus changing it entails a full rebuild.
@@ -276,14 +288,14 @@ without requiring the source code to be rewritten.")
(package
(inherit guile-2.2)
(name "guile-next")
- (version "2.9.5")
+ (version "2.9.6")
(source (origin
(inherit (package-source guile-2.2))
(uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-"
version ".tar.xz"))
(sha256
(base32
- "1db91mhvphzmiyw6f41ks9haysphygngv400ivgqf23lg22wn5zr"))))
+ "09rihg5bhzhdk6hfkpav6ajny69dflabgvnm8r7lran723gy5vbf"))))
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 1672170131..5888e8542e 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1527,3 +1527,71 @@ The first three components of the version number match the upstream flot
version. The package is designed to meet the redistribution
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+
+(define-public ghc-happstack-server
+ (package
+ (name "ghc-happstack-server")
+ (version "7.5.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/happstack-server/happstack-server-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0i7csvmwv7n68gkwqzi985p2mjdgzipjnlj873sdiknhx9pfmq70"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-network" ,ghc-network)
+ ("ghc-network-bsd" ,ghc-network-bsd)
+ ("ghc-network-uri" ,ghc-network-uri)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-blaze-html" ,ghc-blaze-html)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-extensible-exceptions"
+ ,ghc-extensible-exceptions)
+ ("ghc-hslogger" ,ghc-hslogger)
+ ("ghc-html" ,ghc-html)
+ ("ghc-monad-control" ,ghc-monad-control)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-sendfile" ,ghc-sendfile)
+ ("ghc-system-filepath" ,ghc-system-filepath)
+ ("ghc-syb" ,ghc-syb)
+ ("ghc-threads" ,ghc-threads)
+ ("ghc-transformers-base" ,ghc-transformers-base)
+ ("ghc-transformers-compat"
+ ,ghc-transformers-compat)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-zlib" ,ghc-zlib)))
+ (native-inputs `(("ghc-hunit" ,ghc-hunit)))
+ (home-page "http://happstack.com")
+ (synopsis "Web related tools and services for Haskell")
+ (description
+ "Happstack Server provides an HTTP server and a rich set of functions for
+routing requests, handling query parameters, generating responses, working with
+cookies, serving files, and more.")
+ (license license:bsd-3)))
+
+(define-public ghc-sendfile
+ (package
+ (name "ghc-sendfile")
+ (version "0.7.11.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/sendfile/sendfile-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0988snmx3bylpw3kcq8hsgji8idc6xcrcfp275qjv3apfdgc9rp0"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-network" ,ghc-network)))
+ (home-page
+ "https://hub.darcs.net/stepcut/sendfile")
+ (synopsis "Portable sendfile library for Haskell")
+ (description
+ "Haskell library which exposes zero-copy sendfile functionality in a portable way.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/i2p.scm b/gnu/packages/i2p.scm
index 075f1f403f..f8c3f3bb5c 100644
--- a/gnu/packages/i2p.scm
+++ b/gnu/packages/i2p.scm
@@ -30,7 +30,7 @@
(define-public i2pd
(package
(name "i2pd")
- (version "2.27.0")
+ (version "2.29.0")
(source
(origin
(method git-fetch)
@@ -39,7 +39,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "00y0y57z84gakwa88zzm0g3ixgc6y7zm35rjiysiajzvmdq5w1wf"))))
+ (base32 "1issg3aidwikk4g12sa8q81zzp0hd0g8wdy2dx4899z8yrscl300"))))
(build-system cmake-build-system)
(inputs `(("boost" ,boost)
("miniupnpc" ,miniupnpc)
@@ -68,7 +68,12 @@
"./tests")
(with-directory-excursion "tests"
(substitute* "Makefile"
- (("../libi2pd/") (string-append source "/libi2pd/")))
+ (("../libi2pd/") (string-append source "/libi2pd/"))
+ ;; Disable the x25519 test, which only compiles if
+ ;; openssl doesn't have X25519 support, but the
+ ;; version we use has it.
+ (("test-base-64 test-x25519 test-aeadchacha20poly1305")
+ "test-base-64 test-aeadchacha20poly1305"))
(apply invoke "make" "all"
`(,@(if parallel-tests?
`("-j" ,(number->string
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index e280b81c61..ee6c8ea485 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2128,6 +2128,11 @@ between feed formats.")
(setenv "HOME" (getcwd))
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
+ (with-output-to-file "bin/BLACKLIST"
+ (lambda _
+ ;; Blacklist some failing tests. FIXME: Make them pass.
+ (display "[testRenameFile]\n*\n")
+ (display "[testMoveFile]\n*\n")))
#t))
(add-after 'unpack 'remove-failing-test
;; This test fails on i686 and aarch64
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index b4cbd5a721..24d8eedd84 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -27,6 +27,7 @@
(define-module (gnu packages kde)
#:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
+ #:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
@@ -35,7 +36,9 @@
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages apr)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
@@ -54,6 +57,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages tls)
#:use-module (gnu packages qt)
@@ -143,7 +147,7 @@ projects.")
(define-public kdevelop
(package
(name "kdevelop")
- (version "5.1.2")
+ (version "5.4.5")
(source
(origin
(method url-fetch)
@@ -152,73 +156,79 @@ projects.")
version ".tar.xz"))
(sha256
(base32
- "1iqaq0ilijjigqb34v5wq9in6bnjs0p9cmgbygjmy53xhh3yhm5g"))))
- (build-system cmake-build-system)
+ "08vhbg9ql0402bw3y3xw1kdxhig9sv3ss8g0h4477vy3z17m1h4j"))))
+ (build-system qt-build-system)
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("pkg-config" ,pkg-config)
+ ("shared-mime-info" ,shared-mime-info)
("qttools" ,qttools)))
(inputs
- `(("kdevplatform" ,kdevplatform)
- ("kdevelop-pg-qt" ,kdevelop-pg-qt)
- ("qtbase" ,qtbase)
- ("qtdeclarative" ,qtdeclarative)
- ("qtquickcontrols" ,qtquickcontrols)
- ("qtwebkit" ,qtwebkit)
+ `(("boost" ,boost)
+ ("clang" ,clang)
+ ("grantlee" ,grantlee)
("karchive" ,karchive)
("kcmutils" ,kcmutils)
- ("kconfig" ,kconfig)
+ ("kcrash" ,kcrash)
("kdeclarative" ,kdeclarative)
("kdoctools" ,kdoctools)
("kguiaddons" ,kguiaddons)
("ki18n" ,ki18n)
- ("kio" ,kio)
("kiconthemes" ,kiconthemes)
+ ("kio" ,kio) ;; not checked as requirement
("kitemmodels" ,kitemmodels)
("kitemviews" ,kitemviews)
("kjobwidgets" ,kjobwidgets)
- ("knotifyconfig" ,knotifyconfig)
("knotifications" ,knotifications)
+ ("knotifyconfig" ,knotifyconfig)
("kparts" ,kparts)
- ("kcrash" ,kcrash)
- ("knewstuff" ,knewstuff)
- ("krunner" ,krunner)
- ("kxmlgui" ,kxmlgui)
- ("libksysguard" ,libksysguard)
- ("threadweaver" ,threadweaver)
+ ("kservice" ,kservice)
("ktexteditor" ,ktexteditor)
("kwindowsystem" ,kwindowsystem)
+ ("kxmlgui" ,kxmlgui)
+ ("libkomparediff2" ,libkomparediff2)
+ ("oxygen-icons" ,oxygen-icons)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtquickcontrols" ,qtquickcontrols) ;; not checked as requirement
+ ("qtquickcontrols2" ,qtquickcontrols2) ;; not checked as requirement
+ ("qtwebkit" ,qtwebkit)
+ ("threadweaver" ,threadweaver)
+
+ ;; recommendes
+ ("astyle" ,astyle)
+ ("kdevelop-pg-qt" ,kdevelop-pg-qt)
+ ("libksysguard" ,libksysguard)
+
+ ;; optional
+ ("apr" ,apr) ; required for subversion support
+ ("apr-util" ,apr-util) ; required for subversion support
+ ("attica" ,attica)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("knewstuff" ,knewstuff)
+ ("krunner" ,krunner)
+ ;; TODO: OktetaGui, OktetaKastenControllers
("plasma" ,plasma-framework)
- ("grantlee" ,grantlee)
- ("libepoxy" ,libepoxy)
- ("clang" ,clang)
- ("shared-mime-info" ,shared-mime-info)))
+ ;; TODO: purpose
+ ("sonnet" ,sonnet)
+ ("subversion" ,subversion)))
+
+ ;; run-time packages - TODO
+ ;; ClazyStandalone
+ ;; Cppcheck
+ ;; heaptrack
+ ;; heaptrack_gui
+ ;; meson
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'check) ;; there are some issues with the test suite
- (add-after 'install 'wrap-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (kdevplatform (assoc-ref inputs "kdevplatform"))
- (kio (assoc-ref inputs "kio"))
- (kcmutils (assoc-ref inputs "kcmutils"))
- (qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
- (qtbase (assoc-ref inputs "qtbase"))
- (qtdeclarative (assoc-ref inputs "qtdeclarative"))
- (qml "/qml"))
- (wrap-program (string-append out "/bin/kdevelop")
- `("XDG_DATA_DIRS" ":" prefix
- ,(map (lambda (s) (string-append s "/share"))
- (list out kdevplatform kcmutils)))
- `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
- (,(string-append qtbase "/plugins/platforms")))
- `("QT_PLUGIN_PATH" ":" prefix
- ,(map (lambda (s) (string-append s "/lib/plugins"))
- (list out kdevplatform kio)))
- `("QML2_IMPORT_PATH" ":" prefix
- (,(string-append qtquickcontrols qml)
- ,(string-append qtdeclarative qml))))))))))
+ `(#:tests? #f ;; there are some issues with the test suite
+ #:phases
+ (modify-phases (@ (guix build qt-build-system) %standard-phases)
+ (add-before 'configure 'add-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cmake/modules/FindClang.cmake"
+ (("^\\s*PATHS \"\\$\\{CLANG_LIBRARY_DIRS\\}\"" line)
+ (string-append line " " (assoc-ref inputs "clang") "/lib")))
+ #t)))))
(home-page "https://kdevelop.org")
(synopsis "IDE for C, C++, Python, Javascript and PHP")
(description "The KDevelop IDE provides semantic syntax highlighting, as
@@ -231,7 +241,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
(define-public kdevelop-pg-qt
(package
(name "kdevelop-pg-qt")
- (version "2.0.0")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
@@ -239,7 +249,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1av8plqz7hyhrd07avnmn6ryslqlarmxn0pw7swzvb6ddiqp59j4"))))
+ (base32 "15ja19gg6x7gww4ch12hy585x55ghbkpsiyr8fqiyjk0j6v07hh5"))))
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)))
(inputs
@@ -251,77 +261,8 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
for some KDevelop language plugins (Ruby, PHP, CSS...).")
(license license:lgpl2.0+)))
-(define-public kdevplatform
- (package
- (name "kdevplatform")
- (version "5.1.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://kde/stable/kdevelop"
- "/" version "/src/kdevplatform-"
- version ".tar.xz"))
- (sha256
- (base32
- "0jk6g1kiqpyjy8pca0236b9944gxqnymqv8ny6m8nrraannxs8p6"))))
- (build-system cmake-build-system)
- (native-inputs
- `(("extra-cmake-modules" ,extra-cmake-modules)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("apr" ,apr)
- ("apr-util" ,apr-util)
- ("boost" ,boost)
- ("karchive" ,karchive)
- ("kconfigwidgets" ,kconfigwidgets)
- ("kcmutils" ,kcmutils)
- ("kiconthemes" ,kiconthemes)
- ("kdeclarative" ,kdeclarative)
- ("kdoctools" ,kdoctools)
- ("kguiaddons" ,kguiaddons)
- ("kinit" ,kinit)
- ("kitemmodels" ,kitemmodels)
- ("knewstuff" ,knewstuff)
- ("knotifications" ,knotifications)
- ("knotifyconfig" ,knotifyconfig)
- ("kwindowsystem" ,kwindowsystem)
- ("kio" ,kio)
- ("ki18n" ,ki18n)
- ("kparts" ,kparts)
- ("kservice" ,kservice)
- ("grantlee" ,grantlee)
- ("libkomparediff2" ,libkomparediff2)
- ("sonnet" ,sonnet)
- ("threadweaver" ,threadweaver)
- ("ktexteditor" ,ktexteditor)
- ("qtbase" ,qtbase)
- ("qtdeclarative" ,qtdeclarative)
- ("qtscript" ,qtscript)
- ("qtwebkit" ,qtwebkit)
- ("qtx11extras" ,qtx11extras)
- ("plasma" ,plasma-framework)
- ("subversion" ,subversion)
- ("zlib" ,zlib)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
- (setenv "QT_PLUGIN_PATH"
- (string-append out "/lib/plugins:"
- (getenv "QT_PLUGIN_PATH")))
- (setenv "XDG_DATA_DIRS"
- (string-append out "/share:"
- (getenv "XDG_DATA_DIRS")))
- (invoke "ctest" "-R" ; almost all tests require a display
- "filteringstrategy|kdevvarlengtharray|kdevhash")))))))
- (home-page "https://github.com/KDE/kdevplatform")
- (synopsis "Framework to build integrated development environments (IDEs)")
- (description "KDevPlatform is the basis of KDevelop and contains some
-plugins, as well as code to create plugins, or complete applications.")
- (license license:gpl3+)))
+;; kdevplatform was merged into kdevelop as of 5.2.x
+(define-deprecated kdevplatform kdevelop kdevelop)
(define-public krita
(package
@@ -656,3 +597,57 @@ system-wide profiler for Linux using statistical sampling with hardware
performance counters. There also exist converters for profiling output of
Python, PHP, and Perl.")
(license license:gpl2)))
+
+(define-public libkdegames
+ (package
+ (name "libkdegames")
+ (version "19.08.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kde/stable/applications/" version
+ "/src/libkdegames-" version ".tar.xz"))
+ (sha256
+ (base32 "12dvkmjgbi8dp9y55zmx1pw3zr2i374c4vn3mfn9r31bf06dr701"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (inputs
+ `(("karchive" ,karchive)
+ ("kbookmarks" ,kbookmarks)
+ ("kcodecs" ,kcodecs)
+ ("kcompletion" ,kcompletion)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("kcrash" ,kcrash)
+ ("kdbusaddons" ,kdbusaddons)
+ ("kdeclarative" ,kdeclarative)
+ ("kdnssd" ,kdnssd)
+ ("kglobalaccel" ,kglobalaccel)
+ ("kguiaddons" ,kguiaddons)
+ ("ki18n" ,ki18n)
+ ("kiconthemes" ,kiconthemes)
+ ;("kio" ,kio)
+ ("kitemviews" ,kitemviews)
+ ("kjobwidgets" ,kjobwidgets)
+ ("knewstuff" ,knewstuff)
+ ("kservice" ,kservice)
+ ("ktextwidgets" ,ktextwidgets)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("kxmlgui" ,kxmlgui)
+ ("libsndfile" ,libsndfile)
+ ("openal" ,openal)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtsvg" ,qtsvg)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'check-setup
+ (lambda _
+ ;; make Qt render "offscreen", required for tests
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ #t)))))
+ (home-page "https://games.kde.org/")
+ (synopsis "Runtime library for kdegames")
+ (description "Runtime library for kdegames")
+ (license (list license:gpl2+ license:fdl1.2+))))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index eb9aa4513c..fb9be39a31 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -37,6 +37,7 @@
;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -83,6 +84,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
@@ -104,6 +106,7 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages rrdtool)
#:use-module (gnu packages samba)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages slang)
#:use-module (gnu packages texinfo)
@@ -122,6 +125,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix build-system linux-module)
@@ -352,42 +356,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
"linux-" version ".tar.xz"))
(sha256 hash)))
-(define-public linux-libre-5.3-version "5.3.14")
+(define-public linux-libre-5.3-version "5.3.15")
(define-public linux-libre-5.3-pristine-source
(let ((version linux-libre-5.3-version)
- (hash (base32 "0ckrbzwsc4lxd3l287wsd88mkfsd0kpf8nzchd9nfmkjiil14mwm")))
+ (hash (base32 "15qidl06lyfylx1b43b4wz2zfkr4000bkr7ialslmb7yi7mamj6f")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.3)))
-(define-public linux-libre-4.19-version "4.19.87")
+(define-public linux-libre-4.19-version "4.19.88")
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "07fsds2k0hxqgny86winzl46d79g6mb9s28bp7nwlvwf67l22wm5")))
+ (hash (base32 "1gizkdmq46ykw7ya3hibd6lalww2kvsia346pq3xvrk6s5mkp4n1")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.157")
+(define-public linux-libre-4.14-version "4.14.158")
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "0cvpagbjwpj63lpybfq1rnwdnxcjw49z0b5prah39krf0nd7dylh")))
+ (hash (base32 "1cqvr8pgqx005a9qyphqykakzwc54adq8mmdc9sgrxkkw9rfqj8d")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.205")
+(define-public linux-libre-4.9-version "4.9.206")
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
- (hash (base32 "01cbqxw77g6rdg7dgk73pg9a2n9v4sxp48q2a77w1b068xjfifcq")))
+ (hash (base32 "1mnabj0d5ra40hijwynnzxnh5w1qnvkvj2l3ydsdhkdwm6cpiwhx")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
-(define-public linux-libre-4.4-version "4.4.205")
+(define-public linux-libre-4.4-version "4.4.206")
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
- (hash (base32 "19pasidvfmf94rs86v80x7hpirz9gavmkxwcl76ya61fq7lqy7zs")))
+ (hash (base32 "14ylg9cm7z12mvkzg8z92gsw0libw9xz392ayzw0d9cgw1py39ax")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
@@ -1480,7 +1484,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(define-public strace
(package
(name "strace")
- (version "5.3")
+ (version "5.4")
(home-page "https://strace.io")
(source (origin
(method url-fetch)
@@ -1488,7 +1492,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
"/strace-" version ".tar.xz"))
(sha256
(base32
- "0ix06z4vnc49mv76f22kixz8dsh7daqv9mpgwcgl0mlnfjc124vc"))))
+ "0hd7sb7l99y9rcj8jjc1b6m3ryds17krsymdg3dvd40jsla0bl7p"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -3078,9 +3082,9 @@ country-specific regulations for the wireless spectrum.")
(("cat ")
(string-append (assoc-ref inputs "coreutils")
"/bin/cat "))
- (("egrep ")
+ (("grep ")
(string-append (assoc-ref inputs "grep")
- "/bin/egrep "))
+ "/bin/grep "))
(("sed -e")
(string-append (assoc-ref inputs "sed")
"/bin/sed -e"))
@@ -6139,6 +6143,47 @@ have to construct the archives directly, without using the archiver.")
types and interfaces and translates so that the X server can use them.")
(license license:gpl2+)))
+(define-public pipewire
+ (package
+ (name "pipewire")
+ (version "0.2.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PipeWire/pipewire")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:configure-flags '("-Dsystemd=false")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("dbus" ,dbus)
+ ("eudev" ,eudev)
+ ("ffmpeg" ,ffmpeg)
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("libva" ,libva)
+ ("sbc" ,sbc)
+ ("sdl2" ,sdl2)))
+ (home-page "https://pipewire.org/")
+ (synopsis "Server and user space API to deal with multimedia pipelines")
+ (description
+ "PipeWire is a project that aims to greatly improve handling of audio and
+video under Linux. It aims to support the usecases currently handled by both
+PulseAudio and Jack and at the same time provide same level of powerful handling
+of Video input and output. It also introduces a security model that makes
+interacting with audio and video devices from containerized applications easy,
+with supporting Flatpak applications being the primary goal. Alongside Wayland
+and Flatpak we expect PipeWire to provide a core building block for the future
+of Linux application development.")
+ (license license:lgpl2.0+)))
+
(define-public ell
(package
(name "ell")
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index dc44a9d133..d51b9a3662 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
@@ -354,10 +354,10 @@ an interpreter, a compiler, a debugger, and much more.")
;;
;; CCL is not bootstrappable so it won't do. CLISP 2.49 seems to work.
;; ECL too. ECL builds SBCL about 20% slower than CLISP. As of
- ;; 2019-09-05, ECL was last updated in 2016 while CLISP was last update
+ ;; 2019-09-05, ECL was last updated in 2016 while CLISP was last updated
;; in 2010.
;;
- ;; For now we stick to CLISP for all systems. We keep the `match' in to
+ ;; For now we stick to CLISP for all systems. We keep the `match' here to
;; make it easier to change the host compiler for various architectures.
`(,@(match (%current-system)
((or "x86_64-linux" "i686-linux")
@@ -422,7 +422,8 @@ an interpreter, a compiler, a debugger, and much more.")
(("\\(deftest pwent\\.[12]" all)
(string-append "#+nil ;disabled by Guix\n" all))
(("\\(deftest grent\\.[12]" all)
- (string-append "#+nil ;disabled by Guix\n" all))))))
+ (string-append "#+nil ;disabled by Guix\n" all))))
+ #t))
;; FIXME: the texlive-union insists on regenerating fonts. It stores
;; them in HOME, so it needs to be writeable.
(add-before 'build 'set-HOME
@@ -444,6 +445,7 @@ an interpreter, a compiler, a debugger, and much more.")
(invoke "sh" "install.sh")))
(add-after 'build 'build-doc
(lambda _
+ ;; TODO: Doc is not deterministic, maybe there is a timespamp?
(with-directory-excursion "doc/manual"
(and (invoke "make" "info")
(invoke "make" "dist")))))
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index 6b9ab051b4..5a3708e30a 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -1143,14 +1143,14 @@ window manager OpenBox.")
(define-public qps
(package
(name "qps")
- (version "1.10.20")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lxqt/" name "/releases/download/"
version "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0dz7ricxg2rrmdyca6mc2d4lyy5bpksjk751hvn95wssr76y2w0m"))))
+ (base32 "0ysnh918n9wz2vgjvyix32kx2j0v4lskjacgcychrpb8sch2dbsi"))))
(build-system cmake-build-system)
(inputs
`(("libxrender" ,libxrender)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index f350726e41..8e2149d7d5 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -482,6 +482,45 @@ in arbitrary dimension. It can also be used for the converse operation of
computing convex hulls.")
(license license:gpl2+)))
+(define-public lrslib
+ (package
+ (name "lrslib")
+ (version "7.0a")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/"
+ "lrslib-0"
+ (string-delete #\. version) ".tar.gz"))
+ (sha256
+ (base32
+ "034fa45r9hwx6ljmgpxk2872q34nklkalpdkc6s9hqw57rivi36k"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("gmp" ,gmp)))
+ (arguments
+ `(#:tests? #f ; no check phase
+ #:make-flags `("CC=gcc"
+ ,(string-append "prefix=" (assoc-ref %outputs "out"))
+ "all-shared")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "makefile"
+ (("-L \\.") "-L . -Wl,-rpath='$$ORIGIN/../lib'"))
+ #t)))))
+ (home-page "http://cgm.cs.mcgill.ca/~avis/C/lrs.html")
+ (synopsis "Convex hulls of polyhedra with exact arithmetic")
+ (description
+ "The C code of lrslib implements the reverse search algorithm for
+vertex enumeration and convex hull problems. Its input file format is
+compatible with cddlib. All computations are done exactly in either
+multiple precision or fixed integer arithmetic. Output is not stored
+in memory, so even problems with very large output sizes can sometimes
+be solved.")
+ (license license:gpl2+)))
+
(define-public arpack-ng
(package
(name "arpack-ng")
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 59710c45ae..5d85c5ff51 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -21,6 +21,9 @@
(define-module (gnu packages mes)
#:use-module (gnu packages)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages bootstrap)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages gcc)
#:use-module (gnu packages graphviz)
@@ -134,7 +137,7 @@ bootstrap to Guix and aims to help create full source bootstrapping for
GNU/Linux distributions. It consists of a mutual self-hosting Scheme
interpreter in C and a Nyacc-based C compiler in Scheme and is compatible with
Guile.")
- (home-page "https://gnu.org/software/mes")
+ (home-page "https://www.gnu.org/software/mes/")
(license gpl3+)))
(define-public mes
@@ -145,12 +148,86 @@ Guile.")
(method url-fetch)
(uri (string-append "mirror://gnu/mes/"
"mes-" version ".tar.gz"))
+ (patches (search-patches "mes-remove-store-name.patch"))
(sha256
(base32
"104qxngxyl7pql8vqrnli3wfyx0ayfaqg8gjfhmk4qzrafs46slm"))))
(propagated-inputs
`(("mescc-tools" ,mescc-tools)
- ("nyacc" ,nyacc)))))
+ ("nyacc" ,nyacc)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "C_INCLUDE_PATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib")))))))
+
+(define-public mes-rb5
+ ;; This is the Reproducible-Builds summit 5's Mes, also built on Debian
+ ;; GNU/Linux and NixOS to produce the same, bit-for-bit identical result.
+ (package
+ (inherit mes)
+ (name "mes-rb5")
+ (inputs '())
+ (propagated-inputs '())
+ (native-inputs
+ `(("bash" ,bash)
+ ("coreutils" ,coreutils)
+ ("grep" ,grep)
+ ("guile" ,guile-2.2)
+ ("libc" ,glibc)
+ ("locales" ,glibc-utf8-locales)
+ ("make" ,gnu-make)
+ ("mes" ,mes)
+ ("mescc-tools" ,mescc-tools)
+ ("nyacc" ,nyacc)
+ ("sed" ,sed)
+ ("tar" ,tar)
+ ("xz" ,xz)))
+ (supported-systems '("i686-linux"))
+ (arguments
+ `(#:implicit-inputs? #f
+ #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries
+ #:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 popen)
+ (ice-9 rdelim))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'setenv
+ (lambda _
+ (setenv "AR" "mesar")
+ (setenv "CC" "mescc")
+ (setenv "GUILD" "true")
+ (setenv "SCHEME" "mes")
+ (setenv "LC_ALL" "en_US.UTF-8")
+ #t))
+ (replace 'configure
+ (lambda _
+ (let ((out (assoc-ref %outputs "out")))
+ (invoke "sh" "configure.sh"
+ (string-append "--prefix=" out)
+ "--host=i686-unkown-linux-gnu"
+ "--with-courage"))))
+ (replace 'build
+ (lambda _
+ (invoke "sh" "bootstrap.sh")))
+ (replace 'check
+ (lambda _
+ (let ((sha256sum
+ (read-delimited
+ " "
+ (open-pipe* OPEN_READ "sha256sum" "src/mes"))))
+ (unless
+ (equal?
+ sha256sum
+ "9e0bcb1633c58e7bc415f6ea27cee7951d6b0658e13cdc147e992b31a14625fb")
+ (throw 'error "mes checksum failure"))
+ #t)))
+ (replace 'install
+ (lambda _
+ (invoke "sh" "install.sh"))))))))
(define-public mescc-tools-0.5.2
;; Mescc-tools used for bootstrap.
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 6f2ebe5104..6990d85a21 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -607,7 +607,10 @@ else [])"))
(let ((file (string-append out "/bin/" name))
(gi-typelib-path (getenv "GI_TYPELIB_PATH")))
(wrap-program file
- `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+ ;; For translations
+ `("XDG_DATA_DIRS" ":" prefix
+ (,(string-append (assoc-ref outputs "out") "/share"))))))
'("gajim" "gajim-remote" "gajim-history-manager")))
#t))
(add-after 'install 'install-icons
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 92406be10a..b526e26811 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3838,7 +3838,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke
(define-public musescore
(package
(name "musescore")
- (version "3.3.3")
+ (version "3.3.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3847,7 +3847,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke
(file-name (git-file-name name version))
(sha256
(base32
- "11pcw2ihi7ddd4rr83y72i61yyc1qfj6v14a82zwlak2qnllpbmr"))
+ "1jwj89v69nhyawj8x7niwznm1vgvp51dhzw6ggnarc3wdvp6qq8y"))
(modules '((guix build utils)))
(snippet
;; Un-bundle OpenSSL and remove unused libraries.
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 05f348ad0f..cfa244c39b 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -35,6 +35,7 @@
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
+;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -601,14 +602,14 @@ of the same name.")
(define-public wireshark
(package
(name "wireshark")
- (version "3.0.6")
+ (version "3.0.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.wireshark.org/download/src/wireshark-"
version ".tar.xz"))
(sha256
- (base32 "0gp3qg0280ysrsaa97yfazka8xcyrspsrw8bfgqxnpf1l0i40zx8"))))
+ (base32 "1wljg5z994r8zbjig52zlgp0b8lqbzdl1d6ysnw9hcvm2y82farv"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -2522,12 +2523,6 @@ communication over HTTP.")
(home-page "https://github.com/Corvusoft/restbed")
(license license:agpl3+))))
-(define fmt-restinio
- (package
- (inherit fmt)
- (arguments
- '(#:configure-flags '("-DCMAKE_CXX_FLAGS=-fPIC")))))
-
(define-public restinio
(package
(name "restinio")
@@ -2552,7 +2547,7 @@ communication over HTTP.")
("sobjectizer" ,sobjectizer)))
(propagated-inputs
`(("asio", asio)
- ("fmt" ,fmt-restinio)
+ ("fmt" ,fmt)
("http-parser", http-parser)))
(arguments
`(#:configure-flags '("-DRESTINIO_INSTALL=on")
@@ -2591,7 +2586,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
("readline" ,readline)
("jsoncpp" ,jsoncpp)
("openssl" ,openssl)
- ("fmt" ,fmt-restinio)))
+ ("fmt" ,fmt)))
(propagated-inputs
`(("argon2" ,argon2) ; TODO: Needed for the pkg-config .pc file to work?
("msgpack" ,msgpack))) ;included in several installed headers
@@ -2822,3 +2817,33 @@ to be a teaching tool and presents the subnetting results as
easy-to-understand binary values.")
(home-page "http://jodies.de/ipcalc")
(license license:gpl2+)))
+
+(define-public vde2
+ (package
+ (name "vde2")
+ (version "2.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri "mirror://sourceforge/vde/vde2/2.3.2/vde2-2.3.2.tar.gz")
+ (sha256
+ (base32 "14xga0ib6p1wrv3hkl4sa89yzjxv7f1vfqaxsch87j6scdm59pr2"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-build? #f)) ; Build fails if #t.
+ (inputs
+ `(("python" ,python)
+ ("libpcap" ,libpcap)
+ ("openssl" ,openssl-1.0))) ; Build fails with 1.1.
+ (home-page "https://github.com/virtualsquare/vde-2")
+ (synopsis "Virtual Distributed Ethernet")
+ (description "VDE is a set of programs to provide virtual software-defined
+Ethernet network interface controllers across multiple virtual or
+physical, local or remote devices. The VDE architecture provides
+virtual counterparts to hardware components such as switches and
+cables.")
+ (license (list license:gpl2
+ license:lgpl2.1 ; libvdeplug
+ (license:non-copyleft ; slirpvde
+ "file://COPYING.slirpvde"
+ "See COPYING.slirpvde in the distribution.")))))
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 65f95aaa8a..4f421f6e9d 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -71,6 +71,7 @@ in the Mozilla clients.")
(package
(name "nss")
(version "3.46.1")
+ (replacement nss/fixed)
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@@ -183,3 +184,11 @@ applications. Applications built with NSS can support SSL v2 and v3, TLS,
PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
security standards.")
(license license:mpl2.0)))
+
+(define nss/fixed
+ (package
+ (inherit nss)
+ (source (origin
+ (inherit (package-source nss))
+ (patches (append (search-patches "nss-CVE-2019-11745.patch")
+ (origin-patches (package-source nss))))))))
diff --git a/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch b/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch
deleted file mode 100644
index d05b4351b3..0000000000
--- a/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-This patch was taken from Nixpkgs.
-
-From 616381bc25b0e90198683fb049f994e82d467d96 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
-Date: Sat, 13 May 2017 02:45:49 +0200
-Subject: [PATCH] Don't use hardcoded /sbin, /usr/bin etc. paths. Fixes
- #1450546.
-
-Instead, rely on programs to be in PATH, as gluster already
-does in many places across its code base.
-
-Change-Id: Id21152fe42f5b67205d8f1571b0656c4d5f74246
----
- contrib/fuse-lib/mount-common.c | 8 ++++----
- xlators/mgmt/glusterd/src/glusterd-ganesha.c | 6 +++---
- xlators/mgmt/glusterd/src/glusterd-quota.c | 6 +++---
- xlators/mgmt/glusterd/src/glusterd-snapshot.c | 4 ++--
- xlators/mgmt/glusterd/src/glusterd-utils.c | 14 +-------------
- 5 files changed, 13 insertions(+), 25 deletions(-)
-
-diff --git a/contrib/fuse-lib/mount-common.c b/contrib/fuse-lib/mount-common.c
-index e9f80fe81..6380dd867 100644
---- a/contrib/fuse-lib/mount-common.c
-+++ b/contrib/fuse-lib/mount-common.c
-@@ -255,16 +255,16 @@ fuse_mnt_umount (const char *progname, const char *abs_mnt,
- exit (1);
- }
- #ifdef GF_LINUX_HOST_OS
-- execl ("/bin/umount", "/bin/umount", "-i", rel_mnt,
-+ execl ("umount", "umount", "-i", rel_mnt,
- lazy ? "-l" : NULL, NULL);
-- GFFUSE_LOGERR ("%s: failed to execute /bin/umount: %s",
-+ GFFUSE_LOGERR ("%s: failed to execute umount: %s",
- progname, strerror (errno));
- #elif __NetBSD__
- /* exitting the filesystem causes the umount */
- exit (0);
- #else
-- execl ("/sbin/umount", "/sbin/umount", "-f", rel_mnt, NULL);
-- GFFUSE_LOGERR ("%s: failed to execute /sbin/umount: %s",
-+ execl ("umount", "umount", "-f", rel_mnt, NULL);
-+ GFFUSE_LOGERR ("%s: failed to execute umount: %s",
- progname, strerror (errno));
- #endif /* GF_LINUX_HOST_OS */
- exit (1);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c
-index 0e6629cf0..fcb4738b7 100644
---- a/xlators/mgmt/glusterd/src/glusterd-quota.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-quota.c
-@@ -30,7 +30,7 @@
-
- #ifndef _PATH_SETFATTR
- # ifdef GF_LINUX_HOST_OS
--# define _PATH_SETFATTR "/usr/bin/setfattr"
-+# define _PATH_SETFATTR "setfattr"
- # endif
- # ifdef __NetBSD__
- # define _PATH_SETFATTR "/usr/pkg/bin/setfattr"
-@@ -335,7 +335,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
-
- if (type == GF_QUOTA_OPTION_TYPE_ENABLE ||
- type == GF_QUOTA_OPTION_TYPE_ENABLE_OBJECTS)
-- runner_add_args (&runner, "/usr/bin/find", ".", NULL);
-+ runner_add_args (&runner, "find", ".", NULL);
-
- else if (type == GF_QUOTA_OPTION_TYPE_DISABLE) {
-
-@@ -351,7 +351,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
- VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "1",
- "{}", "\\", ";", NULL);
- #else
-- runner_add_args (&runner, "/usr/bin/find", ".",
-+ runner_add_args (&runner, "find", ".",
- "-exec", _PATH_SETFATTR, "-n",
- VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "-v",
- "1", "{}", "\\", ";", NULL);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot.c b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-index da0152366..f0d135350 100644
---- a/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-@@ -121,7 +121,7 @@ glusterd_build_snap_device_path (char *device, char *snapname,
- }
-
- runinit (&runner);
-- runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "vg_name",
-+ runner_add_args (&runner, "lvs", "--noheadings", "-o", "vg_name",
- device, NULL);
- runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
- snprintf (msg, sizeof (msg), "Get volume group for device %s", device);
-@@ -1982,7 +1982,7 @@ glusterd_is_thinp_brick (char *device, uint32_t *op_errno)
-
- runinit (&runner);
-
-- runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "pool_lv",
-+ runner_add_args (&runner, "lvs", "--noheadings", "-o", "pool_lv",
- device, NULL);
- runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
- runner_log (&runner, this->name, GF_LOG_DEBUG, msg);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
-index 51db13df0..6fa7b92f9 100644
---- a/xlators/mgmt/glusterd/src/glusterd-utils.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
-@@ -6027,7 +6027,6 @@ static struct fs_info {
- char *fs_tool_pattern;
- char *fs_tool_pkg;
- } glusterd_fs[] = {
-- /* some linux have these in /usr/sbin/and others in /sbin/? */
- { "xfs", "xfs_info", NULL, "isize=", "xfsprogs" },
- { "ext3", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
- { "ext4", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
-@@ -6048,7 +6047,6 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
- char *trail = NULL;
- runner_t runner = {0, };
- struct fs_info *fs = NULL;
-- char fs_tool_name[256] = {0, };
- static dict_t *cached_fs = NULL;
-
- memset (key, 0, sizeof (key));
-@@ -6085,17 +6083,7 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
- cur_word = "N/A";
- goto cached;
- }
--
-- snprintf (fs_tool_name, sizeof (fs_tool_name),
-- "/usr/sbin/%s", fs->fs_tool_name);
-- if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
-- runner_add_arg (&runner, fs_tool_name);
-- else {
-- snprintf (fs_tool_name, sizeof (fs_tool_name),
-- "/sbin/%s", fs->fs_tool_name);
-- if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
-- runner_add_arg (&runner, fs_tool_name);
-- }
-+ runner_add_arg (&runner, fs->fs_tool_name);
- break;
- }
- }
---
-2.12.0
-
diff --git a/gnu/packages/patches/gnome-control-center-udisks.patch b/gnu/packages/patches/gnome-control-center-udisks.patch
deleted file mode 100644
index 823684b2e9..0000000000
--- a/gnu/packages/patches/gnome-control-center-udisks.patch
+++ /dev/null
@@ -1,221 +0,0 @@
-This patch is derived from upstream commit 2520aea6 and fixes upstream issues
-285 and 302. See https://gitlab.gnome.org/GNOME/gcr/merge_requests/387,
-https://gitlab.gnome.org/GNOME/gnome-control-center/issues/285 and
-https://gitlab.gnome.org/GNOME/gnome-control-center/issues/302.
-
-diff --git a/panels/info/cc-info-overview-panel.c b/panels/info/cc-info-overview-panel.c
-index e2276a295b3fd9de01b30fc3369069b5d33ba5b7..ff47c1fef2493bcc7ab34f9e8716d570d8d370ed 100644
---- a/panels/info/cc-info-overview-panel.c
-+++ b/panels/info/cc-info-overview-panel.c
-@@ -36,6 +36,7 @@
- #include <glibtop/mountlist.h>
- #include <glibtop/mem.h>
- #include <glibtop/sysinfo.h>
-+#include <udisks/udisks.h>
-
- #include <gdk/gdk.h>
-
-@@ -81,9 +82,7 @@ typedef struct
-
- GCancellable *cancellable;
-
-- /* Free space */
-- GList *primary_mounts;
-- guint64 total_bytes;
-+ UDisksClient *client;
-
- GraphicsData *graphics_data;
- } CcInfoOverviewPanelPrivate;
-@@ -96,8 +95,6 @@ struct _CcInfoOverviewPanel
- CcInfoOverviewPanelPrivate *priv;
- };
-
--static void get_primary_disc_info_start (CcInfoOverviewPanel *self);
--
- typedef struct
- {
- char *major;
-@@ -486,111 +483,51 @@ get_os_type (void)
- }
-
- static void
--query_done (GFile *file,
-- GAsyncResult *res,
-- CcInfoOverviewPanel *self)
-+get_primary_disc_info (CcInfoOverviewPanel *self)
- {
- CcInfoOverviewPanelPrivate *priv;
-- g_autoptr(GFileInfo) info = NULL;
-- g_autoptr(GError) error = NULL;
--
-- info = g_file_query_filesystem_info_finish (file, res, &error);
-- if (info != NULL)
-- {
-- priv = cc_info_overview_panel_get_instance_private (self);
-- priv->total_bytes += g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE);
-- }
-- else
-- {
-- if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-- return;
-- else
-- {
-- g_autofree char *path = NULL;
-- path = g_file_get_path (file);
-- g_warning ("Failed to get filesystem free space for '%s': %s", path, error->message);
-- }
-- }
-+ GDBusObjectManager *manager;
-+ g_autolist(GDBusObject) objects = NULL;
-+ GList *l;
-+ guint64 total_size;
-
-- /* And onto the next element */
-- get_primary_disc_info_start (self);
--}
--
--static void
--get_primary_disc_info_start (CcInfoOverviewPanel *self)
--{
-- GUnixMountEntry *mount;
-- g_autoptr(GFile) file = NULL;
-- CcInfoOverviewPanelPrivate *priv = cc_info_overview_panel_get_instance_private (self);
-+ priv = cc_info_overview_panel_get_instance_private (self);
-+ total_size = 0;
-
-- if (priv->primary_mounts == NULL)
-+ if (!priv->client)
- {
-- g_autofree char *size = NULL;
--
-- size = g_format_size (priv->total_bytes);
-- gtk_label_set_text (GTK_LABEL (priv->disk_label), size);
--
-+ gtk_label_set_text (GTK_LABEL (priv->disk_label), _("Unknown"));
- return;
- }
-
-- mount = priv->primary_mounts->data;
-- priv->primary_mounts = g_list_remove (priv->primary_mounts, mount);
-- file = g_file_new_for_path (g_unix_mount_get_mount_path (mount));
-- g_unix_mount_free (mount);
--
-- g_file_query_filesystem_info_async (file,
-- G_FILE_ATTRIBUTE_FILESYSTEM_SIZE,
-- 0,
-- priv->cancellable,
-- (GAsyncReadyCallback) query_done,
-- self);
--}
--
--static void
--get_primary_disc_info (CcInfoOverviewPanel *self)
--{
-- GList *points;
-- GList *p;
-- GHashTable *hash;
-- CcInfoOverviewPanelPrivate *priv = cc_info_overview_panel_get_instance_private (self);
--
-- hash = g_hash_table_new (g_str_hash, g_str_equal);
-- points = g_unix_mount_points_get (NULL);
--
-- /* If we do not have /etc/fstab around, try /etc/mtab */
-- if (points == NULL)
-- points = g_unix_mounts_get (NULL);
-+ manager = udisks_client_get_object_manager (priv->client);
-+ objects = g_dbus_object_manager_get_objects (manager);
-
-- for (p = points; p != NULL; p = p->next)
-+ for (l = objects; l != NULL; l = l->next)
- {
-- GUnixMountEntry *mount = p->data;
-- const char *mount_path;
-- const char *device_path;
--
-- mount_path = g_unix_mount_get_mount_path (mount);
-- device_path = g_unix_mount_get_device_path (mount);
--
-- /* Do not count multiple mounts with same device_path, because it is
-- * probably something like btrfs subvolume. Use only the first one in
-- * order to count the real size. */
-- if (gsd_should_ignore_unix_mount (mount) ||
-- gsd_is_removable_mount (mount) ||
-- g_str_has_prefix (mount_path, "/media/") ||
-- g_str_has_prefix (mount_path, g_get_home_dir ()) ||
-- g_hash_table_lookup (hash, device_path) != NULL)
-+ UDisksDrive *drive;
-+ drive = udisks_object_peek_drive (UDISKS_OBJECT (l->data));
-+
-+ /* Skip removable devices */
-+ if (drive == NULL ||
-+ udisks_drive_get_removable (drive) ||
-+ udisks_drive_get_ejectable (drive))
- {
-- g_unix_mount_free (mount);
- continue;
- }
-
-- priv->primary_mounts = g_list_prepend (priv->primary_mounts, mount);
-- g_hash_table_insert (hash, (gpointer) device_path, (gpointer) device_path);
-+ total_size += udisks_drive_get_size (drive);
- }
-- g_list_free (points);
-- g_hash_table_destroy (hash);
-
-- priv->cancellable = g_cancellable_new ();
-- get_primary_disc_info_start (self);
-+ if (total_size > 0)
-+ {
-+ g_autofree gchar *size = g_format_size (total_size);
-+ gtk_label_set_text (GTK_LABEL (priv->disk_label), size);
-+ }
-+ else
-+ {
-+ gtk_label_set_text (GTK_LABEL (priv->disk_label), _("Unknown"));
-+ }
- }
-
- static char *
-@@ -852,8 +789,7 @@ cc_info_overview_panel_finalize (GObject *object)
- g_clear_object (&priv->cancellable);
- }
-
-- if (priv->primary_mounts)
-- g_list_free_full (priv->primary_mounts, (GDestroyNotify) g_unix_mount_free);
-+ g_clear_object (&priv->client);
-
- g_free (priv->gnome_version);
- g_free (priv->gnome_date);
-@@ -895,6 +831,7 @@ static void
- cc_info_overview_panel_init (CcInfoOverviewPanel *self)
- {
- CcInfoOverviewPanelPrivate *priv = cc_info_overview_panel_get_instance_private (self);
-+ g_autoptr(GError) error = NULL;
-
- gtk_widget_init_template (GTK_WIDGET (self));
-
-@@ -907,6 +844,12 @@ cc_info_overview_panel_init (CcInfoOverviewPanel *self)
- else
- gtk_widget_destroy (priv->updates_button);
-
-+ priv->client = udisks_client_new_sync (NULL, &error);
-+
-+ if (error != NULL)
-+ g_warning ("Unable to get UDisks client: %s. Disk information will not be available.",
-+ error->message);
-+
- info_overview_panel_setup_overview (self);
- info_overview_panel_setup_virt (self);
- }
-diff --git a/panels/info/meson.build b/panels/info/meson.build
-index 03742551314f91b60e3ec1caad153ff314b93310..c54e5fdaff3c6ddb59cca8ee9a2bf5a0212bf196 100644
---- a/panels/info/meson.build
-+++ b/panels/info/meson.build
-@@ -61,6 +61,7 @@ sources += gnome.compile_resources(
-
- deps = common_deps + [
- polkit_gobject_dep,
-+ dependency('udisks2', version: '>= 2.1.8'),
- dependency('libgtop-2.0')
- ]
-
diff --git a/gnu/packages/patches/guile-finalization-crash.patch b/gnu/packages/patches/guile-finalization-crash.patch
new file mode 100644
index 0000000000..098249e49f
--- /dev/null
+++ b/gnu/packages/patches/guile-finalization-crash.patch
@@ -0,0 +1,61 @@
+commit edf5aea7ac852db2356ef36cba4a119eb0c81ea9
+Author: Ludovic Courtès <ludo@gnu.org>
+Date: Mon Dec 9 14:44:59 2019 +0100
+
+ Fix non-deterministic crash in 'finalization_thread_proc'.
+
+ Fixes <https://bugs.gnu.org/37757>.
+ Reported by Jesse Gibbons <jgibbons2357@gmail.com>.
+
+ * libguile/finalizers.c (finalization_thread_proc): Do not enter the
+ "switch (data.byte)" condition when data.n <= 0.
+
+diff --git a/libguile/finalizers.c b/libguile/finalizers.c
+index c5d69e8e3..94a6e6b0a 100644
+--- a/libguile/finalizers.c
++++ b/libguile/finalizers.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2012, 2013, 2014 Free Software Foundation, Inc.
++/* Copyright (C) 2012, 2013, 2014, 2019 Free Software Foundation, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+@@ -211,21 +211,26 @@ finalization_thread_proc (void *unused)
+
+ scm_without_guile (read_finalization_pipe_data, &data);
+
+- if (data.n <= 0 && data.err != EINTR)
++ if (data.n <= 0)
+ {
+- perror ("error in finalization thread");
+- return NULL;
++ if (data.err != EINTR)
++ {
++ perror ("error in finalization thread");
++ return NULL;
++ }
+ }
+-
+- switch (data.byte)
++ else
+ {
+- case 0:
+- scm_run_finalizers ();
+- break;
+- case 1:
+- return NULL;
+- default:
+- abort ();
++ switch (data.byte)
++ {
++ case 0:
++ scm_run_finalizers ();
++ break;
++ case 1:
++ return NULL;
++ default:
++ abort ();
++ }
+ }
+ }
+ }
diff --git a/gnu/packages/patches/mes-remove-store-name.patch b/gnu/packages/patches/mes-remove-store-name.patch
new file mode 100644
index 0000000000..ad055c51f2
--- /dev/null
+++ b/gnu/packages/patches/mes-remove-store-name.patch
@@ -0,0 +1,121 @@
+From d8f361705325cf91fc6c2ec84f281cdcd6bfa8b1 Mon Sep 17 00:00:00 2001
+From: Jan Nieuwenhuizen <janneke@gnu.org>
+Date: Tue, 3 Dec 2019 21:23:24 +0100
+Subject: [PATCH] core: Remove MES_PKGDATADIR.
+
+* configure: Do not add MES_PKGDATADIR to config.h.
+* configure.sh: Likewise.
+* simple.sh: Likewise.
+* src/mes.c (open_boot): Do not use MES_PKGDATADIR; rely on
+MES_PREFIX or cwd.
+---
+ configure | 1 -
+ configure.sh | 1 -
+ simple.sh | 2 --
+ src/mes.c | 13 -------------
+ 4 files changed, 17 deletions(-)
+
+diff --git a/configure b/configure
+index 8edb2ce7b..12d8323f2 100755
+--- a/configure
++++ b/configure
+@@ -666,7 +666,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
+ "))
+ (display (string-append "
+ #define MES_VERSION \"" VERSION "\"
+-#define MES_PKGDATADIR \"" pkgdatadir "\"
+ ")))))
+ (substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
+
+diff --git a/configure.sh b/configure.sh
+index 947ddd851..0139cbc36 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -244,7 +244,6 @@ EOF
+ fi
+ cat >> include/mes/config.h <<EOF
+ #define MES_VERSION "$VERSION"
+-#define MES_PKGDATADIR "$pkgdatadir"
+ EOF
+
+ cat <<EOF
+diff --git a/simple.sh b/simple.sh
+index db6950354..b54398a59 100755
+--- a/simple.sh
++++ b/simple.sh
+@@ -33,7 +33,6 @@ mes_bits=64
+ cat > include/mes/config.h <<EOF
+ #define SYSTEM_LIBC 1
+ #define MES_VERSION "git"
+-#define MES_PKGDATADIR "/usr/local/share/mes"
+ EOF
+
+ ## Build ##
+@@ -126,7 +125,6 @@ mes_cpu=x86_64
+ cat > include/mes/config.h <<EOF
+ // #define SYSTEM_LIBC 0
+ #define MES_VERSION "git"
+-#define MES_PKGDATADIR "/usr/local/share/mes"
+ EOF
+
+ ## Build ##
+diff --git a/src/mes.c b/src/mes.c
+index d9760fad6..a5e7f2b69 100644
+--- a/src/mes.c
++++ b/src/mes.c
+@@ -1775,12 +1775,6 @@ open_boot ()
+ char boot[1024];
+ char file_name[1024];
+ strcpy (g_datadir, ".");
+- if (g_debug > 1)
+- {
+- eputs (";;; pkgdatadir=");
+- eputs (MES_PKGDATADIR);
+- eputs ("\n");
+- }
+ if (getenv ("MES_BOOT"))
+ strcpy (boot, getenv ("MES_BOOT"));
+ else
+@@ -1801,13 +1795,6 @@ open_boot ()
+ __stdin = try_open_boot (file_name, boot, "MES_PREFIX/share/mes");
+ }
+ }
+- if (__stdin < 0)
+- {
+- strcpy (g_datadir, MES_PKGDATADIR);
+- strcpy (file_name, g_datadir);
+- strcpy (file_name + strlen (file_name), "/module/mes/");
+- __stdin = try_open_boot (file_name, boot, "pkgdatadir");
+- }
+ if (__stdin < 0)
+ {
+ g_datadir[0] = 0;
+--
+2.24.0
+
+commit 2f6fab05b3f09df02aba70c3e21d5fedb45dc567
+Author: Jan Nieuwenhuizen <janneke@gnu.org>
+Date: Sun Nov 24 23:12:29 2019 +0100
+
+ core: Throw instead of segfault on non-existing input file. WIP.
+
+ Reported by theruran.
+
+ * src/posix.c (open_input_file): Call error instead of failing silently.
+
+diff --git a/src/posix.c b/src/posix.c
+index 7ba2e9915..fd753232d 100644
+--- a/src/posix.c
++++ b/src/posix.c
+@@ -188,7 +188,10 @@ current_input_port ()
+ SCM
+ open_input_file (SCM file_name)
+ {
+- return MAKE_NUMBER (mes_open (CSTRING (file_name), O_RDONLY, 0));
++ int filedes = mes_open (CSTRING (file_name), O_RDONLY, 0);
++ if (filedes == -1)
++ error (cell_symbol_system_error, cons (MAKE_STRING0 ("No such file or directory"), file_name));
++ return MAKE_NUMBER (filedes);
+ }
+
+ SCM
diff --git a/gnu/packages/patches/ncompress-fix-softlinks.patch b/gnu/packages/patches/ncompress-fix-softlinks.patch
new file mode 100644
index 0000000000..98752e8e64
--- /dev/null
+++ b/gnu/packages/patches/ncompress-fix-softlinks.patch
@@ -0,0 +1,24 @@
+Patch taken from Debian sid.
+
+Description: Support uncompressing and compressing soft links.
+ Historically, ncompress for Debian has been built using a command line
+ directly in debian/rules. For 4.2.4.5-1, I simplified by swtching to the
+ upstream Makefile. However, that caused a regression - the Debian version of
+ ncompress has always successfully handled soft links, but this stopped
+ working. To revert to the original behavior, I need to remove -DLSTAT from
+ the build options, to be consistent with how the code was previously built.
+Author: Kenneth J. Pronovici <pronovic@debian.org>
+Bug-Debian: http://bugs.debian.org/918836
+Index: ncompress/GNUmakefile
+===================================================================
+--- ncompress.orig/GNUmakefile
++++ ncompress/GNUmakefile
+@@ -9,7 +9,7 @@ distclean: cleanup
+
+ Makefile: Makefile.def GNUmakefile
+ sed \
+- -e 's:options= :options= $$(CFLAGS) -DNOFUNCDEF -DUTIME_H -DLSTAT $$(LDFLAGS) :' \
++ -e 's:options= :options= $$(CFLAGS) -DNOFUNCDEF -DUTIME_H $$(LDFLAGS) :' \
+ Makefile.def > Makefile
+
+ check:
diff --git a/gnu/packages/patches/nss-CVE-2019-11745.patch b/gnu/packages/patches/nss-CVE-2019-11745.patch
new file mode 100644
index 0000000000..ae0eeda3c8
--- /dev/null
+++ b/gnu/packages/patches/nss-CVE-2019-11745.patch
@@ -0,0 +1,24 @@
+Fix CVE-2019-11745 (Out-of-bounds write when passing an output buffer smaller
+than the block size to NSC_EncryptUpdate).
+
+Copied from Debian, equivalent to upstream fix:
+<https://hg.mozilla.org/projects/nss/rev/1e22a0c93afe9f46545560c86caedef9dab6cfda>.
+
+# HG changeset patch
+# User Craig Disselkoen <cdisselk@cs.ucsd.edu>
+# Date 1574189697 25200
+# Node ID 60bca7c6dc6dc44579b9b3e0fb62ca3b82d92eec
+# Parent 64e55c9f658e2a75f0835d00a8a1cdc2f25c74d6
+Bug 1586176 - EncryptUpdate should use maxout not block size. r=franziskus
+
+--- a/nss/lib/softoken/pkcs11c.c
++++ b/nss/lib/softoken/pkcs11c.c
+@@ -1285,7 +1285,7 @@ NSC_EncryptUpdate(CK_SESSION_HANDLE hSes
+ }
+ /* encrypt the current padded data */
+ rv = (*context->update)(context->cipherInfo, pEncryptedPart,
+- &padoutlen, context->blockSize, context->padBuf,
++ &padoutlen, maxout, context->padBuf,
+ context->blockSize);
+ if (rv != SECSuccess) {
+ return sftk_MapCryptError(PORT_GetError());
diff --git a/gnu/packages/patches/python-pyatspi-python-37.patch b/gnu/packages/patches/python-pyatspi-python-37.patch
deleted file mode 100644
index caa6aea39e..0000000000
--- a/gnu/packages/patches/python-pyatspi-python-37.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 29a7b929f7f1160b643dc5f5911533887173fcff Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
-Date: Thu, 28 Jun 2018 17:10:33 +0200
-Subject: [PATCH] Rename async to asynchronous, keep backwards comaptibility
-
-async is a keyword in Python 3.7 and keeping it results in SyntaxError.
-
-Fixes https://gitlab.gnome.org/GNOME/pyatspi2/issues/1
----
- pyatspi/registry.py | 35 +++++++++++++++++++++++++++--------
- 1 file changed, 27 insertions(+), 8 deletions(-)
-
-diff --git a/pyatspi/registry.py b/pyatspi/registry.py
-index cb28395..f73ee16 100644
---- a/pyatspi/registry.py
-+++ b/pyatspi/registry.py
-@@ -50,9 +50,9 @@ class Registry(object):
- reference to the Accessibility.Registry singleton. Doing so is harmless and
- has no point.
-
-- @@ivar async: Should event dispatch to local listeners be decoupled from event
-- receiving from the registry?
-- @@type async: boolean
-+ @@ivar asynchronous: Should event dispatch to local listeners be decoupled
-+ from event receiving from the registry?
-+ @@type asynchronous: boolean
- @@ivar reg: Reference to the real, wrapped registry object
- @@type reg: Accessibility.Registry
- @@ivar dev: Reference to the device controller
-@@ -111,25 +111,44 @@ class Registry(object):
-
- self.has_implementations = True
-
-- self.async = False # not fully supported yet
-+ self.asynchronous = False # not fully supported yet
- self.started = False
- self.event_listeners = dict()
-
-+ def __getattr__(self, name):
-+ """
-+ For backwards compatibility with old API
-+ """
-+ if name == 'async':
-+ return self.asynchronous
-+ return object.__getattr__(self, name)
-+
-+ def __setattr__(self, name, value):
-+ """
-+ For backwards compatibility with old API
-+ """
-+ if name == 'async':
-+ self.asynchronous = value
-+ object.__setattr__(self, name, value)
-+
- def _set_default_registry (self):
- self._set_registry (MAIN_LOOP_GLIB)
-
-- def start(self, async=False, gil=True):
-+ def start(self, asynchronous=False, gil=True, **kwargs):
- """
- Enter the main loop to start receiving and dispatching events.
-
-- @@param async: Should event dispatch be asynchronous (decoupled) from
-- event receiving from the AT-SPI registry?
-- @@type async: boolean
-+ @@param asynchronous: Should event dispatch be asynchronous
-+ (decoupled) from event receiving from the AT-SPI registry?
-+ @@type asynchronous: boolean
- @@param gil: Add an idle callback which releases the Python GIL for a few
- milliseconds to allow other threads to run? Necessary if other threads
- will be used in this process.
- @@type gil: boolean
- """
-+ if 'async' in kwargs:
-+ # support previous API
-+ asynchronous = kwargs['async']
- if not self.has_implementations:
- self._set_default_registry ()
- self.started = True
---
-2.22.0
-
diff --git a/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch b/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
deleted file mode 100644
index 92e5505985..0000000000
--- a/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 9dd1e8d9ad0396a8c9092c2e9f17d498c58e0208 Mon Sep 17 00:00:00 2001
-From: elifoster <elifosterwy@gmail.com>
-Date: Tue, 5 Dec 2017 14:30:13 -0800
-Subject: [PATCH] Fix uninitialized constant DateTime Close #80
-
----
- lib/safe_yaml/parse/date.rb | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lib/safe_yaml/parse/date.rb b/lib/safe_yaml/parse/date.rb
-index cd3c62a..3a30a8b 100644
---- a/lib/safe_yaml/parse/date.rb
-+++ b/lib/safe_yaml/parse/date.rb
-@@ -1,3 +1,5 @@
-+require 'time'
-+
- module SafeYAML
- class Parse
- class Date
diff --git a/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch b/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch
deleted file mode 100644
index f8dac61307..0000000000
--- a/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a13db62a4da06426cf2eb2376d1a3723b5ee52d5 Mon Sep 17 00:00:00 2001
-From: Vasily Postnicov <shamaz.mazum@gmail.com>
-Date: Fri, 14 Dec 2018 20:01:53 +0300
-Subject: [PATCH] READ-ONE-LINE: Turn COMPLETIONS into a keyword argument
-
-This keeps READ-ONE-line backwards compatible to changes prior
-dae0422811771d179077b9336618f2b19be85b7b. Currently both
-ARGUMENT-POP-OR-READ and ARGUMENT-POP-REST-OR-READ are still being
-called with the previous lambda list. Update the calls to the
-READ-ONE-LINE that used the 'new' lambda list, COMPLETING-READ and
-YES-OR-NO-P.
-
-Closes #538
----
- input.lisp | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/input.lisp b/input.lisp
-index b698a368..7904b35f 100644
---- a/input.lisp
-+++ b/input.lisp
-@@ -307,10 +307,13 @@ passed the substring to complete on and is expected to return a list
- of matches. If require-match argument is non-nil then the input must
- match with an element of the completions."
- (check-type completions (or list function symbol))
-- (let ((line (read-one-line screen prompt completions :initial-input initial-input :require-match require-match)))
-+ (let ((line (read-one-line screen prompt
-+ :completions completions
-+ :initial-input initial-input
-+ :require-match require-match)))
- (when line (string-trim " " line))))
-
--(defun read-one-line (screen prompt completions &key (initial-input "") require-match password)
-+(defun read-one-line (screen prompt &key completions (initial-input "") require-match password)
- "Read a line of input through stumpwm and return it. Returns nil if the user aborted."
- (let ((*input-last-command* nil)
- (*input-completions* completions)
-@@ -842,6 +845,7 @@ user presses 'y'"
- user presses 'yes'"
- (loop for line = (read-one-line (current-screen)
- (format nil "~a(yes or no) " message)
-+ :completions
- '("yes" "no"))
- until (find line '("yes" "no") :test 'string-equal)
- do (message "Please answer yes or no")
diff --git a/gnu/packages/patches/totem-meson-compat.patch b/gnu/packages/patches/totem-meson-compat.patch
deleted file mode 100644
index 8557908dd0..0000000000
--- a/gnu/packages/patches/totem-meson-compat.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fix an error that occurs with Meson 0.50.0 and later:
-"ERROR: Subdir keyword must not be an absolute path".
-
---- a/src/meson.build 2019-03-15 00:10:26.882293850 +0100
-+++ b/src/meson.build 2019-03-15 00:10:54.312197229 +0100
-@@ -82,7 +82,7 @@
-
- install_headers(
- headers,
-- subdir: join_paths(totem_includedir, totem_api_path)
-+ install_dir: join_paths(totem_includedir, totem_api_path)
- )
-
- libtotem_player_sources = files(
diff --git a/gnu/packages/patches/totem-meson-easy-codec.patch b/gnu/packages/patches/totem-meson-easy-codec.patch
deleted file mode 100644
index b97d555c1a..0000000000
--- a/gnu/packages/patches/totem-meson-easy-codec.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Fix a bug whereby the 'have_easy_codec' would be left undefined
-when passing '-D enable-easy-codec-installation=no'. Likewise,
-don't rely on GStreamer's plug-in support when it's disabled.
-
---- totem-3.26.0/meson.build 2017-10-11 22:29:44.506280919 +0200
-+++ totem-3.26.0/meson.build 2017-10-11 22:29:50.902252058 +0200
-@@ -203,6 +203,8 @@ if easy_codec_option != 'no'
- missing_plugins_deps += gst_pbutils_dep
- config_h.set('ENABLE_MISSING_PLUGIN_INSTALLATION', have_easy_codec,
- description: 'Whether we can and want to do installation of missing plugins')
-+else
-+ have_easy_codec = false
- endif
-
- # python support
-
---- totem-3.26.0/src/backend/bacon-video-widget.c 2017-10-11 22:40:52.531217356 +0200
-+++ totem-3.26.0/src/backend/bacon-video-widget.c 2017-10-11 22:45:44.973847231 +0200
-@@ -341,6 +341,22 @@ get_type_name (GType class_type, int typ
- return value->value_nick;
- }
-
-+#ifndef ENABLE_MISSING_PLUGIN_INSTALLATION
-+
-+gchar *
-+gst_missing_plugin_message_get_installer_detail (GstMessage *message)
-+{
-+ return NULL;
-+}
-+
-+char *
-+gst_missing_plugin_message_get_description (GstMessage *message)
-+{
-+ return NULL;
-+}
-+
-+#endif
-+
- static gchar **
- bvw_get_missing_plugins_foo (const GList * missing_plugins, MsgToStrFunc func)
- {
-@@ -1654,10 +1670,12 @@ bvw_handle_element_message (BaconVideoWi
- }
- }
- goto done;
-+#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
- } else if (gst_is_missing_plugin_message (msg)) {
- bvw->priv->missing_plugins =
- g_list_prepend (bvw->priv->missing_plugins, gst_message_ref (msg));
- goto done;
-+#endif
- } else if (strcmp (type_name, "not-mounted") == 0) {
- const GValue *val;
- GFile *file;
-@@ -6109,7 +6127,9 @@ bacon_video_widget_initable_init (GInita
- GST_DEBUG ("Initialised %s", version_str);
- g_free (version_str);
-
-+#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
- gst_pb_utils_init ();
-+#endif
-
- /* Instantiate all the fallible plugins */
- bvw->priv->play = element_make_or_warn ("playbin", "play");
-
diff --git a/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch b/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch
new file mode 100644
index 0000000000..ece414a1cb
--- /dev/null
+++ b/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch
@@ -0,0 +1,103 @@
+This patch for Boost >= 1.70 was made by merging two patches that
+are in the 'develop' branch (c769c92 and f810ca2).
+
+diff -u b/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
+--- b/websocketpp/transport/asio/connection.hpp
++++ b/websocketpp/transport/asio/connection.hpp
+@@ -311,9 +311,10 @@
+ * needed.
+ */
+ timer_ptr set_timer(long duration, timer_handler callback) {
+- timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
+- lib::ref(*m_io_service),
+- lib::asio::milliseconds(duration)
++ timer_ptr new_timer(
++ new lib::asio::steady_timer(
++ *m_io_service,
++ lib::asio::milliseconds(duration))
+ );
+
+ if (config::enable_multithreading) {
+@@ -461,8 +462,7 @@
+ m_io_service = io_service;
+
+ if (config::enable_multithreading) {
+- m_strand = lib::make_shared<lib::asio::io_service::strand>(
+- lib::ref(*io_service));
++ m_strand.reset(new lib::asio::io_service::strand(*io_service));
+ }
+
+ lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
+diff -u b/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
+--- b/websocketpp/transport/asio/endpoint.hpp
++++ b/websocketpp/transport/asio/endpoint.hpp
+@@ -195,8 +195,7 @@
+
+ m_io_service = ptr;
+ m_external_io_service = true;
+- m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
+- lib::ref(*m_io_service));
++ m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
+
+ m_state = READY;
+ ec = lib::error_code();
+@@ -688,9 +687,7 @@
+ * @since 0.3.0
+ */
+ void start_perpetual() {
+- m_work = lib::make_shared<lib::asio::io_service::work>(
+- lib::ref(*m_io_service)
+- );
++ m_work.reset(new lib::asio::io_service::work(*m_io_service));
+ }
+
+ /// Clears the endpoint's perpetual flag, allowing it to exit when empty
+@@ -854,8 +851,7 @@
+
+ // Create a resolver
+ if (!m_resolver) {
+- m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
+- lib::ref(*m_io_service));
++ m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
+ }
+
+ tcon->set_uri(u);
+unchanged:
+--- a/websocketpp/transport/asio/security/none.hpp
++++ b/websocketpp/transport/asio/security/none.hpp
+@@ -168,8 +168,7 @@ protected:
+ return socket::make_error_code(socket::error::invalid_state);
+ }
+
+- m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
+- lib::ref(*service));
++ m_socket.reset(new lib::asio::ip::tcp::socket(*service));
+
+ if (m_socket_init_handler) {
+ m_socket_init_handler(m_hdl, *m_socket);
+unchanged:
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -193,8 +193,7 @@ protected:
+ if (!m_context) {
+ return socket::make_error_code(socket::error::invalid_tls_context);
+ }
+- m_socket = lib::make_shared<socket_type>(
+- _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
++ m_socket.reset(new socket_type(*service, *m_context));
+
+ if (m_socket_init_handler) {
+ m_socket_init_handler(m_hdl, get_socket());
+only in patch2:
+unchanged:
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+ endif ()
+
+ if (NOT Boost_USE_STATIC_LIBS)
+- add_definitions (/DBOOST_TEST_DYN_LINK)
++ add_definitions (-DBOOST_TEST_DYN_LINK)
+ endif ()
+
+ set (Boost_FIND_REQUIRED TRUE)
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index cfe06a0be2..6f2b3f78ea 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -174,6 +174,8 @@ different programming languages.")
(base32
"0h148anbaqgch6n69pxsvs1c9wmykgd052wmzgdia7qpz8w6p8dl"))))
(build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://fmtlib.net/")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index eb25bd0ade..1632d7ade5 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -54,6 +54,7 @@
#:use-module (guix build-system python)
#:use-module (guix utils)
#:use-module (gnu packages)
+ #:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@@ -67,6 +68,7 @@
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages time)
#:use-module (gnu packages web)
@@ -3354,3 +3356,68 @@ Unlike the Python package @code{cssselect}, it does not translate selectors to
XPath and therefore does not have all the correctness corner cases that are
hard or impossible to fix in cssselect.")
(license license:bsd-3)))
+
+(define-public gunicorn
+ (package
+ (name "gunicorn")
+ (version "20.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "gunicorn" version))
+ (sha256
+ (base32
+ "0l1zm8a0vz8ws3lkn8q9a0f93ipdzyvlf2zlwdj5xyadh6jdwsgg"))))
+ (outputs '("out" "doc"))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'build-doc
+ (lambda _
+ (invoke "make" "-C" "docs" "PAPER=a4" "html" "info")
+ (delete-file "docs/build/texinfo/Makefile")
+ (delete-file "docs/build/texinfo/Gunicorn.texi")
+ #t))
+ (replace 'check
+ (lambda _
+ (setenv "PYTHONPATH"
+ (string-append ".:" (getenv "PYTHONPATH")))
+ ;; Remove test modules failing due to libc not found due to
+ ;; section '.dynamic' not found in libc.so
+ (delete-file "tests/test_arbiter.py")
+ (delete-file "tests/test_config.py")
+ (delete-file "tests/test_sock.py")
+ (invoke "pytest")))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((doc (string-append (assoc-ref outputs "doc")
+ "/share/doc/" ,name "-" ,version))
+ (html (string-append doc "/html"))
+ (info (string-append doc "/info"))
+ (examples (string-append doc "/examples")))
+ (mkdir-p html)
+ (mkdir-p info)
+ (mkdir-p examples)
+ (copy-recursively "docs/build/html" html)
+ (copy-recursively "docs/build/texinfo" info)
+ (copy-recursively "examples" examples)
+ (for-each (lambda (file)
+ (copy-file file (string-append doc "/" file)))
+ '("README.rst" "NOTICE" "LICENSE" "THANKS")))
+ #t)))))
+ (native-inputs
+ `(("binutils" ,binutils) ;; for ctypes.util.find_library()
+ ("python-aiohttp", python-aiohttp)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-sphinx" ,python-sphinx)
+ ("texinfo" ,texinfo)))
+ (home-page "http://gunicorn.org/")
+ (synopsis "Python WSGI HTTP Server for UNIX")
+ (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
+Server for UNIX. It’s a pre-fork worker model ported from Ruby’s
+Unicorn project. The Gunicorn server is broadly compatible with
+various web frameworks, simply implemented, light on server resources,
+and fairly speedy.")
+ (license license:expat)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a735aceff5..75b8a4cc08 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -41,7 +41,7 @@
;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot>
@@ -103,6 +103,7 @@
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gstreamer)
@@ -3006,19 +3007,20 @@ Language (TOML) configuration files.")
(define-public python-jsonrpc-server
(package
(name "python-jsonrpc-server")
- (version "0.1.2")
+ (version "0.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-jsonrpc-server" version))
(sha256
(base32
- "0m4ykpcdy52x37n1ikysp07j7p8ialcdvvvsrjp3545sn7iiid09"))))
+ "0ddgdp26dfxaz6isjbb12974b3rxavgsqrn2zrmck62cmipg5g05"))))
(build-system python-build-system)
(propagated-inputs
`(("python-future" ,python-future)
("python-mock" ,python-mock)
- ("python-pytest" ,python-pytest)))
+ ("python-pytest" ,python-pytest)
+ ("python-ujson" ,python-ujson)))
(home-page
"https://github.com/palantir/python-jsonrpc-server")
(synopsis "JSON RPC 2.0 server library")
@@ -3052,14 +3054,14 @@ Server (PLS).")
(define-public python-language-server
(package
(name "python-language-server")
- (version "0.29.1")
+ (version "0.31.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-language-server" version))
(sha256
(base32
- "1f8qlflh6j3s7qfmzhirpl8fgidl6f0qbakdmiml96wdxzvka0s3"))))
+ "1iq69wc1fyhirfyq25ih41wq9yvr7bchiw0i116adpdgcq6m9idq"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pluggy" ,python-pluggy)
@@ -11776,19 +11778,41 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
(define-public python-argcomplete
(package
(name "python-argcomplete")
- (version "1.7.0")
+ (version "1.10.3")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "argcomplete" version))
- (sha256
- (base32
- "11bwiw6j0nilgz81xnw6f1npyga3prp8asjqrm87cdr3ria5l03x"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "argcomplete" version))
+ (sha256
+ (base32
+ "02jkc44drb0yjz6x28lvg6rj607n8r2irdpdvyylm8xnycn54zx3"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'embed-tool-references
+ (lambda _
+ (substitute* "argcomplete/bash_completion.d/python-argcomplete.sh"
+ ((" grep")
+ (string-append " " (which "grep")))
+ ((" egrep")
+ (string-append " " (which "egrep")))
+ (("elif which")
+ (string-append "elif " (which "which")))
+ (("\\$\\(which")
+ (string-append "$(" (which "which"))))
+ #t)))))
+ (inputs
+ `(("grep" ,grep)
+ ("which" ,which)))
(native-inputs
- `(("python-pexpect" ,python-pexpect)
+ `(("python-coverage" ,python-coverage)
+ ("python-flake8" ,python-flake8)
+ ("python-pexpect" ,python-pexpect)
+ ("python-wheel" ,python-wheel)
("tcsh" ,tcsh)
- ("bash-full" ,bash))) ;full Bash for 'test_file_completion'
+ ("fish" ,fish)
+ ("bash-full" ,bash))) ;full Bash for 'test_file_completion'
(home-page "https://github.com/kislyuk/argcomplete")
(synopsis "Shell tab completion for Python argparse")
(description "argcomplete provides extensible command line tab completion
@@ -16721,3 +16745,63 @@ converters and more, those based on the library itself.")
"This package provides a parser, schema validator, and data binding tool
for YAML and JSON.")
(license license:expat)))
+
+(define-public python-dbusmock
+ (package
+ (name "python-dbusmock")
+ (version "0.18.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-dbusmock" version))
+ (sha256
+ (base32
+ "0hp2kyac88nh9iv6l8hlmv7s1sa1s5f1a3wc2pmlmmxnd211fjlr"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-shell-path
+ (lambda _
+ (substitute* "tests/test_code.py"
+ (("/bin/bash") (which "bash")))
+ #t)))))
+ (native-inputs
+ `(;; For tests.
+ ("dbus" ,dbus) ; for dbus-daemon
+ ("python-nose" ,python-nose)
+ ("which" ,which)))
+ (propagated-inputs
+ `(("python-dbus" ,python-dbus)
+ ("python-pygobject" ,python-pygobject)))
+ (home-page "https://github.com/martinpitt/python-dbusmock")
+ (synopsis "Python library for mock D-Bus objects")
+ (description "python-dbusmock allows for the easy creation of mock objects on
+D-Bus. This is useful for writing tests for software which talks to D-Bus
+services such as upower, systemd, logind, gnome-session or others, and it is
+hard (or impossible without root privileges) to set the state of the real
+services to what you expect in your tests.")
+ (license license:lgpl3+)))
+
+(define-public python-ujson
+ (package
+ (name "python-ujson")
+ (version "1.35")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ujson" version))
+ (sha256
+ (base32
+ "11jz5wi7mbgqcsz52iqhpyykiaasila4lq8cmc2d54bfa3jp6q7n"))))
+ (build-system python-build-system)
+ (home-page "http://www.esn.me")
+ (synopsis
+ "Ultra fast JSON encoder and decoder for Python")
+ (description
+ "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with
+ bindings for Python 2.5+ and 3.")
+ (license license:bsd-3)))
+
+(define-public python2-ujson
+ (package-with-python2 python-ujson))
diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm
index 65541788a1..75b2975421 100644
--- a/gnu/packages/regex.scm
+++ b/gnu/packages/regex.scm
@@ -30,7 +30,7 @@
(define-public re2
(package
(name "re2")
- (version "2019-11-01")
+ (version "2019-12-01")
(home-page "https://github.com/google/re2")
(source (origin
(method git-fetch)
@@ -38,7 +38,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1w6djkydjgwavml2qchq24834jkbngyxc1dc4vk8vkgajglv9pff"))))
+ "0drfhy32a0ndlwc4zi1khx07ifslkrc0w14hj8skqhddkrg55x0l"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 70b59e9156..e1d69f9655 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -372,13 +372,13 @@ hosts by wrapping the @file{rsync} binary.")
(define-public ruby-i18n
(package
(name "ruby-i18n")
- (version "1.1.0")
+ (version "1.7.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "i18n" version))
(sha256
(base32
- "0ppvmla21hssvrfm8g1n2fnb4lxn4yhy9qmmba0imanflgldrjmr"))))
+ "0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; no tests
@@ -390,7 +390,7 @@ interpolation of values to translations, pluralization, customizable
transliteration to ASCII, flexible defaults, bulk lookup, lambdas as
translation data, custom key/scope separator, custom exception handlers, and
an extensible architecture with a swappable backend.")
- (home-page "https://github.com/svenfuchs/i18n")
+ (home-page "https://github.com/ruby-i18n/i18n")
(license license:expat)))
(define-public ruby-iruby
@@ -560,7 +560,7 @@ outcomes of a code example.")
(define-public ruby-rspec-its
(package
(name "ruby-rspec-its")
- (version "1.2.0")
+ (version "1.3.0")
(source
(origin
(method git-fetch)
@@ -570,17 +570,7 @@ outcomes of a code example.")
(file-name (git-file-name name version))
(sha256
(base32
- "190rz7v4q4wk80fzhr5hknvxx4vb2pywmqr8wc41w2blj9ylzi0f"))
- (patches
- (list
- (origin (method url-fetch)
- (uri (string-append
- "https://github.com/rspec/rspec-its/commit/"
- "bfaab439c7c879f5ef25552f41827891f6308373.patch"))
- (file-name "ruby-rspec-its-fix-specs-for-ruby-2.4.patch")
- (sha256
- (base32
- "0lnik0kvrpgkakvdb2fmzg22pdlraf6kiidr9sv6rnfyviiqwxgh")))))))
+ "02mlsc9d4d1cjj5vahi8v3q8hyn9fyiv8nnlidhgfh186qp20g1p"))))
(build-system ruby-build-system)
(arguments
`(#:test-target "spec"
@@ -592,13 +582,19 @@ outcomes of a code example.")
(("rspec rspec-core rspec-expectations rspec-mocks rspec-support")
""))
#t))
+ (add-before 'build 'update-ffi-in-gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ ((" gem 'ffi', '~> 1.9.25'") " gem 'ffi', '~> 1.10.0'"))
+ #t))
(add-before 'build 'remove-unnecessary-dependency-versions-from-gemfile
(lambda _
(substitute* "rspec-its.gemspec"
(("rake.*") "rake'\n")
- (("cucumber.*") "cucumber'\n")
+ (("spec.add_development_dependency 'cucumber'.*")
+ "spec.add_development_dependency 'cucumber'\n")
(("bundler.*") "bundler'\n")
- (("aruba.*") "aruba'\n"))
+ (("\"aruba.*") "'aruba'\n"))
#t)))))
(propagated-inputs
`(("ruby-rspec-core" ,ruby-rspec-core)
@@ -606,6 +602,7 @@ outcomes of a code example.")
(native-inputs
`(("bundler" ,bundler)
("ruby-cucumber" ,ruby-cucumber)
+ ("ruby-ffi" ,ruby-ffi)
("ruby-aruba" ,ruby-aruba)))
(synopsis "RSpec extension that provides the @code{its} method")
(description
@@ -5285,14 +5282,14 @@ inspired by the Sinatra microframework style of specifying actions:
(define-public ruby-rubocop
(package
(name "ruby-rubocop")
- (version "0.64.0")
+ (version "0.77.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "rubocop" version))
(sha256
(base32
- "07shi6kncwhkvlh9ci9rgccrjsq4448hbic3yrakh2w65ppynvbj"))))
+ "0m88b1bgbhmmbdnz2xv6n0il0j4q5qm9jbc0vf1zsaxmxqp06nx9"))))
(build-system ruby-build-system)
(arguments
'(;; No included tests
@@ -6341,14 +6338,14 @@ requests. This is useful when testing software.")
(define-public ruby-unicode-display-width
(package
(name "ruby-unicode-display-width")
- (version "1.4.1")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "unicode-display_width" version))
(sha256
(base32
- "0bq528fibi8s0jmxz0xzlgzggdq0x4fx46wfqz49478pv8gb2diq"))))
+ "08kfiniak1pvg3gn5k6snpigzvhvhyg7slmm0s2qx5zkj62c1z2w"))))
(build-system ruby-build-system)
(arguments
'(;; Test data not included.
@@ -7459,13 +7456,13 @@ programs running in the background, in Ruby.")
(define-public ruby-public-suffix
(package
(name "ruby-public-suffix")
- (version "3.0.3")
+ (version "4.0.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "public_suffix" version))
(sha256
(base32
- "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"))))
+ "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0"))))
(build-system ruby-build-system)
(arguments
'(#:phases
@@ -7496,13 +7493,13 @@ all known public suffixes.")
(define-public ruby-addressable
(package
(name "ruby-addressable")
- (version "2.6.0")
+ (version "2.7.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "addressable" version))
(sha256
(base32
- "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"))))
+ "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"))))
(build-system ruby-build-system)
(arguments
'(#:test-target "spec"
@@ -8207,13 +8204,13 @@ implementation.")
(define-public ruby-rouge
(package
(name "ruby-rouge")
- (version "3.2.1")
+ (version "3.13.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "rouge" version))
(sha256
(base32
- "0h79gn2wmn1wix2d27lgiaimccyj8gvizrllyym500pir408x62f"))))
+ "1y90nx9ph9adnrpcsvs2adca2l3dyz8am2d2kzxkwd3a086ji7aw"))))
(build-system ruby-build-system)
(arguments `(#:tests? #f)); No rakefile
(home-page "http://rouge.jneen.net/")
@@ -8287,10 +8284,9 @@ indentation will probably be an issue and hence this gem.")
(define-public ruby-safe-yaml
(package
(name "ruby-safe-yaml")
- (version "1.0.4")
+ (version "1.0.5")
(source
(origin
- ;; TODO Fetch from the git repository so a patch can be applied
(method git-fetch)
(uri (git-reference
(url "https://github.com/dtao/safe_yaml.git")
@@ -8298,9 +8294,7 @@ indentation will probably be an issue and hence this gem.")
(file-name (git-file-name name version))
(sha256
(base32
- "1wnln8xdy8g6kwdj4amm8773xwffqxpf2sxslk6jjh2wxsy1lrig"))
- (patches
- (search-patches "ruby-safe-yaml-add-require-time.patch"))))
+ "1a0wh7y3va2m7bjza95na2snw0vrdh9syz40mpjvjphbc4ph3pzg"))))
(build-system ruby-build-system)
(native-inputs
`(("ruby-rspec" ,ruby-rspec)
@@ -8383,13 +8377,13 @@ methods for your source as @code{Forwardable::Extended}.")
(define-public ruby-pathutil
(package
(name "ruby-pathutil")
- (version "0.16.1")
+ (version "0.16.2")
(source (origin
(method url-fetch)
(uri (rubygems-uri "pathutil" version))
(sha256
(base32
- "0wc18ms1rzi44lpjychyw2a96jcmgxqdvy2949r4vvb5f4p0lgvz"))))
+ "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4"))))
(build-system ruby-build-system)
(propagated-inputs
`(("ruby-forwardable-extended" ,ruby-forwardable-extended)))
@@ -8489,14 +8483,14 @@ interface over different adapters.")
(define-public ruby-nio4r
(package
(name "ruby-nio4r")
- (version "2.4.0")
+ (version "2.5.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "nio4r" version))
(sha256
(base32
- "0v2cpqmw6dmysa91ffzl736kgjjzmnf4xlgz6g16fk4yqhn71340"))))
+ "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c"))))
(build-system ruby-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index b82d280089..de33effc89 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -71,7 +71,7 @@
(define-public libssh
(package
(name "libssh")
- (version "0.9.2")
+ (version "0.9.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -79,23 +79,13 @@
(commit (string-append "libssh-" version))))
(sha256
(base32
- "14g4rvp91skn2hlsjyhkv58vhng65xrf34cfqffixa4al869hzgj"))
+ "175i3xybg69d5lb078334v6dd3njm743kww8f67ix9w33969rmzf"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
'(#:configure-flags '("-DWITH_GCRYPT=ON")
- #:phases (modify-phases %standard-phases
- (add-before 'configure 'avoid-werror
- (lambda _
- ;; Avoid '-Werror'. Presumably this works fine with
- ;; gcc@8 on x86_64 but leads to errors with our older
- ;; compiler.
- (substitute* "CompilerChecks.cmake"
- (("-Werror=") "-W"))
- #t)))
-
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
#:tests? #f))
(inputs `(("zlib" ,zlib)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 6083ac18ee..81ff0107b4 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1799,13 +1799,13 @@ times.")
(define-public r-data-table
(package
(name "r-data-table")
- (version "1.12.6")
+ (version "1.12.8")
(source (origin
(method url-fetch)
(uri (cran-uri "data.table" version))
(sha256
(base32
- "1kgbnm5gv7ax7qn8irpz7qsry2ci21axga8y7qpkidcqkxkkndn2"))))
+ "1p7rf4v3ysflpgcmy9krkwmcy7z22wb08xm443649waz6lx5z9yk"))))
(build-system r-build-system)
(inputs
`(("zlib" ,zlib)))
@@ -2505,13 +2505,13 @@ disk (or a connection).")
(define-public r-plotrix
(package
(name "r-plotrix")
- (version "3.7-6")
+ (version "3.7-7")
(source (origin
(method url-fetch)
(uri (cran-uri "plotrix" version))
(sha256
(base32
- "0ijfjlr7ls5hvfyzdmwab6bx0w3nvp0c8fgynj4355cj8mbzgmc3"))))
+ "1x92mmyfry127zzr6cmcj6kjsc4zhxrrdlr0jcxn3bb0hpdfps54"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/plotrix")
(synopsis "Various plotting functions")
@@ -2564,13 +2564,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
- (version "0.9.800.1.0")
+ (version "0.9.800.3.0")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
- "1frg7y3fb571jf9dp1kkc75x0nxvw8j3qccsrm1brg5l1z2jmlaz"))))
+ "0kpcspg3mafi5kncjfhnbcwimvlf19jvrxilvhbpd20sap473mh3"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
;; All needed for vignettes
@@ -2777,13 +2777,13 @@ a column in data frame.")
(define-public r-rsqlite
(package
(name "r-rsqlite")
- (version "2.1.3")
+ (version "2.1.4")
(source (origin
(method url-fetch)
(uri (cran-uri "RSQLite" version))
(sha256
(base32
- "0c5s67s8w4q6p57rnh14n4gcmymyardg8lhnrdlimmjcfawj15h7"))))
+ "1vhaq6zfqilya669l100adcw51xz0p370zabnk2dnk1xhdih1f34"))))
(properties `((upstream-name . "RSQLite")))
(build-system r-build-system)
(propagated-inputs
@@ -3511,13 +3511,13 @@ maintenance for package developers.")
(define-public r-r-utils
(package
(name "r-r-utils")
- (version "2.9.0")
+ (version "2.9.2")
(source (origin
(method url-fetch)
(uri (cran-uri "R.utils" version))
(sha256
(base32
- "1w4zn2db15bggfnh64fbyi2z2sj47rcd4xn53b28dsnkamdcramj"))))
+ "1krj1ny7y43lpm2q8c7swxfdc3ngy2j8knzv71f8bfsgh673nsxc"))))
(properties `((upstream-name . "R.utils")))
(build-system r-build-system)
(propagated-inputs
@@ -3533,13 +3533,13 @@ developing R packages.")
(define-public r-r-cache
(package
(name "r-r-cache")
- (version "0.13.0")
+ (version "0.14.0")
(source (origin
(method url-fetch)
(uri (cran-uri "R.cache" version))
(sha256
(base32
- "1hf5cb7xvnca5zlh9245b5g62sgsaxwdhiv7x59yld37cydakm6k"))))
+ "1n8n5ihkryrbxv630dwhz4r048nyv676qd3i9f5z5fa04hvlxbqq"))))
(properties `((upstream-name . "R.cache")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index a82654be0a..19d4d670c6 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -50,14 +50,14 @@
(define-public tor
(package
(name "tor")
- (version "0.4.1.6")
+ (version "0.4.2.5")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
- "0wgdid8w7srd218hh4rwslzdx2ickxw1pg18p2wry1r6wi65521a"))))
+ "1hnqg6psf7shcmlvfk44mkpaz7v66mify3cnx7mzl23q5s37anad"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 74e8f5c0e5..cf60f02192 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -150,14 +150,14 @@ as well as the classic centralized workflow.")
(name "git")
;; XXX When updating Git, check if the special 'git-source' input to cgit
;; needs to be updated as well.
- (version "2.24.0")
+ (version "2.24.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "06rpakbwzck85ncfsgv4xmq3iwab9d4f5y6dqhl8nvb2fccxcwcz"))))
+ "0ql5z31vgl7b785gwrf00m129mg7zi9pa65n12ij3mpxx3f28gvj"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@@ -170,7 +170,7 @@ as well as the classic centralized workflow.")
version ".tar.xz"))
(sha256
(base32
- "19h4bhk78rljxk921fcz5xy1z4ss75zw03n9nqf2r512dz0p5j5h"))))
+ "1yzy5jikkv67ynp576j926kg8zdldh8j4b57l0ixcnjdcyr4lc17"))))
;; For subtree documentation.
("asciidoc" ,asciidoc)
("docbook-xsl" ,docbook-xsl)
@@ -550,7 +550,7 @@ everything from small to very large projects with speed and efficiency.")
(define-public libgit2
(package
(name "libgit2")
- (version "0.28.3")
+ (version "0.28.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -559,7 +559,7 @@ everything from small to very large projects with speed and efficiency.")
(file-name (git-file-name name version))
(sha256
(base32
- "07068flm9xi25wmcs65nyfg6a7ikgfv96i2nhgyj5gzs9gljqiz2"))
+ "171b25aym4q88bidc4c76y4l6jmdwifm3q9zjqsll0wjhlkycfy1"))
(patches (search-patches "libgit2-avoid-python.patch"
"libgit2-mtime-0.patch"))
@@ -794,10 +794,10 @@ collaboration using typical untrusted file hosts or services.")
,(origin
(method url-fetch)
;; XXX CGit is currently incompatible with Git > 2.18.
- (uri "mirror://kernel.org/software/scm/git/git-2.18.0.tar.xz")
+ (uri "mirror://kernel.org/software/scm/git/git-2.18.2.tar.xz")
(sha256
(base32
- "14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b"))))
+ "1gmcz5k8sa6phzhhv6zjl8izbyqnxcdb8ns8kd2czyak0g409vrq"))))
("openssl" ,openssl)
("groff" ,groff)
("python" ,python)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c008a0686c..3280114878 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1454,6 +1454,7 @@ projects while introducing many more.")
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-shared"
+ "--disable-static"
"--as=yasm"
;; Limit size to avoid CVE-2015-1258
"--size-limit=16384x16384"
@@ -1497,7 +1498,7 @@ projects while introducing many more.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2019.11.22")
+ (version "2019.11.28")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ytdl-org/youtube-dl/"
@@ -1505,7 +1506,7 @@ projects while introducing many more.")
version ".tar.gz"))
(sha256
(base32
- "0avdlp0dc9p3lm68mfnic21x6blxmr0zvlxa4br5vj4y4sckq2m8"))))
+ "19xiwdn3l0kizyj7cik9vyhgrlwg7ss4wl4hy2pbbbqwh5vwppwk"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -3216,7 +3217,7 @@ alpha blending etc).")
(define-public frei0r-plugins
(package
(name "frei0r-plugins")
- (version "1.6.1")
+ (version "1.7.0")
(source
(origin
(method url-fetch)
@@ -3224,23 +3225,25 @@ alpha blending etc).")
"frei0r-plugins-" version ".tar.gz"))
(sha256
(base32
- "0pji26fpd0dqrx1akyhqi6729s394irl73dacnyxk58ijqq4dhp0"))))
+ "0fjji3060r4fwr7vn91lwfzl80lg3my9lkp94kbyw8xwz7qgh7qv"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'autotools
+ (add-after 'unpack 'patch-Makefile
(lambda _
- (invoke "sh" "autogen.sh"))))))
+ ;; XXX: The 1.7.0 Makefile looks for files that have slightly different
+ ;; names in the tarball. Try removing this for future versions.
+ (substitute* "Makefile.in"
+ (("README\\.md ChangeLog TODO AUTHORS")
+ "README.txt ChangeLog.txt TODO.txt AUTHORS.txt"))
+ #t)))))
;; TODO: opencv for additional face detection filters.
(inputs
`(("gavl" ,gavl)
("cairo" ,cairo)))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("libtool" ,libtool)
- ("automake" ,automake)
- ("autoconf" ,autoconf)))
+ `(("pkg-config" ,pkg-config)))
(home-page "https://www.dyne.org/software/frei0r/")
(synopsis "Minimalistic plugin API for video effects")
(description
@@ -3560,7 +3563,7 @@ transitions, and effects and then export your film to many common formats.")
(define-public dav1d
(package
(name "dav1d")
- (version "0.5.1")
+ (version "0.5.2")
(source
(origin
(method url-fetch)
@@ -3568,7 +3571,7 @@ transitions, and effects and then export your film to many common formats.")
"/dav1d/" version "/dav1d-" version ".tar.xz"))
(sha256
(base32
- "03cf6f9if45prq97qp7llzi1p71dyw9ymc87hc225iy89kmzjsdd"))))
+ "02hgarv2x2bqbac15pdj7pbm8f4lyn78ws0dncygvhis9a6ghk7r"))))
(build-system meson-build-system)
(native-inputs `(("nasm" ,nasm)))
(home-page "https://code.videolan.org/videolan/dav1d")
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index dd0222730f..e83ae43da2 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -220,7 +220,7 @@ exec smbd $@")))
("spice" ,spice)
("usbredir" ,usbredir)
("util-linux" ,util-linux)
- ;; ("vde2" ,vde2)
+ ("vde2" ,vde2)
("virglrenderer" ,virglrenderer)
("zlib" ,zlib)))
(native-inputs `(("gettext" ,gettext-minimal)
@@ -268,7 +268,7 @@ server and embedded PowerPC, and S390 guests.")
'("gettext")))
(inputs (fold alist-delete (package-inputs qemu)
'("libusb" "mesa" "sdl2" "spice" "virglrenderer" "gtk+"
- "usbredir" "libdrm" "libepoxy" "pulseaudio")))))
+ "usbredir" "libdrm" "libepoxy" "pulseaudio" "vde2")))))
;; The GRUB test suite fails with later versions of Qemu, so we
;; keep it at 2.10 for now. See
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 1fd313c46c..1c2228c426 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,6 +43,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages nss)
@@ -134,7 +136,8 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
(base32
"1g41yarz2bl0f73kbjqnywr485ghanbp7nmspklfb0n07yp0z6ak"))))
(build-system gnu-build-system)
- (inputs `(("coreutils" ,coreutils)
+ (inputs `(("guile" ,guile-2.2) ; for the wrapper scripts
+ ("coreutils" ,coreutils)
("grep" ,grep)
("iproute2" ,iproute) ; for ‘ip’
("net-tools" ,net-tools) ; for ‘ifconfig’, ‘route’
@@ -177,7 +180,7 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
(let ((out (assoc-ref outputs "out")))
(for-each
(lambda (script)
- (wrap-program script
+ (wrap-script (string-append out "/etc/vpnc/" script)
`("PATH" ":" prefix
,(map (lambda (name)
(let ((input (assoc-ref inputs name)))
@@ -189,8 +192,9 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.")
"net-tools"
"sed"
"which")))))
- (find-files (string-append out "/etc/vpnc/vpnc-script")
- "^vpnc-script"))
+ (list "vpnc-script-ptrtd"
+ "vpnc-script-sshd"
+ "vpnc-script"))
#t))))
#:tests? #f)) ; no tests
(home-page "http://git.infradead.org/users/dwmw2/vpnc-scripts.git")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 6330c73c16..7595892283 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1075,7 +1075,8 @@ other systems that want to manipulate WebAssembly files.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "12ffczcrryh74c1xssww35ic6yiy2l2xgdd30lshiq9wnzl2brgy"))))
+ (base32 "12ffczcrryh74c1xssww35ic6yiy2l2xgdd30lshiq9wnzl2brgy"))
+ (patches (search-patches "websocketpp-fix-for-boost-1.70.patch"))))
(build-system cmake-build-system)
(inputs `(("boost" ,boost)
("openssl" ,openssl)))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 53dbda5942..4bf621ee27 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -27,6 +27,9 @@
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
+;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
+;;; Copyright © 2019 Noodles! <nnoodle@chiru.no>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1495,7 +1498,7 @@ compositors that support the layer-shell protocol.")
(define-public stumpwm
(package
(name "stumpwm")
- (version "18.11")
+ (version "19.11")
(source
(origin
(method git-fetch)
@@ -1504,11 +1507,7 @@ compositors that support the layer-shell protocol.")
(commit version)))
(file-name (git-file-name "stumpwm" version))
(sha256
- (base32 "003g1fmh7446ws49866kzny4lrk1wf034dq5fa4m9mq1nzc7cwv7"))
- (patches
- ;; This patch is included in the post-18.11 git master tree
- ;; and can be removed when we move to the next release.
- (search-patches "stumpwm-fix-broken-read-one-line.patch"))))
+ (base32 "1ha8803ll7472kqxsy2xz0v5d4sv8apmc9z631d67m31q0z1m9rz"))))
(build-system asdf-build-system/sbcl)
(native-inputs `(("fiasco" ,sbcl-fiasco)
("texinfo" ,texinfo)))
@@ -1606,3 +1605,39 @@ productive, customizable lisp based systems.")
(define-public sbcl-stumpwm+slynk
(deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk))
+
+(define-public lemonbar
+ (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4")
+ (revision "1"))
+ (package
+ (name "lemonbar")
+ (version (git-version "1.3" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LemonBoy/bar")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wwqbph392iwz8skaqxb0xpklb1l6yganqz80g4x1fhrnz7idmlh"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no test suite
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs
+ `(("libxcb" ,libxcb)))
+ (native-inputs
+ `(("perl" ,perl)))
+ (home-page "https://github.com/LemonBoy/bar")
+ (synopsis "Featherweight status bar")
+ (description
+ "@code{lemonbar} (formerly known as @code{bar}) is a lightweight
+bar entirely based on XCB. Provides full UTF-8 support, basic
+formatting, RandR and Xinerama support and EWMH compliance without
+wasting your precious memory.")
+ (license license:x11))))
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index be02106f9a..61d836a50b 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -143,6 +143,8 @@ compressed video format.")
(base32
"150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--disable-static")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 6d1aa6f76c..86c8eb815f 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -2043,14 +2043,14 @@ modular implementation of XML-RPC for C and C++.")
(define-public python-xmltodict
(package
(name "python-xmltodict")
- (version "0.11.0")
+ (version "0.12.0")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "xmltodict" version))
- (sha256
- (base32
- "1pxh4yjhvmxi1h6f92skv41g4kbsws3ams57150kzn18m907v3cg"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "xmltodict" version))
+ (sha256
+ (base32
+ "08cadlb9vsb4pmzc99lz3a2lx6qcfazyvgk10pcqijvyxlwcdn2h"))))
(build-system python-build-system)
(native-inputs
`(("python-coverage" ,python-coverage)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 2e992b4b2f..801e5e459b 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2944,8 +2944,8 @@ X server.")
(define-public xf86-video-intel
- (let ((commit "6f4972d5c368c30e971a23c1dc370d3e43761282")
- (revision "14"))
+ (let ((commit "f66d39544bb8339130c96d282a80f87ca1606caf")
+ (revision "15"))
(package
(name "xf86-video-intel")
(version (git-version "2.99.917" revision commit))
@@ -2958,7 +2958,7 @@ X server.")
(commit commit)))
(sha256
(base32
- "0bc46qqglzfm4g9q4c2vgynvps2ng0xvlxnjpm9d6z4q6scdhz59"))
+ "14rwbbn06l8qpx7s5crxghn80vgcx8jmfc7qvivh72d81r0kvywl"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs `(("mesa" ,mesa)
diff --git a/gnu/services.scm b/gnu/services.scm
index 394470ba7d..e7a3a95e43 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -25,6 +25,8 @@
#:use-module (guix profiles)
#:use-module (guix discovery)
#:use-module (guix combinators)
+ #:use-module (guix channels)
+ #:use-module (guix describe)
#:use-module (guix sets)
#:use-module (guix ui)
#:use-module ((guix utils) #:select (source-properties->location))
@@ -39,6 +41,7 @@
#:use-module (srfi srfi-35)
#:use-module (ice-9 vlist)
#:use-module (ice-9 match)
+ #:autoload (ice-9 pretty-print) (pretty-print)
#:export (service-extension
service-extension?
service-extension-target
@@ -82,6 +85,7 @@
ambiguous-target-service-error-target-type
system-service-type
+ provenance-service-type
boot-service-type
cleanup-service-type
activation-service-type
@@ -370,6 +374,89 @@ by the initrd once the root file system is mounted.")))
;; The service that produces the boot script.
(service boot-service-type #t))
+
+;;;
+;;; Provenance tracking.
+;;;
+
+(define (object->pretty-string obj)
+ "Like 'object->string', but using 'pretty-print'."
+ (call-with-output-string
+ (lambda (port)
+ (pretty-print obj port))))
+
+(define (channel->code channel)
+ "Return code to build CHANNEL, ready to be dropped in a 'channels.scm'
+file."
+ `(channel (name ',(channel-name channel))
+ (url ,(channel-url channel))
+ (branch ,(channel-branch channel))
+ (commit ,(channel-commit channel))))
+
+(define (channel->sexp channel)
+ "Return an sexp describing CHANNEL. The sexp is _not_ code and is meant to
+be parsed by tools; it's potentially more future-proof than code."
+ `(channel (name ,(channel-name channel))
+ (url ,(channel-url channel))
+ (branch ,(channel-branch channel))
+ (commit ,(channel-commit channel))))
+
+(define (provenance-file channels config-file)
+ "Return a 'provenance' file describing CHANNELS, a list of channels, and
+CONFIG-FILE, which can be either #f or a <local-file> containing the OS
+configuration being used."
+ (scheme-file "provenance"
+ #~(provenance
+ (version 0)
+ (channels #+@(if channels
+ (map channel->sexp channels)
+ '()))
+ (configuration-file #+config-file))))
+
+(define (provenance-entry config-file)
+ "Return system entries describing the operating system provenance: the
+channels in use and CONFIG-FILE, if it is true."
+ (define profile
+ (current-profile))
+
+ (define channels
+ (and=> profile profile-channels))
+
+ (mbegin %store-monad
+ (let ((config-file (cond ((string? config-file)
+ (local-file config-file "configuration.scm"))
+ ((not config-file)
+ #f)
+ (else
+ config-file))))
+ (return `(("provenance" ,(provenance-file channels config-file))
+ ,@(if channels
+ `(("channels.scm"
+ ,(plain-file "channels.scm"
+ (object->pretty-string
+ `(list
+ ,@(map channel->code channels))))))
+ '())
+ ,@(if config-file
+ `(("configuration.scm" ,config-file))
+ '()))))))
+
+(define provenance-service-type
+ (service-type (name 'provenance)
+ (extensions
+ (list (service-extension system-service-type
+ provenance-entry)))
+ (default-value #f) ;the OS config file
+ (description
+ "Store provenance information about the system in the system
+itself: the channels used when building the system, and its configuration
+file, when available.")))
+
+
+;;;
+;;; Cleanup.
+;;;
+
(define (cleanup-gexp _)
"Return a gexp to clean up /tmp and similar places upon boot."
(with-imported-modules '((guix build utils))
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
index 7238665404..1327516b49 100644
--- a/gnu/services/mcron.scm
+++ b/gnu/services/mcron.scm
@@ -130,6 +130,8 @@ files."
(define mcron-service-type
(service-type (name 'mcron)
+ (description
+ "Run the mcron job scheduling daemon.")
(extensions
(list (service-extension shepherd-root-service-type
mcron-shepherd-services)
diff --git a/gnu/system.scm b/gnu/system.scm
index 96c2b5aad3..abdbb081e6 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -110,6 +110,7 @@
system-linux-image-file-name
operating-system-with-gc-roots
+ operating-system-with-provenance
boot-parameters
boot-parameters?
@@ -540,6 +541,15 @@ bookkeeping."
gc-root-service-type roots)
(operating-system-user-services os)))))
+(define* (operating-system-with-provenance os #:optional config-file)
+ "Return a variant of OS that stores its own provenance information,
+including CONFIG-FILE, if available. This is achieved by adding an instance
+of PROVENANCE-SERVICE-TYPE to its services."
+ (operating-system
+ (inherit os)
+ (services (cons (service provenance-service-type config-file)
+ (operating-system-user-services os)))))
+
;;;
;;; /etc.
diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl
index 7d984155bc..bcb2ba614c 100644
--- a/gnu/system/examples/vm-image.tmpl
+++ b/gnu/system/examples/vm-image.tmpl
@@ -24,11 +24,6 @@ Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation.
accounts.\x1b[0m
"))
-(define this-file
- (local-file (basename (assoc-ref (current-source-location) 'filename))
- "config.scm"))
-
-
(operating-system
(host-name "gnu")
(timezone "Etc/UTC")
@@ -73,10 +68,6 @@ root ALL=(ALL) ALL
(services
(append (list (service xfce-desktop-service-type)
- ;; Copy this file to /etc/config.scm in the OS.
- (simple-service 'config-file etc-service-type
- `(("config.scm" ,this-file)))
-
;; Choose SLiM, which is lighter than the default GDM.
(service slim-service-type
(slim-configuration
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index e2b792d3dc..52c1ea177e 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -76,10 +76,10 @@ archive, a directory, or an Emacs Lisp file."
(define* (add-source-to-load-path #:key dummy #:allow-other-keys)
"Augment the EMACSLOADPATH environment variable with the source directory."
(let* ((source-directory (getcwd))
- (emacs-load-path-value (string-append (getenv "EMACSLOADPATH") ":"
- source-directory)))
+ (emacs-load-path-value (string-append source-directory ":"
+ (getenv "EMACSLOADPATH"))))
(setenv "EMACSLOADPATH" emacs-load-path-value)
- (format #t "source directory ~s appended to the `EMACSLOADPATH' \
+ (format #t "source directory ~s prepended to the `EMACSLOADPATH' \
environment variable\n" source-directory)))
(define* (build #:key outputs inputs #:allow-other-keys)
@@ -239,15 +239,14 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
(add-after 'unpack 'add-source-to-load-path add-source-to-load-path)
(delete 'bootstrap)
(delete 'configure)
- ;; Move the build phase after install: the .el files are byte compiled
- ;; directly in the store.
(delete 'build)
(replace 'check check)
(replace 'install install)
- (add-after 'install 'build build)
(add-after 'install 'make-autoloads make-autoloads)
(add-after 'make-autoloads 'patch-el-files patch-el-files)
- (add-after 'make-autoloads 'move-doc move-doc)))
+ ;; The .el files are byte compiled directly in the store.
+ (add-after 'patch-el-files 'build build)
+ (add-after 'build 'move-doc move-doc)))
(define* (emacs-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)
diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm
index 46fcad7848..be2b808901 100644
--- a/guix/build/qt-build-system.scm
+++ b/guix/build/qt-build-system.scm
@@ -90,8 +90,8 @@ add a dependency of that output on Qt."
(unless (member output qt-wrap-excluded-outputs)
(let ((bin-list (find-files-to-wrap directory))
(vars-to-wrap (variables-for-wrapping
- (append (list output)
- input-directories))))
+ (append (list directory)
+ input-directories))))
(when (not (null? vars-to-wrap))
(for-each (cut apply wrap-program <> vars-to-wrap)
bin-list)))))))
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index ce7999b433..248d6761fc 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -43,6 +44,7 @@
MS_BIND
MS_MOVE
MS_STRICTATIME
+ MS_LAZYTIME
MNT_FORCE
MNT_DETACH
MNT_EXPIRE
@@ -451,6 +453,7 @@ the returned procedure is called."
(define MS_BIND 4096)
(define MS_MOVE 8192)
(define MS_STRICTATIME 16777216)
+(define MS_LAZYTIME 33554432)
(define MNT_FORCE 1)
(define MNT_DETACH 2)
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 6cdf55b1fe..480a65c78b 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -86,6 +86,7 @@
fixed-output-derivation?
offloadable-derivation?
substitutable-derivation?
+ derivation-input-fold
substitution-oracle
derivation-hash
derivation-properties
@@ -303,6 +304,29 @@ result is the set of prerequisites of DRV not already in valid."
(derivation-output-path (assoc-ref outputs sub-drv)))
sub-drvs))))
+(define* (derivation-input-fold proc seed inputs
+ #:key (cut? (const #f)))
+ "Perform a breadth-first traversal of INPUTS, calling PROC on each input
+with the current result, starting from SEED. Skip recursion on inputs that
+match CUT?."
+ (let loop ((inputs inputs)
+ (result seed)
+ (visited (set)))
+ (match inputs
+ (()
+ result)
+ ((input rest ...)
+ (let ((key (derivation-input-key input)))
+ (cond ((set-contains? visited key)
+ (loop rest result visited))
+ ((cut? input)
+ (loop rest result (set-insert key visited)))
+ (else
+ (let ((drv (derivation-input-derivation input)))
+ (loop (append (derivation-inputs drv) rest)
+ (proc input result)
+ (set-insert key visited))))))))))
+
(define* (substitution-oracle store inputs-or-drv
#:key (mode (build-mode normal)))
"Return a one-argument procedure that, when passed a store file name,
@@ -322,25 +346,15 @@ substituter many times."
(cut valid-derivation-input? store <>))
(define (closure inputs)
- (let loop ((inputs inputs)
- (closure '())
- (visited (set)))
- (match inputs
- (()
- (reverse closure))
- ((input rest ...)
- (let ((key (derivation-input-key input)))
- (cond ((set-contains? visited key)
- (loop rest closure visited))
- ((valid-input? input)
- (loop rest closure (set-insert key visited)))
- (else
- (let ((drv (derivation-input-derivation input)))
- (loop (append (derivation-inputs drv) rest)
- (if (substitutable-derivation? drv)
- (cons input closure)
- closure)
- (set-insert key visited))))))))))
+ (reverse
+ (derivation-input-fold (lambda (input closure)
+ (let ((drv (derivation-input-derivation input)))
+ (if (substitutable-derivation? drv)
+ (cons input closure)
+ closure)))
+ '()
+ inputs
+ #:cut? valid-input?)))
(let* ((inputs (closure (map (match-lambda
((? derivation-input? input)
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index e47aff2b12..d9018cc7da 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -505,7 +505,7 @@ s-expression corresponding to that package, or #f on failure."
((bioconductor)
;; Retry import from CRAN
(cran->guix-package package-name 'cran))
- (else #f)))))))
+ (else (values #f '()))))))))
(define* (cran-recursive-import package-name #:optional (repo 'cran))
(recursive-import package-name repo
diff --git a/guix/import/crate.scm b/guix/import/crate.scm
index 8dc014d232..4c3f8000d0 100644
--- a/guix/import/crate.scm
+++ b/guix/import/crate.scm
@@ -178,21 +178,20 @@ and LICENSE."
(close-port port)
pkg))
-(define %dual-license-rx
- ;; Dual licensing is represented by a string such as "MIT OR Apache-2.0".
- ;; This regexp matches that.
- (make-regexp "^(.*) OR (.*)$"))
+(define (string->license string)
+ (filter-map (lambda (license)
+ (and (not (string-null? license))
+ (not (any (lambda (elem) (string=? elem license))
+ '("AND" "OR" "WITH")))
+ (or (spdx-string->license license)
+ 'unknown-license!)))
+ (string-split string (string->char-set " /"))))
(define* (crate->guix-package crate-name #:optional version)
"Fetch the metadata for CRATE-NAME from crates.io, and return the
`package' s-expression corresponding to that package, or #f on failure.
When VERSION is specified, attempt to fetch that version; otherwise fetch the
latest version of CRATE-NAME."
- (define (string->license string)
- (match (regexp-exec %dual-license-rx string)
- (#f (list (spdx-string->license string)))
- (m (list (spdx-string->license (match:substring m 1))
- (spdx-string->license (match:substring m 2))))))
(define (normal-dependency? dependency)
(eq? (crate-dependency-kind dependency) 'normal))
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 4694b6e7ef..47fc8276a9 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -34,15 +34,16 @@
#:use-module (guix gexp)
#:use-module (guix store)
#:use-module (guix download)
+ #:use-module (guix sets)
#:use-module (gnu packages)
#:use-module (ice-9 match)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 receive)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
- #:use-module (srfi srfi-41)
#:export (factorize-uri
flatten
@@ -377,40 +378,53 @@ separated by PRED."
(chr (char-downcase chr)))
name)))
+(define (topological-sort nodes
+ node-dependencies
+ node-name)
+ "Perform a breadth-first traversal of the graph rooted at NODES, a list of
+nodes, and return the list of nodes sorted in topological order. Call
+NODE-DEPENDENCIES to obtain the dependencies of a node, and NODE-NAME to
+obtain a node's uniquely identifying \"key\"."
+ (let loop ((nodes nodes)
+ (result '())
+ (visited (set)))
+ (match nodes
+ (()
+ result)
+ ((head . tail)
+ (if (set-contains? visited (node-name head))
+ (loop tail result visited)
+ (let ((dependencies (node-dependencies head)))
+ (loop (append dependencies tail)
+ (cons head result)
+ (set-insert (node-name head) visited))))))))
+
(define* (recursive-import package-name repo
#:key repo->guix-package guix-name
#:allow-other-keys)
- "Generate a stream of package expressions for PACKAGE-NAME and all its
-dependencies."
- (define (exists? dependency)
- (not (null? (find-packages-by-name (guix-name dependency)))))
- (define initial-state (list #f (list package-name) (list)))
- (define (step state)
- (match state
- ((prev (next . rest) done)
- (define (handle? dep)
- (and
- (not (equal? dep next))
- (not (member dep done))
- (not (exists? dep))))
- (receive (package . dependencies) (repo->guix-package next repo)
- (list
- (if package package '()) ;; default #f on failure would interrupt
- (if package
- (lset-union equal? rest (filter handle? (car dependencies)))
- rest)
- (cons next done))))
- ((prev '() done)
- (list #f '() done))))
-
- ;; Generate a lazy stream of package expressions for all unknown
- ;; dependencies in the graph.
- (stream-unfold
- ;; map: produce a stream element
- (match-lambda ((latest queue done) latest))
- ;; predicate
- (match-lambda ((latest queue done) latest))
- ;; generator: update the queue
- step
- ;; initial state
- (step initial-state)))
+ "Return a stream of package expressions for PACKAGE-NAME and all its
+dependencies, sorted in topological order. For each package,
+call (REPO->GUIX-PACKAGE NAME REPO), which should return a package expression
+and a list of dependencies; call (GUIX-NAME NAME) to obtain the Guix package
+name corresponding to the upstream name."
+ (define-record-type <node>
+ (make-node name package dependencies)
+ node?
+ (name node-name)
+ (package node-package)
+ (dependencies node-dependencies))
+
+ (define (exists? name)
+ (not (null? (find-packages-by-name (guix-name name)))))
+
+ (define (lookup-node name)
+ (receive (package dependencies) (repo->guix-package name repo)
+ (make-node name package dependencies)))
+
+ (map node-package
+ (topological-sort (list (lookup-node package-name))
+ (lambda (node)
+ (map lookup-node
+ (remove exists?
+ (node-dependencies node))))
+ node-name)))
diff --git a/guix/profiles.scm b/guix/profiles.scm
index f5e5cc33d6..616605151e 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1727,7 +1727,9 @@ because the NUMBER is zero.)"
(define %profile-directory
(string-append %state-directory "/profiles/"
(or (and=> (or (getenv "USER")
- (getenv "LOGNAME"))
+ (getenv "LOGNAME")
+ (false-if-exception
+ (passwd:name (getpwuid (getuid)))))
(cut string-append "per-user/" <>))
"default")))
diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm
index b6592f78a9..d6f371ef3a 100644
--- a/guix/scripts/import/cran.scm
+++ b/guix/scripts/import/cran.scm
@@ -27,7 +27,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-cran))
@@ -98,10 +97,8 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
(if (assoc-ref opts 'recursive)
;; Recursive import
(map package->definition
- (reverse
- (stream->list
- (cran-recursive-import package-name
- (or (assoc-ref opts 'repo) 'cran)))))
+ (cran-recursive-import package-name
+ (or (assoc-ref opts 'repo) 'cran)))
;; Single import
(let ((sexp (cran->guix-package package-name
(or (assoc-ref opts 'repo) 'cran))))
diff --git a/guix/scripts/import/crate.scm b/guix/scripts/import/crate.scm
index 4690cceb4d..92034dab3c 100644
--- a/guix/scripts/import/crate.scm
+++ b/guix/scripts/import/crate.scm
@@ -28,7 +28,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-crate))
@@ -101,9 +100,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
- (reverse
- (stream->list
- (crate-recursive-import name))))
+ (crate-recursive-import name))
(let ((sexp (crate->guix-package name version)))
(unless sexp
(leave (G_ "failed to download meta-data for package '~a'~%")
diff --git a/guix/scripts/import/elpa.scm b/guix/scripts/import/elpa.scm
index f1ed5016ba..d270d2b4bc 100644
--- a/guix/scripts/import/elpa.scm
+++ b/guix/scripts/import/elpa.scm
@@ -27,7 +27,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-elpa))
@@ -101,10 +100,8 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n"))
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
- (reverse
- (stream->list
- (elpa-recursive-import package-name
- (or (assoc-ref opts 'repo) 'gnu)))))
+ (elpa-recursive-import package-name
+ (or (assoc-ref opts 'repo) 'gnu)))
(let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo))))
(unless sexp
(leave (G_ "failed to download package '~a'~%") package-name))
diff --git a/guix/scripts/import/gem.scm b/guix/scripts/import/gem.scm
index b6d9ccaae4..c64596b514 100644
--- a/guix/scripts/import/gem.scm
+++ b/guix/scripts/import/gem.scm
@@ -26,7 +26,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-gem))
@@ -95,9 +94,7 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
- (reverse
- (stream->list
- (gem-recursive-import package-name 'rubygems))))
+ (gem-recursive-import package-name 'rubygems))
(let ((sexp (gem->guix-package package-name)))
(unless sexp
(leave (G_ "failed to download meta-data for package '~a'~%")
diff --git a/guix/scripts/import/hackage.scm b/guix/scripts/import/hackage.scm
index f4aac61078..710e786a79 100644
--- a/guix/scripts/import/hackage.scm
+++ b/guix/scripts/import/hackage.scm
@@ -27,7 +27,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-hackage))
@@ -130,9 +129,7 @@ version.\n"))
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
- (reverse
- (stream->list
- (apply hackage-recursive-import arguments))))
+ (apply hackage-recursive-import arguments))
;; Single import
(apply hackage->guix-package arguments))))
(unless sexp (error-fn))
diff --git a/guix/scripts/import/opam.scm b/guix/scripts/import/opam.scm
index 2d249a213f..20da1437fe 100644
--- a/guix/scripts/import/opam.scm
+++ b/guix/scripts/import/opam.scm
@@ -25,7 +25,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-opam))
@@ -94,9 +93,7 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
- (reverse
- (stream->list
- (opam-recursive-import package-name))))
+ (opam-recursive-import package-name))
;; Single import
(let ((sexp (opam->guix-package package-name)))
(unless sexp
diff --git a/guix/scripts/import/pypi.scm b/guix/scripts/import/pypi.scm
index 7bd83818ba..33167174e2 100644
--- a/guix/scripts/import/pypi.scm
+++ b/guix/scripts/import/pypi.scm
@@ -26,7 +26,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-pypi))
@@ -95,9 +94,7 @@ Import and convert the PyPI package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
- (reverse
- (stream->list
- (pypi-recursive-import package-name))))
+ (pypi-recursive-import package-name))
;; Single import
(let ((sexp (pypi->guix-package package-name)))
(unless sexp
diff --git a/guix/scripts/import/stackage.scm b/guix/scripts/import/stackage.scm
index b4b12581bf..d77328dcbf 100644
--- a/guix/scripts/import/stackage.scm
+++ b/guix/scripts/import/stackage.scm
@@ -27,7 +27,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
- #:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-stackage))
@@ -110,9 +109,7 @@ Import and convert the LTS Stackage package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
- (reverse
- (stream->list
- (apply stackage-recursive-import arguments))))
+ (apply stackage-recursive-import arguments))
;; Single import
(apply stackage->guix-package arguments))))
(unless sexp (error-fn))
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 1668d02992..8d08c484f5 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +31,7 @@
#:use-module (guix lint)
#:use-module (guix ui)
#:use-module (guix scripts)
+ #:use-module (guix scripts build)
#:use-module (gnu packages)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
@@ -94,6 +96,9 @@ run the checkers on all packages.\n"))
-c, --checkers=CHECKER1,CHECKER2...
only run the specified checkers"))
(display (G_ "
+ -L, --load-path=DIR prepend DIR to the package module search path"))
+ (newline)
+ (display (G_ "
-h, --help display this help and exit"))
(display (G_ "
-l, --list-checkers display the list of available lint checkers"))
@@ -128,6 +133,9 @@ run the checkers on all packages.\n"))
%local-checkers
(alist-delete 'checkers
result))))
+ (find (lambda (option)
+ (member "load-path" (option-names option)))
+ %standard-build-options)
(option '(#\h "help") #f #f
(lambda args
(show-help)
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 61d18e2609..bbacc93bc0 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -334,6 +334,16 @@ added to the pack."
(define environment
(singularity-environment-file profile))
+ (define symlinks*
+ ;; Singularity requires /bin (specifically /bin/sh), so ensure that
+ ;; symlink is created.
+ (if (find (match-lambda
+ (("/bin" . _) #t)
+ (_ #f))
+ symlinks)
+ symlinks
+ `(("/bin" -> "bin") ,@symlinks)))
+
(define build
(with-imported-modules (source-module-closure
'((guix build utils)
@@ -407,7 +417,7 @@ added to the pack."
"s" "777" "0" "0"
(relative-file-name (dirname source)
target)))))))
- '#$symlinks)
+ '#$symlinks*)
"-p" "/.singularity.d d 555 0 0"
@@ -1049,9 +1059,18 @@ Create a bundle of PACKAGE.\n"))
(entry-point (assoc-ref opts 'entry-point))
(profile-name (assoc-ref opts 'profile-name))
(gc-root (assoc-ref opts 'gc-root)))
+ (define (lookup-package package)
+ (manifest-lookup manifest (manifest-pattern (name package))))
+
(when (null? (manifest-entries manifest))
(warning (G_ "no packages specified; building an empty pack~%")))
+ (when (and (eq? pack-format 'squashfs)
+ (not (any lookup-package '("bash" "bash-minimal"))))
+ (warning (G_ "Singularity requires you to provide a shell~%"))
+ (display-hint (G_ "Add @code{bash} or @code{bash-minimal} \
+to your package list.")))
+
(run-with-store store
(mlet* %store-monad ((profile (profile-derivation
manifest
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index 19410ad141..04cc51829d 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -60,6 +60,7 @@
#:use-module (ice-9 format)
#:export (display-profile-content
channel-list
+ channel-commit-hyperlink
with-git-error-handling
guix-pull))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 5f0dce2093..3e9570753d 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -36,9 +36,11 @@
#:use-module (guix records)
#:use-module (guix profiles)
#:use-module (guix scripts)
+ #:use-module (guix channels)
#:use-module (guix scripts build)
#:autoload (guix scripts package) (delete-generations
delete-matching-generations)
+ #:autoload (guix scripts pull) (channel-commit-hyperlink)
#:use-module (guix graph)
#:use-module (guix scripts graph)
#:use-module (guix scripts system reconfigure)
@@ -456,9 +458,30 @@ list of services."
;;; Generations.
;;;
+(define (sexp->channel sexp)
+ "Return the channel corresponding to SEXP, an sexp as found in the
+\"provenance\" file produced by 'provenance-service-type'."
+ (match sexp
+ (('channel ('name name)
+ ('url url)
+ ('branch branch)
+ ('commit commit))
+ (channel (name name) (url url)
+ (branch branch) (commit commit)))))
+
(define* (display-system-generation number
#:optional (profile %system-profile))
"Display a summary of system generation NUMBER in a human-readable format."
+ (define (display-channel channel)
+ (format #t " ~a:~%" (channel-name channel))
+ (format #t (G_ " repository URL: ~a~%") (channel-url channel))
+ (when (channel-branch channel)
+ (format #t (G_ " branch: ~a~%") (channel-branch channel)))
+ (format #t (G_ " commit: ~a~%")
+ (if (supports-hyperlinks?)
+ (channel-commit-hyperlink channel)
+ (channel-commit channel))))
+
(unless (zero? number)
(let* ((generation (generation-file-name profile number))
(params (read-boot-parameters-file generation))
@@ -468,7 +491,13 @@ list of services."
(root-device (if (bytevector? root)
(uuid->string root)
root))
- (kernel (boot-parameters-kernel params)))
+ (kernel (boot-parameters-kernel params))
+ (provenance (catch 'system-error
+ (lambda ()
+ (call-with-input-file
+ (string-append generation "/provenance")
+ read))
+ (const #f))))
(display-generation profile number)
(format #t (G_ " file name: ~a~%") generation)
(format #t (G_ " canonical file name: ~a~%") (readlink* generation))
@@ -495,7 +524,23 @@ list of services."
(else
root-device)))
- (format #t (G_ " kernel: ~a~%") kernel))))
+ (format #t (G_ " kernel: ~a~%") kernel)
+
+ (match provenance
+ (#f #t)
+ (('provenance ('version 0)
+ ('channels channels ...)
+ ('configuration-file config-file))
+ (unless (null? channels)
+ ;; TRANSLATORS: Here "channel" is the same terminology as used in
+ ;; "guix describe" and "guix pull --channels".
+ (format #t (G_ " channels:~%"))
+ (for-each display-channel (map sexp->channel channels)))
+ (when config-file
+ (format #t (G_ " configuration file: ~a~%")
+ (if (supports-hyperlinks?)
+ (file-hyperlink config-file)
+ config-file))))))))
(define* (list-generations pattern #:optional (profile %system-profile))
"Display in a human-readable format all the system generations matching
@@ -722,7 +767,9 @@ and TARGET arguments."
(return (primitive-eval (lowered-gexp-sexp lowered))))))
(define* (perform-action action os
- #:key skip-safety-checks?
+ #:key
+ save-provenance?
+ skip-safety-checks?
install-bootloader?
dry-run? derivations-only?
use-substitutes? bootloader-target target
@@ -875,6 +922,8 @@ Some ACTIONS support additional ARGS.\n"))
(display (G_ "\
roll-back switch to the previous operating system configuration\n"))
(display (G_ "\
+ describe describe the current system\n"))
+ (display (G_ "\
list-generations list the system generations\n"))
(display (G_ "\
switch-generation switch to an existing operating system configuration\n"))
@@ -918,16 +967,18 @@ Some ACTIONS support additional ARGS.\n"))
(display (G_ "
--no-bootloader for 'init', do not install a bootloader"))
(display (G_ "
+ --save-provenance save provenance information"))
+ (display (G_ "
--share=SPEC for 'vm', share host file system according to SPEC"))
(display (G_ "
+ --expose=SPEC for 'vm', expose host file system according to SPEC"))
+ (display (G_ "
-N, --network for 'container', allow containers to access the network"))
(display (G_ "
-r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container',
and 'build', make FILE a symlink to the result, and
register it as a garbage collector root"))
(display (G_ "
- --expose=SPEC for 'vm', expose host file system according to SPEC"))
- (display (G_ "
--full-boot for 'vm', make a full boot sequence"))
(display (G_ "
--skip-checks skip file system and initrd module safety checks"))
@@ -979,6 +1030,9 @@ Some ACTIONS support additional ARGS.\n"))
(option '("full-boot") #f #f
(lambda (opt name arg result)
(alist-cons 'full-boot? #t result)))
+ (option '("save-provenance") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'save-provenance? #t result)))
(option '("skip-checks") #f #f
(lambda (opt name arg result)
(alist-cons 'skip-safety-checks? #t result)))
@@ -1047,25 +1101,33 @@ resulting from command-line parsing."
file-or-exp))
obj)
+ (define save-provenance?
+ (or (assoc-ref opts 'save-provenance?)
+ (memq action '(init reconfigure))))
+
(let* ((file (match args
(() #f)
((x . _) x)))
(expr (assoc-ref opts 'expression))
(system (assoc-ref opts 'system))
(target (assoc-ref opts 'target))
- (os (ensure-operating-system
- (or file expr)
- (cond
- ((and expr file)
- (leave
- (G_ "both file and expression cannot be specified~%")))
- (expr
- (read/eval expr))
- (file
- (load* file %user-module
- #:on-error (assoc-ref opts 'on-error)))
- (else
- (leave (G_ "no configuration specified~%"))))))
+ (transform (if save-provenance?
+ (cut operating-system-with-provenance <> file)
+ identity))
+ (os (transform
+ (ensure-operating-system
+ (or file expr)
+ (cond
+ ((and expr file)
+ (leave
+ (G_ "both file and expression cannot be specified~%")))
+ (expr
+ (read/eval expr))
+ (file
+ (load* file %user-module
+ #:on-error (assoc-ref opts 'on-error)))
+ (else
+ (leave (G_ "no configuration specified~%")))))))
(dry? (assoc-ref opts 'dry-run?))
(bootloader? (assoc-ref opts 'install-bootloader?))
@@ -1136,6 +1198,12 @@ argument list and OPTS is the option alist."
((pattern) pattern)
(x (leave (G_ "wrong number of arguments~%"))))))
(list-generations pattern)))
+ ((describe)
+ (match (generation-number %system-profile)
+ (0
+ (error (G_ "no system generation, nothing to describe~%")))
+ (generation
+ (display-system-generation generation))))
((search)
(apply (resolve-subcommand "search") args))
;; The following commands need to use the store, but they do not need an
@@ -1175,7 +1243,8 @@ argument list and OPTS is the option alist."
(case action
((build container vm vm-image disk-image reconfigure init
extension-graph shepherd-graph
- list-generations delete-generations roll-back
+ list-generations describe
+ delete-generations roll-back
switch-generation search docker-image)
(alist-cons 'action action result))
(else (leave (G_ "~a: unknown action~%") action))))))
diff --git a/tests/crate.scm b/tests/crate.scm
index c14862ad9f..61933a8de8 100644
--- a/tests/crate.scm
+++ b/tests/crate.scm
@@ -28,7 +28,7 @@
#:use-module (ice-9 match)
#:use-module (srfi srfi-64))
-(define test-crate
+(define test-foo-crate
"{
\"crate\": {
\"max_version\": \"1.0.0\",
@@ -50,7 +50,7 @@
}
}")
-(define test-dependencies
+(define test-foo-dependencies
"{
\"dependencies\": [
{
@@ -60,9 +60,182 @@
]
}")
+(define test-root-crate
+ "{
+ \"crate\": {
+ \"max_version\": \"1.0.0\",
+ \"name\": \"root\",
+ \"description\": \"summary\",
+ \"homepage\": \"http://example.com\",
+ \"repository\": \"http://example.com\",
+ \"keywords\": [\"dummy\" \"test\"],
+ \"categories\": [\"test\"]
+ \"actual_versions\": [
+ { \"id\": \"foo\",
+ \"num\": \"1.0.0\",
+ \"license\": \"MIT OR Apache-2.0\",
+ \"links\": {
+ \"dependencies\": \"/api/v1/crates/root/1.0.0/dependencies\"
+ }
+ }
+ ]
+ }
+}")
+
+(define test-root-dependencies
+ "{
+ \"dependencies\": [
+ {
+ \"crate_id\": \"intermediate-1\",
+ \"kind\": \"normal\",
+ },
+ {
+ \"crate_id\": \"intermediate-2\",
+ \"kind\": \"normal\",
+ }
+ {
+ \"crate_id\": \"leaf-alice\",
+ \"kind\": \"normal\",
+ },
+ {
+ \"crate_id\": \"leaf-bob\",
+ \"kind\": \"normal\",
+ },
+ ]
+}")
+
+(define test-intermediate-1-crate
+ "{
+ \"crate\": {
+ \"max_version\": \"1.0.0\",
+ \"name\": \"intermediate-1\",
+ \"description\": \"summary\",
+ \"homepage\": \"http://example.com\",
+ \"repository\": \"http://example.com\",
+ \"keywords\": [\"dummy\" \"test\"],
+ \"categories\": [\"test\"]
+ \"actual_versions\": [
+ { \"id\": \"intermediate-1\",
+ \"num\": \"1.0.0\",
+ \"license\": \"MIT OR Apache-2.0\",
+ \"links\": {
+ \"dependencies\": \"/api/v1/crates/intermediate-1/1.0.0/dependencies\"
+ }
+ }
+ ]
+ }
+}")
+
+(define test-intermediate-1-dependencies
+ "{
+ \"dependencies\": [
+ {
+ \"crate_id\": \"intermediate-2\",
+ \"kind\": \"normal\",
+ },
+ {
+ \"crate_id\": \"leaf-alice\",
+ \"kind\": \"normal\",
+ },
+ {
+ \"crate_id\": \"leaf-bob\",
+ \"kind\": \"normal\",
+ }
+ ]
+}")
+
+(define test-intermediate-2-crate
+ "{
+ \"crate\": {
+ \"max_version\": \"1.0.0\",
+ \"name\": \"intermediate-2\",
+ \"description\": \"summary\",
+ \"homepage\": \"http://example.com\",
+ \"repository\": \"http://example.com\",
+ \"keywords\": [\"dummy\" \"test\"],
+ \"categories\": [\"test\"]
+ \"actual_versions\": [
+ { \"id\": \"intermediate-2\",
+ \"num\": \"1.0.0\",
+ \"license\": \"MIT OR Apache-2.0\",
+ \"links\": {
+ \"dependencies\": \"/api/v1/crates/intermediate-2/1.0.0/dependencies\"
+ }
+ }
+ ]
+ }
+}")
+
+(define test-intermediate-2-dependencies
+ "{
+ \"dependencies\": [
+ {
+ \"crate_id\": \"leaf-bob\",
+ \"kind\": \"normal\",
+ },
+ ]
+}")
+
+(define test-leaf-alice-crate
+ "{
+ \"crate\": {
+ \"max_version\": \"1.0.0\",
+ \"name\": \"leaf-alice\",
+ \"description\": \"summary\",
+ \"homepage\": \"http://example.com\",
+ \"repository\": \"http://example.com\",
+ \"keywords\": [\"dummy\" \"test\"],
+ \"categories\": [\"test\"]
+ \"actual_versions\": [
+ { \"id\": \"leaf-alice\",
+ \"num\": \"1.0.0\",
+ \"license\": \"MIT OR Apache-2.0\",
+ \"links\": {
+ \"dependencies\": \"/api/v1/crates/leaf-alice/1.0.0/dependencies\"
+ }
+ }
+ ]
+ }
+}")
+
+(define test-leaf-alice-dependencies
+ "{
+ \"dependencies\": []
+}")
+
+(define test-leaf-bob-crate
+ "{
+ \"crate\": {
+ \"max_version\": \"1.0.0\",
+ \"name\": \"leaf-bob\",
+ \"description\": \"summary\",
+ \"homepage\": \"http://example.com\",
+ \"repository\": \"http://example.com\",
+ \"keywords\": [\"dummy\" \"test\"],
+ \"categories\": [\"test\"]
+ \"actual_versions\": [
+ { \"id\": \"leaf-bob\",
+ \"num\": \"1.0.0\",
+ \"license\": \"MIT OR Apache-2.0\",
+ \"links\": {
+ \"dependencies\": \"/api/v1/crates/leaf-bob/1.0.0/dependencies\"
+ }
+ }
+ ]
+ }
+}")
+
+(define test-leaf-bob-dependencies
+ "{
+ \"dependencies\": []
+}")
+
(define test-source-hash
"")
+(define string->license
+ (@@ (guix import crate) string->license))
+
(test-begin "crate")
(test-equal "guix-package->crate-name"
@@ -79,14 +252,14 @@
(lambda (url . rest)
(match url
("https://crates.io/api/v1/crates/foo"
- (open-input-string test-crate))
+ (open-input-string test-foo-crate))
("https://crates.io/api/v1/crates/foo/1.0.0/download"
(set! test-source-hash
(bytevector->nix-base32-string
(sha256 (string->bytevector "empty file\n" "utf-8"))))
(open-input-string "empty file\n"))
("https://crates.io/api/v1/crates/foo/1.0.0/dependencies"
- (open-input-string test-dependencies))
+ (open-input-string test-foo-dependencies))
(_ (error "Unexpected URL: " url)))))
(match (crate->guix-package "foo")
(('package
@@ -111,4 +284,180 @@
(x
(pk 'fail x #f)))))
+(test-assert "cargo-recursive-import"
+ ;; Replace network resources with sample data.
+ (mock ((guix http-client) http-fetch
+ (lambda (url . rest)
+ (match url
+ ("https://crates.io/api/v1/crates/root"
+ (open-input-string test-root-crate))
+ ("https://crates.io/api/v1/crates/root/1.0.0/download"
+ (set! test-source-hash
+ (bytevector->nix-base32-string
+ (sha256 (string->bytevector "empty file\n" "utf-8"))))
+ (open-input-string "empty file\n"))
+ ("https://crates.io/api/v1/crates/root/1.0.0/dependencies"
+ (open-input-string test-root-dependencies))
+ ("https://crates.io/api/v1/crates/intermediate-1"
+ (open-input-string test-intermediate-1-crate))
+ ("https://crates.io/api/v1/crates/intermediate-1/1.0.0/download"
+ (set! test-source-hash
+ (bytevector->nix-base32-string
+ (sha256 (string->bytevector "empty file\n" "utf-8"))))
+ (open-input-string "empty file\n"))
+ ("https://crates.io/api/v1/crates/intermediate-1/1.0.0/dependencies"
+ (open-input-string test-intermediate-1-dependencies))
+ ("https://crates.io/api/v1/crates/intermediate-2"
+ (open-input-string test-intermediate-2-crate))
+ ("https://crates.io/api/v1/crates/intermediate-2/1.0.0/download"
+ (set! test-source-hash
+ (bytevector->nix-base32-string
+ (sha256 (string->bytevector "empty file\n" "utf-8"))))
+ (open-input-string "empty file\n"))
+ ("https://crates.io/api/v1/crates/intermediate-2/1.0.0/dependencies"
+ (open-input-string test-intermediate-2-dependencies))
+ ("https://crates.io/api/v1/crates/leaf-alice"
+ (open-input-string test-leaf-alice-crate))
+ ("https://crates.io/api/v1/crates/leaf-alice/1.0.0/download"
+ (set! test-source-hash
+ (bytevector->nix-base32-string
+ (sha256 (string->bytevector "empty file\n" "utf-8"))))
+ (open-input-string "empty file\n"))
+ ("https://crates.io/api/v1/crates/leaf-alice/1.0.0/dependencies"
+ (open-input-string test-leaf-alice-dependencies))
+ ("https://crates.io/api/v1/crates/leaf-bob"
+ (open-input-string test-leaf-bob-crate))
+ ("https://crates.io/api/v1/crates/leaf-bob/1.0.0/download"
+ (set! test-source-hash
+ (bytevector->nix-base32-string
+ (sha256 (string->bytevector "empty file\n" "utf-8"))))
+ (open-input-string "empty file\n"))
+ ("https://crates.io/api/v1/crates/leaf-bob/1.0.0/dependencies"
+ (open-input-string test-leaf-bob-dependencies))
+ (_ (error "Unexpected URL: " url)))))
+ (match (crate-recursive-import "root")
+ ;; rust-intermediate-2 has no dependency on the rust-leaf-alice package, so this is a valid ordering
+ ((('package
+ ('name "rust-leaf-alice")
+ ('version (? string? ver))
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('crate-uri "leaf-alice" 'version))
+ ('file-name
+ ('string-append 'name "-" 'version ".tar.gz"))
+ ('sha256
+ ('base32
+ (? string? hash)))))
+ ('build-system 'cargo-build-system)
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license ('list 'license:expat 'license:asl2.0)))
+ ('package
+ ('name "rust-leaf-bob")
+ ('version (? string? ver))
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('crate-uri "leaf-bob" 'version))
+ ('file-name
+ ('string-append 'name "-" 'version ".tar.gz"))
+ ('sha256
+ ('base32
+ (? string? hash)))))
+ ('build-system 'cargo-build-system)
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license ('list 'license:expat 'license:asl2.0)))
+ ('package
+ ('name "rust-intermediate-2")
+ ('version (? string? ver))
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('crate-uri "intermediate-2" 'version))
+ ('file-name
+ ('string-append 'name "-" 'version ".tar.gz"))
+ ('sha256
+ ('base32
+ (? string? hash)))))
+ ('build-system 'cargo-build-system)
+ ('arguments
+ ('quasiquote
+ ('#:cargo-inputs (("rust-leaf-bob" ('unquote rust-leaf-bob))))))
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license ('list 'license:expat 'license:asl2.0)))
+ ('package
+ ('name "rust-intermediate-1")
+ ('version (? string? ver))
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('crate-uri "intermediate-1" 'version))
+ ('file-name
+ ('string-append 'name "-" 'version ".tar.gz"))
+ ('sha256
+ ('base32
+ (? string? hash)))))
+ ('build-system 'cargo-build-system)
+ ('arguments
+ ('quasiquote
+ ('#:cargo-inputs (("rust-intermediate-2" ('unquote rust-intermediate-2))
+ ("rust-leaf-alice" ('unquote rust-leaf-alice))
+ ("rust-leaf-bob" ('unquote rust-leaf-bob))))))
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license ('list 'license:expat 'license:asl2.0)))
+ ('package
+ ('name "rust-root")
+ ('version (? string? ver))
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('crate-uri "root" 'version))
+ ('file-name
+ ('string-append 'name "-" 'version ".tar.gz"))
+ ('sha256
+ ('base32
+ (? string? hash)))))
+ ('build-system 'cargo-build-system)
+ ('arguments
+ ('quasiquote
+ ('#:cargo-inputs (("rust-intermediate-1" ('unquote rust-intermediate-1))
+ ("rust-intermediate-2" ('unquote rust-intermediate-2))
+ ("rust-leaf-alice" ('unquote rust-leaf-alice))
+ ("rust-leaf-bob" ('unquote rust-leaf-bob))))))
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license ('list 'license:expat 'license:asl2.0))))
+ #t)
+ (x
+ (pk 'fail x #f)))))
+
+(test-equal "licenses: MIT OR Apache-2.0"
+ '(license:expat license:asl2.0)
+ (string->license "MIT OR Apache-2.0"))
+
+(test-equal "licenses: Apache-2.0 / MIT"
+ '(license:asl2.0 license:expat)
+ (string->license "Apache-2.0 / MIT"))
+
+(test-equal "licenses: Apache-2.0 WITH LLVM-exception"
+ '(license:asl2.0 unknown-license!)
+ (string->license "Apache-2.0 WITH LLVM-exception"))
+
+(test-equal "licenses: MIT/Apache-2.0 AND BSD-2-Clause"
+ '(license:expat license:asl2.0 unknown-license!)
+ (string->license "MIT/Apache-2.0 AND BSD-2-Clause"))
+
+(test-equal "licenses: MIT/Apache-2.0"
+ '(license:expat license:asl2.0)
+ (string->license "MIT/Apache-2.0"))
+
(test-end "crate")
diff --git a/tests/derivations.scm b/tests/derivations.scm
index 6a7fad85b5..ef6cec6c76 100644
--- a/tests/derivations.scm
+++ b/tests/derivations.scm
@@ -978,6 +978,24 @@
#:mode (build-mode check))
(list drv dep))))))
+(test-assert "derivation-input-fold"
+ (let* ((builder (add-text-to-store %store "my-builder.sh"
+ "echo hello, world > \"$out\"\n"
+ '()))
+ (drv1 (derivation %store "foo"
+ %bash `(,builder)
+ #:sources `(,%bash ,builder)))
+ (drv2 (derivation %store "bar"
+ %bash `(,builder)
+ #:inputs `((,drv1))
+ #:sources `(,%bash ,builder))))
+ (equal? (derivation-input-fold (lambda (input result)
+ (cons (derivation-input-derivation input)
+ result))
+ '()
+ (list (derivation-input drv2)))
+ (list drv1 drv2))))
+
(test-assert "substitution-oracle and #:substitute? #f"
(with-store store
(let* ((dep (build-expression->derivation store "dep"
diff --git a/tests/gem.scm b/tests/gem.scm
index a12edb294c..5158238d18 100644
--- a/tests/gem.scm
+++ b/tests/gem.scm
@@ -24,7 +24,6 @@
#:use-module (gcrypt hash)
#:use-module (guix tests)
#:use-module ((guix build utils) #:select (delete-file-recursively))
- #:use-module (srfi srfi-41)
#:use-module (srfi srfi-64)
#:use-module (ice-9 match))
@@ -121,24 +120,23 @@
(values (open-input-string test-bundler-json)
(string-length test-bundler-json)))
(_ (error "Unexpected URL: " url)))))
- (match (stream->list (gem-recursive-import "foo"))
+ (match (gem-recursive-import "foo")
((('package
- ('name "ruby-foo")
+ ('name "ruby-bar")
('version "1.0.0")
('source
('origin
('method 'url-fetch)
- ('uri ('rubygems-uri "foo" 'version))
+ ('uri ('rubygems-uri "bar" 'version))
('sha256
('base32
"1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
('build-system 'ruby-build-system)
('propagated-inputs
('quasiquote
- (("bundler" ('unquote 'bundler))
- ("ruby-bar" ('unquote 'ruby-bar)))))
- ('synopsis "A cool gem")
- ('description "This package provides a cool gem")
+ (('"bundler" ('unquote 'bundler)))))
+ ('synopsis "Another cool gem")
+ ('description "Another cool gem")
('home-page "https://example.com")
('license ('list 'license:expat 'license:asl2.0)))
('package
@@ -157,21 +155,22 @@
('home-page "https://bundler.io/")
('license 'license:expat))
('package
- ('name "ruby-bar")
+ ('name "ruby-foo")
('version "1.0.0")
('source
('origin
('method 'url-fetch)
- ('uri ('rubygems-uri "bar" 'version))
+ ('uri ('rubygems-uri "foo" 'version))
('sha256
('base32
"1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
('build-system 'ruby-build-system)
('propagated-inputs
('quasiquote
- (('"bundler" ('unquote 'bundler)))))
- ('synopsis "Another cool gem")
- ('description "Another cool gem")
+ (("bundler" ('unquote 'bundler))
+ ("ruby-bar" ('unquote 'ruby-bar)))))
+ ('synopsis "A cool gem")
+ ('description "This package provides a cool gem")
('home-page "https://example.com")
('license ('list 'license:expat 'license:asl2.0))))
#t)
diff --git a/tests/guix-lint.sh b/tests/guix-lint.sh
index 7ddc7c265b..f0df1fda3a 100644
--- a/tests/guix-lint.sh
+++ b/tests/guix-lint.sh
@@ -76,3 +76,14 @@ then true; else false; fi
# Make sure specifying multiple packages works.
guix lint -c inputs-should-be-native dummy dummy@42 dummy
+
+
+# Use --load-path instead.
+unset GUIX_PACKAGE_PATH
+
+out=`guix lint -L $module_dir -c synopsis,description dummy 2>&1`
+if [ `grep_warning "$out"` -ne 3 ]
+then false; else true; fi
+
+# Make sure specifying multiple packages works.
+guix lint -L $module_dir -c inputs-should-be-native dummy dummy@42 dummy
diff --git a/tests/import-utils.scm b/tests/import-utils.scm
index c3ab25d788..87dda3238f 100644
--- a/tests/import-utils.scm
+++ b/tests/import-utils.scm
@@ -24,7 +24,8 @@
#:use-module (guix packages)
#:use-module (guix build-system)
#:use-module (gnu packages)
- #:use-module (srfi srfi-64))
+ #:use-module (srfi srfi-64)
+ #:use-module (ice-9 match))
(test-begin "import-utils")
@@ -41,6 +42,26 @@
'license:lgpl2.0
(license->symbol license:lgpl2.0))
+(test-equal "recursive-import"
+ '((package ;package expressions in topological order
+ (name "bar"))
+ (package
+ (name "foo")
+ (inputs `(("bar" ,bar)))))
+ (recursive-import "foo" 'repo
+ #:repo->guix-package
+ (match-lambda*
+ (("foo" 'repo)
+ (values '(package
+ (name "foo")
+ (inputs `(("bar" ,bar))))
+ '("bar")))
+ (("bar" 'repo)
+ (values '(package
+ (name "bar"))
+ '())))
+ #:guix-name identity))
+
(test-assert "alist->package with simple source"
(let* ((meta '(("name" . "hello")
("version" . "2.10")
diff --git a/tests/processes.scm b/tests/processes.scm
index 40454bcbc7..ba518f2d9e 100644
--- a/tests/processes.scm
+++ b/tests/processes.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,15 +33,48 @@
#:use-module (ice-9 match)
#:use-module (ice-9 threads))
+;; When using --system argument, binfmt-misc mechanism may be used. In that
+;; case, (guix script processes) won't work because:
+;;
+;; * ARGV0 is qemu-user and not guix-daemon.
+;; * Guix-daemon won't be able to stuff client PID in ARGV1 of forked
+;; processes.
+;;
+;; See: https://lists.gnu.org/archive/html/bug-guix/2019-12/msg00017.html.
+;;
+;; If we detect that we are running with binfmt emulation, all the following
+;; tests must be skipped.
+
+(define (binfmt-misc?)
+ (let ((pid (getpid))
+ (cmdline (call-with-input-file "/proc/self/cmdline" get-string-all)))
+ (match (primitive-fork)
+ (0 (dynamic-wind
+ (const #t)
+ (lambda ()
+ (exit
+ (not (equal?
+ (call-with-input-file (format #f "/proc/~a/cmdline" pid)
+ get-string-all)
+ cmdline))))
+ (const #t)))
+ (x (zero? (cdr (waitpid x)))))))
+
+(define-syntax-rule (test-assert* description exp)
+ (begin
+ (when (binfmt-misc?)
+ (test-skip 1))
+ (test-assert description exp)))
+
(test-begin "processes")
-(test-assert "not a client"
+(test-assert* "not a client"
(not (find (lambda (session)
(= (getpid)
(process-id (daemon-session-client session))))
(daemon-sessions))))
-(test-assert "client"
+(test-assert* "client"
(with-store store
(let* ((session (find (lambda (session)
(= (getpid)
@@ -50,7 +84,7 @@
(and (kill (process-id daemon) 0)
(string-suffix? "guix-daemon" (first (process-command daemon)))))))
-(test-assert "client + lock"
+(test-assert* "client + lock"
(with-store store
(call-with-temporary-directory
(lambda (directory)