aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-06-20 23:08:16 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-06-20 23:08:16 +0200
commit651478aa18a3f575d3b4cc14166a15a1c45b0f61 (patch)
tree87c27dc9eff3d321f7ad4a622b110c517856a104
parent71c08ee60bb3f62bac0614888fb62405f7a388ab (diff)
parent9a2e5fe5fdcc6ea848ceeefa0f70147dfb360639 (diff)
downloadguix-651478aa18a3f575d3b4cc14166a15a1c45b0f61.tar
guix-651478aa18a3f575d3b4cc14166a15a1c45b0f61.tar.gz
Merge branch 'master' into staging
-rw-r--r--doc/guix.texi112
-rw-r--r--gnu/local.mk22
-rw-r--r--gnu/packages/admin.scm34
-rw-r--r--gnu/packages/algebra.scm586
-rw-r--r--gnu/packages/audio.scm18
-rw-r--r--gnu/packages/benchmark.scm28
-rw-r--r--gnu/packages/bioconductor.scm72
-rw-r--r--gnu/packages/bioinformatics.scm138
-rw-r--r--gnu/packages/busybox.scm16
-rw-r--r--gnu/packages/check.scm21
-rw-r--r--gnu/packages/chromium.scm115
-rw-r--r--gnu/packages/ci.scm141
-rw-r--r--gnu/packages/connman.scm15
-rw-r--r--gnu/packages/cran.scm46
-rw-r--r--gnu/packages/crates-io.scm92
-rw-r--r--gnu/packages/databases.scm5
-rw-r--r--gnu/packages/dico.scm4
-rw-r--r--gnu/packages/disk.scm22
-rw-r--r--gnu/packages/dns.scm12
-rw-r--r--gnu/packages/docker.scm5
-rw-r--r--gnu/packages/emacs-xyz.scm306
-rw-r--r--gnu/packages/engineering.scm12
-rw-r--r--gnu/packages/fonts.scm22
-rw-r--r--gnu/packages/ftp.scm9
-rw-r--r--gnu/packages/games.scm175
-rw-r--r--gnu/packages/gimp.scm8
-rw-r--r--gnu/packages/glib.scm9
-rw-r--r--gnu/packages/gnome.scm33
-rw-r--r--gnu/packages/gnunet.scm4
-rw-r--r--gnu/packages/gnupg.scm6
-rw-r--r--gnu/packages/gpodder.scm10
-rw-r--r--gnu/packages/gps.scm35
-rw-r--r--gnu/packages/graph.scm54
-rw-r--r--gnu/packages/guile-xyz.scm179
-rw-r--r--gnu/packages/guile.scm12
-rw-r--r--gnu/packages/irc.scm6
-rw-r--r--gnu/packages/kawa.scm53
-rw-r--r--gnu/packages/linux.scm24
-rw-r--r--gnu/packages/logging.scm30
-rw-r--r--gnu/packages/machine-learning.scm168
-rw-r--r--gnu/packages/mail.scm15
-rw-r--r--gnu/packages/maths.scm45
-rw-r--r--gnu/packages/mes.scm39
-rw-r--r--gnu/packages/mpd.scm10
-rw-r--r--gnu/packages/nano.scm10
-rw-r--r--gnu/packages/networking.scm21
-rw-r--r--gnu/packages/parallel.scm53
-rw-r--r--gnu/packages/password-utils.scm6
-rw-r--r--gnu/packages/patches/benchmark-unbundle-googletest.patch69
-rw-r--r--gnu/packages/patches/dbus-CVE-2019-12749.patch116
-rw-r--r--gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch48
-rw-r--r--gnu/packages/patches/dstat-skip-devices-without-io.patch32
-rw-r--r--gnu/packages/patches/emacs-realgud-fix-configure-ac.patch27
-rw-r--r--gnu/packages/patches/emacs-unpackaged-req.patch24
-rw-r--r--gnu/packages/patches/inkscape-poppler-compat3.patch499
-rw-r--r--gnu/packages/patches/open-zwave-hidapi.patch15
-rw-r--r--gnu/packages/patches/racket-store-checksum-override.patch35
-rw-r--r--gnu/packages/patches/ratpoints-sturm_and_rp_private.patch194
-rw-r--r--gnu/packages/patches/ri-li-modernize_cpp.patch391
-rw-r--r--gnu/packages/patches/symmetrica-bruch.patch38
-rw-r--r--gnu/packages/patches/symmetrica-int32.patch37
-rw-r--r--gnu/packages/patches/symmetrica-return_values.patch14
-rw-r--r--gnu/packages/patches/symmetrica-sort_sum_rename.patch340
-rw-r--r--gnu/packages/patches/usb-modeswitch-accept-config-arg.patch42
-rw-r--r--gnu/packages/pdf.scm4
-rw-r--r--gnu/packages/perl.scm9
-rw-r--r--gnu/packages/popt.scm13
-rw-r--r--gnu/packages/python-web.scm19
-rw-r--r--gnu/packages/python-xyz.scm454
-rw-r--r--gnu/packages/python.scm1
-rw-r--r--gnu/packages/rush.scm4
-rw-r--r--gnu/packages/rust.scm22
-rw-r--r--gnu/packages/sagemath.scm284
-rw-r--r--gnu/packages/samba.scm4
-rw-r--r--gnu/packages/scheme.scm4
-rw-r--r--gnu/packages/shells.scm4
-rw-r--r--gnu/packages/sphinx.scm4
-rw-r--r--gnu/packages/statistics.scm25
-rw-r--r--gnu/packages/syndication.scm7
-rw-r--r--gnu/packages/terminals.scm5
-rw-r--r--gnu/packages/text-editors.scm3
-rw-r--r--gnu/packages/textutils.scm25
-rw-r--r--gnu/packages/usb-modeswitch.scm166
-rw-r--r--gnu/packages/version-control.scm4
-rw-r--r--gnu/packages/video.scm22
-rw-r--r--gnu/packages/vim.scm29
-rw-r--r--gnu/packages/web.scm23
-rw-r--r--gnu/packages/wget.scm18
-rw-r--r--gnu/packages/wm.scm92
-rw-r--r--gnu/packages/xml.scm5
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/packages/zwave.scm9
-rw-r--r--gnu/services/admin.scm3
-rw-r--r--gnu/services/desktop.scm1
-rw-r--r--gnu/services/mail.scm8
-rw-r--r--gnu/services/mcron.scm1
-rw-r--r--gnu/services/networking.scm104
-rw-r--r--gnu/services/nix.scm3
-rw-r--r--gnu/system/linux-container.scm29
-rw-r--r--gnu/system/vm.scm5
-rw-r--r--gnu/tests/mail.scm6
-rw-r--r--guix/build-system/cargo.scm117
-rw-r--r--guix/build/cargo-build-system.scm54
-rw-r--r--guix/derivations.scm9
-rw-r--r--guix/grafts.scm67
-rw-r--r--guix/import/cabal.scm7
-rw-r--r--guix/import/crate.scm47
-rw-r--r--guix/import/hackage.scm62
-rw-r--r--guix/import/utils.scm4
-rw-r--r--guix/licenses.scm6
-rw-r--r--guix/scripts/build.scm5
-rw-r--r--guix/utils.scm6
-rw-r--r--nix/libstore/build.cc2
-rw-r--r--nix/libstore/globals.cc2
-rw-r--r--nix/libstore/store-api.cc2
-rw-r--r--tests/crate.scm4
-rw-r--r--tests/derivations.scm15
-rw-r--r--tests/hackage.scm97
-rw-r--r--tests/utils.scm6
119 files changed, 5259 insertions, 1455 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 87dc6ea5c5..65c3b8a7f1 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -58,12 +58,13 @@ Copyright @copyright{} 2018 Rutger Helling@*
Copyright @copyright{} 2018 Oleg Pykhalov@*
Copyright @copyright{} 2018 Mike Gerwitz@*
Copyright @copyright{} 2018 Pierre-Antoine Rouby@*
-Copyright @copyright{} 2018 Gábor Boskovits@*
+Copyright @copyright{} 2018, 2019 Gábor Boskovits@*
Copyright @copyright{} 2018, 2019 Florian Pelz@*
Copyright @copyright{} 2018 Laura Lazzati@*
Copyright @copyright{} 2018 Alex Vong@*
Copyright @copyright{} 2019 Josh Holland@*
Copyright @copyright{} 2019 Diego Nicola Barbato@*
+Copyright @copyright{} 2019 Ivan Petkov@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -569,7 +570,7 @@ you may have to run @code{su -} or @code{sudo -i}. As @code{root}, run:
@example
# cd /tmp
# tar --warning=no-timestamp -xf \
- guix-binary-@value{VERSION}.@var{system}.tar.xz
+ /path/to/guix-binary-@value{VERSION}.@var{system}.tar.xz
# mv var/guix /var/ && mv gnu /
@end example
@@ -5814,10 +5815,21 @@ This variable is exported by @code{(guix build-system cargo)}. It
supports builds of packages using Cargo, the build tool of the
@uref{https://www.rust-lang.org, Rust programming language}.
-In its @code{configure} phase, this build system replaces dependencies
-specified in the @file{Cargo.toml} file with inputs to the Guix package.
-The @code{install} phase installs the binaries, and it also installs the
-source code and @file{Cargo.toml} file.
+It adds @code{rustc} and @code{cargo} to the set of inputs.
+A different Rust package can be specified with the @code{#:rust} parameter.
+
+Regular cargo dependencies should be added to the package definition via the
+@code{#:cargo-inputs} parameter as a list of name and spec pairs, where the
+spec can be a package or a source definition. Note that the spec must
+evaluate to a path to a gzipped tarball which includes a @code{Cargo.toml}
+file at its root, or it will be ignored. Similarly, cargo dev-dependencies
+should be added to the package definition via the
+@code{#:cargo-development-inputs} parameter.
+
+In its @code{configure} phase, this build system will make any source inputs
+specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs}
+parameters available to cargo. The @code{install} phase installs any crate
+the binaries if they are defined by the crate.
@end defvr
@cindex Clojure (programming language)
@@ -6433,7 +6445,7 @@ Connect to the daemon over the Unix-domain socket at @var{uri} (a string). When
extra space on the file system so that the garbage collector can still
operate should the disk become full. Return a server object.
-@var{file} defaults to @var{%default-socket-path}, which is the normal
+@var{file} defaults to @code{%default-socket-path}, which is the normal
location given the options that were passed to @command{configure}.
@end deffn
@@ -10345,7 +10357,7 @@ configuration options.
The @code{packages} field lists packages that will be globally visible
on the system, for all user accounts---i.e., in every user's @code{PATH}
environment variable---in addition to the per-user profiles
-(@pxref{Invoking guix package}). The @var{%base-packages} variable
+(@pxref{Invoking guix package}). The @code{%base-packages} variable
provides all the tools one would expect for basic user and administrator
tasks---including the GNU Core Utilities, the GNU Networking Utilities,
the GNU Zile lightweight text editor, @command{find}, @command{grep},
@@ -10406,7 +10418,7 @@ customize them. To do this, use @code{modify-services} (@pxref{Service
Reference, @code{modify-services}}) to modify the list.
For example, suppose you want to modify @code{guix-daemon} and Mingetty
-(the console log-in) in the @var{%base-services} list (@pxref{Base
+(the console log-in) in the @code{%base-services} list (@pxref{Base
Services, @code{%base-services}}). To do that, you can write the
following in your operating system declaration:
@@ -10430,7 +10442,7 @@ following in your operating system declaration:
This changes the configuration---i.e., the service parameters---of the
@code{guix-service-type} instance, and that of all the
-@code{mingetty-service-type} instances in the @var{%base-services} list.
+@code{mingetty-service-type} instances in the @code{%base-services} list.
Observe how this is accomplished: first, we arrange for the original
configuration to be bound to the identifier @code{config} in the
@var{body}, and then we write the @var{body} so that it evaluates to the
@@ -10461,15 +10473,15 @@ This example refers to the @file{/boot/efi} file system by its UUID,
as returned by the @command{blkid} command.
@xref{Desktop Services}, for the exact list of services provided by
-@var{%desktop-services}. @xref{X.509 Certificates}, for background
+@code{%desktop-services}. @xref{X.509 Certificates}, for background
information about the @code{nss-certs} package that is used here.
-Again, @var{%desktop-services} is just a list of service objects. If
+Again, @code{%desktop-services} is just a list of service objects. If
you want to remove services from there, you can do so using the
procedures for list filtering (@pxref{SRFI-1 Filtering and
Partitioning,,, guile, GNU Guile Reference Manual}). For instance, the
following expression returns a list that contains all the services in
-@var{%desktop-services} minus the Avahi service:
+@code{%desktop-services} minus the Avahi service:
@example
(remove (lambda (service)
@@ -10588,7 +10600,7 @@ A procedure that returns an initial RAM disk for the Linux
kernel. This field is provided to support low-level customization and
should rarely be needed for casual use. @xref{Initial RAM Disk}.
-@item @code{firmware} (default: @var{%base-firmware})
+@item @code{firmware} (default: @code{%base-firmware})
@cindex firmware
List of firmware packages loadable by the operating system kernel.
@@ -10623,7 +10635,7 @@ device, provided that the necessary device mapping and file system are
also specified. @xref{Mapped Devices} and @ref{File Systems}.
@item @code{users} (default: @code{%base-user-accounts})
-@itemx @code{groups} (default: @var{%base-groups})
+@itemx @code{groups} (default: @code{%base-groups})
List of user accounts and groups. @xref{User Accounts}.
If the @code{users} list lacks a user account with UID@tie{}0, a
@@ -10643,11 +10655,11 @@ For instance, a valid value may look like this:
(activate-readline)")))
@end example
-@item @code{issue} (default: @var{%default-issue})
+@item @code{issue} (default: @code{%default-issue})
A string denoting the contents of the @file{/etc/issue} file, which is
displayed when users log in on a text console.
-@item @code{packages} (default: @var{%base-packages})
+@item @code{packages} (default: @code{%base-packages})
The set of packages installed in the global profile, which is accessible
at @file{/run/current-system/profile}.
@@ -10666,7 +10678,7 @@ causes @command{guix system} to fail.
The name of the default locale (@pxref{Locale Names,,, libc, The GNU C
Library Reference Manual}). @xref{Locales}, for more information.
-@item @code{locale-definitions} (default: @var{%default-locale-definitions})
+@item @code{locale-definitions} (default: @code{%default-locale-definitions})
The list of locale definitions to be compiled and that may be used at
run time. @xref{Locales}.
@@ -10675,12 +10687,12 @@ The list of GNU@tie{}libc packages whose locale data and tools are used
to build the locale definitions. @xref{Locales}, for compatibility
considerations that justify this option.
-@item @code{name-service-switch} (default: @var{%default-nss})
+@item @code{name-service-switch} (default: @code{%default-nss})
Configuration of the libc name service switch (NSS)---a
@code{<name-service-switch>} object. @xref{Name Service Switch}, for
details.
-@item @code{services} (default: @var{%base-services})
+@item @code{services} (default: @code{%base-services})
A list of service objects denoting system services. @xref{Services}.
@cindex essential services
@@ -11545,7 +11557,7 @@ more.
This is the default value of the @code{services} field of
@code{operating-system} declarations. Usually, when customizing a
-system, you will want to append services to @var{%base-services}, like
+system, you will want to append services to @code{%base-services}, like
this:
@example
@@ -12042,7 +12054,7 @@ Whether to authorize the substitute keys listed in
(@pxref{Substitutes}).
@vindex %default-authorized-guix-keys
-@item @code{authorized-keys} (default: @var{%default-authorized-guix-keys})
+@item @code{authorized-keys} (default: @code{%default-authorized-guix-keys})
The list of authorized key files for archive imports, as a list of
string-valued gexps (@pxref{Invoking guix archive}). By default, it
contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}).
@@ -12050,7 +12062,7 @@ contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}).
@item @code{use-substitutes?} (default: @code{#t})
Whether to use substitutes.
-@item @code{substitute-urls} (default: @var{%default-substitute-urls})
+@item @code{substitute-urls} (default: @code{%default-substitute-urls})
The list of URLs where to look for substitutes by default.
@item @code{max-silent-time} (default: @code{0})
@@ -12211,7 +12223,7 @@ allows users to use the mouse in the console, notably to select, copy,
and paste text.
The value for services of this type must be a @code{gpm-configuration}
-(see below). This service is not part of @var{%base-services}.
+(see below). This service is not part of @code{%base-services}.
@end defvr
@deftp {Data Type} gpm-configuration
@@ -12233,7 +12245,7 @@ The GPM package to use.
@anchor{guix-publish-service-type}
@deffn {Scheme Variable} guix-publish-service-type
This is the service type for @command{guix publish} (@pxref{Invoking
-guix publish}). Its value must be a @code{guix-configuration}
+guix publish}). Its value must be a @code{guix-publish-configuration}
object, as described below.
This assumes that @file{/etc/guix} already contains a signing key pair as
@@ -12656,6 +12668,44 @@ The ModemManager package to use.
@end table
@end deftp
+@cindex USB_ModeSwitch
+@cindex Modeswitching
+
+@defvr {Scheme Variable} usb-modeswitch-service-type
+This is the service type for the
+@uref{http://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The
+value for this service type is a @code{usb-modeswitch-configuration} record.
+
+When plugged in, some USB modems (and other USB devices) initially present
+themselves as a read-only storage medium and not as a modem. They need to be
+@dfn{modeswitched} before they are usable. The USB_ModeSwitch service type
+installs udev rules to automatically modeswitch these devices when they are
+plugged in.
+
+This service is part of @code{%desktop-services} (@pxref{Desktop
+Services}).
+@end defvr
+
+@deftp {Data Type} usb-modeswitch-configuration
+Data type representing the configuration of USB_ModeSwitch.
+
+@table @asis
+@item @code{usb-modeswitch} (default: @code{usb-modeswitch})
+The USB_ModeSwitch package providing the binaries for modeswitching.
+
+@item @code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})
+The package providing the device data and udev rules file used by
+USB_ModeSwitch.
+
+@item @code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf")})
+Which config file to use for the USB_ModeSwitch dispatcher. By default the
+config file shipped with USB_ModeSwitch is used which disables logging to
+@file{/var/log} among other default settings. If set to @code{#f}, no config
+file is used.
+
+@end table
+@end deftp
+
@cindex NetworkManager
@defvr {Scheme Variable} network-manager-service-type
@@ -14682,7 +14732,7 @@ services that users typically expect on a machine with a graphical
environment and networking:
@defvr {Scheme Variable} %desktop-services
-This is a list of services that builds upon @var{%base-services} and
+This is a list of services that builds upon @code{%base-services} and
adds or adjusts services for a typical ``desktop'' setup.
In particular, it adds a graphical login manager (@pxref{X Window,
@@ -14697,7 +14747,7 @@ name service switch service configured to be able to use @code{nss-mdns}
(@pxref{Name Service Switch, mDNS}).
@end defvr
-The @var{%desktop-services} variable can be used as the @code{services}
+The @code{%desktop-services} variable can be used as the @code{services}
field of an @code{operating-system} declaration (@pxref{operating-system
Reference, @code{services}}).
@@ -16706,7 +16756,7 @@ Data type representing the configuration of opensmtpd.
@item @code{package} (default: @var{opensmtpd})
Package object of the OpenSMTPD SMTP server.
-@item @code{config-file} (default: @var{%default-opensmtpd-file})
+@item @code{config-file} (default: @code{%default-opensmtpd-file})
File-like object of the OpenSMTPD configuration file to use. By default
it listens on the loopback network interface, and allows for mail from
users and daemons on the local machine, as well as permitting email to
@@ -19821,7 +19871,7 @@ A simple setup for cat-avatar-generator can look like this:
@subsubheading Hpcguix-web
@cindex hpcguix-web
-The @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/}
+The @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web}
program is a customizable web interface to browse Guix packages,
initially designed for users of high-performance computing (HPC)
clusters.
@@ -24313,7 +24363,7 @@ to the @code{packages} field of the @code{operating-system} declaration
@code{nss-certs}, which is a set of CA certificates provided as part of
Mozilla's Network Security Services.
-Note that it is @emph{not} part of @var{%base-packages}, so you need to
+Note that it is @emph{not} part of @code{%base-packages}, so you need to
explicitly add it. The @file{/etc/ssl/certs} directory, which is where
most applications and libraries look for certificates by default, points
to the certificates installed globally.
@@ -24407,7 +24457,7 @@ want is to have @code{.local} host lookup working.
Note that, in this case, in addition to setting the
@code{name-service-switch} of the @code{operating-system} declaration,
you also need to use @code{avahi-service-type} (@pxref{Networking Services,
-@code{avahi-service-type}}), or @var{%desktop-services}, which includes it
+@code{avahi-service-type}}), or @code{%desktop-services}, which includes it
(@pxref{Desktop Services}). Doing this makes @code{nss-mdns} accessible
to the name service cache daemon (@pxref{Base Services,
@code{nscd-service}}).
diff --git a/gnu/local.mk b/gnu/local.mk
index 49cb429ba9..649d901bf3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -15,7 +15,7 @@
# Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-# Copyright © 2017, 2018 Gábor Boskovits <boskovits@gmail.com>
+# Copyright © 2017, 2018, 2019 Gábor Boskovits <boskovits@gmail.com>
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
# Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
@@ -121,6 +121,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cpp.scm \
%D%/packages/cppi.scm \
%D%/packages/cran.scm \
+ %D%/packages/crates-io.scm \
%D%/packages/cross-base.scm \
%D%/packages/crypto.scm \
%D%/packages/cryptsetup.scm \
@@ -261,6 +262,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/jrnl.scm \
%D%/packages/jose.scm \
%D%/packages/julia.scm \
+ %D%/packages/kawa.scm \
%D%/packages/kde.scm \
%D%/packages/kde-frameworks.scm \
%D%/packages/kde-plasma.scm \
@@ -468,6 +470,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/uml.scm \
%D%/packages/unrtf.scm \
%D%/packages/upnp.scm \
+ %D%/packages/usb-modeswitch.scm \
%D%/packages/uucp.scm \
%D%/packages/valgrind.scm \
%D%/packages/version-control.scm \
@@ -688,6 +691,7 @@ dist_patch_DATA = \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
%D%/packages/patches/beets-python-3.7-fix.patch \
%D%/packages/patches/beignet-correct-file-names.patch \
+ %D%/packages/patches/benchmark-unbundle-googletest.patch \
%D%/packages/patches/biber-fix-encoding-write.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
@@ -736,6 +740,7 @@ dist_patch_DATA = \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-2017-12836.patch \
%D%/packages/patches/dbus-helper-search-path.patch \
+ %D%/packages/patches/dbus-CVE-2019-12749.patch \
%D%/packages/patches/dealii-mpi-deprecations.patch \
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
@@ -749,6 +754,8 @@ dist_patch_DATA = \
%D%/packages/patches/docker-use-fewer-modprobes.patch \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/doxygen-test.patch \
+ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
+ %D%/packages/patches/dstat-skip-devices-without-io.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-path-length.patch \
@@ -759,7 +766,7 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
- %D%/packages/patches/emacs-realgud-fix-configure-ac.patch \
+ %D%/packages/patches/emacs-unpackaged-req.patch \
%D%/packages/patches/emacs-undohist-ignored.patch \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/emacs-zones-called-interactively.patch \
@@ -929,7 +936,6 @@ dist_patch_DATA = \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/idris-test-no-node.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
- %D%/packages/patches/inkscape-poppler-compat3.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
@@ -1126,6 +1132,7 @@ dist_patch_DATA = \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \
%D%/packages/patches/openssl-CVE-2019-1559.patch \
+ %D%/packages/patches/open-zwave-hidapi.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/osip-CVE-2017-7853.patch \
%D%/packages/patches/ots-no-include-missing-file.patch \
@@ -1228,6 +1235,7 @@ dist_patch_DATA = \
%D%/packages/patches/randomjungle-disable-static-build.patch \
%D%/packages/patches/rapicorn-isnan.patch \
%D%/packages/patches/raptor2-heap-overflow.patch \
+ %D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
%D%/packages/patches/ratpoison-shell.patch \
%D%/packages/patches/rcs-5.9.4-noreturn.patch \
%D%/packages/patches/rct-add-missing-headers.patch \
@@ -1235,6 +1243,7 @@ dist_patch_DATA = \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/red-eclipse-remove-gamma-name-hack.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
+ %D%/packages/patches/ri-li-modernize_cpp.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
@@ -1274,6 +1283,7 @@ dist_patch_DATA = \
%D%/packages/patches/sssd-curl-compat.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/superlu-dist-awpm-grid.patch \
%D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
@@ -1282,7 +1292,10 @@ dist_patch_DATA = \
%D%/packages/patches/swig-guile-gc.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
- %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \
+ %D%/packages/patches/symmetrica-bruch.patch \
+ %D%/packages/patches/symmetrica-int32.patch \
+ %D%/packages/patches/symmetrica-return_values.patch \
+ %D%/packages/patches/symmetrica-sort_sum_rename.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \
%D%/packages/patches/t1lib-CVE-2011-0764.patch \
%D%/packages/patches/t1lib-CVE-2011-1552+.patch \
@@ -1332,6 +1345,7 @@ dist_patch_DATA = \
%D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.patch \
%D%/packages/patches/upx-fix-CVE-2017-15056.patch \
+ %D%/packages/patches/usb-modeswitch-accept-config-arg.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index d85bd6e324..c6ed4c6d4a 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -438,7 +438,7 @@ hostname.")
(define-public shadow
(package
(name "shadow")
- (version "4.6")
+ (version "4.7")
(source (origin
(method url-fetch)
(uri (string-append
@@ -446,7 +446,7 @@ hostname.")
"download/" version "/shadow-" version ".tar.xz"))
(sha256
(base32
- "10smy01km2bqjjvsd2jz17zvrxbzj89qczyb1amk38j28bcci609"))))
+ "0v71474rx38lg9kidrm4xbk35sg3icv3s5pk2b42icp3lyj9dqg5"))))
(build-system gnu-build-system)
(arguments
`(;; Assume System V `setpgrp (void)', which is the default on GNU
@@ -482,7 +482,7 @@ hostname.")
"-linux")
`(("linux-pam" ,linux-pam))
'()))
- (home-page "http://pkg-shadow.alioth.debian.org/")
+ (home-page "https://github.com/shadow-maint/shadow")
(synopsis "Authentication-related tools such as passwd, su, and login")
(description
"Shadow provides a number of authentication-related tools, including:
@@ -1734,13 +1734,13 @@ of supported upstream metrics systems simultaneously.")
(define-public ansible
(package
(name "ansible")
- (version "2.8.0")
+ (version "2.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ansible" version))
(sha256
- (base32 "1bpk5r5x6vdgn839n74yv2chd2ja10yfrhav0fzwa38mi5yxsd3j"))))
+ (base32 "0ia4x17ywym3r1m96ar4h0wc2xlylhbjp6x4wzwkh4p2i0x1vmg1"))))
(build-system python-build-system)
(native-inputs
`(("python-bcrypt" ,python-bcrypt)
@@ -2133,16 +2133,32 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
(commit (string-append "v" version))))
(file-name (git-file-name "dstat" version))
(sha256
- (base32 "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"))))
+ (base32 "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"))
+ (patches (search-patches "dstat-fix-crash-when-specifying-delay.patch"
+ "dstat-skip-devices-without-io.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no make check
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list (string-append "DESTDIR=" out)
"prefix=/"))
- ;; No configure script.
- #:phases (modify-phases %standard-phases (delete 'configure))))
- (inputs `(("python-2" ,python-2)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-python3-DeprecationWarning
+ (lambda _
+ (substitute* "dstat"
+ (("collections") "collections.abc"))
+ #t))
+ (delete 'configure) ; no configure script
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/dstat")
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+ #t))))))
+ (inputs
+ `(("python" ,python-wrapper)
+ ("python-six" ,python-six)))
(synopsis "Versatile resource statistics tool")
(description "Dstat is a versatile replacement for @command{vmstat},
@command{iostat}, @command{netstat}, and @command{ifstat}. Dstat overcomes
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 69163a43d9..561347ad98 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -43,6 +43,7 @@
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
@@ -92,6 +93,27 @@ multiplication routines such as Toom–Cook and the FFT.")
(license license:lgpl3+)
(home-page "http://mpfrcx.multiprecision.org/")))
+(define-public gf2x
+ (package
+ (name "gf2x")
+ (version "1.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://gforge.inria.fr/frs/download.php/file/36934/gf2x-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0d6vh1mxskvv3bxl6byp7gxxw3zzpkldrxnyajhnl05m0gx7yhk1"))))
+ (build-system gnu-build-system)
+ (synopsis "Arithmetic of polynomials over binary finite fields")
+ (description
+ "The gf2x library provides arithmetic of polynomials over finite fields
+of characteristic 2. It implements the multiplication, squaring and
+greatest common divisor operations.")
+ (license license:gpl3+)
+ (home-page "https://gforge.inria.fr/projects/gf2x/")))
+
(define-public cm
(package
(name "cm")
@@ -122,24 +144,82 @@ line applications.")
(define-public fplll
(package
- (name "fplll")
- (version "4.0.4")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://perso.ens-lyon.fr/damien.stehle/fplll/libfplll-"
- version ".tar.gz"))
- (sha256 (base32
- "1cbiby7ykis4z84swclpysrljmqhfcllpkcbll1m08rzskgb1a6b"))))
- (build-system gnu-build-system)
- (inputs `(("gmp" ,gmp)
- ("mpfr" ,mpfr)))
- (synopsis "Library for LLL-reduction of euclidean lattices")
- (description
- "fplll LLL-reduces euclidean lattices. Since version 3, it can also
-solve the shortest vector problem.")
- (license license:lgpl2.1+)
- (home-page "http://perso.ens-lyon.fr/damien.stehle/fplll/")))
+ (name "fplll")
+ (version "5.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fplll/fplll.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "015qmrd7nfaysbv1hbwiprz9g6hnww1y1z1xw8f43ysb7k1b5nbg"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("gmp" ,gmp)
+ ("mpfr" ,mpfr)))
+ (home-page "https://github.com/fplll/fplll")
+ (synopsis "Library for LLL-reduction of euclidean lattices")
+ (description
+ "fplll contains implementations of several lattice algorithms.
+The implementation relies on floating-point orthogonalization, and LLL
+is central to the code, hence the name.
+
+It includes implementations of floating-point LLL reduction
+algorithms, offering different speed/guarantees ratios. It contains
+a @emph{wrapper} choosing the estimated best sequence of variants in
+order to provide a guaranteed output as fast as possible. In the case
+of the wrapper, the succession of variants is oblivious to the user.
+
+It includes an implementation of the BKZ reduction algorithm,
+including the BKZ-2.0 improvements (extreme enumeration
+pruning, pre-processing of blocks, early termination). Additionally,
+Slide reduction and self dual BKZ are supported.
+
+It also includes a floating-point implementation of the
+Kannan-Fincke-Pohst algorithm that finds a shortest non-zero lattice
+vector. For the same task, the GaussSieve algorithm is also available
+in fplll. Finally, it contains a variant of the enumeration algorithm
+that computes a lattice vector closest to a given vector belonging to
+the real span of the lattice.")
+ (license license:lgpl2.1+)))
+
+(define-public python-fpylll
+ (package
+ (name "python-fpylll")
+ (version "0.4.1")
+ (source
+ (origin
+ ;; Pypi contains and older release, so we use a tagged release from
+ ;; Github instead.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fplll/fpylll.git")
+ (commit (string-append version "dev"))))
+ (sha256
+ (base32
+ "01x2sqdv0sbjj4g4waj0hj4rcn4bq7h17442xaqwbznym9azmn9w"))))
+ (build-system python-build-system)
+ (inputs
+ `(("fplll" ,fplll)
+ ("gmp" ,gmp)
+ ("mpfr" ,mpfr)
+ ("pari-gp" ,pari-gp)))
+ (propagated-inputs
+ `(("cysignals" ,python-cysignals)
+ ("cython" ,python-cython)
+ ("flake8" ,python-flake8)
+ ("numpy" ,python-numpy)
+ ("pytest" ,python-pytest)))
+ (home-page "https://github.com/fplll/fpylll")
+ (synopsis "Python interface for fplll")
+ (description "fpylll is a Python wrapper for fplll.")
+ (license license:gpl2+)))
(define-public pari-gp
(package
@@ -928,7 +1008,7 @@ xtensor provides:
(define-public gap
(package
(name "gap")
- (version "4.10.0")
+ (version "4.10.1")
(source
(origin
(method url-fetch)
@@ -939,7 +1019,7 @@ xtensor provides:
".tar.bz2"))
(sha256
(base32
- "1dmb8v4p7j1nnf7sx8sg54b49yln36bi9acwp7w1d3a1nxj17ird"))
+ "136s0zvhcw41fshj5zgsrjcy2kd58cdh2m3ddp5rdizi4rx54f10"))
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
(snippet
'(begin
@@ -967,20 +1047,20 @@ xtensor provides:
;; Optional packages, searched for at start,
;; and their depedencies.
"alnuth-3.1.0"
- "AutoDoc-2018.09.20"
"autpgrp-1.10"
"crisp-1.4.4" ; bsd-2
- ; "ctbllib" ; no explicit license, drop
+ "ctbllib" ; gpl3+ according to doc/chap0.txt
"FactInt-1.6.2"
"fga"
"irredsol-1.4" ; bsd-2
- "laguna-3.9.0"
+ "laguna-3.9.2"
"polenta-1.3.8"
"polycyclic-2.14"
"radiroot-2.8"
"resclasses-4.7.1"
"sophus-1.24"
- ; "tomlib-1.2.7" ; no explicit license, drop
+ "tomlib-1.2.7" ; gpl2+, clarified in the git repository
+ ; and the next release
"utils-0.59"))))
#t))))
(build-system gnu-build-system)
@@ -988,7 +1068,11 @@ xtensor provides:
`(("gmp" ,gmp)
("zlib" ,zlib)))
(arguments
- `(#:phases
+ `(#:modules ((ice-9 ftw)
+ (srfi srfi-26)
+ (guix build gnu-build-system)
+ (guix build utils))
+ #:phases
(modify-phases %standard-phases
(add-after 'build 'build-packages
;; Compile all packages that have not been deleted by the
@@ -1004,19 +1088,16 @@ xtensor provides:
(with-directory-excursion "doc"
(invoke "./make_doc"))
#t))
- (replace 'check
- (lambda _
- ;; "make check" is expected to appear in gap-4.10.1
- (invoke "./gap" "tst/testinstall.g")
- #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
+ (lib (string-append out "/lib"))
(prog (string-append bin "/gap"))
(prog-real (string-append bin "/.gap-real"))
(share (string-append out "/share/gap"))
- (include (string-append out "/include/gap")))
+ (include (string-append out "/include/gap"))
+ (include-hpc (string-append include "/hpc")))
;; Install only the gap binary; the gac compiler is left
;; for maybe later. "Wrap" it in a shell script that calls
;; the binary with the correct parameter.
@@ -1030,12 +1111,37 @@ xtensor provides:
prog-real
share)))
(chmod prog #o755)
- ;; Install the headers and the library, which are needed by
- ;; Sage. The Makefile targets are available in gap-4.10.0,
- ;; but planned to be removed in gap-4.10.1.
- (invoke "make" "install-headers")
- (invoke "make" "install-libgap")
+ ;; Install the headers, which are needed by Sage. The
+ ;; Makefile target "install-headers" was available in
+ ;; gap-4.10.0, but has been commented out in gap-4.10.1.
+ (mkdir-p include-hpc)
(install-file "gen/config.h" include)
+ (let ((file-name-predicate-without-stat
+ (lambda (regex)
+ (cut (file-name-predicate regex) <> #f))))
+ (with-directory-excursion "src"
+ (for-each
+ (cut install-file <> include)
+ (scandir "."
+ (file-name-predicate-without-stat ".*\\.h$"))))
+ (with-directory-excursion "src/hpc"
+ (for-each
+ (cut install-file <> include-hpc)
+ (scandir "."
+ (file-name-predicate-without-stat ".*\\.h$")))))
+ ;; Install the library, which is needed by Sage. The
+ ;; Makefile target "install-libgap" was available in
+ ;; gap-4.10.0, but has been commented out in gap-4.10.1.
+ ;; Compared to the Makefile, which used libtool, the
+ ;; following approach of copying files and making symlinks
+ ;; is rather pedestrian. There is hope that some later
+ ;; version of gap reinstates and completes the install
+ ;; targets.
+ (invoke "make" "libgap.la")
+ (install-file "libgap.la" lib)
+ (install-file ".libs/libgap.so.0.0.0" lib)
+ (symlink "libgap.so.0.0.0" (string-append lib "/libgap.so"))
+ (symlink "libgap.so.0.0.0" (string-append lib "/libgap.so.0"))
;; Install a certain number of files and directories to
;; SHARE, where the wrapped shell script expects them.
;; Remove information on the build directory from sysinfo.gap.
@@ -1068,3 +1174,411 @@ objects.")
;; means that the gpl2+ licence of GAP itself applies, but to be on the
;; safe side, we drop them for now.
(license license:gpl2+)))
+
+(define-public givaro
+ (package
+ (name "givaro")
+ (version "4.1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/linbox-team/givaro")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11wz57q6ijsvfs5r82masxgr319as92syi78lnl9lgdblpc6xigk"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (propagated-inputs
+ `(("gmp" ,gmp))) ; gmp++.h includes gmpxx.h
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'setenv
+ ;; Prevent the autogen.sh script to carry out the configure
+ ;; script, which has not yet been patched to replace /bin/sh.
+ (lambda _
+ (setenv "NOCONFIGURE" "yes")
+ #t)))))
+ (synopsis "Algebraic computations with exact rings and fields")
+ (description
+ "Givaro is a C++ library implementing the basic arithmetic of various
+algebraic objects: prime fields, extension fields, finite fields, finite
+rings, polynomials, algebraic numbers, arbitrary precision integers and
+rationals (C++ wrappers over gmp), fixed precision integers. It also
+provides data-structures and templated classes for the manipulation of
+compound objects, such as vectors, matrices and univariate polynomials.")
+ (license license:cecill-b)
+ (home-page "https://github.com/linbox-team/givaro")))
+
+(define-public fflas-ffpack
+ (package
+ (name "fflas-ffpack")
+ (version "2.4.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/linbox-team/fflas-ffpack")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ynbjd72qrwp0b4kpn0p5d7gddpvj8dlb5fwdxajr5pvkvi3if74"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("openblas" ,openblas)))
+ (propagated-inputs
+ `(("givaro" ,givaro))) ; required according to the .pc file
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-blas-libs="
+ (assoc-ref %build-inputs "openblas")
+ "/lib/libopenblas.so"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'setenv
+ ;; Prevent the autogen.sh script to carry out the configure
+ ;; script, which has not yet been patched to replace /bin/sh.
+ (lambda _
+ (setenv "NOCONFIGURE" "yes")
+ #t)))))
+ (synopsis "C++ library for linear algebra over finite fields")
+ (description
+ "FFLAS-FFPACK is a C++ template library for basic linear algebra
+operations over a finite field.
+FFLAS (Finite Field Linear Algebra Subprograms) provides the implementation
+of a subset of routines of the numerical BLAS; it also supports sparse
+matrix-vector products.
+FFPACK (Finite Field Linear Algebra Package) is inspired by the LAPACK
+library to provide functionalities of higher level, using the kernel
+of a BLAS. Additionally, it provides routines specific to exact linear
+algebra, such as the row echelon form.")
+ (license license:lgpl2.1+)
+ (home-page "https://linbox-team.github.io/fflas-ffpack/")))
+
+(define-public linbox
+ (package
+ (name "linbox")
+ (version "1.6.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/linbox-team/linbox")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "10j6dspbsq7d2l4q3y0c1l1xwmaqqba2fxg59q5bhgk9h5d7q571"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("fflas-ffpack" ,fflas-ffpack)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'setenv
+ ;; Prevent the autogen.sh script to carry out the configure
+ ;; script, which has not yet been patched to replace /bin/sh.
+ (lambda _
+ (setenv "NOCONFIGURE" "yes")
+ #t)))))
+ (synopsis "C++ library for linear algebra over exact rings")
+ (description
+ "LinBox is a C++ template library for exact linear algebra computation
+with dense, sparse, and structured matrices over the integers and over
+finite fields.")
+ (license license:lgpl2.1+)
+ (home-page "https://linbox-team.github.io/linbox/")))
+
+(define-public m4ri
+ (package
+ (name "m4ri")
+ (version "20140914")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://bitbucket.org/malb/m4ri")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xfg6pffbn8r1s0y7bn9b8i55l00d41dkmhrpf7pwk53qa3achd3"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libpng" ,libpng)))
+ (synopsis "Arithmetic of dense matrices over F_2")
+ (description "M4RI is a library for fast arithmetic with dense matrices
+over F2. The name M4RI comes from the first implemented algorithm: The
+Method of the Four Russians inversion algorithm published by Gregory Bard.
+This algorithm in turn is named after the Method of the Four Russians
+multiplication algorithm.")
+ (license license:gpl2+)
+ (home-page "https://bitbucket.org/malb/m4ri/")))
+
+(define-public ratpoints
+ (package
+ (name "ratpoints")
+ (version "2.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.mathe2.uni-bayreuth.de/stoll/programs/"
+ "ratpoints-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4"))
+ (patches
+ ;; Taken from
+ ;; <https://git.sagemath.org/sage.git/plain/build/pkgs/ratpoints/patches/>
+ (search-patches "ratpoints-sturm_and_rp_private.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:make-flags
+ (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-before 'install 'create-install-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p out)
+ (with-directory-excursion out
+ (for-each (lambda (d) (mkdir-p d))
+ '("bin" "include" "lib"))))
+ #t)))))
+ (inputs
+ `(("gmp" ,gmp)))
+ (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/")
+ (synopsis "Find rational points on hyperelliptic curves")
+ (description "Ratpoints tries to find all rational points within
+a given height bound on a hyperelliptic curve in a very efficient way,
+by using an optimized quadratic sieve algorithm.")
+ (license license:gpl2+)))
+
+(define-public symmetrica
+ (package
+ (name "symmetrica")
+ (version "2.0")
+ (source (origin
+ (method url-fetch/tarbomb)
+ (uri (let ((v (string-join (string-split version #\.) "_")))
+ (string-append "http://www.algorithm.uni-bayreuth.de/"
+ "en/research/SYMMETRICA/"
+ "SYM" v "_tar.gz")))
+ (sha256
+ (base32
+ "1qhfrbd5ybb0sinl9pad64rscr08qvlfzrzmi4p4hk61xn6phlmz"))
+ ;; Taken from <https://git.sagemath.org/sage.git/plain/build/pkgs/symmetrica/patches/>
+ (patches (search-patches "symmetrica-bruch.patch"
+ "symmetrica-int32.patch"
+ "symmetrica-return_values.patch"
+ "symmetrica-sort_sum_rename.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no test
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-makefile
+ (lambda _
+ (substitute* "makefile"
+ (("cc -c") "gcc -c"))
+ #t))
+ (add-after 'fix-makefile 'turn-off-banner
+ (lambda _
+ (substitute* "de.c"
+ (("(INT no_banner = )FALSE" _ pre) (string-append pre "TRUE")))
+ #t))
+ (delete 'configure) ;no configure script
+ (replace 'install ;no install target
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (inc (string-append out "/include/symmetrica"))
+ (doc (string-append out "/share/doc/symmetrica-" ,version))
+ (static "libsymmetrica.a"))
+ ;; Build static library.
+ (apply invoke "ar" "crs" static (find-files "." "\\.o$"))
+ (invoke "ranlib" static)
+ ;; Install static library and headers.
+ (for-each (lambda (f) (install-file f inc))
+ (find-files "." "\\.h$"))
+ (install-file "libsymmetrica.a" lib)
+ ;; Install documentation.
+ (for-each (lambda (f) (install-file f doc))
+ (find-files "." "\\.doc$"))
+ #t))))))
+ (home-page "http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/")
+ (synopsis "Combinatoric C Library")
+ (description "Symmetrica is a library for combinatorics. It has support
+for the representation theory of the symmetric group and related groups,
+combinatorics of tableaux, symmetric functions and polynomials, Schubert
+polynomials, and the representation theory of Hecke algebras of type A_n.")
+ (license license:public-domain)))
+
+(define-public m4rie
+ (package
+ (name "m4rie")
+ (version "20150908")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://bitbucket.org/malb/m4rie")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0r8lv46qx5mkz5kp3ay2jnsp0mbhlqr5z2z220wdk73wdshcznss"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("m4ri" ,m4ri)))
+ (synopsis "Arithmetic of dense matrices over F_{2^e}")
+ (description "M4RI is a library for fast arithmetic with dense matrices
+over finite fields of characteristic 2. So it extends the functionality
+of M4RI from F_2 to F_{2^e}.")
+ (license license:gpl2+)
+ (home-page "https://bitbucket.org/malb/m4rie/")))
+
+(define-public eclib
+ (package
+ (name "eclib")
+ (version "20190226")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JohnCremona/eclib/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1910np1xzyjzszay24xn4b81qhpsvhp5aix9vdpknplni2mq8kwb"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("gmp" ,gmp)
+ ("ntl" ,ntl)
+ ("pari-gp" ,pari-gp)))
+ (synopsis "Ranks of elliptic curves and modular symbols")
+ (description "The eclib package includes mwrank (for 2-descent on
+elliptic curves over Q) and modular symbol code; it has been written by
+John Cremona to compute his elliptic curve database.")
+ (license license:gpl2+)
+ (home-page (string-append "http://homepages.warwick.ac.uk/staff/"
+ "J.E.Cremona/mwrank/index.html"))))
+
+(define-public lrcalc
+ (package
+ (name "lrcalc")
+ (version "1.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://bitbucket.org/asbuch/lrcalc")
+ (commit (string-append "lrcalc-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-permission
+ (lambda _
+ (chmod "lrcalc.maple.src" #o644)
+ #t)))))
+ (synopsis "Littlewood-Richardson calculator in algebraic combinatorics")
+ (description "The Littlewood-Richardson Calculator (lrcalc) is a
+program designed to compute Littlewood-Richardson coefficients. It computes
+single Littlewood-Richardson coefficients, products of Schur functions, or
+skew Schur functions. In addition it computes products in the small quantum
+cohomology ring of a Grassmann variety. The software package also includes
+a program that performs fast computation of the more general multiplicative
+structure constants of Schubert polynomials.")
+ (license license:gpl2+)
+ (home-page "http://sites.math.rutgers.edu/~asbuch/lrcalc/")))
+
+(define-public iml
+ (package
+ (name "iml")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.cs.uwaterloo.ca/~astorjoh/iml-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0akwhhz9b40bz6lrfxpamp7r7wkk48p455qbn04mfnl9a1l6db8x"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("gmp", gmp)
+ ("cblas" ,openblas))) ; or any other BLAS library; the documentation
+ ; mentions ATLAS in particular
+ (arguments
+ `(#:configure-flags
+ (list
+ (string-append "--with-gmp-include="
+ (assoc-ref %build-inputs "gmp") "/include")
+ (string-append "--with-gmp-lib="
+ (assoc-ref %build-inputs "gmp") "/lib")
+ "--with-cblas=-lopenblas"
+ (string-append "--with-cblas-include="
+ (assoc-ref %build-inputs "cblas") "/include")
+ (string-append "--with-cblas-lib="
+ (assoc-ref %build-inputs "cblas") "/lib"))))
+ (home-page "https://cs.uwaterloo.ca/~astorjoh/iml.html")
+ (synopsis
+ "Solver for systems of linear equations over the integers")
+ (description
+ "IML is a C library implementing algorithms for computing exact
+solutions to dense systems of linear equations over the integers.
+Currently, IML provides the following functionality:
+
+@itemize
+@item Nonsingular rational system solving:
+compute the unique rational solution X to the system AX=B, where A and B
+are integer matrices, A nonsingular.
+@item Compute the right nullspace or kernel of an integer matrix.
+@item Certified linear system solving:
+compute a minimal denominator solution x to a system Ax=b, where b is an
+integer vector and A is an integer matrix with arbitrary shape and
+rank profile.
+@end itemize
+
+In addition, IML provides some low level routines for a variety of mod p
+matrix operations: computing the row-echelon form, determinant, rank
+profile, and inverse of a mod p matrix. These mod p routines are not
+general purpose; they require that p satisfy some preconditions based on
+the dimension of the input matrix (usually p should be prime and should be
+no more than about 20 bits long).")
+ (license license:bsd-3)))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 9defc59b93..b8dbc2f00a 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2428,17 +2428,17 @@ the Turtle syntax.")
(define-public suil
(package
(name "suil")
- (version "0.10.2")
+ (version "0.10.4")
(source (origin
- (method url-fetch)
- (uri (string-append "https://download.drobilla.net/suil-"
- version ".tar.bz2"))
- (sha256
- (base32
- "00d43m0nai63ajb7rkm9v084jcih206y17ib3160zcvzc885ji4z"))))
+ (method url-fetch)
+ (uri (string-append "https://download.drobilla.net/suil-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0ay7hl6nr6ip1nn9k2m8ri3b52b6sx9mhixmcy4fy3kr2a88ksd1"))))
(build-system waf-build-system)
(arguments
- `(#:tests? #f ; no check target
+ `(#:tests? #f ; no check target
#:configure-flags
'("CXXFLAGS=-std=gnu++11")))
(inputs
@@ -3568,7 +3568,7 @@ representations.")
(arguments
`(#:configure-flags
(list (string-append "PREFIX=" %output)
- (string-append "FONT_DIR=" %output "/usr/share/consolefonts"))
+ (string-append "FONT_DIR=" %output "/share/consolefonts"))
#:make-flags
(let ((lib (string-append %output "/lib")))
(list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 970df735aa..c513370e74 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,7 +26,10 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
@@ -193,3 +197,27 @@ extension to @code{time} which runs a command multiple times and prints the
timing means, standard deviations, mins, medians, and maxes having done so.
This can give a much better understanding of the command's performance.")
(license license:expat)))
+
+(define-public benchmark
+ (package
+ (name "benchmark")
+ (version "1.5.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/benchmark.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0r9dbg4cbk47gwmayys31a83m3y67k0kh1f6pl8i869rbd609ndh"))
+ (patches (search-patches "benchmark-unbundle-googletest.patch"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("googletest" ,googletest)))
+ (home-page "https://github.com/google/benchmark")
+ (synopsis "Microbenchmark support library")
+ (description
+ "Benchmark is a library to benchmark code snippets,
+similar to unit tests.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index ff159638b3..a1f7b2d2a8 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -590,6 +590,35 @@ data. It is derived from the UCSC hg19 genome and based on the \"knownGene\"
track. The database is exposed as a @code{TxDb} object.")
(license license:artistic2.0)))
+(define-public r-txdb-hsapiens-ucsc-hg38-knowngene
+ (package
+ (name "r-txdb-hsapiens-ucsc-hg38-knowngene")
+ (version "3.4.6")
+ (source (origin
+ (method url-fetch)
+ ;; We cannot use bioconductor-uri here because this tarball is
+ ;; located under "data/annotation/" instead of "bioc/".
+ (uri (string-append "https://bioconductor.org/packages/"
+ "release/data/annotation/src/contrib"
+ "/TxDb.Hsapiens.UCSC.hg38.knownGene_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "12j7rri9r129v9w1yiqadg952dx462dh092sxif3r5kk8l7bxkn9"))))
+ (properties
+ `((upstream-name . "TxDb.Hsapiens.UCSC.hg38.knownGene")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-genomicfeatures" ,r-genomicfeatures)))
+ (home-page
+ "https://bioconductor.org/packages/TxDb.Hsapiens.UCSC.hg38.knownGene/")
+ (synopsis "Annotation package for human genome in TxDb format")
+ (description
+ "This package provides an annotation database of Homo sapiens genome
+data. It is derived from the UCSC hg38 genome and based on the \"knownGene\"
+track. The database is exposed as a @code{TxDb} object.")
+ (license license:artistic2.0)))
+
(define-public r-txdb-mmusculus-ucsc-mm9-knowngene
(package
(name "r-txdb-mmusculus-ucsc-mm9-knowngene")
@@ -4438,14 +4467,14 @@ interpretation.")
(define-public r-rhisat2
(package
(name "r-rhisat2")
- (version "1.0.2")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rhisat2" version))
(sha256
(base32
- "1y3zqvk1vbcb10r1myh6f5yzjvf7bhwhpiq78bs1k6spli4bzj0q"))))
+ "02ig9qci18n93vmya7q6bijrqsbfh69fyg8iqysf89ym2vd3x3c5"))))
(properties `((upstream-name . "Rhisat2")))
(build-system r-build-system)
(native-inputs
@@ -4677,3 +4706,42 @@ Forest, and SVM binary classifiers. The signatures and the corresponding
'restricted' models are returned, enabling future predictions on new
datasets.")
(license license:cecill)))
+
+(define-public r-annotatr
+ (package
+ (name "r-annotatr")
+ (version "1.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "annotatr" version))
+ (sha256
+ (base32
+ "1zlhy6swfgqjhhcqn8c6akxd4c4z8p85swfh095imji7hxnlhh1f"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-annotationdbi" ,r-annotationdbi)
+ ("r-annotationhub" ,r-annotationhub)
+ ("r-dplyr" ,r-dplyr)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicfeatures" ,r-genomicfeatures)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-iranges" ,r-iranges)
+ ("r-readr" ,r-readr)
+ ("r-regioner" ,r-regioner)
+ ("r-reshape2" ,r-reshape2)
+ ("r-rtracklayer" ,r-rtracklayer)
+ ("r-s4vectors" ,r-s4vectors)))
+ (home-page "https://bioconductor.org/packages/annotatr/")
+ (synopsis "Annotation of genomic regions to genomic annotations")
+ (description
+ "Given a set of genomic sites/regions (e.g. ChIP-seq peaks, CpGs,
+differentially methylated CpGs or regions, SNPs, etc.) it is often of interest
+to investigate the intersecting genomic annotations. Such annotations include
+those relating to gene models (promoters, 5'UTRs, exons, introns, and 3'UTRs),
+CpGs (CpG islands, CpG shores, CpG shelves), or regulatory sequences such as
+enhancers. The annotatr package provides an easy way to summarize and
+visualize the intersection of genomic sites/regions with genomic
+annotations.")
+ (license license:gpl3)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index bb15672d51..f1a73bca7e 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5516,7 +5516,7 @@ Roche 454, Ion Torrent and Pacific BioSciences SMRT.")
(define-public ngs-sdk
(package
(name "ngs-sdk")
- (version "2.9.3")
+ (version "2.9.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5525,7 +5525,7 @@ Roche 454, Ion Torrent and Pacific BioSciences SMRT.")
(file-name (git-file-name name version))
(sha256
(base32
- "17c0v1nah3g3d2ib5bbi0vhma1ghd6vb9xycavqsh64lhp840rk3"))))
+ "0d5k5kabgl15as37kj9x65xc92j4gcqms86hvihw3yb6wag0r0q3"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; not supported
@@ -5582,7 +5582,7 @@ simultaneously.")
(define-public ncbi-vdb
(package
(name "ncbi-vdb")
- (version "2.9.3")
+ (version "2.9.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5591,11 +5591,12 @@ simultaneously.")
(file-name (git-file-name name version))
(sha256
(base32
- "1l4ny67nxwv1lagk9wwjbrgm7ln7adci6dnpc7k1yaln6shj0qpm"))))
+ "0knkj1sq34hlivgv5qd6jlczqrs3ldmfgn6vbbw7p4mqxvb9mirk"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; not supported
#:tests? #f ; no "check" target
+ #:make-flags '("HAVE_HDF5=1")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-files-writable
@@ -5607,6 +5608,13 @@ simultaneously.")
(string-append (getcwd) "/setup:"
(getenv "PERL5LIB")))
#t))
+ ;; See https://github.com/ncbi/ncbi-vdb/issues/14
+ (add-after 'unpack 'patch-krypto-flags
+ (lambda _
+ (substitute* "libs/krypto/Makefile"
+ (("-Wa,-march=generic64\\+aes") "")
+ (("-Wa,-march=generic64\\+sse4") ""))
+ #t))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@@ -5933,7 +5941,7 @@ sequence itself can be retrieved from these databases.")
(define-public sra-tools
(package
(name "sra-tools")
- (version "2.9.3")
+ (version "2.9.6")
(source
(origin
(method git-fetch)
@@ -5943,7 +5951,7 @@ sequence itself can be retrieved from these databases.")
(file-name (git-file-name name version))
(sha256
(base32
- "0663gcdxkziwsmlznjxysb00621rllpbz6jwsfifq7z3dj3lwm8b"))))
+ "0vqzap68v81k0zif2mnqfy8pnw2nrhsg87p6mgq8qk3nk2jv2rgy"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; not supported
@@ -6946,14 +6954,14 @@ ungapped alignment formats.")
(define-public r-systempiper
(package
(name "r-systempiper")
- (version "1.18.0")
+ (version "1.18.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "systemPipeR" version))
(sha256
(base32
- "1063vdf4g2i5xyabwvzkqfxd2j8s4zs6z4zxf8lx2ccjddhkn37a"))))
+ "1k57zyzagd7g7wl38l3cn9csylykxcllbfvyq7dz8pvihgkn0ssi"))))
(properties `((upstream-name . "systemPipeR")))
(build-system r-build-system)
(propagated-inputs
@@ -8548,13 +8556,13 @@ factors bound at the specific regions.")
(define-public r-tximport
(package
(name "r-tximport")
- (version "1.12.0")
+ (version "1.12.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "tximport" version))
(sha256
(base32
- "0nl4imr5klwcd0xnp5y0g61d6mcgd50q60zkl86ymfmc0id368jr"))))
+ "1nq8v1sgkm2ssmvr2z3qw0zsk7zy0dzb95g1mfs8fkpjqh3nqq5s"))))
(build-system r-build-system)
(home-page "https://bioconductor.org/packages/tximport")
(synopsis "Import and summarize transcript-level estimates for gene-level analysis")
@@ -9452,13 +9460,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat
(package
(name "r-seurat")
- (version "3.0.1")
+ (version "3.0.2")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
- "0mx2fvhdswbcsgqxhfc6d0gr92bkibwpz2bavqdzbbxrzpdpnilc"))))
+ "016fgcmjz3sjfxdvam5hd7mdxpmpnc7f6p5zqlh97m21dgn5vpqn"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
(propagated-inputs
@@ -12536,7 +12544,7 @@ once. This package provides tools to perform Drop-seq analyses.")
(define-public pigx-rnaseq
(package
(name "pigx-rnaseq")
- (version "0.0.5")
+ (version "0.0.7")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
@@ -12544,7 +12552,7 @@ once. This package provides tools to perform Drop-seq analyses.")
"/pigx_rnaseq-" version ".tar.gz"))
(sha256
(base32
- "05gn658zpj9xki5dbs728z9zxq1mcm25hkwr5vzwqxsfi15l5f2l"))))
+ "013inbh22bjvwg2w0kx5i42k66w1zl4310ldip2ax6msgprs2ydj"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f ; not supported
@@ -12559,7 +12567,9 @@ once. This package provides tools to perform Drop-seq analyses.")
(("^ test.sh") ""))
#t)))))
(inputs
- `(("gzip" ,gzip)
+ `(("coreutils" ,coreutils)
+ ("sed" ,sed)
+ ("gzip" ,gzip)
("snakemake" ,snakemake)
("fastqc" ,fastqc)
("multiqc" ,multiqc)
@@ -12567,7 +12577,6 @@ once. This package provides tools to perform Drop-seq analyses.")
("trim-galore" ,trim-galore)
("htseq" ,htseq)
("samtools" ,samtools)
- ("bedtools" ,bedtools)
("r-minimal" ,r-minimal)
("r-rmarkdown" ,r-rmarkdown)
("r-ggplot2" ,r-ggplot2)
@@ -13087,35 +13096,6 @@ known and yet unknown splice junctions. Circular-to-linear ratios of circRNAs
can be calculated, and a number of descriptive plots easily generated.")
(license license:artistic2.0)))
-(define-public r-loomr
- (let ((commit "df0144bd2bbceca6fadef9edc1bbc5ca672d4739")
- (revision "1"))
- (package
- (name "r-loomr")
- (version (git-version "0.2.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mojaveazure/loomR.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1b1g4dlmfdyhn56bz1mkh9ymirri43wiz7rjhs7py3y7bdw1s3yr"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-r6" ,r-r6)
- ("r-hdf5r" ,r-hdf5r)
- ("r-iterators" ,r-iterators)
- ("r-itertools" ,r-itertools)
- ("r-matrix" ,r-matrix)))
- (home-page "https://github.com/mojaveazure/loomR")
- (synopsis "R interface for loom files")
- (description "This package provides an R interface to access, create,
-and modify loom files. loomR aims to be completely compatible with loompy.")
- (license license:gpl3))))
-
(define-public gffread
;; We cannot use the tagged release because it is not in sync with gclib.
;; See https://github.com/gpertea/gffread/issues/26
@@ -14755,3 +14735,71 @@ ATAC-seq results. It was written to make it easier to spot differences that
might be caused by ATAC-seq library prep or sequencing. The main program,
@code{ataqv}, examines aligned reads and reports some basic metrics.")
(license license:gpl3+)))
+
+(define-public r-psiplot
+ (package
+ (name "r-psiplot")
+ (version "2.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kcha/psiplot.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "08438h16cfry5kqh3y9hs8q1b1a8bxhblsm75knviz5r6q0n1jxh"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-mass" ,r-mass)
+ ("r-dplyr" ,r-dplyr)
+ ("r-tidyr" ,r-tidyr)
+ ("r-purrr" ,r-purrr)
+ ("r-readr" ,r-readr)
+ ("r-magrittr" ,r-magrittr)
+ ("r-ggplot2" ,r-ggplot2)))
+ (home-page "https://github.com/kcha/psiplot")
+ (synopsis "Plot percent spliced-in values of alternatively-spliced exons")
+ (description
+ "PSIplot is an R package for generating plots of @dfn{percent
+spliced-in} (PSI) values of alternatively-spliced exons that were computed by
+vast-tools, an RNA-Seq pipeline for alternative splicing analysis. The plots
+are generated using @code{ggplot2}.")
+ (license license:expat)))
+
+(define-public tbsp
+ (let ((commit "ec8fff4410cfb13a677dbbb95cbbc60217e64907")
+ (revision "1"))
+ (package
+ (name "tbsp")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phoenixding/tbsp.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "025ym14x8gbd6hb55lsinqj6f5qzw36i10klgs7ldzxxd7s39ki1"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; no tests included
+ (inputs
+ `(("python-matplotlib" ,python-matplotlib)
+ ("python-networkx" ,python-networkx)
+ ("python-numpy" ,python-numpy)
+ ("python-pybigwig" ,python-pybigwig)
+ ("python-biopython" ,python-biopython)
+ ("python-scikit-learn" ,python-scikit-learn)
+ ("python-scipy" ,python-scipy)))
+ (home-page "https://github.com/phoenixding/tbsp/")
+ (synopsis "SNP-based trajectory inference")
+ (description
+ "Several studies focus on the inference of developmental and response
+trajectories from single cell RNA-Seq (scRNA-Seq) data. A number of
+computational methods, often referred to as pseudo-time ordering, have been
+developed for this task. CRISPR has also been used to reconstruct lineage
+trees by inserting random mutations. The tbsp package implements an
+alternative method to detect significant, cell type specific sequence
+mutations from scRNA-Seq data.")
+ (license license:expat))))
diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index cc6257ba35..7bb677cdd0 100644
--- a/gnu/packages/busybox.scm
+++ b/gnu/packages/busybox.scm
@@ -1,8 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -55,6 +54,12 @@
#t))
(replace 'configure
(lambda _ (invoke "make" "defconfig")))
+ (add-after 'configure 'dont-install-to-usr
+ (lambda _
+ (substitute* ".config"
+ (("# CONFIG_INSTALL_NO_USR is not set")
+ "CONFIG_INSTALL_NO_USR=y"))
+ #t))
(replace 'check
(lambda _
(substitute* '("testsuite/du/du-s-works"
@@ -133,7 +138,12 @@ any small or embedded system.")
(let ((out (assoc-ref outputs "out")))
(invoke "make"
(string-append "PREFIX=" out)
- "install")))))
+ "install"))))
+ (add-after 'install 'remove-usr-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (delete-file-recursively (string-append out "/usr"))
+ #t))))
#:test-target "tests"))
(native-inputs `(("bc" ,bc)))
(synopsis "Many common UNIX utilities in a single executable")
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index e24f2713b4..4bb608bd8f 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -925,6 +925,27 @@ result back.")
(define-public python2-pytest-xdist
(package-with-python2 python-pytest-xdist))
+(define-public python-pytest-timeout
+ (package
+ (name "python-pytest-timeout")
+ (version "1.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-timeout" version))
+ (sha256
+ (base32
+ "1cczcjhw4xx5sjkhxlhc5c1bkr7x6fcyx12wrnvwfckshdvblc2a"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "http://bitbucket.org/pytest-dev/pytest-timeout/")
+ (synopsis "Plugin for py.test to abort hanging tests")
+ (description
+ "This package provides a py.test plugin that aborts hanging tests after a
+timeout has been exceeded.")
+ (license license:expat)))
+
(define-public python-scripttest
(package
(name "python-scripttest")
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 005b21ad7b..a1e40b9ba0 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -98,6 +99,7 @@
"third_party/angle/third_party/vulkan-tools" ;ASL2.0
"third_party/angle/third_party/vulkan-validation-layers" ;ASL2.0
"third_party/apple_apsl" ;APSL2.0
+ "third_party/axe-core" ;MPL2.0
"third_party/blink" ;BSD-3, LGPL2+
"third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
"third_party/boringssl/src/third_party/fiat" ;Expat
@@ -117,13 +119,14 @@
"third_party/ced" ;BSD-3
"third_party/cld_3" ;ASL2.0
"third_party/crashpad" ;ASL2.0
+ "third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
"third_party/crc32c" ;BSD-3
"third_party/cros_system_api" ;BSD-3
"third_party/dav1d" ;BSD-2
+ "third_party/dawn" ;ASL2.0
"third_party/dom_distiller_js" ;BSD-3
"third_party/emoji-segmenter" ;ASL2.0
- "third_party/fips181" ;BSD-3
"third_party/flatbuffers" ;ASL2.0
"third_party/glslang" ;BSD-3, Expat, ASL2.0
"third_party/google_input_tools" ;ASL2.0
@@ -166,6 +169,7 @@
"third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
"third_party/pdfium/third_party/skia_shared" ;BSD-3
"third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
+ "third_party/pffft" ;the "FFTPACK" license, similar to BSD-3
"third_party/ply" ;BSD-3
"third_party/polymer" ;BSD-3
"third_party/protobuf" ;BSD-3
@@ -223,54 +227,58 @@ from forcing GEXP-PROMISE."
#:system system
#:guile-for-build guile)))
-(define %chromium-version "74.0.3729.169")
-(define %ungoogled-revision "d2beaeff47a6e97b8909163147ad6b4058238f36")
-(define %debian-revision "debian/74.0.3729.108-1")
+(define %chromium-version "75.0.3770.100")
+(define %ungoogled-revision "5d8abc38b43a62f379615a0dc972b29d9aebb4b4")
+(define %debian-revision "debian/75.0.3770.90-1")
(define package-revision "0")
-
(define %package-version (string-append %chromium-version "-"
package-revision "."
(string-take %ungoogled-revision 7)))
+(define %chromium-origin
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://commondatastorage.googleapis.com"
+ "/chromium-browser-official/chromium-"
+ %chromium-version ".tar.xz"))
+ (sha256
+ (base32
+ "187wfdxw6ji4302pbn0kyi9b859ydri7gns0wlsrd7vd3c8604wy"))))
+
+(define %ungoogled-origin
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
+ (commit %ungoogled-revision)))
+ (file-name (git-file-name "ungoogled-chromium"
+ (string-take %ungoogled-revision 7)))
+ (sha256
+ (base32
+ "1vk8jzzsn20ysn4nlz84mwwhfa9nnywzd1lrahlhcky9pf6xzpwa"))))
+
+(define %debian-origin
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/chromium-team/chromium.git")
+ (commit %debian-revision)))
+ (file-name (git-file-name "debian-chromium-packaging"
+ (if (string-prefix? "debian/" %debian-revision)
+ (cadr (string-split %debian-revision #\/))
+ (string-take %debian-revision 7))))
+ (sha256
+ (base32
+ "0sh6z2lx44zb31qrpa29vm0sw09dxi7i9h6fsq3ivfxjs7v98bbx"))))
+
;; This is a "computed" origin that does the following:
;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
;; *) Applies Debians Chromium patches, for their unbundling and GCC work.
;; *) Prunes all third_party directories that are not explicitly preserved.
;; *) Adjusts "GN" build files such that system libraries are preferred.
(define ungoogled-chromium-source
- (let ((chromium-source
- (origin
- (method url-fetch)
- (uri (string-append "https://commondatastorage.googleapis.com"
- "/chromium-browser-official/chromium-"
- %chromium-version ".tar.xz"))
- (sha256
- (base32
- "1d0c3asfhqh6wlzngajcl0v2wn573m1jd1zqci9bcm3z048043q7"))))
- (ungoogled-source
- (origin
- (method git-fetch)
- (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
- (commit %ungoogled-revision)))
- (file-name (git-file-name "ungoogled-chromium"
- (string-take %ungoogled-revision 7)))
- (sha256
- (base32
- "04schaaqhnkrgh0p1p0wyjd5aybpxmj3kfnyipwy5nh7d39afymc"))))
- (debian-source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://salsa.debian.org/chromium-team/chromium.git")
- (commit %debian-revision)))
- (file-name (git-file-name "debian-chromium-packaging"
- (if (string-prefix? "debian/" %debian-revision)
- (cadr (string-split %debian-revision #\/))
- (string-take %debian-revision 7))))
- (sha256
- (base32
- "1bn0c86sxkkxgdz0i88y0zh4zr39l6379r2rhgk3b3qbvwz25s3j")))))
-
+ (let ((chromium-source %chromium-origin)
+ (ungoogled-source %ungoogled-origin)
+ (debian-source %debian-origin))
(origin
(method computed-origin-method)
(file-name (string-append "ungoogled-chromium-" %package-version ".tar.xz"))
@@ -335,7 +343,6 @@ from forcing GEXP-PROMISE."
(when (and (> (string-length line) 1)
;; Skip the Debian-specific ones.
(not (string-prefix? "debianization/" line))
- (not (string-prefix? "gcc6/" line))
;; And those that conflict with Ungoogled.
(not (any (cute string-suffix? <> line)
'("widevine-buildflag.patch"
@@ -397,6 +404,9 @@ from forcing GEXP-PROMISE."
(build-system gnu-build-system)
(arguments
`(#:tests? #f
+ ;; Chromiums build processes may consume up to 8GiB of memory per core.
+ ;; Disable parallel builds to avoid thrashing end user systems.
+ #:parallel-build? #f
;; FIXME: Chromiums RUNPATH lacks entries for some libraries, so
;; we have to disable validation and add a wrapper below.
#:validate-runpath? #f
@@ -434,6 +444,7 @@ from forcing GEXP-PROMISE."
"enable_reporting=false"
"enable_service_discovery=false"
"enable_swiftshader=false"
+ "enable_vr=false"
"enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency.
"closure_compile=false"
@@ -597,9 +608,11 @@ from forcing GEXP-PROMISE."
(format #t "Dumping configure flags...\n")
(invoke "gn" "args" "out/Release" "--list"))))
(replace 'build
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
(invoke "ninja" "-C" "out/Release"
- "-j" (number->string (parallel-job-count))
+ "-j" (if parallel-build?
+ (number->string (parallel-job-count))
+ "1")
"chrome"
"chromedriver")))
(replace 'install
@@ -643,12 +656,6 @@ from forcing GEXP-PROMISE."
(scandir "." (cut regexp-exec install-regexp <>)))
(copy-file "chrome" (string-append lib "/chromium"))
- ;; TODO: Install icons from "../../chrome/app/themes" into
- ;; "out/share/icons/hicolor/$size".
- (install-file
- "product_logo_48.png"
- (string-append out "/share/icons/48x48/chromium.png"))
-
(copy-recursively "locales" locales)
(copy-recursively "resources" resources)
@@ -662,8 +669,18 @@ from forcing GEXP-PROMISE."
(,(string-append lib ":" nss "/lib/nss:" mesa "/lib:"
udev "/lib")))
;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
- `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share"))))
- #t)))))))
+ `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))))
+
+ (with-directory-excursion "chrome/app/theme/chromium"
+ (for-each
+ (lambda (size)
+ (let ((icons (string-append out "/share/icons/hicolor/"
+ size "x" size "/apps")))
+ (mkdir-p icons)
+ (copy-file (string-append "product_logo_" size ".png")
+ (string-append icons "/chromium.png"))))
+ '("22" "24" "48" "64" "128" "256")))
+ #t))))))
(native-inputs
`(("bison" ,bison)
("gcc" ,gcc-8)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 6533fb302d..eb5f665fc1 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -46,147 +46,6 @@
#:use-module (gnu packages xml)
#:use-module (guix build-system gnu))
-(define-public hydra
- (let ((commit "1ff48da3d3d4a425063f5b7dd0b89d35270f8932"))
- (package
- (name "hydra")
- (version (string-append "20151030." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/NixOS/hydra")
- (commit commit)))
- (file-name (string-append name "-" version))
- (patches (search-patches
- ;; TODO: Remove once we have a darcs input
- "hydra-disable-darcs-test.patch"))
- (sha256
- (base32
- "0ni8i8v1nxxfr51rz8m6znwpbm77vr7i05k506hmgmg32r938lap"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("unzip" ,unzip)
- ("pkg-config" ,pkg-config)
- ;; For documentation
- ("dblatex" ,dblatex)
- ("xsltproc" ,libxslt)
- ("docbook-xsl" ,docbook-xsl)
- ;; For bootstrap
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ;; For tests
- ("git" ,git)
- ("subversion" ,subversion)
- ("mercurial" ,mercurial)
- ("bazaar" ,bazaar)))
- (inputs
- `(("libpqxx" ,libpqxx)
- ("perl" ,perl)
- ("guile" ,guile-2.0)
- ("openssl" ,openssl)
- ("bzip2" ,bzip2)
- ("gzip" ,gzip)
- ("sed" ,sed)
- ("starman" ,starman)
- ("git" ,git)
- ("subversion" ,subversion)
- ("mercurial" ,mercurial)
- ("bazaar" ,bazaar)
- ("nix" ,nix)
- ;; Lots o' perl modules...
- ("perl-catalyst-action-rest" ,perl-catalyst-action-rest)
- ("perl-catalyst-authentication-store-dbix-class"
- ,perl-catalyst-authentication-store-dbix-class)
- ("perl-catalyst-devel" ,perl-catalyst-devel)
- ("perl-catalyst-dispatchtype-regex" ,perl-catalyst-dispatchtype-regex)
- ("perl-catalyst-plugin-accesslog" ,perl-catalyst-plugin-accesslog)
- ("perl-catalyst-plugin-authorization-roles"
- ,perl-catalyst-plugin-authorization-roles)
- ("perl-catalyst-plugin-captcha" ,perl-catalyst-plugin-captcha)
- ("perl-catalyst-plugin-session-state-cookie"
- ,perl-catalyst-plugin-session-state-cookie)
- ("perl-catalyst-plugin-session-store-fastmmap"
- ,perl-catalyst-plugin-session-store-fastmmap)
- ("perl-catalyst-plugin-stacktrace" ,perl-catalyst-plugin-stacktrace)
- ("perl-catalyst-traitfor-request-proxybase"
- ,perl-catalyst-traitfor-request-proxybase)
- ("perl-catalyst-view-download" ,perl-catalyst-view-download)
- ("perl-catalyst-view-json" ,perl-catalyst-view-json)
- ("perl-catalyst-view-tt" ,perl-catalyst-view-tt)
- ("perl-catalystx-roleapplicator" ,perl-catalystx-roleapplicator)
- ("perl-catalystx-script-server-starman"
- ,perl-catalystx-script-server-starman)
- ("perl-crypt-randpasswd" ,perl-crypt-randpasswd)
- ("perl-data-dump" ,perl-data-dump)
- ("perl-datetime" ,perl-datetime)
- ("perl-dbd-pg" ,perl-dbd-pg)
- ("perl-dbd-sqlite" ,perl-dbd-sqlite)
- ("perl-digest-sha1" ,perl-digest-sha1)
- ("perl-email-mime" ,perl-email-mime)
- ("perl-email-sender" ,perl-email-sender)
- ("perl-file-slurp" ,perl-file-slurp)
- ("perl-io-compress" ,perl-io-compress)
- ("perl-ipc-run" ,perl-ipc-run)
- ("perl-json-any" ,perl-json-any)
- ("perl-json-xs" ,perl-json-xs)
- ("perl-libwww" ,perl-libwww)
- ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
- ("perl-net-amazon-s3" ,perl-net-amazon-s3)
- ("perl-net-statsd" ,perl-net-statsd)
- ("perl-padwalker" ,perl-padwalker)
- ("perl-readonly" ,perl-readonly)
- ("perl-set-scalar" ,perl-set-scalar)
- ("perl-sql-splitstatement" ,perl-sql-splitstatement)
- ("perl-sys-hostname-long" ,perl-sys-hostname-long)
- ("perl-text-diff" ,perl-text-diff)
- ("perl-text-table" ,perl-text-table)
- ("perl-xml-simple" ,perl-xml-simple)))
- (arguments
- `(#:configure-flags
- (let ((docbook (assoc-ref %build-inputs "docbook-xsl")))
- (list (string-append "--with-docbook-xsl="
- docbook "/xml/xsl/docbook-xsl-"
- ,(package-version docbook-xsl))
- (string-append "--docdir=" %output
- "/doc/hydra-" ,version)))
- #:phases (modify-phases %standard-phases
- (add-before
- 'check 'check-setup
- (lambda _ (setenv "LOGNAME" "test.log")))
- (add-after
- 'install 'wrap-program
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (for-each
- (lambda (file)
- (wrap-program file
- `("PATH" ":" prefix
- (,(string-append out "/bin")
- ,@(map (lambda (i)
- (string-append (assoc-ref inputs i)
- "/bin"))
- '("subversion" "git" "bazaar"
- "mercurial" "coreutils" "gzip"
- "sed" "unzip" "nix"))))
- `("PERL5LIB" ":" prefix
- (,(string-append out "/libexec/hydra/lib")
- ,@(search-path-as-string->list
- (getenv "PERL5LIB"))))
- `("HYDRA_RELEASE" = (,,version))
- `("HYDRA_HOME" =
- (,(string-append out "/libexec/hydra")))
- `("NIX_RELEASE" = (,,(package-version nix)))))
- (find-files (string-append out "/bin")
- ".*"))))))))
- (home-page "https://nixos.org/hydra")
- (synopsis "Continuous build system")
- (description
- "Hydra is a tool for continuous integration testing and software
-release that uses a purely functional language to describe build jobs and
-their dependencies.")
- (license l:gpl3+))))
-
(define-public cuirass
(let ((commit "0b40dca734468e8b12b3ff58e3e779679f17d38e")
(revision "21"))
diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm
index 39262b87da..df5aa7bb6d 100644
--- a/gnu/packages/connman.scm
+++ b/gnu/packages/connman.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
@@ -160,13 +160,22 @@ sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
(invoke "qmake"
(string-append "PREFIX="
(assoc-ref outputs "out")))))
- (add-before 'install 'fix-Makefiles
+ (add-before 'build 'fix-Makefiles
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (find-files "." "Makefile")
(("INSTALL_ROOT)")
(string-append "INSTALL_ROOT)" out))
- (("/usr/bin") "/bin"))))))))
+ (("/usr") ""))
+ (substitute* '("apps/cmstapp/cmstapp.pro"
+ "apps/cmstapp/code/control_box/controlbox.cpp"
+ "apps/rootapp/rootapp.pro"
+ "apps/rootapp/system/org.cmst.roothelper.service"
+ "cmst.pri"
+ "cmst.pro")
+ (("/usr") out)
+ (("/etc") (string-append out "/etc")))
+ #t))))))
(home-page "https://github.com/andrew-bibb/cmst")
(synopsis "Qt frontend for Connman")
(description
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 356595ff33..e0f2b3bb87 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -453,13 +453,13 @@ in systems and applications.")
(define-public r-servr
(package
(name "r-servr")
- (version "0.13")
+ (version "0.14")
(source (origin
(method url-fetch)
(uri (cran-uri "servr" version))
(sha256
(base32
- "1n5haqkshrxcx557f1k7nrisvq3wak8v370s2r6yv691b8hvbscs"))))
+ "0zjjnfgas9d16fihksyk24kgkkqswb4sd0rz51id2ni1ymdyasjk"))))
(build-system r-build-system)
(propagated-inputs
`(("r-httpuv" ,r-httpuv)
@@ -4107,14 +4107,14 @@ Cryer and Kung-Sik Chan.")
(define-public r-extradistr
(package
(name "r-extradistr")
- (version "1.8.10")
+ (version "1.8.11")
(source
(origin
(method url-fetch)
(uri (cran-uri "extraDistr" version))
(sha256
(base32
- "00lvqp5bb3iak5myiz4rqm887bkq9sdh7aybmz84mmfni6q01m28"))))
+ "1vvqv1d4hxa025gmm8cbiph63qsqy87l3ri5idd524gyz3chbcl3"))))
(properties `((upstream-name . "extraDistr")))
(build-system r-build-system)
(propagated-inputs
@@ -5962,18 +5962,18 @@ vice versa), or to deal with multiple declared missing values.")
(define-public r-sjmisc
(package
(name "r-sjmisc")
- (version "2.7.9")
+ (version "2.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "sjmisc" version))
(sha256
(base32
- "11iiap0w5v0dszgwx4pi3j1zf9vnlw1ml1wjvq1hg9iz1plgbfnc"))))
+ "0pgavkygsj8fa591pmasx78b4gd32sf2pa067yqvi82xha7dj5k4"))))
(build-system r-build-system)
(propagated-inputs
`(("r-dplyr" ,r-dplyr)
- ("r-haven" ,r-haven)
+ ("r-insight" ,r-insight)
("r-magrittr" ,r-magrittr)
("r-purrr" ,r-purrr)
("r-rlang" ,r-rlang)
@@ -6584,16 +6584,18 @@ second male (P2) based on the best fit distribution.")
(define-public r-abcrf
(package
(name "r-abcrf")
- (version "1.7.1")
+ (version "1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "abcrf" version))
(sha256
- (base32 "06vy3inikrr9hv36q4djhrgzi9zizdfnhz17wpra8kadmr7qj441"))))
+ (base32 "0r31ki89z8zzcffm0yvd2zw3q96rk6g6fnwwkql902mgajbrha1f"))))
(build-system r-build-system)
(propagated-inputs
- `(("r-mass" ,r-mass)
+ `(("r-doparallel" ,r-doparallel)
+ ("r-foreach" ,r-foreach)
+ ("r-mass" ,r-mass)
("r-matrixstats" ,r-matrixstats)
("r-ranger" ,r-ranger)
("r-rcpp" ,r-rcpp)
@@ -7692,14 +7694,14 @@ Hothorn, Westfall, 2010, CRC Press).")
(define-public r-emmeans
(package
(name "r-emmeans")
- (version "1.3.4")
+ (version "1.3.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "emmeans" version))
(sha256
(base32
- "09gxphan34c615y4lhjdqkg5cz4ih9b1r3bb4chs3mwmiav1rxqn"))))
+ "0zyink60132f2a0491a94bf67hq8a0bwmw5wn19l0ms8iyiml9d2"))))
(build-system r-build-system)
(propagated-inputs
`(("r-estimability" ,r-estimability)
@@ -9404,14 +9406,14 @@ definiteness of a matrix.")
(define-public r-rspectra
(package
(name "r-rspectra")
- (version "0.14-0")
+ (version "0.15-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "RSpectra" version))
(sha256
(base32
- "12w5vnz39gyciza0fl7fw4f9i9kjw763h3mvk1sxd97c5dsn26jg"))))
+ "1ab975scdqaxdna9sayjl6l14hz991y0pc8c8ah48w000616km8s"))))
(properties `((upstream-name . "RSpectra")))
(build-system r-build-system)
(propagated-inputs
@@ -9639,14 +9641,14 @@ conditional reporting based on the current \"output level\".")
(define-public r-tractor-base
(package
(name "r-tractor-base")
- (version "3.3.0")
+ (version "3.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "tractor.base" version))
(sha256
(base32
- "0i62dwra0yh565ryz75byfgqv22bqwz7138zs48w46yj2h8q9hyj"))))
+ "0y5gm0y4chl30f5qqq8qiiw4j8g32s4i9xrvyp3cwg902kf2p86i"))))
(properties `((upstream-name . "tractor.base")))
(build-system r-build-system)
(propagated-inputs
@@ -11746,14 +11748,14 @@ numbers from ZIP and ZINB distributions.")
(define-public r-nor1mix
(package
(name "r-nor1mix")
- (version "1.2-3")
+ (version "1.3-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "nor1mix" version))
(sha256
(base32
- "1bvk888qml9qr7q703s7qzgm0sqfchcjdjqwqllm5vrjx0cnapj3"))))
+ "1817wcvlmxs70vs4db0jkxd7i037744zz8ay3c2a9949z29fxr4w"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/nor1mix/")
(synopsis "Normal (1-d) mixture models")
@@ -12405,14 +12407,14 @@ sampling.")
(define-public r-deldir
(package
(name "r-deldir")
- (version "0.1-16")
+ (version "0.1-21")
(source
(origin
(method url-fetch)
(uri (cran-uri "deldir" version))
(sha256
(base32
- "0549kj0hlkdyvm5axsm3np30wg53fm2pxybijzw0avlgsd2y2n2q"))))
+ "03392pl6j8rm3n32xrfkyfx866k1vm5sj87pva70yyiwh70vrnmr"))))
(build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran)))
(home-page "https://cran.r-project.org/web/packages/deldir")
@@ -12645,14 +12647,14 @@ either PDF/EPS files.")
(define-public r-polspline
(package
(name "r-polspline")
- (version "1.1.14")
+ (version "1.1.15")
(source
(origin
(method url-fetch)
(uri (cran-uri "polspline" version))
(sha256
(base32
- "0g4s5nwi13yfs6b169yw8vrs48nvjyc014k2v7ybcxarl8z81va0"))))
+ "19zs4kpagsrzhng1byjbz1c4jxnfk58h4rgr096ml1bjwrgamnwc"))))
(build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran)))
(home-page "https://cran.r-project.org/web/packages/polspline/")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
new file mode 100644
index 0000000000..b480b6fe56
--- /dev/null
+++ b/gnu/packages/crates-io.scm
@@ -0,0 +1,92 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages crates-io)
+ #:use-module (guix build-system cargo)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages))
+
+(define-public rust-unicode-xid
+ (package
+ (name "rust-unicode-xid")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "unicode-xid" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1z57lqh4s18rr4x0j4fw4fmp9hf9346h0kmdgqsqx0fhjr3k0wpw"))))
+ (build-system cargo-build-system)
+ (home-page
+ "https://github.com/unicode-rs/unicode-xid")
+ (synopsis "Determine Unicode XID related properties")
+ (description "Determine whether characters have the XID_Start
+or XID_Continue properties according to Unicode Standard Annex #31.")
+ ;; Dual licensed.
+ (license (list license:asl2.0 license:expat))))
+
+(define-public rust-proc-macro2
+ (package
+ (name "rust-proc-macro2")
+ (version "0.4.27")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "proc-macro2" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "05c92v787snyaq4ss16vxc9mdv6zndfgsdq8k3hnnyffmsf7ycad"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-unicode-xid" ,rust-unicode-xid))
+ #:cargo-development-inputs (("rust-quote" ,rust-quote))))
+ (home-page "https://github.com/alexcrichton/proc-macro2")
+ (synopsis "Stable implementation of the upcoming new `proc_macro` API")
+ (description "This package provides a stable implementation of the upcoming new
+`proc_macro` API. Comes with an option, off by default, to also reimplement itself
+in terms of the upstream unstable API.")
+ ;; Dual licensed.
+ (license (list license:asl2.0 license:expat))))
+
+(define-public rust-quote
+ (package
+ (name "rust-quote")
+ (version "0.6.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "quote" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1nw0klza45hf127kfyrpxsxd5jw2l6h21qxalil3hkr7bnf7kx7s"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2))))
+ (home-page "https://github.com/dtolnay/quote")
+ (synopsis "Quasi-quoting macro quote!(...)")
+ (description "Quasi-quoting macro quote!(...)")
+ ;; Dual licensed.
+ (license (list license:asl2.0 license:expat))))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 55f7a46dc5..acffc56a27 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -34,6 +34,7 @@
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1879,7 +1880,7 @@ database.")
(define-public perl-db-file
(package
(name "perl-db-file")
- (version "1.843")
+ (version "1.852")
(source
(origin
(method url-fetch)
@@ -1889,7 +1890,7 @@ database.")
".tar.gz"))
(sha256
(base32
- "0sildz1i3fmh949w1scpjsyjx0cbmfw0yna3y70mc6vbwp8y696y"))))
+ "14c30xyqx9c1hxw40bqbzls41al8gmklxv5jbk2kknmn4dsrbdrs"))))
(build-system perl-build-system)
(inputs `(("bdb" ,bdb)))
(native-inputs `(("perl-test-pod" ,perl-test-pod)))
diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm
index d96dbb86d9..f6ab56887c 100644
--- a/gnu/packages/dico.scm
+++ b/gnu/packages/dico.scm
@@ -38,14 +38,14 @@
(define-public dico
(package
(name "dico")
- (version "2.7")
+ (version "2.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/dico/dico-"
version ".tar.xz"))
(sha256
(base32
- "0dg4aacnmlf3ljssd7dwh8z5644xzq8k1501mbsx8nz8p8a9mbsq"))))
+ "0i9xqhy3h5nlizcmav4mv5ay8ivdgn4l4k0k7fxix3fsc87nijyr"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "--with-guile-site-dir=" %output
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 491f7ce881..778529436b 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -341,32 +342,31 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
(define-public gparted
(package
(name "gparted")
- (version "0.33.0")
+ (version "1.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
version "/gparted-" version ".tar.gz"))
(sha256
- (base32 "1ml1ky3s75lbxr91p608q3prsdh9x899mw7nbgk252pqhg4vh8sh"))))
+ (base32
+ "0mdvn85jvy72ff7nds3dakx9kzknh8gx1z8i0w2sf970q03qp2z4"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; tests require a network connection
- #:configure-flags '("--disable-scrollkeeper")))
+ ;; Tests require access to paths outside the build container, such
+ ;; as '/dev/disk/by-id'
+ `(#:tests? #f))
(inputs
`(("util-linux" ,util-linux)
("parted" ,parted)
("glib" ,glib)
- ("gtkmm" ,gtkmm-2)
+ ("gtkmm" ,gtkmm)
("libxml2" ,libxml2)
- ("libxslt" ,libxslt)
- ("gnome-doc-utils" ,gnome-doc-utils)
- ("docbook-xml" ,docbook-xml-4.2)
- ("python" ,python-2)
- ("python-libxml2" ,python2-libxml2)
- ("which" ,which)))
+ ("yelp-tools" ,yelp-tools)
+ ("itstool" ,itstool)))
(native-inputs
`(("intltool" ,intltool)
+ ("lvm2" ,lvm2) ; for tests
("pkg-config" ,pkg-config)))
(home-page "https://gparted.org/")
(synopsis "Partition editor to graphically manage disk partitions")
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 291139ef1b..3eec104f50 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -108,7 +108,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind
(package
(name "bind")
- (version "9.14.2")
+ (version "9.14.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -116,7 +116,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.gz"))
(sha256
(base32
- "033zqajnj5ys45g899132xkhh9f0hsh76ffv7302wl166xbjfh0f"))))
+ "1ymxr38c62w6961j8g2vllnv0s72z7zk4b2j2k8ixdh1rymqm1yf"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
@@ -302,14 +302,14 @@ asynchronous fashion.")
(define-public nsd
(package
(name "nsd")
- (version "4.1.27")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz"))
(sha256
- (base32 "1sjfbwr4vq25304hr9vmd9j821g2vzv8lpy95hpsravc80q5zaqv"))))
+ (base32 "0k57xl3ybdnqjqw9a3dmi7l6qmhkiic6wsghkz08ir809aj1rpsi"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -577,14 +577,14 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
- (version "2.8.1")
+ (version "2.8.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
"knot-" version ".tar.xz"))
(sha256
- (base32 "1im2wb8hl394mzni1wavmvfqd7il8s28kcz8w3s4v05nbhzg06xj"))
+ (base32 "0dx1lp4w33rpa54nns41k4vfdfin6naaskwh132r4qs0l9hl7lh0"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index eb76b85676..bb981665d6 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -91,6 +91,8 @@ pseudo-terminal (PTY) allocated to a Docker container using the Python
client.")
(license license:asl2.0)))
+;; When updating, check whether python-jsonschema-2.6 can be removed from Guix
+;; entirely.
(define-public docker-compose
(package
(name "docker-compose")
@@ -107,9 +109,10 @@ client.")
(arguments '(#:tests? #f))
(inputs
`(("python-docker-py" ,python-docker-py)
+ ("python-docker-pycreds" ,python-docker-pycreds)
("python-dockerpty" ,python-dockerpty)
("python-docopt" ,python-docopt)
- ("python-jsonschema" ,python-jsonschema)
+ ("python-jsonschema" ,python-jsonschema-2.6)
("python-pyyaml" ,python-pyyaml)
("python-requests" ,python-requests-2.7)
("python-six" ,python-six)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 2eb705dedd..9bf101ab31 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -13,7 +13,7 @@
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
@@ -47,6 +47,8 @@
;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
;;; Copyright © 2019 LaFreniere, Joseph <joseph@lafreniere.xyz>
+;;; Copyright © 2019 Amar Singh <nly@disroot.org>
+;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -545,6 +547,35 @@ handful of functions that are not resource-specific.")
for editing Racket's Scribble documentation syntax in Emacs.")
(license license:gpl3+))))
+(define-public emacs-shroud
+ (package
+ (name "emacs-shroud")
+ (version "1.15.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/o-nly/emacs-shroud.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wvm4lxqcc1p8v7rpqal3bnqgnpk1gs7v18i83f6cvi5d88jkgdg"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-bui" ,emacs-bui)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-f" ,emacs-f)
+ ("emacs-s" ,emacs-s)
+ ("gnupg" ,gnupg)
+ ("shroud" ,shroud)))
+ (home-page "https://github.com/o-nly/emacs-shroud")
+ (synopsis "Emacs interface to the Shroud password manager")
+ (description
+ "This package provides an Emacs interface to the Shroud password manager,
+using the Buffers User Interface library. You can view, copy, and edit secrets
+from within Emacs.")
+ (license license:gpl3+)))
+
(define-public emacs-unpackaged-el
(let ((commit "f4df7f8dfea715e893b2223adda32545803f5cce")
(revision "1"))
@@ -560,12 +591,15 @@ for editing Racket's Scribble documentation syntax in Emacs.")
(file-name (git-file-name name version))
(sha256
(base32
- "1yf3zrgqfhnr0az8gn1kqqwnhfi3nc0vbjkcagwcqwk3sp1jda86"))))
+ "1yf3zrgqfhnr0az8gn1kqqwnhfi3nc0vbjkcagwcqwk3sp1jda86"))
+ (patches
+ (search-patches "emacs-unpackaged-req.patch"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-org" ,emacs-org)
("emacs-s" ,emacs-s)
+ ("emacs-hydra" ,emacs-hydra)
("emacs-use-package" ,emacs-use-package)))
(home-page "https://github.com/alphapapa/unpackaged.el")
(synopsis "Useful snippets of Emacs Lisp code")
@@ -4051,6 +4085,33 @@ transparent background. If you load it from a GUI, it will default to a
dark background.")
(license license:gpl3+)))
+(define-public emacs-gruvbox-theme
+ (package
+ (name "emacs-gruvbox-theme")
+ (version "1.28.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/greduan/emacs-theme-gruvbox.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-autothemer" ,emacs-autothemer)))
+ (home-page "https://github.com/greduan/emacs-theme-gruvbox")
+ (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
+ (description
+ "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
+
+Designed as a bright theme with pastel 'retro groove' colors and light/dark
+mode switching in the way of solarized. The main focus when developing gruvbox
+is to keep colors easily distinguishable, contrast enough and still pleasant
+for the eyes.")
+ (license license:expat))) ; MIT license
+
(define-public emacs-2048-game
(package
(name "emacs-2048-game")
@@ -4093,6 +4154,29 @@ of sixteen colors suitable for a wide range of applications. Base16 is not a
single theme but a set of guidelines with numerous implementations.")
(license license:expat)))
+(define-public emacs-solaire-mode
+ (package
+ (name "emacs-solaire-mode")
+ (version "1.0.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hlissner/emacs-solaire-mode.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/hlissner/emacs-solaire-mode")
+ (synopsis "Change background of file-visiting buffers in Emacs")
+ (description
+ "@code{solaire-mode} is inspired by editors which visually distinguish
+code-editing windows from sidebars, popups, terminals, ecetera. It changes the
+background of file-visiting buffers (and certain aspects of the UI) to make
+them easier to distinguish from other, less important buffers.")
+ (license license:expat)))
+
(define-public emacs-prescient
(package
(name "emacs-prescient")
@@ -4213,16 +4297,17 @@ regexp that matches all known keywords.")
(define-public emacs-perspective
(package
(name "emacs-perspective")
- (version "1.12")
+ (version "2.2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/nex3/perspective-el/"
- "archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nex3/perspective-el.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "078ahh0kmhdylq5ib9c81c76kz1n02xwc83pm729d00i84ibviic"))))
+ "0pd5sqrrz6y3md20yh6ffy32jdcgb1gc9b4j14pm6r54bqxik68h"))))
(build-system emacs-build-system)
(home-page "https://github.com/nex3/perspective-el")
(synopsis "Switch between named \"perspectives\"")
@@ -4305,19 +4390,17 @@ after buffer changes.")
(define-public emacs-realgud
(package
(name "emacs-realgud")
- (version "1.4.5")
+ (version "1.5.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://elpa.gnu.org/packages/realgud-"
- version ".tar"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/realgud/realgud/")
+ (commit version)))
(sha256
(base32
- "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))
- (patches
- ;; Patch awaiting inclusion upstream (see:
- ;; https://github.com/realgud/realgud/pull/226).
- (search-patches "emacs-realgud-fix-configure-ac.patch"))))
+ "0xnick9016wxrgi8v0lycvxhyz8l2k4nfvdpjc5yq476vwrjfzbz"))
+ (file-name (git-file-name name version))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
@@ -4336,11 +4419,6 @@ after buffer changes.")
(setenv "HOME" (getenv "TMPDIR"))))
(add-before 'patch-el-files 'remove-realgud-pkg.el
(lambda _
- ;; XXX: This file is auto-generated at some point and causes
- ;; substitute* to crash during the `patch-el-files' phase with:
- ;; ERROR: In procedure stat: No such file or directory:
- ;; "./realgud-pkg.el"
- (delete-file "./realgud-pkg.el")
;; FIXME: `patch-el-files' crashes on this file with error:
;; unable to locate "bashdb".
(delete-file "./test/test-regexp-bashdb.el"))))
@@ -5209,6 +5287,48 @@ If you want to mark a folder manually as a project just create an empty
and RSS, with a user interface inspired by notmuch.")
(license license:gpl3+)))
+(define-public emacs-elfeed-org
+ (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
+ (package
+ (name "emacs-elfeed-org")
+ (version (git-version "0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/remyhonig/elfeed-org.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-elfeed" ,emacs-elfeed)
+ ("emacs-org" ,emacs-org)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-s" ,emacs-s)))
+ (native-inputs
+ `(("ert-runner" ,emacs-ert-runner)
+ ("emacs-xtest" ,emacs-xtest)))
+ (arguments
+ `(#:tests? #t
+ #:test-command '("ert-runner" "-L" "org-mode/lisp")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'chmod
+ (lambda _
+ (chmod "test/fixture-mark-feed-ignore.org" #o644)
+ #t)))))
+ (home-page "https://github.com/remyhonig/elfeed-org")
+ (synopsis "Configure Elfeed with an Org-mode file")
+ (description
+ "@code{elfeed-org} lets you manage your Elfeed subscriptions
+in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
+the regular flat list, where there is no hierarchy and tag names are
+duplicated a lot. Org-mode makes the book keeping of tags and feeds
+much easier.")
+ (license license:gpl3+))))
+
(define-public emacs-el-x
(package
(name "emacs-el-x")
@@ -7218,19 +7338,20 @@ performance-oriented and tidy.")
(define-public emacs-default-encrypt
(package
(name "emacs-default-encrypt")
- (version "4.3")
+ (version "4.4")
(source
(origin
(method url-fetch)
(uri (string-append
- "https://www.informationelle-selbstbestimmung-im-internet.de"
+ "https://informationelle-selbstbestimmung-im-internet.de"
"/emacs/jl-encrypt" version "/jl-encrypt.el"))
(file-name (string-append "jl-encrypt-" version ".el"))
(sha256
(base32
- "16i3rlfp3jxlqvndn8idylhmczync3gwmy8a019v29vyr48rnnr0"))))
+ "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
(build-system emacs-build-system)
- (home-page "https://www.informationelle-selbstbestimmung-im-internet.de/Emacs.html")
+ (home-page
+ "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
(synopsis "Automatically encrypt or sign Gnus messages in Emacs")
(description
"DefaultEncrypt is designed to be used with Gnus in Emacs. It
@@ -7242,6 +7363,41 @@ DefaultEncrypt, please refer to the home page or read the comments in the
source file, @file{jl-encrypt.el}.")
(license license:gpl3+)))
+(define-public emacs-extend-smime
+ (package
+ (name "emacs-extend-smime")
+ (version "3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://informationelle-selbstbestimmung-im-internet.de"
+ "/emacs/jl-smime" version "/jl-smime.el"))
+ (file-name (string-append "jl-smime-" version ".el"))
+ (sha256
+ (base32
+ "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
+ (build-system emacs-build-system)
+ (home-page
+ "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
+ (synopsis "Improved S/MIME support for Gnus in Emacs")
+ (propagated-inputs
+ `(("emacs-default-encrypt" ,emacs-default-encrypt)))
+ (description
+ ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
+ ;; should not be translated. The name "emacs-default-encrypt" refers to
+ ;; the Guix package that provides DefaultEncrypt.
+ "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
+DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
+Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
+Before a message (e.g., email) is sent, ExtendSMIME searches for missing
+certificates via LDAP and imports them into @code{gpgsm}. When certificates
+for all recipients are available, DefaultEncrypt automatically encrypts the
+message. For details and instructions on how to use ExtendSMIME, please refer
+to the home page or read the comments in the source file,
+@file{jl-smime.el}.")
+ (license license:gpl3+)))
+
(define-public emacs-htmlize
(package
(name "emacs-htmlize")
@@ -7960,6 +8116,27 @@ running tests easier.")
(define-public ert-runner
(deprecated-package "ert-runner" emacs-ert-runner))
+(define-public emacs-xtest
+ (package
+ (name "emacs-xtest")
+ (version "1.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/promethial/xtest.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
+ (arguments
+ `(#:exclude '()))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/promethial/xtest/")
+ (synopsis "Simple testing with Emacs")
+ (description "This package provides a simple testing library for Emacs.")
+ (license license:gpl3+)))
+
(define-public emacs-disable-mouse
(package
(name "emacs-disable-mouse")
@@ -10602,6 +10779,28 @@ macro takes a first argument (whose value must be an alist) and a body.")
your Emacs.")
(license license:gpl2+))))
+(define-public emacs-restart-emacs
+ (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
+ (revision "1"))
+ (package
+ (name "emacs-restart-emacs")
+ (version (git-version "0.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/iqbalansari/restart-emacs.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/iqbalansari/restart-emacs")
+ (synopsis "Restart Emacs from within Emacs")
+ (description "This package provides a simple command to restart Emacs from
+within Emacs.")
+ (license license:gpl3+))))
+
(define-public emacs-sourcemap
(package
(name "emacs-sourcemap")
@@ -11559,6 +11758,29 @@ interactive behavior should be different.")
decreasing the default font size in all GUI Emacs frames.")
(license license:gpl3+))))
+(define-public emacs-mixed-pitch
+ (package
+ (name "emacs-mixed-pitch")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/jabranham/mixed-pitch.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
+ (build-system emacs-build-system)
+ (home-page "https://gitlab.com/jabranham/mixed-pitch")
+ (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
+ (description
+ "@code{mixed-pitch-mode} is a minor mode that enables mixing
+variable-pitch and fixed-pitch fonts in the same buffer. The list
+@code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
+fixed-pitch,everything else becomes variable-pitch.")
+ (license license:gpl3+)))
+
(define-public emacs-visual-regexp
(package
(name "emacs-visual-regexp")
@@ -12339,7 +12561,7 @@ autosuggestions with:
(define-public emacs-desktop-environment
(package
(name "emacs-desktop-environment")
- (version "0.2.1")
+ (version "0.2.2")
(source
(origin
(method git-fetch)
@@ -12349,7 +12571,7 @@ autosuggestions with:
(file-name (git-file-name name version))
(sha256
(base32
- "0n5sa94dwhnkfp3x42pggsbr5db38m85hl8ddb3qs7yfdi9bjm52"))))
+ "14ija2rrz3zjhjbzxg84j5fq6xph4ah7w9bkqnq37by040cydvhw"))))
(build-system emacs-build-system)
(home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
(synopsis "Control your GNU/Linux desktop environment from Emacs")
@@ -15833,3 +16055,29 @@ corresponding Evil keys.")
(description "@code{xterm-color.el} is an ANSI control sequence to
text-property translator.")
(license license:bsd-2))))
+
+(define-public emacs-org-noter
+ (package
+ (name "emacs-org-noter")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://stable.melpa.org/packages/org-noter-"
+ version
+ ".el"))
+ (sha256
+ (base32
+ "1hczwva73gsyanl1ldhdvql01gy0hy2g861yzkaklyb763sx58x4"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-org" ,emacs-org)))
+ (home-page "https://github.com/weirdNox/org-noter")
+ (synopsis "Synchronized, Org-mode, document annotator")
+ (description
+ "This package lets you create notes that are kept in sync when you
+scroll through the document, but that are external to it---the notes
+themselves live in an Org-mode file. As such, this leverages the power of
+Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
+acting like notes that are made @emph{in} the document.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 9b0f00c7be..7d48414889 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1248,17 +1248,17 @@ bindings for Python, Java, OCaml and more.")
(define-public radare2
(package
(name "radare2")
- (version "2.5.0")
+ (version "3.5.1")
(source (origin
(method url-fetch)
- (uri (string-append "http://radare.mikelloc.com/get/" version "/"
- name "-" version ".tar.gz"))
+ (uri (string-append "https://radare.mikelloc.com/get/" version "/"
+ "radare2-" version ".tar.gz"))
(sha256
(base32
- "17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7"))
+ "174x5545fw2nyf000gd46hi7rx2bn3bw5bsnvizn9yi99pn7m4mw"))
(modules '((guix build utils)))
(snippet
- '(begin
+ '(begin
(substitute* "libr/asm/p/Makefile"
(("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
(substitute* "libr/parse/p/Makefile"
@@ -1268,7 +1268,7 @@ bindings for Python, Java, OCaml and more.")
#t))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f; tests require git and network access
+ '(#:tests? #f ; tests require git and network access
#:phases
(modify-phases %standard-phases
(add-before 'configure 'mklibdir
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 0ac0b7b207..c24e58de0d 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -613,6 +613,28 @@ character set, with support for most Western and Central European Latin-based
languages, plus Greek and Cyrillic.")
(license license:silofl1.1)))
+(define-public font-anonymous-pro-minus
+ (package
+ (inherit font-anonymous-pro)
+ (name "font-anonymous-pro-minus")
+ ;; The -Minus variant doesn't necessarily track the regular version above.
+ (version "1.003")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.marksimonson.com/assets/content/fonts/"
+ "AnonymousProMinus-" version ".zip"))
+ (sha256
+ (base32 "1p2n91jja37d2cshp5pjwld9lq0v7gnpk7ywwn2blq7k46q6vq38"))))
+ (synopsis "Fixed-width fonts designed with coding in mind, without bitmaps")
+ (description "Anonymous Pro is a family of four fixed-width fonts designed
+with coding in mind. Anonymous Pro features an international, Unicode-based
+character set, with support for most Western and Central European Latin-based
+languages, plus Greek and Cyrillic.
+
+Anonymous Pro Minus is identical to Anonymous Pro, minus its embedded bitmaps
+for use at smaller text sizes")))
+
(define-public font-gnu-unifont
(package
(name "font-gnu-unifont")
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 96953d6fd5..b2ab13d951 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -170,15 +170,14 @@ as required.")
(define-public libfilezilla
(package
(name "libfilezilla")
- (version "0.15.1")
+ (version "0.16.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.filezilla-project.org/"
"libfilezilla/libfilezilla-" version ".tar.bz2"))
(sha256
- (base32
- "17zlhw5b1a7jzh50cbpy2is3sps5lnzch5yf9qm7mwrviw9c8j10"))))
+ (base32 "1fd71vmllzvljff5l5ka5wnzbdsxx4i54dpxpklydmbsqpilnv1v"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
@@ -209,14 +208,14 @@ output.
(define-public filezilla
(package
(name "filezilla")
- (version "3.41.2")
+ (version "3.42.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.filezilla-project.org/client/"
"FileZilla_" version "_src.tar.bz2"))
(sha256
- (base32 "05zhvzvzkbns0cdxmlswvasfa6031y22dhfj9y5p85gi654f4fy2"))))
+ (base32 "083ycsycwy1szhp3mzf998wsqa74hmdxdsy07x6k81vp2cxjxijg"))))
(build-system gnu-build-system)
(arguments
;; Don't let filezilla phone home to check for updates.
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 7a433a0bfd..bf3ab94e68 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -41,6 +41,7 @@
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
+;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -5596,6 +5597,40 @@ affect gameplay).")
(home-page "https://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom")
(license license:gpl2)))
+(define-public crispy-doom
+ (package
+ (inherit chocolate-doom)
+ (name "crispy-doom")
+ (version "5.5.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fabiangreffrath/crispy-doom.git")
+ (commit (string-append "crispy-doom-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1a60ns0blhvml6gzj9qx18c18pbf02rq7vypaajd6nqy5h4fz3cn"))))
+ (native-inputs
+ (append
+ (package-native-inputs chocolate-doom)
+ `(("automake" ,automake)
+ ("autoreconf" ,autoconf))))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'bootstrap
+ ;; the autogen.sh script in the source tree doesn't work
+ (lambda _ (invoke "autoreconf" "-vif"))))))
+ (synopsis "Limit-removing enhanced-resolution Doom source port based on
+Chocolate Doom")
+ (description
+ "Crispy Doom is a friendly fork of Chocolate Doom that provides a higher
+display resolution, removes the static limits of the Doom engine and offers
+further optional visual, tactical and physical enhancements while remaining
+entirely config file, savegame, netplay and demo compatible with the
+original.")
+ (home-page "https://www.chocolate-doom.org/wiki/index.php/Crispy_Doom")))
+
(define-public fortune-mod
(package
(name "fortune-mod")
@@ -7385,3 +7420,143 @@ full of enemies that can hurt it, obstacles and food to be eaten. The goal of
the game is to stay alive and collect prizes. The robot program conveniently
may be written in a plain text file in the Scheme programming language.")
(license license:gpl3+)))
+
+(define-public ri-li
+ (package
+ (name "ri-li")
+ (version "2.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/ri-li/"
+ "Ri-li%20Linux_Unix/Ri-li%20V" version "/"
+ "Ri-li-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1gcdsgnnbbn1mb1hkpwniv3fhkaj1nn8gq33v5c16q3wqchcq77p"))
+ ;; Taken from
+ ;; <https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/rili/moderinze_cpp.patch>.
+ ;; It doesn't build otherwise.
+ (patches (search-patches "ri-li-modernize_cpp.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Remove "gentoo" subdirectory from Makefile, as it is
+ ;; missing a make file and generates a build failure.
+ (add-after 'configure 'fix-build
+ (lambda _
+ (substitute* "Makefile"
+ ((" gentoo") ""))
+ #t))
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications"))
+ (pixmaps (string-append out "/share/pixmaps")))
+ (for-each (lambda (f) (install-file f pixmaps))
+ (find-files "data" "\\.(png|ico)$"))
+ (mkdir-p apps)
+ (with-output-to-file (string-append apps "/ri-li.desktop")
+ (lambda _
+ (format #t
+ "[Desktop Entry]~@
+ Name=Ri-li~@
+ Exec=~a/bin/Ri_li~@
+ Icon=~a/Ri-li-icon-32x32.png~@
+ Categories=Game;ArcadeGame;~@
+ Keywords=toy;train;wooden;snake-like;engine;~@
+ Comment=a toy simulator game~@
+ Comment[de]=Ein Spiel mit einem kleinen Zug~@
+ Comment[fr]=un jeu de petit train~@
+ Comment[ro_RO]=un joc cu un tren de jucărie~@
+ Terminal=false~@
+ Type=Application~%"
+ out pixmaps))))
+ #t))
+ (add-after 'install-desktop-file 'remove-spurious-files
+ ;; Delete redundant files already installed somewhere else.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each delete-file
+ (find-files (string-append out "/share/Ri-li")
+ "\\.(png|ico)|COPYING"))
+ #t))))))
+ (inputs
+ `(("sdl" ,(sdl-union (list sdl sdl-mixer)))))
+ (home-page "http://www.ri-li.org")
+ (synopsis "Toy train simulation game")
+ (description "Ri-li is a game in which you drive a wooden toy
+steam locomotive across many levels and collect all the coaches to
+win.")
+ ;; The project is dual-licensed GPL2+ and GPL3+.
+ (license (list license:gpl2+ license:gpl3+))))
+
+(define-public freeorion
+ (package
+ (name "freeorion")
+ (version "0.4.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/freeorion/freeorion.git")
+ ;; Most recent stable release uses boost_signals (v1) which was
+ ;; later replaced with boost-signals2 and no longer exists. This
+ ;; commit builds and runs.
+ ;;
+ ;; TODO: Update this when the next stable release when it is
+ ;; available.
+ (commit "470d0711537804df3c2ca25532f674ab4bec58af")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wsw632l1cj17px6i88nqjzs0dngp5rsr67n6qkkjlfjfxi69j0f"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; There are some bundled fonts.
+ (for-each delete-file-recursively '("default/data/fonts"))
+ #t))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f ;no test
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unbundle-fonts
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((roboto-dir (string-append (assoc-ref inputs "font-roboto")
+ "/share/fonts/truetype/")))
+ (substitute* "UI/ClientUI.cpp"
+ (("\\(GetRootDataDir.*?Roboto-(Bold|Regular)\\.ttf\"\\)\\.string\\(\\)\\);"
+ all type)
+ (string-append "\"" roboto-dir "Roboto-" type ".ttf\");")))
+ #t))))))
+ (inputs
+ `(("boost" ,boost)
+ ("boost_signals" ,boost-signals2)
+ ("font-dejavu" ,font-dejavu)
+ ("font-roboto" ,font-google-roboto)
+ ("freetype2" ,freetype)
+ ("glew" ,glew)
+ ("glu" ,glu)
+ ("libogg" ,libogg)
+ ("libpng" ,libpng)
+ ("libvorbis" ,libvorbis)
+ ("openal" ,openal)
+ ("python2" ,python-2.7)
+ ("sdl2" ,sdl2)
+ ("zlib" ,zlib)))
+ (home-page "https://www.freeorion.org/index.php/Main_Page")
+ (synopsis "Turn-based space empire and galactic conquest computer game")
+ (description
+ "FreeOrion is a turn-based space empire and galactic conquest (4X)
+computer game being designed and built by the FreeOrion project. Control an
+empire with the goal of exploring the galaxy, expanding your territory,
+exploiting the resources, and exterminating rival alien empires. FreeOrion is
+inspired by the tradition of the Master of Orion games, but is not a clone or
+remake of that series or any other game.")
+ ;; Source code is released under gpl2. Artwork, music and sounds, and
+ ;; in-game text are released under cc-by-sa3.0. Game content scripts are
+ ;; released under both gpl2 and cc-by-sa3.0. Bundled Gigi library is
+ ;; released under lgpl2.1+.
+ (license (list license:gpl2 license:cc-by-sa3.0 license:lgpl2.1+))))
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index c190049212..70bc8db4c1 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -49,7 +49,7 @@
(define-public babl
(package
(name "babl")
- (version "0.1.64")
+ (version "0.1.66")
(source (origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -63,7 +63,7 @@
"/babl-" version ".tar.bz2")))
(sha256
(base32
- "1gsqs5spgla86y9g11riryvw7015asik7y22maainl83nhq4sxxv"))))
+ "0qx1dwbinxihwl2lmxi60qiqi402jlrdcnixx14kk6j88n9xi79n"))))
(build-system gnu-build-system)
(home-page "http://gegl.org/babl/")
(synopsis "Image pixel format conversion library")
@@ -118,7 +118,7 @@ buffers.")
(define-public gimp
(package
(name "gimp")
- (version "2.10.10")
+ (version "2.10.12")
(source (origin
(method url-fetch)
(uri (string-append "https://download.gimp.org/pub/gimp/v"
@@ -126,7 +126,7 @@ buffers.")
"/gimp-" version ".tar.bz2"))
(sha256
(base32
- "0xwck5nbpb945s1cyij3kfqw1pchbhx8i5vf5hgywyjw4r1z5l8j"))))
+ "0wdcr8d2ink4swn5r4v13bsiya6s3xm4ya97sdbhs4l40y7bb03x"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 9 MiB of gtk-doc HTML
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index b5ddc19ef9..ab9ed0b1bf 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -80,6 +80,7 @@
(package
(name "dbus")
(version "1.12.12")
+ (replacement dbus/fixed)
(source (origin
(method url-fetch)
(uri (string-append
@@ -146,6 +147,14 @@ or through unencrypted TCP/IP suitable for use behind a firewall with
shared NFS home directories.")
(license license:gpl2+))) ; or Academic Free License 2.1
+(define dbus/fixed
+ (package
+ (inherit dbus)
+ (source (origin
+ (inherit (package-source dbus))
+ (patches (append (search-patches "dbus-CVE-2019-12749.patch")
+ (origin-patches (package-source dbus))))))))
+
(define glib
(package
(name "glib")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 875d28caee..ad6b9203b9 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -36,6 +36,7 @@
;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
+;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -6880,6 +6881,38 @@ functionality and behavior.")
(home-page "https://extensions.gnome.org/")
(license license:gpl3+)))
+(define-public numix-theme
+ (package
+ (name "numix-theme")
+ (version "2.6.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/numixproject/numix-gtk-theme.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check))))
+ (native-inputs
+ `(("glib:bin" ,glib "bin") ; for glib-compile-schemas
+ ("gnome-shell" ,gnome-shell)
+ ("gtk+" ,gtk+)
+ ("xmllint" ,libxml2)
+ ("ruby-sass" ,ruby-sass)))
+ (synopsis "Flat theme with light and dark elements")
+ (description "Numix is a modern flat theme with a combination of light and
+dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
+ (home-page "https://numixproject.github.io")
+ (license license:gpl3+)))
+
(define-public arc-theme
(package
(name "arc-theme")
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 09fad6a268..f2f8647730 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -146,14 +146,14 @@ tool to extract metadata from a file and print the results.")
(define-public libmicrohttpd
(package
(name "libmicrohttpd")
- (version "0.9.63")
+ (version "0.9.64")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
version ".tar.gz"))
(sha256
(base32
- "173lj66crwvhzwp1r812sc5h1hda7g6lb9l1y5zf7w3pw4dnzhrp"))))
+ "03imzkd1hl2mkkpi84vg5xq9x6b58gwsv86ym85km0lhb7nxi4p7"))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index ba8d31eb25..abd1d6f419 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -940,8 +940,8 @@ files, to verify signatures, and to manage the private and public keys.")
(version "0.10.3")
(source (origin
(method url-fetch)
- (uri (string-append "https://gaffer.ptitcanardnoir.org/"
- "intrigeri/files/parcimonie/App-Parcimonie-"
+ (uri (string-append "https://gaffer.boum.org/intrigeri/files/"
+ "parcimonie/App-Parcimonie-"
version ".tar.gz"))
(sha256
(base32
@@ -1011,7 +1011,7 @@ files, to verify signatures, and to manage the private and public keys.")
`("PERL5LIB" ":"
prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
#t))))))
- (home-page "https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/")
+ (home-page "https://gaffer.boum.org/intrigeri/code/parcimonie/")
(synopsis "Incrementally refreshes a GnuPG keyring")
(description "Parcimonie incrementaly refreshes a GnuPG keyring in a way
that makes it hard to correlate the keyring content to an individual, and
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index badb7f867f..7c9994f128 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -36,7 +36,7 @@
(define-public gpodder
(package
(name "gpodder")
- (version "3.10.7")
+ (version "3.10.9")
(source
(origin
(method git-fetch)
@@ -45,7 +45,7 @@
(commit version)))
(sha256
(base32
- "0sx9rj6dpvd2xz7lak2yi0zlgr3lp2ng1fw23s39la9ly4g1835j"))
+ "1sdmr1sq1d4p492zp9kq3npl7p56yr0pr470z9r6xxcylax5mhfq"))
(file-name (git-file-name name version))))
(build-system python-build-system)
(native-inputs
@@ -81,12 +81,12 @@
(for-each
(lambda (f)
(chmod f #o664))
- (find-files "po"))))
+ (find-files "po"))
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(setenv "PREFIX" (assoc-ref outputs "out"))
- (invoke "make" "install")
- #t))
+ (invoke "make" "install")))
(add-after 'install 'wrap-gpodder
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 66e091ddbf..75212ed60e 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -175,16 +175,16 @@ coordinates as well as partial support for adjustments in global coordinate syst
(define-public gpxsee
(package
(name "gpxsee")
- (version "4.19")
+ (version "7.8")
(source (origin
- (method url-fetch)
- (uri
- (string-append "https://github.com/tumic0/GPXSee/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tumic0/GPXSee")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "00j0gjldw1kn3i45dppld1pz8r4s1g7lw89k7gfvvqbjjyjih1wg"))))
+ "1ymqz4wrl9ghkyyqi2vrnlyvz3fc84s3p8a1dkiqlvyvj360ck9j"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -195,27 +195,16 @@ coordinates as well as partial support for adjustments in global coordinate syst
(for-each (lambda (file)
(invoke "lrelease" file))
(find-files "lang" "\\.ts"))
- (substitute* "src/config.h"
- (("/usr/share/gpxsee")
- (string-append
- (assoc-ref outputs "out") "/share/gpxsee")))
(invoke "qmake"
(string-append "PREFIX="
- (assoc-ref outputs "out")))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share/gpxsee/")))
- (install-file "GPXSee" (string-append out "/bin/GPXSee"))
- (install-file "pkg/maps.txt" share))
- #t)))))
+ (assoc-ref outputs "out"))))))))
(inputs
`(("qtbase" ,qtbase)))
(native-inputs
`(("qttools" ,qttools)))
- (home-page "http://www.gpxsee.org")
- (synopsis "GPX file viewer and analyzer")
+ (home-page "https://www.gpxsee.org")
+ (synopsis "GPS log file viewer and analyzer")
(description
- "GPXSee is a Qt-based GPS log file viewer and analyzer that supports GPX,
-TCX, KML, FIT, IGC and NMEA files.")
+ "GPXSee is a Qt-based GPS log file viewer and analyzer that supports
+all common GPS log file formats.")
(license license:gpl3)))
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 36d0467175..8b06aaa0e9 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,6 +32,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bioconductor)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages check)
@@ -446,3 +448,55 @@ they can fit in memory). The core function is @code{find_partition} which
finds the optimal partition using the Leiden algorithm, which is an extension
of the Louvain algorithm, for a number of different methods.")
(license license:gpl3+)))
+
+(define-public edge-addition-planarity-suite
+ (package
+ (name "edge-addition-planarity-suite")
+ (version "3.0.0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://github.com/graph-algorithms/"
+ name))
+ (commit (string-append "Version_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "01cm7ay1njkfsdnmnvh5zwc7wg7x189hq1vbfhh9p3ihrbnmqzh8"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (synopsis "Embedding of planar graphs")
+ (description "The package provides a reference implementation of the
+linear time edge addition algorithm for embedding planar graphs and
+isolating planarity obstructions.")
+ (license license:bsd-3)
+ (home-page
+ "https://github.com/graph-algorithms/edge-addition-planarity-suite")))
+
+(define-public rw
+ (package
+ (name "rw")
+ ;; There is a version 0.8, but the tarball is broken with symlinks
+ ;; to /usr/share.
+ (version "0.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/rankwidth/"
+ "rw-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1rv2v42x2506x7f10349m1wpmmfxrv9l032bkminni2gbip9cjg0"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("igraph" ,igraph)))
+ (home-page "https://sourceforge.net/projects/rankwidth/")
+ (synopsis "Rank-width and rank-decomposition of graphs")
+ (description "rw computes rank-width and rank-decompositions
+of graphs.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index aee908a6f5..c02606f919 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -60,6 +60,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages hurd)
#:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages linux)
@@ -68,6 +69,7 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages noweb)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -75,6 +77,7 @@
#:use-module (gnu packages sdl)
#:use-module (gnu packages slang)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
@@ -1976,11 +1979,11 @@ format is also supported.")
(deprecated-package "mcron2" mcron))
(define-public guile-picture-language
- (let ((commit "1ea8b78a8bceb4f7e5eaeb3e76987072267f99bb")
- (revision "2"))
+ (let ((commit "91d10c96708d732145006dd2802acc4de08b632e")
+ (revision "1"))
(package
(name "guile-picture-language")
- (version (git-version "0" revision commit))
+ (version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1988,10 +1991,16 @@ format is also supported.")
(commit commit)))
(sha256
(base32
- "1rvq6q2zq21x7dx0qq1hn568wglsl4bkd8gacbarcx1fs0rrxcqw"))))
- (build-system guile-build-system)
+ "1ydvw9dvssdvlvhh1dr8inyzy2x6m41qgp8hsivca1xysr4gc23a"))))
+ (build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.2)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("imagemagick" ,imagemagick)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))
(home-page "https://git.elephly.net/software/guile-picture-language.git")
(synopsis "Picture language for Guile")
(description
@@ -2154,20 +2163,20 @@ serializing continuations or delimited continuations.")
(license license:lgpl2.0+))))
(define-public python-on-guile
- (let ((commit "0cb7c2b2fff4338ca6153473f3f5c409a818f293")
- (revision "1"))
+ (let ((commit "058c596cd3886447da31171e1026d4d19f5f5313")
+ (revision "2"))
(package
(name "python-on-guile")
(version (git-version "0.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.com/python-on-guile/python-on-guile.git")
+ (url "https://git.elephly.net/software/python-on-guile.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
- "0kpz08rrp5mwcf5ksc4flgrw992syham9x49dn9wq9w31bpcpnby"))))
+ "0ppyh5kkhsph5kc091p2b5a3alnj3wnlx8jr5xpyhrsj0vx9cqph"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; not supported
@@ -2176,12 +2185,7 @@ serializing continuations or delimited continuations.")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
- (lambda _ (chdir "modules") #t))
- (add-after 'chdir 'use-canonical-directory-for-go-files
- (lambda _
- (substitute* "Makefile.am"
- (("/ccache") "/site-ccache"))
- #t)))))
+ (lambda _ (chdir "modules") #t)))))
(inputs
`(("guile" ,guile-2.2)))
(propagated-inputs
@@ -2238,43 +2242,40 @@ list of components. This module takes care of that for you.")
(license license:lgpl3+)))
(define-public guile-gi
- (let ((commit "26e885219ae6b31a83766564a2ecfe8c4532346f")
- (revision "1"))
- (package
- (name "guile-gi")
- (version (string-append "0.0.1-" revision "." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/spk121/guile-gi.git")
- (commit commit)))
- (file-name (string-append name "-" version))
- (sha256
- (base32
- "1prbzhr4sqqihb34l6yfrz6sd8nghwd3q9wvbm36jnl2n3z2nxj8"))))
- (build-system gnu-build-system)
- (native-inputs `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gettext" ,gnu-gettext)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)
- ("texinfo" ,texinfo)))
- (propagated-inputs `(("glib" ,glib)
- ("gobject-introspection" ,gobject-introspection)
- ("gssettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("gtk+" ,gtk+)
- ("guile-lib" ,guile-lib)
- ("webkitgtk" ,webkitgtk)))
- (inputs `(("guile" ,guile-2.2)))
- (arguments
- `(#:configure-flags '("--with-gnu-filesystem-hierarchy")))
- (home-page "https://github.com/spk121/guile-gi")
- (synopsis "GObject bindings for Guile")
- (description
- "Guile-GI is a library for Guile that allows using GObject-based
+ (package
+ (name "guile-gi")
+ (version "0.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://lonelycactus.com/tarball/guile_gi-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0hs0viqzff7nzgcmyw721ima1jyymrlzrcycpgwrs6iprscxvqwn"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--with-gnu-filesystem-hierarchy")
+ ;; The atomic_int_set test does not actually fail.
+ #:make-flags '("XFAIL_TESTS=strjoinv.scm")))
+ (native-inputs
+ `(("gettext" ,gnu-gettext)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("glib" ,glib)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gssettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gtk+" ,gtk+)
+ ("guile-lib" ,guile-lib)
+ ("webkitgtk" ,webkitgtk)))
+ (inputs `(("guile" ,guile-2.2)))
+ (home-page "https://github.com/spk121/guile-gi")
+ (synopsis "GObject bindings for Guile")
+ (description
+ "Guile-GI is a library for Guile that allows using GObject-based
libraries, such as GTK+3. Its README comes with the disclaimer: This is
pre-alpha code.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public guile-srfi-159
(let ((commit "1bd98abda2ae4ef8f36761a167903e55c6bda7bb")
@@ -2305,3 +2306,81 @@ formatting combinators specified by
@uref{https://srfi.schemers.org/srfi-159/srfi-159.html, SRFI-159}. These are
more expressive and flexible than the traditional @code{format} procedure.")
(license license:bsd-3))))
+
+(define-public emacsy
+ (let ((commit "7d49cc1425d5d209bdb82cac0d8ea0694b8b3784")
+ (revision "4"))
+ (package
+ (name "emacsy")
+ (version (string-append "0.1.2-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/janneke/emacsy.git")
+ (commit commit)))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "0k9yns1v8zn135w60sx96nqs2bm2p2dvcvlm987hkw4lbff9ii6i"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("emacsy-webkit-gtk"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/janneke/emacsy-webkit-gtk.git")
+ (commit "35ded1b3e997fd779a17e0c4a2c73741718562d9")))
+ (file-name (string-append "emacsy-webkit-gtk" "-" version))
+ (sha256
+ (base32
+ "1gp0li2rbp6in926r3hrww6cnh864pp46v1din2pgmd7vzzl7kg0"))))
+ ("hello-emacsy"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/janneke/hello-emacsy.git")
+ (commit "2c117e5286a261be4ff24938f3ae1d348396c538")))
+ (file-name (string-append "hello-emacsy" "-" version))
+ (sha256
+ (base32
+ "15ykd7s8axcy8ym4v71fgal4x28fxnim0pv0jmpi3dnhizr63zqn"))))
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("bzip2" ,bzip2)
+ ("guile" ,guile-2.2)
+ ("gettext" ,gnu-gettext)
+ ("libtool" ,libtool)
+ ("noweb" ,noweb)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)
+ ("texlive" ,texlive)))
+ (propagated-inputs
+ `(("guile-lib" ,guile-lib)
+ ("guile-readline" ,guile-readline)
+ ("freeglut" ,freeglut)
+ ("gssettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("webkitgtk" ,webkitgtk)))
+ (inputs `(("guile" ,guile-2.2)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-examples
+ (lambda _
+ (copy-recursively (assoc-ref %build-inputs "emacsy-webkit-gtk")
+ "example/emacsy-webkit-gtk")
+ (copy-recursively (assoc-ref %build-inputs "hello-emacsy")
+ "example/hello-emacsy")))
+ (add-before 'configure 'setenv
+ (lambda _
+ (setenv "GUILE_AUTO_COMPILE" "0"))))))
+ (home-page "https://github.com/shanecelis/emacsy/")
+ (synopsis "Embeddable GNU Emacs-like library using Guile")
+ (description
+ "Emacsy is an embeddable GNU Emacs-like library that uses GNU Guile
+as extension language. Emacsy can give a C program an Emacsy feel with
+keymaps, minibuffer, recordable macros, history, tab completion, major
+and minor modes, etc., and can also be used as a pure Guile library. It
+comes with a simple counter example using GLUT and browser examples in C
+using gtk+-3 and webkitgtk.")
+ (license license:gpl3+))))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 67825ffc30..f0a53e7c39 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -286,6 +286,18 @@ without requiring the source code to be rewritten.")
(max-silent-time . 36000))))) ;10 hours (needed on ARM
; when heavily loaded)
+(define-public guile-2.2.5
+ (package
+ (inherit guile-2.2)
+ (version "2.2.5")
+ (source (origin
+ (inherit (package-source guile-2.2))
+ (uri (string-append "mirror://gnu/guile/guile-" version
+ ".tar.xz"))
+ (sha256
+ (base32
+ "19w5ws1jvs01dpv756qv2cgs37rsnwq1f4f07mj0wra35pqp6c7w"))))))
+
(define-public guile-next
;; This is the upcoming Guile 3.0, with JIT support.
(let ((commit "6f3357b0df64c4be17e72079864c09a542f1c779")
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index d3b3a51294..851bea05bf 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -166,14 +166,14 @@ SILC and ICB protocols via plugins.")
(define-public weechat
(package
(name "weechat")
- (version "2.1")
+ (version "2.5")
(source (origin
(method url-fetch)
(uri (string-append "https://weechat.org/files/src/weechat-"
version ".tar.xz"))
(sha256
(base32
- "0f7d2vdbxc5kgjl7lkamnbxvidgxwa8f9j3nr9fd4gr4z0gzi86d"))
+ "09sc5lf7z70x3iw87q4zh8rbyngsw89pwnzs5jk195zzqdspgj2j"))
(patches (search-patches "weechat-python.patch"))))
(build-system cmake-build-system)
(native-inputs
@@ -212,7 +212,7 @@ SILC and ICB protocols via plugins.")
((".*\\$\\{plugin.name\\} == (javascript|php|ruby)" all)
(string-append "// SKIP" all)))
(substitute* "tests/scripts/test-scripts.cpp"
- ((".*\\{ \"(jvascript|php|ruby)\", " all) ; sic
+ ((".*\\{ \"(javascript|php|ruby)\", " all)
(string-append "// SKIP" all)))
#t))
(add-after 'install 'wrap
diff --git a/gnu/packages/kawa.scm b/gnu/packages/kawa.scm
new file mode 100644
index 0000000000..5771eeda8e
--- /dev/null
+++ b/gnu/packages/kawa.scm
@@ -0,0 +1,53 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages kawa)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages java))
+
+(define-public kawa
+ (package
+ (name "kawa")
+ (version "3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/kawa/kawa-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1k9qpydc64ar4aqyg3q7jmmxy503ayj85227qfhc5n6ngchqavhy"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-build? #f
+ #:parallel-tests? #f))
+ (inputs
+ `(("icedtea" ,icedtea-8 "jdk")))
+ (home-page "https://www.gnu.org/software/kawa/")
+ (synopsis "Java framework and implementation of Scheme, Elisp, and more")
+ (description
+ "GNU Kawa is an implementation of the Scheme programming language that
+is built on top of the Java platform. It is thus conveniently integrated
+with Java and benefits from this by having a compiler, optional static
+typing, and so on. Kawa also serves as a framework for implementing other
+programming languages on the Java platform. Included in Kawa is qexo, a
+partial implementation of XQuery in Java.")
+ (license license:expat)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index b6887349fa..4f659e13f8 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -430,8 +430,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
It has been modified to remove all non-free binary blobs.")
(license license:gpl2)))
-(define %linux-libre-version "5.1.8")
-(define %linux-libre-hash "1vkirlz9vsvym8fdbvj308n3hj8f9j8n9m267x0dhlgbmig570j2")
+(define %linux-libre-version "5.1.11")
+(define %linux-libre-hash "15hmqycsggqd9bwrf229b7f0pfznzs03kpzcwrd9j867pvgwyl8c")
(define %linux-libre-5.1-patches
(list %boot-logo-patch
@@ -448,8 +448,8 @@ It has been modified to remove all non-free binary blobs.")
(make-linux-libre-headers %linux-libre-version
%linux-libre-hash))
-(define %linux-libre-4.19-version "4.19.49")
-(define %linux-libre-4.19-hash "0dxmm8190h0g5indj3sqfipkji10y3icr8xnf7bbz7086nkkrcvz")
+(define %linux-libre-4.19-version "4.19.52")
+(define %linux-libre-4.19-hash "1wsrgrskmvipm7j4kzir93p9dp3iy49522163ghfxx71b1b2v4dg")
(define %linux-libre-4.19-patches
(list %boot-logo-patch
@@ -466,8 +466,8 @@ It has been modified to remove all non-free binary blobs.")
(make-linux-libre-headers %linux-libre-4.19-version
%linux-libre-4.19-hash))
-(define %linux-libre-4.14-version "4.14.124")
-(define %linux-libre-4.14-hash "0z9iaz1rcm9472rjvcihmq65ygyks07j6kbiqm989r9rb4dw6ghg")
+(define %linux-libre-4.14-version "4.14.127")
+(define %linux-libre-4.14-hash "0dkzgxfzzc6n3k2x8nzzx98c6y3fhsr695rm46ahvg7fdg3vgcmi")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@@ -480,14 +480,14 @@ It has been modified to remove all non-free binary blobs.")
%linux-libre-4.14-hash))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.180"
- "062ybvc5ljpbn8llj62zsvvykl5rikn0jfzh62nrrdsnj7mvi77a"
+ (make-linux-libre "4.9.182"
+ "1615v8ywwdm204bimq2cf6qv0zas14yagpr8lk9a5zqxas4p4rns"
'("x86_64-linux" "i686-linux")
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.180"
- "157kfs4slii86q9yrspvqdynpiv6rff80hrrn569v6h4nkc4b7ag"
+ (make-linux-libre "4.4.182"
+ "0ggs5pyjr7a9mldskfbsybzxlb3lmfbhxg5q2qpzxnh1c8wcn53h"
'("x86_64-linux" "i686-linux")
#:configuration-file kernel-config
#:extra-options
@@ -4788,14 +4788,14 @@ re-use code and to avoid re-inventing the wheel.")
(define-public libnftnl
(package
(name "libnftnl")
- (version "1.1.2")
+ (version "1.1.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://netfilter.org/libnftnl/"
"libnftnl-" version ".tar.bz2"))
(sha256
- (base32 "0pffmsv41alsn5ac7mwnb9fh3qpwzqk13jrzn6c5i71wq6kbgix5"))))
+ (base32 "03xszkcpqk3s1rqc6vh7g5j13kh3d3yjnvjhk5scds3an39rgp92"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index f1f3a4e8d3..24a47567d0 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -4,6 +4,8 @@
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
+;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +28,7 @@
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages)
@@ -181,3 +184,30 @@ commands, displaying the results via a web interface.")
"MultiTail allows you to monitor logfiles and command output in multiple
windows in a terminal, colorize, filter and merge.")
(license license:gpl2+)))
+
+(define-public spdlog
+ (package
+ (name "spdlog")
+ (version "1.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gabime/spdlog.git")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1rd4zmrlkcdjx0m0wpmjm1g9srj7jak6ai08qkhbn2lsn0niifzd"))))
+ (build-system cmake-build-system)
+ ;; TODO run benchmark. Currently not possible, as adding
+ ;; (gnu packages benchmark) forms a dependency cycle
+ (arguments
+ '(#:configure-flags
+ (list "-DSPDLOG_BUILD_BENCH=OFF")))
+ (home-page "https://github.com/gabime/spdlog")
+ (synopsis "Fast C++ logging library")
+ (description "Spdlog is a very fast header-only/compiled C++ logging
+library.")
+ ;; spdlog is under Expat license, but the bundled fmt library in
+ ;; "include/spdlog/fmt/bundled" is under BSD 2 clause license.
+ (license (list license:expat license:bsd-2))))
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index b330b2357f..2dc7dc81ef 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -53,6 +54,7 @@
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
@@ -67,6 +69,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages serialization)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages swig)
@@ -668,7 +671,7 @@ geometric models.")
`(#:configure-flags
(list ,@(match (%current-system)
((or "x86_64-linux" "i686-linux")
- '("-DCMAKE_CXX_FLAGS=-msse4.1"))
+ '("-DCMAKE_CXX_FLAGS=-msse2"))
(_ '())))
#:phases
(modify-phases %standard-phases
@@ -792,7 +795,7 @@ computing environments.")
(define-public python-scikit-learn
(package
(name "python-scikit-learn")
- (version "0.20.1")
+ (version "0.20.3")
(source
(origin
(method git-fetch)
@@ -802,7 +805,7 @@ computing environments.")
(file-name (git-file-name name version))
(sha256
(base32
- "0fkhwg3xn1s7ln9q1szq6kwc4jhwvjh8w4kmv9wcrqy7cq3lbv0d"))))
+ "08aaby5zphfxy83mggg35bwyka7wk91l2qijh8kk0bl08dikq8dl"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1753,3 +1756,162 @@ API for beginners that allows users to build models quickly by plugging
together building blocks and a subclassing API with an imperative style for
advanced research.")
(license license:asl2.0)))
+
+(define-public python-iml
+ (package
+ (name "python-iml")
+ (version "0.6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "iml" version))
+ (sha256
+ (base32
+ "1k8szlpm19rcwcxdny9qdm3gmaqq8akb4xlvrzyz8c2d679aak6l"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("ipython" ,python-ipython)
+ ("nose" ,python-nose)
+ ("numpy" ,python-numpy)
+ ("pandas" ,python-pandas)
+ ("scipy" ,python-scipy)))
+ (home-page "http://github.com/interpretable-ml/iml")
+ (synopsis "Interpretable Machine Learning (iML) package")
+ (description "Interpretable ML (iML) is a set of data type objects,
+visualizations, and interfaces that can be used by any method designed to
+explain the predictions of machine learning models (or really the output of
+any function). It currently contains the interface and IO code from the Shap
+project, and it will potentially also do the same for the Lime project.")
+ (license license:expat)))
+
+(define-public python-keras-applications
+ (package
+ (name "python-keras-applications")
+ (version "1.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Keras_Applications" version))
+ (sha256
+ (base32
+ "1rcz31ca4axa6kzhjx4lwqxbg4wvlljkj8qj9a7p9sfd5fhzjyam"))))
+ (build-system python-build-system)
+ ;; The tests require Keras, but this package is needed to build Keras.
+ (arguments '(#:tests? #f))
+ (propagated-inputs
+ `(("python-h5py" ,python-h5py)
+ ("python-numpy" ,python-numpy)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-pep8" ,python-pytest-pep8)
+ ("python-pytest-xdist" ,python-pytest-xdist)))
+ (home-page "https://github.com/keras-team/keras-applications")
+ (synopsis "Reference implementations of popular deep learning models")
+ (description
+ "This package provides reference implementations of popular deep learning
+models for use with the Keras deep learning framework.")
+ (license license:expat)))
+
+(define-public python-keras-preprocessing
+ (package
+ (name "python-keras-preprocessing")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Keras_Preprocessing" version))
+ (sha256
+ (base32
+ "1r98nm4k1svsqjyaqkfk23i31bl1kcfcyp7094yyj3c43phfp3as"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)
+ ("python-six" ,python-six)))
+ (native-inputs
+ `(("python-pandas" ,python-pandas)
+ ("python-pillow" ,python-pillow)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-xdist" ,python-pytest-xdist)
+ ("tensorflow" ,tensorflow)))
+ (home-page "https://github.com/keras-team/keras-preprocessing/")
+ (synopsis "Data preprocessing and augmentation for deep learning models")
+ (description
+ "Keras Preprocessing is the data preprocessing and data augmentation
+module of the Keras deep learning library. It provides utilities for working
+with image data, text data, and sequence data.")
+ (license license:expat)))
+
+(define-public python-keras
+ (package
+ (name "python-keras")
+ (version "2.2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Keras" version))
+ (sha256
+ (base32
+ "1j8bsqzh49vjdxy6l1k4iwax5vpjzniynyd041xjavdzvfii1dlh"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-tests-for-unavailable-features
+ (lambda _
+ (delete-file "keras/backend/theano_backend.py")
+ (delete-file "keras/backend/cntk_backend.py")
+ (delete-file "tests/keras/backend/backend_test.py")
+
+ ;; FIXME: This doesn't work because Tensorflow is missing the
+ ;; coder ops library.
+ (delete-file "tests/keras/test_callbacks.py")
+ #t))
+ (replace 'check
+ (lambda _
+ ;; These tests attempt to download data files from the internet.
+ (delete-file "tests/integration_tests/test_datasets.py")
+ (delete-file "tests/integration_tests/imagenet_utils_test.py")
+
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) "/build/lib:"
+ (getenv "PYTHONPATH")))
+ (invoke "py.test" "-v"
+ "-p" "no:cacheprovider"
+ "--ignore" "keras/utils"))))))
+ (propagated-inputs
+ `(("python-h5py" ,python-h5py)
+ ("python-keras-applications" ,python-keras-applications)
+ ("python-keras-preprocessing" ,python-keras-preprocessing)
+ ("python-numpy" ,python-numpy)
+ ("python-pydot" ,python-pydot)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-scipy" ,python-scipy)
+ ("python-six" ,python-six)
+ ("tensorflow" ,tensorflow)
+ ("graphviz" ,graphviz)))
+ (native-inputs
+ `(("python-pandas" ,python-pandas)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-pep8" ,python-pytest-pep8)
+ ("python-pytest-timeout" ,python-pytest-timeout)
+ ("python-pytest-xdist" ,python-pytest-xdist)
+ ("python-sphinx" ,python-sphinx)
+ ("python-requests" ,python-requests)))
+ (home-page "https://github.com/keras-team/keras")
+ (synopsis "High-level deep learning framework")
+ (description "Keras is a high-level neural networks API, written in Python
+and capable of running on top of TensorFlow. It was developed with a focus on
+enabling fast experimentation. Use Keras if you need a deep learning library
+that:
+
+@itemize
+@item Allows for easy and fast prototyping (through user friendliness,
+ modularity, and extensibility).
+@item Supports both convolutional networks and recurrent networks, as well as
+ combinations of the two.
+@item Runs seamlessly on CPU and GPU.
+@end itemize\n")
+ (license license:expat)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 7f9dc8e13f..bf35d943ce 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -847,14 +847,14 @@ invoking @command{notifymuch} from the post-new hook.")
(define-public notmuch
(package
(name "notmuch")
- (version "0.29")
+ (version "0.29.1")
(source (origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
version ".tar.xz"))
(sha256
(base32
- "0rg4jp0wlsham76rx9fmlpmcbv3n9vsd81vrzqvh6jrwlnmjds88"))))
+ "0rg3rwghd3wivf3bmqcqpkkd5c779ld5hi363zjcw5fl6a7gqilq"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -863,7 +863,7 @@ invoking @command{notifymuch} from the post-new hook.")
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-build-system)
(guix build emacs-utils))
- #:make-flags (list "V=1") ; Verbose test output.
+ #:make-flags (list "V=1") ; verbose test output
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-notmuch-lib.el
(lambda _
@@ -894,7 +894,7 @@ invoking @command{notifymuch} from the post-new hook.")
(assoc-ref emacs:%standard-phases 'make-autoloads)))))
(native-inputs
`(("bash-completion" ,bash-completion)
- ("emacs" ,emacs-no-x) ; Minimal lacks libxml, needed for some tests.
+ ("emacs" ,emacs-no-x) ; -minimal lacks libxml, needed for some tests
("pkg-config" ,pkg-config)
("python" ,python)
("python-docutils" ,python-docutils)
@@ -2592,15 +2592,14 @@ tools and applications:
(define-public balsa
(package
(name "balsa")
- (version "2.5.6")
+ (version "2.5.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://pawsa.fedorapeople.org/balsa/"
name "-" version ".tar.bz2"))
(sha256
- (base32
- "17k6wcsl8gki7cskr3hhmfj6n54rha8ca3b6fzd8blsl5shsankx"))))
+ (base32 "0yfqhfpwm1qnwmbpr6dfn2f5w8a8xxq51pn8ypgg0fw973l1c1nx"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -2622,7 +2621,7 @@ tools and applications:
("gnutls" ,gnutls)
("gpgme" ,gpgme)
("gtk+" ,gtk+)
- ("gtksourceview" ,gtksourceview)
+ ("gtksourceview" ,gtksourceview-3)
("gtkspell3" ,gtkspell3)
("libcanberra" ,libcanberra)
("libesmtp" ,libesmtp)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index a0a077cf99..c2c7a57d75 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2016, 2017 John Darrington <jmd@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
@@ -290,13 +290,13 @@ programming language.")
(define-public units
(package
(name "units")
- (version "2.18")
+ (version "2.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/units/units-" version
".tar.gz"))
(sha256 (base32
- "0y26kj349i048y4z3xrk90bvciw2j6ds3rka7r7yn3183hirr5b4"))))
+ "0mk562g7dnidjgfgvkxxpvlba66fh1ykmfd9ylzvcln1vxmi6qj2"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline)
@@ -5003,3 +5003,42 @@ command-line tools, and an Application Programming Interface (API).
This package provides the static libraries required to run programs
compiled against the nauty library.")
(license license:asl2.0)))
+
+(define-public ppl
+ (package
+ (name "ppl")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.bugseng.com/products/ppl/download/"
+ "ftp/releases/" version
+ "/ppl-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1j5aji1g2vmdvc0gqz45n2ll2l2f6czca04wiyfl5g3sm3a6vhvb"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("m4", m4)))
+ (inputs
+ `(("glpk" ,glpk)
+ ("gmp", gmp)))
+ (home-page "https://www.bugseng.com/parma-polyhedra-library")
+ (synopsis
+ "Parma Polyhedra Library for computations with polyhedra")
+ (description
+ "The Parma Polyhedra Library (PPL) provides numerical abstractions
+especially targeted at applications in the field of analysis and
+verification of complex systems. These abstractions include convex
+polyhedra, defined as the intersection of a finite number of (open or
+closed) halfspaces, each described by a linear inequality (strict or
+non-strict) with rational coefficients; some special classes of polyhedra
+shapes that offer interesting complexity/precision tradeoffs; and grids
+which represent regularly spaced points that satisfy a set of linear
+congruence relations. The library also supports finite powersets and
+products of (any kind of) polyhedra and grids, a mixed integer linear
+programming problem solver using an exact-arithmetic version of the simplex
+algorithm, a parametric integer programming solver, and primitives for
+termination analysis via the automatic synthesis of linear ranking
+functions.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index afb1e025b4..ae887fa24d 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -29,6 +29,7 @@
#:use-module (gnu packages man)
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo)
#:use-module (guix build-system gnu)
#:use-module (guix download)
@@ -36,7 +37,7 @@
#:use-module (guix licenses)
#:use-module (guix packages))
-(define-public nyacc
+(define-public nyacc-0.86
(package
(name "nyacc")
(version "0.86.0")
@@ -59,6 +60,37 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(home-page "https://savannah.nongnu.org/projects/nyacc")
(license (list gpl3+ lgpl3+))))
+(define-public nyacc
+ (package
+ (inherit nyacc-0.86)
+ (version "0.94.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/nyacc/nyacc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "12qnzwm1n3j8z7hbr9hy2wka9a1aasm2rvnpnvdxkjcsbdzj8fn4"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* (find-files "." "^Makefile\\.in$")
+ (("^SITE_SCM_DIR =.*")
+ "SITE_SCM_DIR = \
+@prefix@/share/guile/site/@GUILE_EFFECTIVE_VERSION@\n")
+ (("^SITE_SCM_GO_DIR =.*")
+ "SITE_SCM_GO_DIR = \
+@prefix@/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")
+ (("^INFODIR =.*")
+ "INFODIR = @prefix@/share/info\n")
+ (("^DOCDIR =.*")
+ "DOCDIR = @prefix@/share/doc/$(PACKAGE_TARNAME)\n"))
+ #t))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("guile" ,guile-2.2)))))
+
(define-public mes
(package
(name "mes")
@@ -74,7 +106,10 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(supported-systems '("i686-linux" "x86_64-linux"))
(propagated-inputs
`(("mescc-tools" ,mescc-tools)
- ("nyacc" ,nyacc)))
+
+ ;; XXX: MesCC appears to enter an infinite loop (?) while building
+ ;; crt1.o when we switch to nyacc 0.94.
+ ("nyacc" ,nyacc-0.86)))
(native-inputs
`(("guile" ,guile-2.2)
,@(let ((target-system (or (%current-target-system)
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 1d75592795..7d46870c55 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -91,7 +91,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd
(package
(name "mpd")
- (version "0.21.9")
+ (version "0.21.10")
(source (origin
(method url-fetch)
(uri
@@ -100,10 +100,10 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz"))
(sha256
(base32
- "0ghda8g9q0bi6nrvl6n756d8f45spqpblkh77mnb4k9gmiv57qir"))))
+ "0fx9n6qmyb4ls17j7kl58i1ivg9wfx9zm9wyfnwzw7lcwdl56sqk"))))
(build-system meson-build-system)
(arguments
- `(#:configure-flags '("-Ddocumentation=true") ; The default is 'false'...
+ `(#:configure-flags '("-Ddocumentation=true") ; the default is 'false'...
#:phases
(modify-phases %standard-phases
(add-before 'configure 'expand-C++-include-path
@@ -171,7 +171,7 @@ protocol.")
(define-public mpd-mpc
(package
(name "mpd-mpc")
- (version "0.31")
+ (version "0.32")
(source (origin
(method url-fetch)
(uri
@@ -180,7 +180,7 @@ protocol.")
"/mpc-" version ".tar.xz"))
(sha256
(base32
- "0b9bsn4sl26xc6wdcms51x9yxznkxkppaycn8gnv4rd1m21kwdv2"))))
+ "1irilgz64pny7b8zygy5i74nfmlhgsawz0djx9mrj6g0gidxjqbr"))))
(build-system meson-build-system)
(inputs `(("libmpdclient" ,libmpdclient)))
(native-inputs
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index e3710b2de5..6f79dd49fc 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,15 +30,13 @@
(define-public nano
(package
(name "nano")
- (version "4.2")
+ (version "4.3")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://gnu/nano/nano-"
- version ".tar.xz"))
+ (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
(sha256
- (base32
- "1yaxqk6f1awnny0ywikdwb7mdv8xbipdpzsj28j1nf9fwvydwhqi"))))
+ (base32 "108dzj6azqmini9bvgl26r0q1y59s3nnrw75hfzv91bs50davlq0"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 2ea65f270c..3281387253 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -27,6 +27,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -549,7 +550,7 @@ and up to 1 Mbit/s downstream.")
(define-public whois
(package
(name "whois")
- (version "5.4.2")
+ (version "5.4.3")
(source
(origin
(method url-fetch)
@@ -557,7 +558,7 @@ and up to 1 Mbit/s downstream.")
name "_" version ".tar.xz"))
(sha256
(base32
- "0mqzs0g2qxd29ihammisg9qf4503sr7d4zas26zjz4an78xkmqzf"))))
+ "1hqg14k0q4979a1amgms4sa1d2iiid51rra3jyqmv63hkw189ypy"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
@@ -685,13 +686,13 @@ fashion.")
(define-public gandi.cli
(package
(name "gandi.cli")
- (version "1.4")
+ (version "1.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
- (base32 "1lfvb5npk99nz1lwhr5m67ia1kj35nqd6a2xp9mii28xgzsd5awk"))))
+ (base32 "110wc9zgxsrvw4yzp21p0ian5lcf7vhcpxhnmsc4fg9pzl2bwxd5"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -885,7 +886,7 @@ live network and disk I/O bandwidth monitor.")
(define-public aircrack-ng
(package
(name "aircrack-ng")
- (version "1.3")
+ (version "1.5.2")
(source
(origin
(method url-fetch)
@@ -893,7 +894,7 @@ live network and disk I/O bandwidth monitor.")
version ".tar.gz"))
(sha256
(base32
- "1jl30d0kibc82447fr3lgw75arik0l9729k94z76l7vl51y8mq4a"))))
+ "0hc2x17bxk2n00z8jj5jfwq3z41681fd19n018724il0cpkjyncy"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -2255,7 +2256,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.")
(define-public hcxtools
(package
(name "hcxtools")
- (version "5.1.4")
+ (version "5.1.6")
(source
(origin
(method git-fetch)
@@ -2263,7 +2264,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.")
(url "https://github.com/ZerBea/hcxtools.git")
(commit version)))
(sha256
- (base32 "1bkl0j6m5q091fas99s83aclcc5kfwacmkgmyg8565z2npvnj7nf"))
+ (base32 "05sjbmv2wq3nlmammrwxqc62c4sagjjgczzddr1jcqkf6kywzkl8"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
@@ -2298,7 +2299,7 @@ packets from wireless devices for use with hashcat or John the Ripper.")
(define-public hcxdumptool
(package
(name "hcxdumptool")
- (version "5.1.4")
+ (version "5.1.5")
(source
(origin
(method git-fetch)
@@ -2306,7 +2307,7 @@ packets from wireless devices for use with hashcat or John the Ripper.")
(url "https://github.com/ZerBea/hcxdumptool.git")
(commit version)))
(sha256
- (base32 "0h2cc2dfpc83325hwqkxwn0p8qfq5gh1dg0yb1nr8bnffy0b4r4v"))
+ (base32 "0xkzdvwpi6dq9wsrn882f2ljb7d5v2bvarq8gs6jm8znfx3y8hi2"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 94c844eec9..cdc35b4703 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,8 +27,10 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages parallel)
- #:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages)
@@ -40,6 +43,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
@@ -188,3 +192,50 @@ to SLURM. Using DRMAA, grid applications builders, portal developers and ISVs
can use the same high-level API to link their software with different
cluster/resource management systems.")
(license license:gpl3+)))
+
+(define-public python-slurm-magic
+ (let ((commit "73dd1a2b85799f7dae4b3f1cd9027536eff0c4d7")
+ (revision "0"))
+ (package
+ (name "python-slurm-magic")
+ (version (git-version "0.0" revision commit))
+ (home-page "https://github.com/NERSC/slurm-magic")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit commit)))
+ (sha256
+ (base32
+ "19pp2vs0wm8mx0arz9n6lw9wgyv70w9wyi4y6b91qc5j3bz5igfs"))
+ (file-name (git-file-name name version))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-before 'build 'set-slurm-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The '_execute' method tries to exec 'salloc'
+ ;; etc. from $PATH. Record the absolute file name
+ ;; instead.
+ (let ((slurm (assoc-ref inputs "slurm")))
+ (substitute* "slurm_magic.py"
+ (("name = (.*)$" _ value)
+ (string-append "name = \""
+ slurm "/bin/\" + "
+ value "\n")))
+ #t))))))
+ (inputs
+ `(("slurm" ,slurm)))
+ (propagated-inputs
+ `(("python-ipython" ,python-ipython)
+ ("python-pandas" ,python-pandas)))
+ (synopsis "Control the SLURM batch scheduler from Jupyter Notebook")
+ (description
+ "This package implements Jupyter/IPython
+@uref{http://ipython.readthedocs.io/en/stable/interactive/magics.html, magic
+commands} for interacting with the SLURM workload manager. SLURM magic simply
+wraps command-line executables and the commands themselves should look like
+their command-line counterparts. Commands are spawned via @code{subprocess}
+and output captured in the notebook. Whatever arguments are accepted by a
+SLURM command line executable are also accepted by the corresponding magic
+command---e.g., @code{%salloc}, @code{%sbatch}, etc.")
+ (license license:bsd-3))))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index ed890f73c3..10d04b1dbc 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Steve Sprang <scs@stevesprang.com>
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
@@ -108,7 +108,7 @@ human.")
(define-public keepassxc
(package
(name "keepassxc")
- (version "2.4.2")
+ (version "2.4.3")
(source
(origin
(method url-fetch)
@@ -117,7 +117,7 @@ human.")
version "-src.tar.xz"))
(sha256
(base32
- "0f31lmpbkw0wrhq0qa4yw5b51bjv7vqp3ikr355qcm905456vyhm"))))
+ "0d17izx6qvcsxsxlsmaa17rgn38fvxsp5yzqqf4pc11i44cm5jfp"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DWITH_XC_NETWORKING=YES"
diff --git a/gnu/packages/patches/benchmark-unbundle-googletest.patch b/gnu/packages/patches/benchmark-unbundle-googletest.patch
new file mode 100644
index 0000000000..4dce8f59f1
--- /dev/null
+++ b/gnu/packages/patches/benchmark-unbundle-googletest.patch
@@ -0,0 +1,69 @@
+From 5eb306618196ea78b8c9390e22ea2edce20760fe Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
+Date: Fri, 14 Jun 2019 22:15:49 +0200
+Subject: [PATCH] Remove googletest lookup from build system.
+
+---
+ cmake/GoogleTest.cmake | 18 +++++++++---------
+ cmake/GoogleTest.cmake.in | 12 ++++++------
+ 2 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/cmake/GoogleTest.cmake b/cmake/GoogleTest.cmake
+index fb7c6be..a6c473b 100644
+--- a/cmake/GoogleTest.cmake
++++ b/cmake/GoogleTest.cmake
+@@ -27,15 +27,15 @@ endif()
+ # settings on Windows
+ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+
+-include(${GOOGLETEST_PREFIX}/googletest-paths.cmake)
++#include(${GOOGLETEST_PREFIX}/googletest-paths.cmake)
+
+ # Add googletest directly to our build. This defines
+ # the gtest and gtest_main targets.
+-add_subdirectory(${GOOGLETEST_SOURCE_DIR}
+- ${GOOGLETEST_BINARY_DIR}
+- EXCLUDE_FROM_ALL)
+-
+-set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
+-set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest_main,INTERFACE_INCLUDE_DIRECTORIES>)
+-set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES>)
+-set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_INCLUDE_DIRECTORIES>)
++#add_subdirectory(${GOOGLETEST_SOURCE_DIR}
++# ${GOOGLETEST_BINARY_DIR}
++# EXCLUDE_FROM_ALL)
++
++#set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
++#set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest_main,INTERFACE_INCLUDE_DIRECTORIES>)
++#set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES>)
++#set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_INCLUDE_DIRECTORIES>)
+diff --git a/cmake/GoogleTest.cmake.in b/cmake/GoogleTest.cmake.in
+index 28818ee..13b0888 100644
+--- a/cmake/GoogleTest.cmake.in
++++ b/cmake/GoogleTest.cmake.in
+@@ -31,7 +31,7 @@ if(EXISTS "${GOOGLETEST_PATH}" AND IS_DIRECTORY "${GOOGLETEST_PATH}"
+ )
+ else()
+ if(NOT ALLOW_DOWNLOADING_GOOGLETEST)
+- message(SEND_ERROR "Did not find Google Test sources! Either pass correct path in GOOGLETEST_PATH, or enable ALLOW_DOWNLOADING_GOOGLETEST, or disable BENCHMARK_ENABLE_GTEST_TESTS / BENCHMARK_ENABLE_TESTING.")
++ message(WARNING "Did not find Google Test sources! Either pass correct path in GOOGLETEST_PATH, or enable ALLOW_DOWNLOADING_GOOGLETEST, or disable BENCHMARK_ENABLE_GTEST_TESTS / BENCHMARK_ENABLE_TESTING.")
+ else()
+ message(WARNING "Did not find Google Test sources! Fetching from web...")
+ ExternalProject_Add(
+@@ -51,8 +51,8 @@ else()
+ endif()
+ endif()
+
+-ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR)
+-file(WRITE googletest-paths.cmake
+-"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\")
+-set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\")
+-")
++#ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR)
++#file(WRITE googletest-paths.cmake
++#"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\")
++#set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\")
++#")
+--
+2.22.0
+
diff --git a/gnu/packages/patches/dbus-CVE-2019-12749.patch b/gnu/packages/patches/dbus-CVE-2019-12749.patch
new file mode 100644
index 0000000000..12106f4589
--- /dev/null
+++ b/gnu/packages/patches/dbus-CVE-2019-12749.patch
@@ -0,0 +1,116 @@
+From 47b1a4c41004bf494b87370987b222c934b19016 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <smcv@collabora.com>
+Date: Thu, 30 May 2019 12:53:03 +0100
+Subject: [PATCH] auth: Reject DBUS_COOKIE_SHA1 for users other than the server
+ owner
+
+The DBUS_COOKIE_SHA1 authentication mechanism aims to prove ownership
+of a shared home directory by having the server write a secret "cookie"
+into a .dbus-keyrings subdirectory of the desired identity's home
+directory with 0700 permissions, and having the client prove that it can
+read the cookie. This never actually worked for non-malicious clients in
+the case where server uid != client uid (unless the server and client
+both have privileges, such as Linux CAP_DAC_OVERRIDE or traditional
+Unix uid 0) because an unprivileged server would fail to write out the
+cookie, and an unprivileged client would be unable to read the resulting
+file owned by the server.
+
+Additionally, since dbus 1.7.10 we have checked that ~/.dbus-keyrings
+is owned by the uid of the server (a side-effect of a check added to
+harden our use of XDG_RUNTIME_DIR), further ruling out successful use
+by a non-malicious client with a uid differing from the server's.
+
+Joe Vennix of Apple Information Security discovered that the
+implementation of DBUS_COOKIE_SHA1 was susceptible to a symbolic link
+attack: a malicious client with write access to its own home directory
+could manipulate a ~/.dbus-keyrings symlink to cause the DBusServer to
+read and write in unintended locations. In the worst case this could
+result in the DBusServer reusing a cookie that is known to the
+malicious client, and treating that cookie as evidence that a subsequent
+client connection came from an attacker-chosen uid, allowing
+authentication bypass.
+
+This is mitigated by the fact that by default, the well-known system
+dbus-daemon (since 2003) and the well-known session dbus-daemon (in
+stable releases since dbus 1.10.0 in 2015) only accept the EXTERNAL
+authentication mechanism, and as a result will reject DBUS_COOKIE_SHA1
+at an early stage, before manipulating cookies. As a result, this
+vulnerability only applies to:
+
+* system or session dbus-daemons with non-standard configuration
+* third-party dbus-daemon invocations such as at-spi2-core (although
+ in practice at-spi2-core also only accepts EXTERNAL by default)
+* third-party uses of DBusServer such as the one in Upstart
+
+Avoiding symlink attacks in a portable way is difficult, because APIs
+like openat() and Linux /proc/self/fd are not universally available.
+However, because DBUS_COOKIE_SHA1 already doesn't work in practice for
+a non-matching uid, we can solve this vulnerability in an easier way
+without regressions, by rejecting it early (before looking at
+~/.dbus-keyrings) whenever the requested identity doesn't match the
+identity of the process hosting the DBusServer.
+
+Signed-off-by: Simon McVittie <smcv@collabora.com>
+Closes: https://gitlab.freedesktop.org/dbus/dbus/issues/269
+Closes: CVE-2019-12749
+---
+ dbus/dbus-auth.c | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/dbus/dbus-auth.c b/dbus/dbus-auth.c
+index 37d8d4c9..7390a9d5 100644
+--- a/dbus/dbus-auth.c
++++ b/dbus/dbus-auth.c
+@@ -529,6 +529,7 @@ sha1_handle_first_client_response (DBusAuth *auth,
+ DBusString tmp2;
+ dbus_bool_t retval = FALSE;
+ DBusError error = DBUS_ERROR_INIT;
++ DBusCredentials *myself = NULL;
+
+ _dbus_string_set_length (&auth->challenge, 0);
+
+@@ -565,6 +566,34 @@ sha1_handle_first_client_response (DBusAuth *auth,
+ return FALSE;
+ }
+
++ myself = _dbus_credentials_new_from_current_process ();
++
++ if (myself == NULL)
++ goto out;
++
++ if (!_dbus_credentials_same_user (myself, auth->desired_identity))
++ {
++ /*
++ * DBUS_COOKIE_SHA1 is not suitable for authenticating that the
++ * client is anyone other than the user owning the process
++ * containing the DBusServer: we probably aren't allowed to write
++ * to other users' home directories. Even if we can (for example
++ * uid 0 on traditional Unix or CAP_DAC_OVERRIDE on Linux), we
++ * must not, because the other user controls their home directory,
++ * and could carry out symlink attacks to make us read from or
++ * write to unintended locations. It's difficult to avoid symlink
++ * attacks in a portable way, so we just don't try. This isn't a
++ * regression, because DBUS_COOKIE_SHA1 never worked for other
++ * users anyway.
++ */
++ _dbus_verbose ("%s: client tried to authenticate as \"%s\", "
++ "but that doesn't match this process",
++ DBUS_AUTH_NAME (auth),
++ _dbus_string_get_const_data (data));
++ retval = send_rejected (auth);
++ goto out;
++ }
++
+ /* we cache the keyring for speed, so here we drop it if it's the
+ * wrong one. FIXME caching the keyring here is useless since we use
+ * a different DBusAuth for every connection.
+@@ -679,6 +708,9 @@ sha1_handle_first_client_response (DBusAuth *auth,
+ _dbus_string_zero (&tmp2);
+ _dbus_string_free (&tmp2);
+
++ if (myself != NULL)
++ _dbus_credentials_unref (myself);
++
+ return retval;
+ }
+
diff --git a/gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch b/gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch
new file mode 100644
index 0000000000..0b59387dc9
--- /dev/null
+++ b/gnu/packages/patches/dstat-fix-crash-when-specifying-delay.patch
@@ -0,0 +1,48 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Sun, 16 Jun 2019 02:34:10 +0200
+Subject: [PATCH] gnu: dstat: Fix crash when specifying a delay.
+
+Taken verbatim from a pull request[0] that will never be merged.
+
+[0]: https://github.com/dagwieers/dstat/pull/167
+
+From 220a785321b13b6df92a536080aca6ef1cb644ad Mon Sep 17 00:00:00 2001
+From: Falko Goettsch <falko@uw.edu>
+Date: Mon, 11 Mar 2019 20:12:49 -0700
+Subject: [PATCH] Fixed bug when specifying a delay
+
+The division in the 'loop' calculation in perform() was returning floating point values
+after the migration to Python 3, rather than rounding down. Changed to floor division.
+
+I think the floating point values kept 'loop == 0' from ever being
+true and the variables inside that conditional were never initialized,
+causing the following error when a delay other than 1 was specified:
+
+You did not select any stats, using -cdngy by default.
+Traceback (most recent call last):
+ File "/home/falko/repos/dstat/dstat", line 2825, in <module>
+ main()
+ File "/home/falko/repos/dstat/dstat", line 2684, in main
+ scheduler.run()
+ File "/home/falko/.conda/envs/python3/lib/python3.7/sched.py", line 151, in run
+ action(*argument, **kwargs)
+ File "/home/falko/repos/dstat/dstat", line 2729, in perform
+ oldcols = cols
+NameError: name 'cols' is not defined
+---
+ dstat | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dstat b/dstat
+index 9359965..3b4980f 100755
+--- a/dstat
++++ b/dstat
+@@ -2697,7 +2697,7 @@ def perform(update):
+
+ starttime = time.time()
+
+- loop = (update - 1 + op.delay) / op.delay
++ loop = (update - 1 + op.delay) // op.delay
+ step = ((update - 1) % op.delay) + 1
+
+ ### Get current time (may be different from schedule) for debugging
diff --git a/gnu/packages/patches/dstat-skip-devices-without-io.patch b/gnu/packages/patches/dstat-skip-devices-without-io.patch
new file mode 100644
index 0000000000..eb0910f501
--- /dev/null
+++ b/gnu/packages/patches/dstat-skip-devices-without-io.patch
@@ -0,0 +1,32 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Sun, 16 Jun 2019 02:36:23 +0200
+Subject: [PATCH] gnu: dstat: Skip devices without I/O.
+
+Taken verbatim from a pull request[0] that will never be merged.
+
+[0]: https://github.com/dagwieers/dstat/pull/164
+
+From 0988589ea4ee092b285bd4049d56add5f61e3f69 Mon Sep 17 00:00:00 2001
+From: Tobias Gruetzmacher <tobias-git@23.gs>
+Date: Fri, 15 Feb 2019 18:46:57 +0100
+Subject: [PATCH] Skip devices without I/O
+
+Linux 4.18+ has added more fields to the diskstats proc file, so the
+original skip condition for devices without I/O didn't apply anymore.
+---
+ dstat | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dstat b/dstat
+index 9359965..5c2fb53 100755
+--- a/dstat
++++ b/dstat
+@@ -763,7 +763,7 @@ class dstat_disk(dstat):
+ ret = []
+ for l in self.splitlines():
+ if len(l) < 13: continue
+- if l[3:] == ['0',] * 11: continue
++ if l[3:] == ['0',] * (len(l) - 3): continue
+ name = l[2]
+ ret.append(name)
+ for item in objlist: ret.append(item)
diff --git a/gnu/packages/patches/emacs-realgud-fix-configure-ac.patch b/gnu/packages/patches/emacs-realgud-fix-configure-ac.patch
deleted file mode 100644
index 8165857c87..0000000000
--- a/gnu/packages/patches/emacs-realgud-fix-configure-ac.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From a293690f29407ac54a218d6d20c2142e1a0319d1 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Wed, 31 Oct 2018 00:08:34 -0400
-Subject: [PATCH] configure.ac: Fix NO_CHECK_EMACS_PACKAGES elisp.
-
-Remove the extraneous trailing parenthesis.
----
- configure.ac | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index de0d932..69bcea7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -25,8 +25,7 @@ AC_MSG_NOTICE("Checking prerequiste packages")
- $EMACS -batch -q --no-site-file -eval \
- '(dolist (package
- (quote (cl-lib loc-changes load-relative test-simple)))
-- (require package))
-- )'
-+ (require package))'
- fi
- if test $? -ne 0 ; then
- AC_MSG_ERROR([Can't continue until above error is corrected.])
---
-2.19.0
-
diff --git a/gnu/packages/patches/emacs-unpackaged-req.patch b/gnu/packages/patches/emacs-unpackaged-req.patch
new file mode 100644
index 0000000000..ddb9277610
--- /dev/null
+++ b/gnu/packages/patches/emacs-unpackaged-req.patch
@@ -0,0 +1,24 @@
+From e5be173e201710538464c279335bef735a327a68 Mon Sep 17 00:00:00 2001
+From: Brian Leung <bkleung89@gmail.com>
+Date: Tue, 18 Jun 2019 06:37:46 +0200
+Subject: [PATCH] Add missing require.
+
+---
+ unpackaged.el | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/unpackaged.el b/unpackaged.el
+index 2d46b3c..e62184a 100644
+--- a/unpackaged.el
++++ b/unpackaged.el
+@@ -38,6 +38,7 @@
+ (require 'dash)
+ (require 's)
+ (require 'use-package)
++(require 'hydra)
+
+ ;;; Faces, fonts
+
+--
+2.22.0
+
diff --git a/gnu/packages/patches/inkscape-poppler-compat3.patch b/gnu/packages/patches/inkscape-poppler-compat3.patch
deleted file mode 100644
index eaaf7d93f1..0000000000
--- a/gnu/packages/patches/inkscape-poppler-compat3.patch
+++ /dev/null
@@ -1,499 +0,0 @@
-Fix compatibility with Poppler >= 0.69.
-
-This is a combination of these upstream commits:
-https://gitlab.com/inkscape/inkscape/commit/722e121361d0f784083d10e897155b7d4e44e515
-https://gitlab.com/inkscape/inkscape/commit/402c0274420fe39fd2f3393bc7d8d8879d436358
-
-...with slight adjustments for the 0.92.3 release tarball.
-
-diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake
---- a/CMakeScripts/DefineDependsandFlags.cmake
-+++ b/CMakeScripts/DefineDependsandFlags.cmake
-@@ -116,18 +116,6 @@ if(ENABLE_POPPLER)
- set(HAVE_POPPLER_GLIB ON)
- endif()
- endif()
-- if(POPPLER_VERSION VERSION_GREATER "0.26.0" OR
-- POPPLER_VERSION VERSION_EQUAL "0.26.0")
-- set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON)
-- endif()
-- if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR
-- POPPLER_VERSION VERSION_EQUAL "0.29.0")
-- set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON)
-- endif()
-- if(POPPLER_VERSION VERSION_GREATER "0.58.0" OR
-- POPPLER_VERSION VERSION_EQUAL "0.58.0")
-- set(POPPLER_NEW_OBJECT_API ON)
-- endif()
- else()
- set(ENABLE_POPPLER_CAIRO OFF)
- endif()
-diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp
---- a/src/extension/internal/pdfinput/pdf-input.cpp
-+++ b/src/extension/internal/pdfinput/pdf-input.cpp
-@@ -793,7 +793,7 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, const gchar * uri) {
- dlg->getImportSettings(prefs);
-
- // Apply crop settings
-- PDFRectangle *clipToBox = NULL;
-+ _POPPLER_CONST PDFRectangle *clipToBox = NULL;
- double crop_setting;
- sp_repr_get_double(prefs, "cropTo", &crop_setting);
-
-diff --git a/src/extension/internal/pdfinput/pdf-input.h b/src/extension/internal/pdfinput/pdf-input.h
---- a/src/extension/internal/pdfinput/pdf-input.h
-+++ b/src/extension/internal/pdfinput/pdf-input.h
-@@ -15,6 +15,7 @@
- #endif
-
- #ifdef HAVE_POPPLER
-+#include "poppler-transition-api.h"
-
- #include <gtkmm/dialog.h>
-
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -36,6 +36,7 @@ extern "C" {
- #include "pdf-parser.h"
- #include "util/units.h"
-
-+#include "glib/poppler-features.h"
- #include "goo/gmem.h"
- #include "goo/GooString.h"
- #include "GlobalParams.h"
-@@ -294,8 +295,8 @@ PdfParser::PdfParser(XRef *xrefA,
- int /*pageNum*/,
- int rotate,
- Dict *resDict,
-- PDFRectangle *box,
-- PDFRectangle *cropBox) :
-+ _POPPLER_CONST PDFRectangle *box,
-+ _POPPLER_CONST PDFRectangle *cropBox) :
- xref(xrefA),
- builder(builderA),
- subPage(gFalse),
-@@ -317,7 +318,7 @@ PdfParser::PdfParser(XRef *xrefA,
- builder->setDocumentSize(Inkscape::Util::Quantity::convert(state->getPageWidth(), "pt", "px"),
- Inkscape::Util::Quantity::convert(state->getPageHeight(), "pt", "px"));
-
-- double *ctm = state->getCTM();
-+ const double *ctm = state->getCTM();
- double scaledCTM[6];
- for (int i = 0; i < 6; ++i) {
- baseMatrix[i] = ctm[i];
-@@ -352,7 +353,7 @@ PdfParser::PdfParser(XRef *xrefA,
- PdfParser::PdfParser(XRef *xrefA,
- Inkscape::Extension::Internal::SvgBuilder *builderA,
- Dict *resDict,
-- PDFRectangle *box) :
-+ _POPPLER_CONST PDFRectangle *box) :
- xref(xrefA),
- builder(builderA),
- subPage(gTrue),
-@@ -571,7 +572,7 @@ const char *PdfParser::getPreviousOperator(unsigned int look_back) {
-
- void PdfParser::execOp(Object *cmd, Object args[], int numArgs) {
- PdfOperator *op;
-- char *name;
-+ const char *name;
- Object *argPtr;
- int i;
-
-@@ -619,7 +620,7 @@ void PdfParser::execOp(Object *cmd, Object args[], int numArgs) {
- (this->*op->func)(argPtr, numArgs);
- }
-
--PdfOperator* PdfParser::findOp(char *name) {
-+PdfOperator* PdfParser::findOp(const char *name) {
- int a = -1;
- int b = numOps;
- int cmp = -1;
-@@ -1751,7 +1752,7 @@ void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat,
- GBool stroke, GBool eoFill) {
- GfxShading *shading;
- GfxPath *savedPath;
-- double *ctm, *btm, *ptm;
-+ const double *ctm, *btm, *ptm;
- double m[6], ictm[6], m1[6];
- double xMin, yMin, xMax, yMax;
- double det;
-@@ -1993,7 +1994,7 @@ void PdfParser::doFunctionShFill1(GfxFunctionShading *shading,
- GfxColor color0M, color1M, colorM0, colorM1, colorMM;
- GfxColor colors2[4];
- double functionColorDelta = colorDeltas[pdfFunctionShading-1];
-- double *matrix;
-+ const double *matrix;
- double xM, yM;
- int nComps, i, j;
-
-@@ -2173,7 +2174,7 @@ void PdfParser::doPatchMeshShFill(GfxPatchMeshShading *shading) {
- }
- }
-
--void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) {
-+void PdfParser::fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth) {
- GfxPatch patch00 = blankPatch();
- GfxPatch patch01 = blankPatch();
- GfxPatch patch10 = blankPatch();
-@@ -2581,7 +2582,11 @@ void PdfParser::opShowSpaceText(Object args[], int /*numArgs*/)
- }
- }
-
-+#if POPPLER_CHECK_VERSION(0,64,0)
- void PdfParser::doShowText(const GooString *s) {
-+#else
-+void PdfParser::doShowText(GooString *s) {
-+#endif
- GfxFont *font;
- int wMode;
- double riseX, riseY;
-@@ -2590,11 +2595,15 @@ void PdfParser::doShowText(const GooString *s) {
- double x, y, dx, dy, tdx, tdy;
- double originX, originY, tOriginX, tOriginY;
- double oldCTM[6], newCTM[6];
-- double *mat;
-+ const double *mat;
- Object charProc;
- Dict *resDict;
- Parser *oldParser;
-+#if POPPLER_CHECK_VERSION(0,64,0)
-+ const char *p;
-+#else
- char *p;
-+#endif
- int len, n, uLen;
-
- font = state->getFont();
-@@ -2630,7 +2639,7 @@ void PdfParser::doShowText(const GooString *s) {
- double lineX = state->getLineX();
- double lineY = state->getLineY();
- oldParser = parser;
-- p = g_strdup(s->getCString());
-+ p = s->getCString();
- len = s->getLength();
- while (len > 0) {
- n = font->getNextChar(p, len, &code,
-@@ -2685,7 +2694,7 @@ void PdfParser::doShowText(const GooString *s) {
-
- } else {
- state->textTransformDelta(0, state->getRise(), &riseX, &riseY);
-- p = g_strdup(s->getCString());
-+ p = s->getCString();
- len = s->getLength();
- while (len > 0) {
- n = font->getNextChar(p, len, &code,
-@@ -2731,7 +2740,11 @@ void PdfParser::opXObject(Object args[], int /*numArgs*/)
- {
- Object obj1, obj2, obj3, refObj;
-
-- char *name = g_strdup(args[0].getName());
-+#if POPPLER_CHECK_VERSION(0,64,0)
-+ const char *name = args[0].getName();
-+#else
-+ char *name = args[0].getName();
-+#endif
- #if defined(POPPLER_NEW_OBJECT_API)
- if ((obj1 = res->lookupXObject(name)).isNull()) {
- #else
-@@ -3656,7 +3669,6 @@ void PdfParser::opBeginImage(Object /*args*/[], int /*numArgs*/)
- Stream *PdfParser::buildImageStream() {
- Object dict;
- Object obj;
-- char *key;
- Stream *str;
-
- // build dictionary
-@@ -3674,26 +3686,17 @@ Stream *PdfParser::buildImageStream() {
- obj.free();
- #endif
- } else {
-- key = copyString(obj.getName());
--#if defined(POPPLER_NEW_OBJECT_API)
-- obj = parser->getObj();
--#else
-- obj.free();
-- parser->getObj(&obj);
--#endif
-- if (obj.isEOF() || obj.isError()) {
-- gfree(key);
-+ Object obj2;
-+ _POPPLER_CALL(obj2, parser->getObj);
-+ if (obj2.isEOF() || obj2.isError()) {
-+ _POPPLER_FREE(obj);
- break;
- }
--#if defined(POPPLER_NEW_OBJECT_API)
-- dict.dictAdd(key, std::move(obj));
-- }
-- obj = parser->getObj();
--#else
-- dict.dictAdd(key, &obj);
-+ _POPPLER_DICTADD(dict, obj.getName(), obj2);
-+ _POPPLER_FREE(obj);
-+ _POPPLER_FREE(obj2);
- }
-- parser->getObj(&obj);
--#endif
-+ _POPPLER_CALL(obj, parser->getObj);
- }
- if (obj.isEOF()) {
- error(errSyntaxError, getPos(), "End of file in inline image");
-diff --git a/src/extension/internal/pdfinput/pdf-parser.h b/src/extension/internal/pdfinput/pdf-parser.h
---- a/src/extension/internal/pdfinput/pdf-parser.h
-+++ b/src/extension/internal/pdfinput/pdf-parser.h
-@@ -9,6 +9,7 @@
- #define PDF_PARSER_H
-
- #ifdef HAVE_POPPLER
-+#include "poppler-transition-api.h"
-
- #ifdef USE_GCC_PRAGMAS
- #pragma interface
-@@ -25,6 +26,7 @@ namespace Inkscape {
- // TODO clean up and remove using:
- using Inkscape::Extension::Internal::SvgBuilder;
-
-+#include "glib/poppler-features.h"
- #include "goo/gtypes.h"
- #include "Object.h"
-
-@@ -127,11 +129,14 @@ public:
-
- // Constructor for regular output.
- PdfParser(XRef *xrefA, SvgBuilder *builderA, int pageNum, int rotate,
-- Dict *resDict, PDFRectangle *box, PDFRectangle *cropBox);
-+ Dict *resDict,
-+ _POPPLER_CONST PDFRectangle *box,
-+ _POPPLER_CONST PDFRectangle *cropBox);
-
- // Constructor for a sub-page object.
- PdfParser(XRef *xrefA, Inkscape::Extension::Internal::SvgBuilder *builderA,
-- Dict *resDict, PDFRectangle *box);
-+ Dict *resDict,
-+ _POPPLER_CONST PDFRectangle *box);
-
- virtual ~PdfParser();
-
-@@ -185,7 +190,7 @@ private:
-
- void go(GBool topLevel);
- void execOp(Object *cmd, Object args[], int numArgs);
-- PdfOperator *findOp(char *name);
-+ PdfOperator *findOp(const char *name);
- GBool checkArg(Object *arg, TchkType type);
- int getPos();
-
-@@ -256,7 +261,7 @@ private:
- double x2, double y2, GfxColor *color2,
- int nComps, int depth);
- void doPatchMeshShFill(GfxPatchMeshShading *shading);
-- void fillPatch(GfxPatch *patch, int nComps, int depth);
-+ void fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth);
- void doEndPath();
-
- // path clipping operators
-@@ -287,7 +292,12 @@ private:
- void opMoveShowText(Object args[], int numArgs);
- void opMoveSetShowText(Object args[], int numArgs);
- void opShowSpaceText(Object args[], int numArgs);
-+#if POPPLER_CHECK_VERSION(0,64,0)
- void doShowText(const GooString *s);
-+#else
-+ void doShowText(GooString *s);
-+#endif
-+
-
- // XObject operators
- void opXObject(Object args[], int numArgs);
-diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
-new file mode 100644
---- /dev/null
-+++ b/src/extension/internal/pdfinput/poppler-transition-api.h
-@@ -0,0 +1,39 @@
-+#ifndef SEEN_POPPLER_TRANSITION_API_H
-+#define SEEN_POPPLER_TRANSITION_API_H
-+
-+#include <glib/poppler-features.h>
-+
-+#if POPPLER_CHECK_VERSION(0,70,0)
-+#define _POPPLER_CONST const
-+#else
-+#define _POPPLER_CONST
-+#endif
-+
-+#if POPPLER_CHECK_VERSION(0,69,0)
-+#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(key, std::move(obj))
-+#elif POPPLER_CHECK_VERSION(0,58,0)
-+#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), std::move(obj))
-+#else
-+#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), &obj)
-+#endif
-+
-+#if POPPLER_CHECK_VERSION(0,58,0)
-+#define POPPLER_NEW_OBJECT_API
-+#define _POPPLER_FREE(obj)
-+#define _POPPLER_CALL(ret, func) (ret = func())
-+#define _POPPLER_CALL_ARGS(ret, func, ...) (ret = func(__VA_ARGS__))
-+#else
-+#define _POPPLER_FREE(obj) (obj).free()
-+#define _POPPLER_CALL(ret, func) (*func(&ret))
-+#define _POPPLER_CALL_ARGS(ret, func, ...) (*func(__VA_ARGS__, &ret))
-+#endif
-+
-+#if POPPLER_CHECK_VERSION(0, 29, 0)
-+#define POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API
-+#endif
-+
-+#if POPPLER_CHECK_VERSION(0, 25, 0)
-+#define POPPLER_EVEN_NEWER_COLOR_SPACE_API
-+#endif
-+
-+#endif
-diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
---- a/src/extension/internal/pdfinput/svg-builder.cpp
-+++ b/src/extension/internal/pdfinput/svg-builder.cpp
-@@ -625,7 +625,7 @@ gchar *SvgBuilder::_createPattern(GfxPattern *pattern, GfxState *state, bool is_
- if ( pattern != NULL ) {
- if ( pattern->getType() == 2 ) { // Shading pattern
- GfxShadingPattern *shading_pattern = static_cast<GfxShadingPattern *>(pattern);
-- double *ptm;
-+ const double *ptm;
- double m[6] = {1, 0, 0, 1, 0, 0};
- double det;
-
-@@ -672,7 +672,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern,
-
- Inkscape::XML::Node *pattern_node = _xml_doc->createElement("svg:pattern");
- // Set pattern transform matrix
-- double *p2u = tiling_pattern->getMatrix();
-+ const double *p2u = tiling_pattern->getMatrix();
- double m[6] = {1, 0, 0, 1, 0, 0};
- double det;
- det = _ttm[0] * _ttm[3] - _ttm[1] * _ttm[2]; // see LP Bug 1168908
-@@ -698,7 +698,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern,
- pattern_node->setAttribute("patternUnits", "userSpaceOnUse");
- // Set pattern tiling
- // FIXME: don't ignore XStep and YStep
-- double *bbox = tiling_pattern->getBBox();
-+ const double *bbox = tiling_pattern->getBBox();
- sp_repr_set_svg_double(pattern_node, "x", 0.0);
- sp_repr_set_svg_double(pattern_node, "y", 0.0);
- sp_repr_set_svg_double(pattern_node, "width", bbox[2] - bbox[0]);
-@@ -751,7 +751,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPattern *tiling_pattern,
- */
- gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for_shading) {
- Inkscape::XML::Node *gradient;
-- Function *func;
-+ _POPPLER_CONST Function *func;
- int num_funcs;
- bool extend0, extend1;
-
-@@ -865,7 +865,7 @@ static bool svgGetShadingColorRGB(GfxShading *shading, double offset, GfxRGB *re
-
- #define INT_EPSILON 8
- bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading,
-- Function *func) {
-+ _POPPLER_CONST Function *func) {
- int type = func->getType();
- if ( type == 0 || type == 2 ) { // Sampled or exponential function
- GfxRGB stop1, stop2;
-@@ -877,9 +877,9 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh
- _addStopToGradient(gradient, 1.0, &stop2, 1.0);
- }
- } else if ( type == 3 ) { // Stitching
-- StitchingFunction *stitchingFunc = static_cast<StitchingFunction*>(func);
-- double *bounds = stitchingFunc->getBounds();
-- double *encode = stitchingFunc->getEncode();
-+ auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func);
-+ const double *bounds = stitchingFunc->getBounds();
-+ const double *encode = stitchingFunc->getEncode();
- int num_funcs = stitchingFunc->getNumFuncs();
-
- // Add stops from all the stitched functions
-@@ -890,7 +890,7 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh
- svgGetShadingColorRGB(shading, bounds[i + 1], &color);
- // Add stops
- if (stitchingFunc->getFunc(i)->getType() == 2) { // process exponential fxn
-- double expE = (static_cast<ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE();
-+ double expE = (static_cast<_POPPLER_CONST ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE();
- if (expE > 1.0) {
- expE = (bounds[i + 1] - bounds[i])/expE; // approximate exponential as a single straight line at x=1
- if (encode[2*i] == 0) { // normal sequence
-@@ -1020,9 +1020,9 @@ void SvgBuilder::updateFont(GfxState *state) {
- GfxFont *font = state->getFont();
- // Store original name
- if (font->getName()) {
-- _font_specification = g_strdup(font->getName()->getCString());
-+ _font_specification = font->getName()->getCString();
- } else {
-- _font_specification = (char*) "Arial";
-+ _font_specification = "Arial";
- }
-
- // Prune the font name to get the correct font family name
-@@ -1030,7 +1030,7 @@ void SvgBuilder::updateFont(GfxState *state) {
- char *font_family = NULL;
- char *font_style = NULL;
- char *font_style_lowercase = NULL;
-- char *plus_sign = strstr(_font_specification, "+");
-+ const char *plus_sign = strstr(_font_specification, "+");
- if (plus_sign) {
- font_family = g_strdup(plus_sign + 1);
- _font_specification = plus_sign + 1;
-@@ -1148,7 +1148,7 @@ void SvgBuilder::updateFont(GfxState *state) {
- Inkscape::CSSOStringStream os_font_size;
- double css_font_size = _font_scaling * state->getFontSize();
- if ( font->getType() == fontType3 ) {
-- double *font_matrix = font->getFontMatrix();
-+ const double *font_matrix = font->getFontMatrix();
- if ( font_matrix[0] != 0.0 ) {
- css_font_size *= font_matrix[3] / font_matrix[0];
- }
-@@ -1193,7 +1193,7 @@ void SvgBuilder::updateTextPosition(double tx, double ty) {
- void SvgBuilder::updateTextMatrix(GfxState *state) {
- _flushText();
- // Update text matrix
-- double *text_matrix = state->getTextMat();
-+ const double *text_matrix = state->getTextMat();
- double w_scale = sqrt( text_matrix[0] * text_matrix[0] + text_matrix[2] * text_matrix[2] );
- double h_scale = sqrt( text_matrix[1] * text_matrix[1] + text_matrix[3] * text_matrix[3] );
- double max_scale;
-diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h
---- a/src/extension/internal/pdfinput/svg-builder.h
-+++ b/src/extension/internal/pdfinput/svg-builder.h
-@@ -15,6 +15,7 @@
- #endif
-
- #ifdef HAVE_POPPLER
-+#include "poppler-transition-api.h"
-
- class SPDocument;
- namespace Inkscape {
-@@ -80,7 +81,7 @@ struct SvgGlyph {
- bool style_changed; // Set to true if style has to be reset
- SPCSSAttr *style;
- int render_mode; // Text render mode
-- char *font_specification; // Pointer to current font specification
-+ const char *font_specification; // Pointer to current font specification
- };
-
- /**
-@@ -174,7 +175,7 @@ private:
- void _addStopToGradient(Inkscape::XML::Node *gradient, double offset,
- GfxRGB *color, double opacity);
- bool _addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading,
-- Function *func);
-+ _POPPLER_CONST Function *func);
- gchar *_createTilingPattern(GfxTilingPattern *tiling_pattern, GfxState *state,
- bool is_stroke=false);
- // Image/mask creation
-@@ -202,7 +203,7 @@ private:
-
- SPCSSAttr *_font_style; // Current font style
- GfxFont *_current_font;
-- char *_font_specification;
-+ const char *_font_specification;
- double _font_scaling;
- bool _need_font_update;
- Geom::Affine _text_matrix;
diff --git a/gnu/packages/patches/open-zwave-hidapi.patch b/gnu/packages/patches/open-zwave-hidapi.patch
new file mode 100644
index 0000000000..fc50bfeade
--- /dev/null
+++ b/gnu/packages/patches/open-zwave-hidapi.patch
@@ -0,0 +1,15 @@
+Build against the system's HIDAPI instead of the bundled one.
+
+--- open-zwave-1.6-checkout/cpp/build/support.mk 2019-06-16 15:15:34.258331628 +0200
++++ open-zwave-1.6-checkout/cpp/build/support.mk 2019-06-16 15:15:54.698249462 +0200
+@@ -86,6 +86,10 @@ endif
+ endif
+ SED := sed
+
++# Build against the system's HIDAPI.
++CPPFLAGS += $(shell pkg-config hidapi-libusb --cflags)
++LDFLAGS += $(shell pkg-config hidapi-libusb --libs)
++
+ #determine if we are release or debug Build and set appropriate flags
+ ifeq ($(BUILD), release)
+ CFLAGS += -c $(RELEASE_CFLAGS)
diff --git a/gnu/packages/patches/racket-store-checksum-override.patch b/gnu/packages/patches/racket-store-checksum-override.patch
index 6c9cd5198a..236c843de1 100644
--- a/gnu/packages/patches/racket-store-checksum-override.patch
+++ b/gnu/packages/patches/racket-store-checksum-override.patch
@@ -7,12 +7,8 @@ because the store is immutable. This patch makes Racket ignore
checksums for files in the store.
See <https://debbugs.gnu.org/30680> for details.
----
- collects/compiler/private/cm-minimal.rkt | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-diff --git a/collects/compiler/private/cm-minimal.rkt b/collects/compiler/private/cm-minimal.rkt
-index a5a5407..15af6b8 100644
+---
--- a/collects/compiler/private/cm-minimal.rkt
+++ b/collects/compiler/private/cm-minimal.rkt
@@ -7,6 +7,7 @@
@@ -20,10 +16,10 @@ index a5a5407..15af6b8 100644
racket/path
racket/promise
+ racket/string
- openssl/sha1
+ file/sha1
setup/collects
- compiler/compilation-path
-@@ -543,6 +544,10 @@
+ setup/cross-system
+@@ -940,6 +941,10 @@
#f
(list src-hash recorded-hash)))
@@ -34,16 +30,13 @@ index a5a5407..15af6b8 100644
(define (rkt->ss p)
(if (path-has-extension? p #".rkt")
(path-replace-extension p #".ss")
-@@ -595,7 +600,8 @@
- (trace-printf "newer src... ~a > ~a" path-time path-zo-time)
- ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:
- (maybe-compile-zo sha1-only? deps path->mode roots path orig-path read-src-syntax up-to-date collection-cache new-seen)]
-- [(different-source-sha1-and-dep-recorded path deps)
-+ [(and (not (store-reference? path))
-+ (different-source-sha1-and-dep-recorded path deps))
- => (lambda (difference)
- (trace-printf "different src hash... ~a" difference)
- ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:
---
-2.18.0
-
+@@ -1015,6 +1020,7 @@
+ (trace-printf "newer src... ~a > ~a" path-time path-zo-time)
+ (maybe-compile-zo deps path->mode roots path orig-path read-src-syntax up-to-date collection-cache new-seen
+ #:trying-sha1? sha1-only?)]
+- [(different-source-sha1-and-dep-recorded path deps)
++ [(and (not (store-reference? path))
++ (different-source-sha1-and-dep-recorded path deps))
+ => (lambda (difference)
+ (trace-printf "different src hash ~a for ~a..." difference path)
+ (maybe-compile-zo deps path->mode roots path orig-path read-src-syntax up-to-date collection-cache new-seen \ No newline at end of file
diff --git a/gnu/packages/patches/ratpoints-sturm_and_rp_private.patch b/gnu/packages/patches/ratpoints-sturm_and_rp_private.patch
new file mode 100644
index 0000000000..664198c4de
--- /dev/null
+++ b/gnu/packages/patches/ratpoints-sturm_and_rp_private.patch
@@ -0,0 +1,194 @@
+diff --git a/rp-private.h b/rp-private.h
+index b4c7dad..0c7193e 100644
+--- a/rp-private.h
++++ b/rp-private.h
+@@ -36,7 +36,7 @@
+ #define LONG_SHIFT ((LONG_LENGTH == 16) ? 4 : \
+ (LONG_LENGTH == 32) ? 5 : \
+ (LONG_LENGTH == 64) ? 6 : 0)
+-#define LONG_MASK (~(-1L<<LONG_SHIFT))
++#define LONG_MASK (~(-(1L<<LONG_SHIFT)))
+
+ /* Check if SSE instructions can be used.
+ We assume that one SSE word of 128 bit is two long's,
+diff --git a/sturm.c b/sturm.c
+index c78d7c6..5fd2cf5 100644
+--- a/sturm.c
++++ b/sturm.c
+@@ -27,7 +27,6 @@
+ ***********************************************************************/
+
+ #include "ratpoints.h"
+-
+ /**************************************************************************
+ * Arguments of _ratpoints_compute_sturm() : (from the args argument) *
+ * *
+@@ -53,7 +52,7 @@
+ /* A helper function: evaluate the polynomial in cofs[] of given degree
+ at num/2^denexp and return the sign. */
+
+-static long eval_sign(ratpoints_args *args, mpz_t *cofs, long degree,
++static long eval_sign(const ratpoints_args *args, const mpz_t *cofs, long degree,
+ long num, long denexp)
+ {
+ long n, e, s;
+@@ -70,11 +69,80 @@ static long eval_sign(ratpoints_args *args, mpz_t *cofs, long degree,
+ return(s);
+ }
+
++static const long max = (long)(((unsigned long)(-1))>>1);
++static const long min = (long)(-(((unsigned long)(-1))>>1));
++ /* recursive helper function */
++static void iterate(long nl, long nr, long del, long der, long cleft, long cright,
++ long sl, long sr, long depth,
++ ratpoints_interval **iptr, const ratpoints_interval *ivlo,
++ const ratpoints_args *args, const long k, const long sturm_degs[],
++ const mpz_t sturm[][args->degree + 1])
++ { /* nl/2^del, nr/2^der : interval left/right endpoints,
++ cleft, cright: sign change counts at endpoints,
++ sl, sr: signs at endpoints,
++ depth: iteration depth */
++ long iter = args->sturm;
++ if(cleft == cright && sl < 0) { return; }
++ /* here we know the polynomial is negative on the interval */
++ if((cleft == cright && sl > 0) || depth >= iter)
++ /* we have to add/extend an interval if we either know that
++ the polynomial is positive on the interval (first condition)
++ or the maximal iteration depth has been reached (second condition) */
++ { double l = ((double)nl)/((double)(1<<del));
++ double u = ((double)nr)/((double)(1<<der));
++ if(*iptr == ivlo)
++ { (*iptr)->low = l; (*iptr)->up = u; (*iptr)++; }
++ else
++ { if(((*iptr)-1)->up == l) /* extend interval */
++ { ((*iptr)-1)->up = u; }
++ else /* new interval */
++ { (*iptr)->low = l; (*iptr)->up = u; (*iptr)++; }
++ }
++ return;
++ }
++ /* now we must split the interval and evaluate the sturm sequence
++ at the midpoint */
++ { long nm, dem, s0, s1, s2, s, cmid = 0, n;
++ if(nl == min)
++ { if(nr == max) { nm = 0; dem = 0; }
++ else { nm = (nr == 0) ? -1 : 2*nr; dem = 0; }
++ }
++ else
++ { if(nr == max) { nm = (nl == 0) ? 1 : 2*nl; dem = 0; }
++ else /* "normal" case */
++ { if(del == der) /* then both are zero */
++ { if(((nl+nr) & 1) == 0) { nm = (nl+nr)>>1; dem = 0; }
++ else { nm = nl+nr; dem = 1; }
++ }
++ else /* here one de* is greater */
++ { if(del > der) { nm = nl + (nr<<(del-der)); dem = del+1; }
++ else { nm = (nl<<(der-del)) + nr; dem = der+1; }
++ }
++ }
++ }
++ s0 = eval_sign(args, sturm[0], sturm_degs[0], nm, dem);
++ s1 = eval_sign(args, sturm[1], sturm_degs[1], nm, dem);
++ if(s0*s1 == -1) { cmid++; }
++ s = (s1 == 0) ? s0 : s1;
++ for(n = 2; n <= k; n++)
++ { s2 = eval_sign(args, sturm[n], sturm_degs[n], nm, dem);
++ if(s2 == -s) { cmid++; s = s2; }
++ else if(s2 != 0) { s = s2; }
++ }
++ /* now recurse */
++ iterate(nl, nm, del, dem, cleft, (s0==0) ? (cmid+1) : cmid,
++ sl, (s0==0) ? -s1 : s0, depth+1,
++ iptr, ivlo, args, k, sturm_degs, sturm);
++ iterate(nm, nr, dem, der, cmid, cright,
++ (s0==0) ? s1 : s0, sr, depth+1,
++ iptr, ivlo, args, k, sturm_degs, sturm);
++ }
++ } /* end iterate() */
++
+ long _ratpoints_compute_sturm(ratpoints_args *args)
+ {
+ mpz_t *cofs = args->cof;
+ long degree = args->degree;
+- long iter = args->sturm;
+ ratpoints_interval *ivlist = args->domain;
+ long num_iv = args->num_inter;
+ long n, m, k, new_num;
+@@ -165,75 +233,12 @@ long _ratpoints_compute_sturm(ratpoints_args *args)
+ /* recall: typedef struct {double low; double up;} ratpoints_interval; */
+ { ratpoints_interval ivlocal[1 + (degree>>1)];
+ ratpoints_interval *iptr = &ivlocal[0];
+- long max = (long)(((unsigned long)(-1))>>1);
+- long min = -max;
+ long num_intervals;
+ long slcf = mpz_cmp_si(cofs[degree], 0);
+
+- /* recursive helper function */
+- void iterate(long nl, long nr, long del, long der, long cleft, long cright,
+- long sl, long sr, long depth)
+- { /* nl/2^del, nr/2^der : interval left/right endpoints,
+- cleft, cright: sign change counts at endpoints,
+- sl, sr: signs at endpoints,
+- depth: iteration depth */
+- if(cleft == cright && sl < 0) { return; }
+- /* here we know the polynomial is negative on the interval */
+- if((cleft == cright && sl > 0) || depth >= iter)
+- /* we have to add/extend an interval if we either know that
+- the polynomial is positive on the interval (first condition)
+- or the maximal iteration depth has been reached (second condition) */
+- { double l = ((double)nl)/((double)(1<<del));
+- double u = ((double)nr)/((double)(1<<der));
+- if(iptr == &ivlocal[0])
+- { iptr->low = l; iptr->up = u; iptr++; }
+- else
+- { if((iptr-1)->up == l) /* extend interval */
+- { (iptr-1)->up = u; }
+- else /* new interval */
+- { iptr->low = l; iptr->up = u; iptr++; }
+- }
+- return;
+- }
+- /* now we must split the interval and evaluate the sturm sequence
+- at the midpoint */
+- { long nm, dem, s0, s1, s2, s, cmid = 0, n;
+- if(nl == min)
+- { if(nr == max) { nm = 0; dem = 0; }
+- else { nm = (nr == 0) ? -1 : 2*nr; dem = 0; }
+- }
+- else
+- { if(nr == max) { nm = (nl == 0) ? 1 : 2*nl; dem = 0; }
+- else /* "normal" case */
+- { if(del == der) /* then both are zero */
+- { if(((nl+nr) & 1) == 0) { nm = (nl+nr)>>1; dem = 0; }
+- else { nm = nl+nr; dem = 1; }
+- }
+- else /* here one de* is greater */
+- { if(del > der) { nm = nl + (nr<<(del-der)); dem = del+1; }
+- else { nm = (nl<<(der-del)) + nr; dem = der+1; }
+- }
+- }
+- }
+- s0 = eval_sign(args, sturm[0], sturm_degs[0], nm, dem);
+- s1 = eval_sign(args, sturm[1], sturm_degs[1], nm, dem);
+- if(s0*s1 == -1) { cmid++; }
+- s = (s1 == 0) ? s0 : s1;
+- for(n = 2; n <= k; n++)
+- { s2 = eval_sign(args, sturm[n], sturm_degs[n], nm, dem);
+- if(s2 == -s) { cmid++; s = s2; }
+- else if(s2 != 0) { s = s2; }
+- }
+- /* now recurse */
+- iterate(nl, nm, del, dem, cleft, (s0==0) ? (cmid+1) : cmid,
+- sl, (s0==0) ? -s1 : s0, depth+1);
+- iterate(nm, nr, dem, der, cmid, cright,
+- (s0==0) ? s1 : s0, sr, depth+1);
+- }
+- } /* end iterate() */
+-
+ iterate(min, max, 0, 0, count2, count1,
+- (degree & 1) ? -slcf : slcf, slcf, 0);
++ (degree & 1) ? -slcf : slcf, slcf, 0,
++ &iptr, &ivlocal[0], args, k, sturm_degs, sturm);
+ num_intervals = iptr - &ivlocal[0];
+ /* intersect with given intervals */
+ { ratpoints_interval local_copy[num_iv];
diff --git a/gnu/packages/patches/ri-li-modernize_cpp.patch b/gnu/packages/patches/ri-li-modernize_cpp.patch
new file mode 100644
index 0000000000..3d076afb39
--- /dev/null
+++ b/gnu/packages/patches/ri-li-modernize_cpp.patch
@@ -0,0 +1,391 @@
+diff -r -u Ri-li-2.0.1.orig/src/audio.cc Ri-li-2.0.1/src/audio.cc
+--- Ri-li-2.0.1.orig/src/audio.cc 2012-01-22 00:40:56.928609371 -0800
++++ Ri-li-2.0.1/src/audio.cc 2012-01-22 00:28:33.360636539 -0800
+@@ -22,8 +22,8 @@
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ #include <stdlib.h>
+-#include <iostream.h>
+-#include <string.h>
++#include <iostream>
++#include <string>
+
+ #include "audio.h"
+ #include "utils.h"
+@@ -57,7 +57,7 @@
+ char PathFile[512];
+
+ if(Mix_OpenAudio(22050,AUDIO_S16,1,1024)) {
+- cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<endl;
++ std::cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<std::endl;
+ return false;
+ }
+
+diff -r -u Ri-li-2.0.1.orig/src/ecran.cc Ri-li-2.0.1/src/ecran.cc
+--- Ri-li-2.0.1.orig/src/ecran.cc 2007-11-02 04:48:16.000000000 -0700
++++ Ri-li-2.0.1/src/ecran.cc 2012-01-22 00:13:54.422798653 -0800
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
+diff -r -u Ri-li-2.0.1.orig/src/editeur.cc Ri-li-2.0.1/src/editeur.cc
+--- Ri-li-2.0.1.orig/src/editeur.cc 2007-11-02 04:48:17.000000000 -0700
++++ Ri-li-2.0.1/src/editeur.cc 2012-01-22 00:28:59.632635579 -0800
+@@ -25,10 +25,10 @@
+ #include <windows.h>
+ #endif
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include <SDL/SDL.h>
+
+@@ -374,7 +374,7 @@
+
+ // Sauve le niveau
+ if(Niveau.Save()==false) {
+- cerr <<"ERREUR Saving levels!"<<endl;
++ std::cerr <<"ERREUR Saving levels!"<<std::endl;
+ exit(-1);
+ }
+
+diff -r -u Ri-li-2.0.1.orig/src/jeux.cc Ri-li-2.0.1/src/jeux.cc
+--- Ri-li-2.0.1.orig/src/jeux.cc 2007-11-02 04:48:17.000000000 -0700
++++ Ri-li-2.0.1/src/jeux.cc 2012-01-22 00:14:08.422798143 -0800
+@@ -25,10 +25,10 @@
+ #include <windows.h>
+ #endif
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include <SDL/SDL.h>
+
+diff -r -u Ri-li-2.0.1.orig/src/loco.cc Ri-li-2.0.1/src/loco.cc
+--- Ri-li-2.0.1.orig/src/loco.cc 2007-11-02 04:48:18.000000000 -0700
++++ Ri-li-2.0.1/src/loco.cc 2012-01-22 00:14:17.878797797 -0800
+@@ -21,10 +21,10 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include "preference.h"
+ #include "loco.h"
+diff -r -u Ri-li-2.0.1.orig/src/main.cc Ri-li-2.0.1/src/main.cc
+--- Ri-li-2.0.1.orig/src/main.cc 2007-11-02 04:48:19.000000000 -0700
++++ Ri-li-2.0.1/src/main.cc 2012-01-22 00:29:40.080634136 -0800
+@@ -23,8 +23,8 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <iostream.h>
+-#include <string.h>
++#include <iostream>
++#include <string>
+ #include <SDL/SDL.h>
+ #include <SDL/SDL_mixer.h>
+
+@@ -115,7 +115,7 @@
+
+ // Initilise SDL
+ if( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO|SDL_INIT_NOPARACHUTE) < 0 ) {
+- cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<endl;
++ std::cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<std::endl;
+ exit(-1);
+ }
+ // Ferme le programme correctement quant quit
+@@ -125,7 +125,7 @@
+ sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
+
+ if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
+- cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<endl;
++ std::cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<std::endl;
+ exit(-1);
+ }
+
+@@ -145,7 +145,7 @@
+ sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
+
+ if(sdlVideo==NULL) {
+- cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<endl;
++ std::cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<std::endl;
+ exit(-1);
+ }
+ // Change le nom de la fenetre
+diff -r -u Ri-li-2.0.1.orig/src/menu.cc Ri-li-2.0.1/src/menu.cc
+--- Ri-li-2.0.1.orig/src/menu.cc 2007-11-02 04:48:19.000000000 -0700
++++ Ri-li-2.0.1/src/menu.cc 2012-01-22 00:30:04.752633198 -0800
+@@ -21,10 +21,10 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include "preference.h"
+ #include "menu.h"
+ #include "sprite.h"
+@@ -92,7 +92,7 @@
+ // Teste la resolution video
+ sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
+ if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
+- cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<endl;
++ std::cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<std::endl;
+ exit(-1);
+ }
+
+@@ -112,7 +112,7 @@
+ if(Pref.FullScreen) vOption|=SDL_FULLSCREEN;
+ sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
+ if(sdlVideo==NULL) {
+- cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<endl;
++ std::cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<std::endl;
+ exit(-1);
+ }
+
+diff -r -u Ri-li-2.0.1.orig/src/mouse.cc Ri-li-2.0.1/src/mouse.cc
+--- Ri-li-2.0.1.orig/src/mouse.cc 2007-11-02 04:48:20.000000000 -0700
++++ Ri-li-2.0.1/src/mouse.cc 2012-01-22 00:14:36.438797120 -0800
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include "mouse.h"
+ #include "preference.h"
+diff -r -u Ri-li-2.0.1.orig/src/sprite.cc Ri-li-2.0.1/src/sprite.cc
+--- Ri-li-2.0.1.orig/src/sprite.cc 2007-11-02 04:48:20.000000000 -0700
++++ Ri-li-2.0.1/src/sprite.cc 2012-01-22 00:30:43.640631779 -0800
+@@ -21,10 +21,10 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+ #include <math.h>
+ #include "sprite.h"
+ #include "preference.h"
+@@ -84,7 +84,7 @@
+ strcpy(PathFile,Langue[Pref.Langue]);
+ GetPath(PathFile);
+ if(FileExiste(PathFile)==false) {
+- cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<endl;
++ std::cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<std::endl;
+ return false;
+ }
+ L=ChargeFichier(PathFile,Buf);
+@@ -128,7 +128,7 @@
+ // *** Charge le fichier des langues ***
+ // *************************************
+ if(FileExiste(PathFile)==false) {
+- cerr <<"Impossible de trouver 'language.dat'"<<endl;
++ std::cerr <<"Impossible de trouver 'language.dat'"<<std::endl;
+ return false;
+ }
+ L=ChargeFichier(PathFile,Buf);
+@@ -163,7 +163,7 @@
+ strcpy(PathFile,"sprites.dat");
+ GetPath(PathFile);
+ if(FileExiste(PathFile)==false) {
+- cerr <<"Impossible de trouver 'sprites.dat'"<<endl;
++ std::cerr <<"Impossible de trouver 'sprites.dat'"<<std::endl;
+ return false;
+ }
+ L=ChargeFichier(PathFile,Buf);
+@@ -352,7 +352,7 @@
+ Image[i]=SDL_CreateRGBSurface((Dim[i].bpp-3)*SDL_SRCALPHA,Dim[i].L,Dim[i].H,Dim[i].bpp*8,
+ 0xff,0xff00,0xff0000,0xff000000*(Dim[i].bpp-3));
+ if(Image[i]<=NULL) {
+- cerr <<"Impossible de créer une Surface SDL!"<<endl;
++ std::cerr <<"Impossible de créer une Surface SDL!"<<std::endl;
+ return false;
+ }
+
+@@ -486,7 +486,7 @@
+ Image[0]=SDL_CreateRGBSurface((Dim[0].bpp-3)*SDL_SRCALPHA,Dim[0].L,Dim[0].H,Dim[0].bpp*8,
+ 0xff,0xff00,0xff0000,0xff000000*(Dim[0].bpp-3));
+ if(Image[0]<=NULL) {
+- cerr <<"Impossible de créer une Surface SDL!"<<endl;
++ std::cerr <<"Impossible de créer une Surface SDL!"<<std::endl;
+ return false;
+ }
+ return true;
+diff -r -u Ri-li-2.0.1.orig/src/tableau.cc Ri-li-2.0.1/src/tableau.cc
+--- Ri-li-2.0.1.orig/src/tableau.cc 2007-11-02 04:48:21.000000000 -0700
++++ Ri-li-2.0.1/src/tableau.cc 2012-01-22 00:14:50.710796598 -0800
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "preference.h"
+diff -r -u Ri-li-2.0.1.orig/src/utils.cc Ri-li-2.0.1/src/utils.cc
+--- Ri-li-2.0.1.orig/src/utils.cc 2007-11-02 04:48:22.000000000 -0700
++++ Ri-li-2.0.1/src/utils.cc 2012-01-22 00:31:30.944630051 -0800
+@@ -21,10 +21,10 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <string>
+
+ #ifdef WINDOWS
+ #include <windows.h>
+@@ -77,7 +77,7 @@
+
+ file=fopen(Path,"r");
+ if(!file) {
+- cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
++ std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
+ perror("fopen");
+ return -1;
+ }
+@@ -93,7 +93,7 @@
+
+ Buf=new unsigned char [L+1];
+ if(Buf==NULL) {
+- cerr <<"ERREUR: Memoire insuffisante!"<<endl;
++ std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
+ fclose(file);
+ return -1;
+ }
+@@ -104,7 +104,7 @@
+ while(Compt>1024) {
+ AfficheChargeur();
+ if( fread(Po,1,1024,file) != 1024 ) {
+- cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<endl;
++ std::cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<std::endl;
+ perror("fread");
+ fclose(file);
+ delete [] Buf;
+@@ -131,13 +131,13 @@
+
+ file=_lopen(Path,OF_READ);
+ if(file==-1) {
+- cerr <<"Impossible d'ouvrir "<<Path<<endl;
++ std::cerr <<"Impossible d'ouvrir "<<Path<<std::endl;
+ exit(-1);
+ }
+
+ long L=(long)_llseek(file,0,SEEK_END);
+ if(L==-1) {
+- cerr <<"Impossible de trouver la longueur du fichier"<<endl;
++ std::cerr <<"Impossible de trouver la longueur du fichier"<<std::endl;
+ perror("lseek");
+ _lclose(file);
+ return -1;
+@@ -146,7 +146,7 @@
+
+ Buf=new unsigned char [L+1];
+ if(Buf==NULL) {
+- cerr <<"ERREUR: Memoire insuffisante!"<<endl;
++ std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
+ _lclose(file);
+ return -1;
+ }
+@@ -169,14 +169,14 @@
+
+ file=fopen(Path,"w");
+ if(!file) {
+- cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
++ std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
+ perror("fopen");
+ return false;
+ }
+
+ while(L>512) {
+ if( fwrite(Buf,1,512,file) != 512 ) {
+- cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
++ std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
+ perror("fwrite");
+ fclose(file);
+ return false;
+@@ -187,7 +187,7 @@
+
+ if(L>0) {
+ if( fwrite(Buf,1,(size_t)L,file) != (size_t)L ) {
+- cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
++ std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
+ perror("fwrite");
+ fclose(file);
+ return false;
+@@ -208,7 +208,7 @@
+
+ file=_lcreat(Path,0);
+ if(!file) {
+- cerr <<"ERREUR: Impossible de créer le fichier '"<<Path<<"'"<<endl;
++ std::cerr <<"ERREUR: Impossible de créer le fichier '"<<Path<<"'"<<std::endl;
+ return false;
+ }
+
+@@ -216,7 +216,7 @@
+ _lclose(file);
+
+ if(Lec!=L) {
+- cerr <<"Problème d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<endl;
++ std::cerr <<"Problème d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<std::endl;
+ return false;
+ }
+
+@@ -250,7 +250,7 @@
+ sprintf(Path,"/usr/share/games/Ri-li/%s",Provi);
+ if(FileExiste(Path)) return;
+
+- cerr <<"Impossible de trouver le fichier '"<<Provi<<endl;
++ std::cerr <<"Impossible de trouver le fichier '"<<Provi<<std::endl;
+ exit(-1);
+ }
+ #endif
+@@ -266,7 +266,7 @@
+ sprintf(Path,"PROGDIR:%s",Provi);
+ if(FileExiste(Path)) return;
+
+- cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
++ std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
+ exit(-1);
+ }
+ #endif
+@@ -282,7 +282,7 @@
+ sprintf(Path,"Ri-li.app/Contents/Resources/%s",Provi);
+ if(FileExiste(Path)) return;
+
+- cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
++ std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
+ exit(-1);
+ }
+ #endif
diff --git a/gnu/packages/patches/symmetrica-bruch.patch b/gnu/packages/patches/symmetrica-bruch.patch
new file mode 100644
index 0000000000..ae88b79206
--- /dev/null
+++ b/gnu/packages/patches/symmetrica-bruch.patch
@@ -0,0 +1,38 @@
+--- src/bruch.c 2007-12-06 11:30:00.000000000 -0500
++++ b/bruch.c 2013-10-22 08:37:43.000000000 -0400
+@@ -975,14 +975,16 @@
+ ggterg = ggt_i(S_B_UI(bruch),S_B_OI(bruch));
+
+ if (ggterg == S_B_UI(bruch)) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I(S_B_OI(bruch) / ggterg,bruch);
++ M_I_I(tmp / ggterg,bruch);
+ goto ende;
+ }
+
+ if (-ggterg == S_B_UI(bruch)) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I(- S_B_OI(bruch) / ggterg,bruch);
++ M_I_I(- tmp / ggterg,bruch);
+ goto ende;
+ }
+
+@@ -1032,12 +1034,14 @@
+
+ if (S_O_K(S_B_U(bruch)) == INTEGER)
+ if (S_B_UI(bruch) == 1) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I(S_B_OI(bruch),bruch);
++ M_I_I(tmp,bruch);
+ goto ende; }
+ else if (S_B_UI(bruch) == -1) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I( - S_B_OI(bruch),bruch);
++ M_I_I( - tmp,bruch);
+ goto ende; }
+ if (NEGP(S_B_O(bruch)) && NEGP(S_B_U(bruch)))
+ {
diff --git a/gnu/packages/patches/symmetrica-int32.patch b/gnu/packages/patches/symmetrica-int32.patch
new file mode 100644
index 0000000000..b64f27d51e
--- /dev/null
+++ b/gnu/packages/patches/symmetrica-int32.patch
@@ -0,0 +1,37 @@
+diff -ru src/def.h c/def.h
+--- src/def.h 2007-12-06 17:30:56.000000000 +0100
++++ c/def.h 2013-10-19 18:42:55.118745730 +0200
+@@ -2,14 +2,9 @@
+ /* INT should always be 4 byte */
+ #ifndef DEF_H
+
+-
+-#ifdef __alpha
+-typedef int INT;
+-typedef unsigned int UINT;
+-#else /* __alpha */
+-typedef long INT;
+-typedef unsigned long UINT;
+-#endif /* __alpha */
++#include <stdint.h>
++typedef int32_t INT;
++typedef uint32_t UINT;
+
+ #include <stdio.h>
+ #include <memory.h>
+@@ -65,10 +60,13 @@
+
+
+ /* definitionen fuer object.c */
+-typedef INT OBJECTKIND; /* 4 byte */
++/* NOTE: partition code assumes that there is no unused space in the
++ * object struct when an INT is stored. This requires both OBJECTKIND
++ * and OBJECTSELF to have a size equal to a machine word. */
++typedef intptr_t OBJECTKIND;
+
+ typedef union {
+- INT ob_INT;
++ intptr_t ob_INT;
+ INT * ob_INTpointer;
+ char *ob_charpointer;
+ struct bruch *ob_bruch;
diff --git a/gnu/packages/patches/symmetrica-return_values.patch b/gnu/packages/patches/symmetrica-return_values.patch
new file mode 100644
index 0000000000..e09c389337
--- /dev/null
+++ b/gnu/packages/patches/symmetrica-return_values.patch
@@ -0,0 +1,14 @@
+diff -ru src/part.c b/part.c
+--- src/part.c Thu May 14 06:01:00 2009 -0400
++++ b/part.c Thu May 14 06:01:00 2009 -0400
+@@ -1767,8 +1767,8 @@
+ /* to compute number of partitions */
+ {
+ INT erg = OK;
+- if (ni<0) return;
+- if (not EMPTYP(S_V_I(vec,ni))) return;
++ if (ni<0) return 0;
++ if (not EMPTYP(S_V_I(vec,ni))) return 0;
+ else if (ni<=1) M_I_I(1,S_V_I(vec,ni));
+ else {
+
diff --git a/gnu/packages/patches/symmetrica-sort_sum_rename.patch b/gnu/packages/patches/symmetrica-sort_sum_rename.patch
new file mode 100644
index 0000000000..2d9a2dae06
--- /dev/null
+++ b/gnu/packages/patches/symmetrica-sort_sum_rename.patch
@@ -0,0 +1,340 @@
+diff -r 5cd656a07aa5 src/bar.c
+--- a/bar.c Thu May 14 06:01:00 2009 -0400
++++ b/bar.c Thu May 14 07:38:17 2009 -0400
+@@ -237,7 +237,7 @@
+ g = callocobject();
+ e = S_V_I(a,0L);
+ f = S_V_I(a,1L);
+- erg += sum(f,g);
++ erg += sym_sum(f,g);
+ j=0L;
+ for (i=0L;i<S_V_LI(e);i++)
+ j += S_V_II(e,i)*(i+1L);
+@@ -427,7 +427,7 @@
+ for (i=0L;i<S_V_LI(b);i++)
+ erg += kranztypus_to_matrix(S_V_I(c,i),S_V_I(b,i));
+ erg += freeall(c);
+- erg += sort(b); /* AK 130592 */
++ erg += sym_sort(b); /* AK 130592 */
+ ENDR("makevectorof_class_bar");
+ }
+
+@@ -615,7 +615,7 @@
+ c = callocobject();
+ d = callocobject();
+ erg += lehmercode_bar(a,c);
+- erg += sum(S_V_I(c,1L),b);
++ erg += sym_sum(S_V_I(c,1L),b);
+ for(i=0L;i<S_P_LI(a);i++)
+ {
+ if (S_V_II(S_V_I(c,0L),i) == 1L)
+diff -r 5cd656a07aa5 src/def.h
+--- a/def.h Thu May 14 06:01:00 2009 -0400
++++ b/def.h Thu May 14 07:38:17 2009 -0400
+@@ -3105,7 +3105,7 @@
+ extern INT so_character ();
+ extern INT so_dimension ();
+ extern OBJECTKIND s_o_k();
+-extern INT sort();
++extern INT sym_sort();
+ extern INT sort_rows_tableaux_apply();
+ extern INT sort_vector();
+ extern OBJECTSELF s_o_s();
+@@ -3271,7 +3271,7 @@
+ extern INT sub_part_part();
+ extern INT substitute_one_matrix ();
+ extern INT substitute_one_monopoly ();
+-extern INT sum();
++extern INT sym_sum();
+ extern INT sum_integervector();
+ extern INT sum_matrix();
+ extern INT sum_vector();
+diff -r 5cd656a07aa5 src/di.c
+--- a/di.c Thu May 14 06:01:00 2009 -0400
++++ b/di.c Thu May 14 07:38:17 2009 -0400
+@@ -1355,7 +1355,7 @@
+ m_il_nv(0L,weight_watcher);
+ m_il_nv(0L,perm_vec);
+ copy(S_V_I(FP,0L),fix);
+- sort(fix);
++ sym_sort(fix);
+
+ get_perm(hweight,p,b,S_I_I(n),S_I_I(m),0L,
+ perm_vec,weight_watcher,fix);
+@@ -1502,7 +1502,7 @@
+ if(ind == m)
+ {
+ mult_perm_fix(p,fix,hfix);
+- sort(hfix);
++ sym_sort(hfix);
+ if(!hfix_in_ww(hfix,ww))
+ {
+ inc(ww);
+diff -r 5cd656a07aa5 src/ga.c
+--- a/ga.c Thu May 14 06:01:00 2009 -0400
++++ b/ga.c Thu May 14 07:38:17 2009 -0400
+@@ -632,7 +632,7 @@
+ else if (what == 0L)
+ erg += vertikal_sum(S_V_L(a),c);
+ erg += copy(a,d);
+- erg += sort(d);
++ erg += sym_sort(d);
+ erg += m_il_p(S_V_II(d,S_V_LI(d)-1L),e); /* identitaet */
+ for (i=0L,k=0L,j=S_V_LI(d);i<S_P_LI(e);i++)
+ if (i+1L == S_V_II(d,k) )
+@@ -722,7 +722,7 @@
+
+ j=0L;
+ erg += append(h,g,h2);
+- erg += sort(h2);
++ erg += sym_sort(h2);
+ for (i=0L;i<S_V_LI(g);i++)
+ {
+ erg += m_i_i(S_V_II(g,i),S_P_I(a,j));
+diff -r 5cd656a07aa5 src/galois.c
+--- a/galois.c Thu May 14 06:01:00 2009 -0400
++++ b/galois.c Thu May 14 07:38:17 2009 -0400
+@@ -758,7 +758,7 @@
+ }
+ }
+ FREEALL2(v,nv);
+- sort(res);
++ sym_sort(res);
+ }
+ S3R(k,phg_c,phg_d,"all_points_phg_store",res);
+ ENDR("all_points");
+diff -r 5cd656a07aa5 src/macro.h
+--- a/macro.h Thu May 14 06:01:00 2009 -0400
++++ b/macro.h Thu May 14 07:38:17 2009 -0400
+@@ -1,6 +1,8 @@
+ /* file: macro.h symmetrica source code */
+ #ifndef MACRO_H
+
++#include "string.h"
++
+ #ifdef SYMMAGMA
+ #define SYM_MALLOC(a) mem_malloc(a)
+ #else
+ #define C_O_K(a,b) ((a)->ob_kind = (OBJECTKIND)(b))
+--- a/nc.c Thu May 14 06:01:00 2009 -0400
++++ b/nc.c Thu May 14 07:38:17 2009 -0400
+@@ -204,7 +204,7 @@
+ erg += mult(S_NC_C(a),S_NC_C(b),d);
+ erg += m_gl_co(S_NC_GL(a),e);
+ erg += mult_apply(e,d);
+- erg += sum(d,e);
++ erg += sym_sum(d,e);
+ erg += m_gl_go(S_NC_GL(a),d);
+ erg += div(e,d,c);
+ erg += freeall(e);
+@@ -617,7 +617,7 @@
+ erg += mult_nc_kranz(c,a,e);
+ erg += mult(S_V_I(e,1L),f,c);
+ erg += div(c,g,c);
+- erg += sum(c,S_V_I(S_NC_C(b),S_I_I(d)));
++ erg += sym_sum(c,S_V_I(S_NC_C(b),S_I_I(d)));
+ }
+ erg += freeall(c);
+ erg += freeall(d);
+@@ -712,7 +712,7 @@
+ for(j = 0L; j<S_V_LI(c);j++) {
+ kranztypus_to_matrix(S_V_I(c,j),S_V_I(a,j));
+ }
+- sort(a);
++ sym_sort(a);
+ freeall(f); freeall(h); freeall(c);
+ return OK;
+ }
+@@ -739,7 +739,7 @@
+ kranztypus_to_matrix(S_V_I(c,j),S_V_I(h,j));
+ }
+
+- sort(h);
++ sym_sort(h);
+ m_l_v(S_V_L(h),a);
+ for(j = 0L; j<S_V_LI(c);j++) {
+ typusorder(S_V_I(h,j), zb, za, S_V_I(a,j), f);
+@@ -789,7 +789,7 @@
+ erg += kranztypus_to_matrix(S_V_I(c,j),S_V_I(h,j));
+ }
+
+- erg += sort(h);
++ erg += sym_sort(h);
+ erg += typusorder(S_V_I(h,S_I_I(i)), zb, za, a, f);
+ erg += freeall(f);
+ erg += freeall(c);
+diff -r 5cd656a07aa5 src/nu.c
+--- a/nu.c Thu May 14 06:01:00 2009 -0400
++++ b/nu.c Thu May 14 07:38:17 2009 -0400
+@@ -531,13 +531,13 @@
+ ENDR("add");
+ }
+
+-INT sort(a) OP a;
++INT sym_sort(a) OP a;
+ /* sortiert das object in aufsteigender reihenfolge AK 270787 */
+ /* AK 160986 */ /* AK 280689 V1.0 */ /* AK 050390 V1.1 */
+ /* AK 070891 V1.3 */
+ {
+ INT erg = OK;
+- EOP("sort(1)",a);
++ EOP("sym_sort(1)",a);
+
+ switch(S_O_K(a))
+ {
+@@ -547,9 +547,9 @@
+ erg += sort_vector(a);break;
+ #endif /* VECTORTRUE */
+ default:
+- erg += WTO("sort",a); break;
++ erg += WTO("sym_sort",a); break;
+ };
+- ENDR("sort");
++ ENDR("sym_sort");
+ }
+
+ INT length(a,d) OP a,d;
+@@ -641,7 +641,7 @@
+ ENDR("content");
+ }
+
+-INT sum(a,res) OP a,res;
++INT sym_sum(a,res) OP a,res;
+ /* AK 280689 V1.0 */ /* AK 050390 V1.1 */ /* AK 120391 V1.2 */
+ /* AK 140891 V1.3 */
+ /* AK 170298 V2.0 */
+@@ -649,7 +649,7 @@
+ INT erg = OK;
+ COP("sum(1)",a);
+ COP("sum(2)",res);
+- CE2(a,res,sum);
++ CE2(a,res,sym_sum);
+
+ switch(S_O_K(a))
+ {
+@@ -680,7 +680,7 @@
+ erg += WTO("sum",a); break;
+ };
+
+- ENDR("sum");
++ ENDR("sym_sum");
+ }
+
+
+diff -r 5cd656a07aa5 src/part.c
+--- a/part.c Thu May 14 06:01:00 2009 -0400
++++ b/part.c Thu May 14 07:38:17 2009 -0400
+@@ -347,7 +347,7 @@
+ if (a == b) { /* a := a+a */
+ if (S_PA_K(a) == VECTOR) {
+ erg += append_apply_vector(S_PA_S(a),S_PA_S(b));
+- erg += sort(S_PA_S(a));
++ erg += sym_sort(S_PA_S(a));
+ goto endr_ende;
+ }
+ else if (S_PA_K(a) == EXPONENT) {
+@@ -406,7 +406,7 @@
+ k=S_PA_LI(b)-1;
+ /*
+ erg += append_apply_vector(S_PA_S(a),S_PA_S(b));
+- erg += sort(S_PA_S(a));
++ erg += sym_sort(S_PA_S(a));
+ */
+ inc_vector_co(S_PA_S(a),S_PA_LI(b));
+ for (j=S_PA_LI(a)-1;j>=0;j--)
+diff -r 5cd656a07aa5 src/perm.c
+--- a/perm.c Thu May 14 06:01:00 2009 -0400
++++ b/perm.c Thu May 14 07:38:17 2009 -0400
+@@ -833,9 +833,9 @@
+ /* s = Anzahl der spalten */
+
+ s = S_V_LI(S_V_I(a,0L));
+- sum(S_V_I(a,0L),summe);/* composition ist vector */
++ sym_sum(S_V_I(a,0L),summe);/* composition ist vector */
+ z = S_I_I(summe);
+- FREEALL(summe);
++ FREEALL(summe);
+ m_ilih_nm(s,z,b);
+ C_O_K(b,KRANZTYPUS);
+ for (i=0L;i<s;i++)
+@@ -1114,7 +1114,7 @@
+ erg += kranztypus_to_matrix(S_V_I(c,i),S_V_I(h,i));
+ }
+
+- erg += sort(h);
++ erg += sym_sort(h);
+
+ erg += chartafel(b,ct);
+
+@@ -1926,7 +1926,7 @@
+ OP c;
+ c = CALLOCOBJECT();
+ erg += lehmercode_permutation(a,c); /*result is a vector */
+- erg += sum(c,b);
++ erg += sym_sum(c,b);
+ FREEALL(c);
+ }
+ ENDR("numberof_inversionen");
+@@ -2364,7 +2364,7 @@
+ COP("rz_lehmercode(2)",b);
+
+ zw = callocobject();
+- erg += sum(lc,zw);
++ erg += sym_sum(lc,zw);
+ if (NULLP(zw))
+ {
+ erg += m_il_integervector((INT)0,b);
+diff -r 5cd656a07aa5 src/rest.c
+--- a/rest.c Thu May 14 06:01:00 2009 -0400
++++ b/rest.c Thu May 14 07:38:17 2009 -0400
+@@ -3998,7 +3998,7 @@
+ oj = j;
+ }
+ }
+- erg += sum(c,b);
++ erg += sym_sum(c,b);
+ eee:
+ erg += freeall(c);
+ ENDR("charge_word");
+diff -r 5cd656a07aa5 src/ta.c
+--- a/ta.c Thu May 14 06:01:00 2009 -0400
++++ b/ta.c Thu May 14 07:38:17 2009 -0400
+@@ -1596,7 +1596,7 @@
+ {
+ OP d,e;
+ e = CALLOCOBJECT();
+- erg += sum(content,e); /* AK 271098 */
++ erg += sym_sum(content,e); /* AK 271098 */
+ d = CALLOCOBJECT();
+ erg += weight(shape,d);
+ if (NEQ(d,e))
+@@ -1821,7 +1821,7 @@
+ CE3(matrix, column_index, row_index,matrix_twoword);
+ c = callocobject();
+ erg += zeilen_summe(matrix,c);
+- erg += sum(c,c);
++ erg += sym_sum(c,c);
+ erg += m_l_v(c,column_index);
+ erg += m_l_v(c,row_index);
+ for(i=0,l=0;i<S_M_HI(matrix);i++)
+diff -r 5cd656a07aa5 src/zyk.c
+--- a/zyk.c Thu May 14 06:01:00 2009 -0400
++++ b/zyk.c Thu May 14 07:38:17 2009 -0400
+@@ -804,7 +804,7 @@
+ zykeltypvec = CALLOCOBJECT();
+ ak_order = CALLOCOBJECT();
+
+- sum(numztvec,ak_order); /* AK 060295 */
++ sym_sum(numztvec,ak_order); /* AK 060295 */
+
+
+
+@@ -1176,7 +1176,7 @@
+ erg += m_i_i(0,c);
+ while (z!=NULL)
+ {
+- erg += sum(S_PO_S(z),e);
++ erg += sym_sum(S_PO_S(z),e);
+ erg += hoch(b,e,e);
+ erg += mult_apply(S_PO_K(z),e);
+ erg += add_apply(e,c);
diff --git a/gnu/packages/patches/usb-modeswitch-accept-config-arg.patch b/gnu/packages/patches/usb-modeswitch-accept-config-arg.patch
new file mode 100644
index 0000000000..9c050f7ee6
--- /dev/null
+++ b/gnu/packages/patches/usb-modeswitch-accept-config-arg.patch
@@ -0,0 +1,42 @@
+--- old/usb_modeswitch.tcl 1970-01-01 01:00:00.000000000 +0100
++++ usb_modeswitch.tcl 2019-06-12 08:39:42.140000000 +0200
+@@ -41,7 +41,7 @@
+ global scsi usb config match device flags setup devdir loginit
+
+ set flags(config) ""
+-Log "[ParseGlobalConfig]"
++Log "[ParseGlobalConfig $argv]"
+
+ if {$flags(stordelay) > 0} {
+ SetStorageDelay $flags(stordelay)
+@@ -496,9 +496,21 @@
+ # end of proc {MatchDevice}
+
+
+-proc {ParseGlobalConfig} {} {
++proc {ParseGlobalConfig} {argv} {
+
+ global flags
++
++set configFileParam ""
++for {set i 0} {$i < [llength $argv]} {incr i} {
++ switch -glob -- [set v [lindex $argv $i]] {
++ --config-file=* {
++ set configFileParam $v
++ }
++ }
++}
++if {$configFileParam != ""} {
++ set configFile [string range $configFileParam [string length "--config-file="] end]
++} else {
+ set configFile ""
+ set places [list /etc/usb_modeswitch.conf /etc/sysconfig/usb_modeswitch /etc/default/usb_modeswitch]
+ foreach cfg $places {
+@@ -507,6 +519,7 @@
+ break
+ }
+ }
++}
+ if {$configFile == ""} {return}
+
+ set rc [open $configFile r]
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 5c858510eb..b2eb81ef0f 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -514,6 +515,9 @@ by using the poppler rendering engine.")
;; For building documentation.
("python-sphinx" ,python-sphinx)
+ ;; For building icons.
+ ("librsvg" ,librsvg)
+
;; For tests.
("check" ,check)
("xorg-server" ,xorg-server-for-tests)))
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 8e9410e37a..3875c71911 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -711,14 +712,14 @@ is captured while being passed through to the original file handles.")
(define-public perl-canary-stability
(package
(name "perl-canary-stability")
- (version "2012")
+ (version "2013")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/"
"Canary-Stability-" version ".tar.gz"))
(sha256
(base32
- "01vih43hvpqy67m6a6fwmlswli91mqpv8n8ccglvlkc33l8hn97x"))))
+ "1smnsx371x9zrqmylgq145991xh8561mraqfyrlbiz4mrxi1rjd5"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Canary-Stability")
(synopsis "Check compatibility with the installed perl version")
@@ -9429,7 +9430,7 @@ on the YAML 1.0 specification.")
(define-public perl-yaml-libyaml
(package
(name "perl-yaml-libyaml")
- (version "0.76")
+ (version "0.78")
(source
(origin
(method url-fetch)
@@ -9438,7 +9439,7 @@ on the YAML 1.0 specification.")
version
".tar.gz"))
(sha256
- (base32 "1m94g36sl9rasjlvlsf65xcal5hvkc3gbzd7l68h17az75269kyy"))))
+ (base32 "03plv3wfqqqf7g8mxr8f6wlki2af8w3rg9xcfii1z5l1f1iarxx1"))))
(build-system perl-build-system)
(home-page
"https://metacpan.org/release/YAML-LibYAML")
diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm
index e3f5fa1895..7f6a2e8e6a 100644
--- a/gnu/packages/popt.scm
+++ b/gnu/packages/popt.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
@@ -24,7 +24,8 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
- #:use-module (guix licenses))
+ #:use-module (guix licenses)
+ #:use-module (gnu packages texinfo))
(define-public argtable
(package
@@ -126,19 +127,21 @@ appropriately.")
(define-public gengetopt
(package
(name "gengetopt")
- (version "2.22.6")
+ (version "2.23")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/gengetopt/gengetopt-"
- version ".tar.gz"))
+ version ".tar.xz"))
(sha256
(base32
- "1xq1kcfs6hri101ss4dhym0jn96z4v6jdvx288mfywadc245mc1h"))))
+ "1b44fn0apsgawyqa4alx2qj5hls334mhbszxsy6rfr0q074swhdr"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; not supported
#:parallel-tests? #f)) ; likewise
+ (native-inputs
+ `(("texinfo" ,texinfo)))
(synopsis "Create parsers for command line options")
(description
"GNU Gengetopt is a program to generate a C/C++ function for parsing
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index d78d97c883..cbcbe6c867 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2045,21 +2045,21 @@ Betamax.")
(define-public python-s3transfer
(package
(name "python-s3transfer")
- (version "0.1.13")
+ (version "0.2.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "s3transfer" version))
(sha256
(base32
- "1harvyn1s8v54n1w5h7c0lg4bgjh68aylhg28s8n174q53h1ip4h"))))
+ "08fhj73b1ai52hrs2q3nggshq3pswn1gq8ch3m009cb2v2vmqggj"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
- ;; 7 of the 'integration' tests require network access or login
- ;; credentials.
+ ;; Some of the 'integration' tests require network access or
+ ;; login credentials.
(invoke "nosetests" "--exclude=integration")
#t)))))
(native-inputs
@@ -2067,7 +2067,8 @@ Betamax.")
("python-mock" ,python-mock)
("python-nose" ,python-nose)))
(propagated-inputs
- `(("python-botocore" ,python-botocore)))
+ `(("python-botocore" ,python-botocore)
+ ("python-urllib3" ,python-urllib3)))
(synopsis "Amazon S3 Transfer Manager")
(description "S3transfer is a Python library for managing Amazon S3
transfers.")
@@ -2499,6 +2500,14 @@ this it tries to be opinion-free and very extendable.")
(base32
"0r8w2v89nj6b9p91p495cga5m72a673l2wc0hp0zqk05j4yrc9b4"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ (substitute* "tests.py"
+ (("flask\\.ext\\.script") "flask_script"))
+ #t)))))
(propagated-inputs
`(("python-flask" ,python-flask)
("python-argcomplete" ,python-argcomplete)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c072cf574c..1867beb566 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -1978,6 +1978,32 @@ between Julian dates and Gregorian dates.")
`(("python2-functools32" ,python2-functools32)
,@(package-propagated-inputs jsonschema))))))
+;; This old version is still required by docker-compose as of 1.24.0.
+(define-public python-jsonschema-2.6
+ (package
+ (name "python-jsonschema")
+ (version "2.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "jsonschema" version))
+ (sha256
+ (base32
+ "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check (lambda _ (invoke "nosetests"))))))
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-vcversioner" ,python-vcversioner)))
+ (home-page "https://github.com/Julian/jsonschema")
+ (synopsis "Implementation of JSON Schema for Python")
+ (description
+ "Jsonschema is an implementation of JSON Schema for Python.")
+ (license license:expat)
+ (properties `((python2-variant . ,(delay python2-jsonschema))))))
+
(define-public python-schema
(package
(name "python-schema")
@@ -2049,13 +2075,13 @@ cutting and pasting that code over and over.")
(define-public python-unidecode
(package
(name "python-unidecode")
- (version "1.0.23")
+ (version "1.1.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "Unidecode" version))
(sha256
(base32
- "1ysjbr3nqfqj97h8zyj3v9pya413vkv7a1mzml80w37xx15kb1cb"))))
+ "00pi0czzwvbf7djhkkjyvimj60wqdx0llbddzfnax650g9b8yscc"))))
(build-system python-build-system)
(home-page "https://pypi.python.org/pypi/Unidecode")
(synopsis "ASCII transliterations of Unicode text")
@@ -3945,6 +3971,32 @@ toolkits.")
(define-public python2-matplotlib-documentation
(package-with-python2 python-matplotlib-documentation))
+(define-public python-matplotlib-venn
+ (package
+ (name "python-matplotlib-venn")
+ (version "0.11.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "matplotlib-venn" version ".zip"))
+ (sha256
+ (base32
+ "13w3i1wih0mij08hrgppzg0g9z50y54rc28l6gdi1r5w45l7l0dy"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; tests are not included
+ (propagated-inputs
+ `(("python-matplotlib" ,python-matplotlib)
+ ("python-numpy" ,python-numpy)
+ ("python-scipy" ,python-scipy)))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "https://github.com/konstantint/matplotlib-venn")
+ (synopsis "Plot area-proportional Venn diagrams")
+ (description
+ "This package provides tools for plotting area-proportional two- and
+three-way Venn diagrams in @code{matplotlib}.")
+ (license license:expat)))
+
(define-public python2-pysnptools
(package
(name "python2-pysnptools")
@@ -3978,14 +4030,14 @@ operators such as union, intersection, and difference.")
(define-public python-scipy
(package
(name "python-scipy")
- (version "1.1.0")
+ (version "1.2.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scipy" version))
(sha256
(base32
- "1lfg686w6vv2m2dfs8v9d0bf2i18z7wz5vgzjnkgmpr4hi0550w7"))))
+ "1cgvgin8fvckv96hjh3ikmwkra5rif51bdb75ifzf7xbil5iwcx4"))))
(build-system python-build-system)
(propagated-inputs
`(("python-numpy" ,python-numpy)
@@ -5009,13 +5061,13 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
(define-public python-ipykernel
(package
(name "python-ipykernel")
- (version "5.1.0")
+ (version "5.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ipykernel" version))
(sha256
- (base32 "0br95qhrd5k65g10djngiy27hs0642301hlf2q142i8djabvzh0g"))))
+ (base32 "173nm29g85w8cac3fg40b27qaq26g41wgg6qn79ql1hq4w2n5sgh"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -5038,8 +5090,39 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
"This package provides the IPython kernel for Jupyter.")
(license license:bsd-3)))
+;; Version 5.1.1 and above no longer support Python 2.
(define-public python2-ipykernel
- (package-with-python2 python-ipykernel))
+ (package
+ (name "python2-ipykernel")
+ (version "5.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ipykernel" version))
+ (sha256
+ (base32 "0br95qhrd5k65g10djngiy27hs0642301hlf2q142i8djabvzh0g"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (invoke "pytest" "-v")
+ #t)))))
+ (propagated-inputs
+ `(("python2-ipython" ,python2-ipython)
+ ;; imported at runtime during connect
+ ("python2-jupyter-client" ,python2-jupyter-client)))
+ (native-inputs
+ `(("python2-pytest" ,python2-pytest)
+ ("python2-nose" ,python2-nose)))
+ (home-page "https://ipython.org")
+ (synopsis "IPython Kernel for Jupyter")
+ (description
+ "This package provides the IPython kernel for Jupyter.")
+ (license license:bsd-3)))
(define-public python-pari-jupyter
(package
@@ -5066,12 +5149,34 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
(description "The package provides a PARI/GP kernel for Jupyter.")
(license license:gpl3+)))
+(define-public python-backcall
+ (package
+ (name "python-backcall")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "backcall" version))
+ (sha256
+ (base32
+ "1r01dqch3f8fdj3n6fviw8hxqrs6w5v0qw4izmvqzry1w9dxiv1q"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/takluyver/backcall/")
+ (synopsis "Specifications for callback functions passed in to an API")
+ (description
+ "If your code lets other people supply callback functions, it's important
+to specify the function signature you expect, and check that functions support
+that. Adding extra parameters later would break other peoples code unless
+you're careful. The @code{backcall} package provides a way of specifying the
+callback signature using a prototype function.")
+ (license license:bsd-3)))
+
;; This is the latest release of the LTS version of ipython with support for
;; Python 2.7 and Python 3.x. Later non-LTS versions starting from 6.0 have
-;; dropped support for Python 2.7. We may want to rename this package.
-(define-public python-ipython
+;; dropped support for Python 2.7.
+(define-public python2-ipython
(package
- (name "python-ipython")
+ (name "python2-ipython")
(version "5.8.0")
(source
(origin
@@ -5080,14 +5185,75 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
(sha256
(base32 "01l93i4hspf0lvhmycvc8j378bslm9rw30mwfspsl6v1ayc69b2b"))))
(build-system python-build-system)
- (outputs '("out" "doc"))
(propagated-inputs
- `(("python-pyzmq" ,python-pyzmq)
- ("python-prompt-toolkit" ,python-prompt-toolkit-1)
+ `(("python2-backports-shutil-get-terminal-size"
+ ,python2-backports-shutil-get-terminal-size)
+ ("python2-pathlib2" ,python2-pathlib2)
+ ("python2-pyzmq" ,python2-pyzmq)
+ ("python2-prompt-toolkit" ,python2-prompt-toolkit-1)
+ ("python2-terminado" ,python2-terminado)
+ ("python2-matplotlib" ,python2-matplotlib)
+ ("python2-numpy" ,python2-numpy)
+ ("python2-numpydoc" ,python2-numpydoc)
+ ("python2-jinja2" ,python2-jinja2)
+ ("python2-mistune" ,python2-mistune)
+ ("python2-pexpect" ,python2-pexpect)
+ ("python2-pickleshare" ,python2-pickleshare)
+ ("python2-simplegeneric" ,python2-simplegeneric)
+ ("python2-jsonschema" ,python2-jsonschema)
+ ("python2-traitlets" ,python2-traitlets)
+ ("python2-nbformat" ,python2-nbformat)
+ ("python2-pygments" ,python2-pygments)))
+ (inputs
+ `(("readline" ,readline)
+ ("which" ,which)))
+ (native-inputs
+ `(("graphviz" ,graphviz)
+ ("pkg-config" ,pkg-config)
+ ("python2-requests" ,python2-requests) ;; for tests
+ ("python2-testpath" ,python2-testpath)
+ ("python2-mock" ,python2-mock)
+ ("python2-nose" ,python2-nose)))
+ (arguments
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'delete-broken-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; These tests throw errors for unknown reasons.
+ (delete-file "IPython/core/tests/test_profile.py")
+ (delete-file "IPython/core/tests/test_interactiveshell.py")
+ (delete-file "IPython/core/tests/test_magic.py")
+ #t)))))
+ (home-page "https://ipython.org")
+ (synopsis "IPython is a tool for interactive computing in Python")
+ (description
+ "IPython provides a rich architecture for interactive computing with:
+Powerful interactive shells, a browser-based notebook, support for interactive
+data visualization, embeddable interpreters and tools for parallel
+computing.")
+ (license license:bsd-3)))
+
+(define-public python-ipython
+ (package
+ (name "python-ipython")
+ (version "7.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ipython" version ".tar.gz"))
+ (sha256
+ (base32 "09mbxq37mfn88xjnib7qfzaq9krr7gf1jxwy1p6mcjr254082h78"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-backcall" ,python-backcall)
+ ("python-pyzmq" ,python-pyzmq)
+ ("python-prompt-toolkit" ,python-prompt-toolkit)
("python-terminado" ,python-terminado)
("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)
("python-numpydoc" ,python-numpydoc)
+ ("python-jedi" ,python-jedi)
("python-jinja2" ,python-jinja2)
("python-mistune" ,python-mistune)
("python-pexpect" ,python-pexpect)
@@ -5105,74 +5271,10 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
("pkg-config" ,pkg-config)
("python-requests" ,python-requests) ;; for tests
("python-testpath" ,python-testpath)
- ("python-nose" ,python-nose)
- ("python-sphinx" ,python-sphinx)
- ("python-shpinx-rtd-theme" ,python-sphinx-rtd-theme)
- ;; FIXME: It's possible that a smaller union would work just as well.
- ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
- texlive-fonts-ec
- texlive-generic-ifxetex
- texlive-generic-pdftex
- texlive-latex-amsfonts
- texlive-latex-capt-of
- texlive-latex-cmap
- texlive-latex-environ
- texlive-latex-eqparbox
- texlive-latex-etoolbox
- texlive-latex-expdlist
- texlive-latex-fancyhdr
- texlive-latex-fancyvrb
- texlive-latex-fncychap
- texlive-latex-float
- texlive-latex-framed
- texlive-latex-geometry
- texlive-latex-graphics
- texlive-latex-hyperref
- texlive-latex-mdwtools
- texlive-latex-multirow
- texlive-latex-oberdiek
- texlive-latex-parskip
- texlive-latex-preview
- texlive-latex-tabulary
- texlive-latex-threeparttable
- texlive-latex-titlesec
- texlive-latex-trimspaces
- texlive-latex-ucs
- texlive-latex-upquote
- texlive-latex-url
- texlive-latex-varwidth
- texlive-latex-wrapfig)))
- ("texinfo" ,texinfo)))
+ ("python-nose" ,python-nose)))
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'install 'install-doc
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
- (doc (string-append data "/doc/" ,name "-" ,version))
- (html (string-append doc "/html"))
- (man1 (string-append data "/man/man1"))
- (info (string-append data "/info"))
- (examples (string-append doc "/examples"))
- (python-arg (string-append "PYTHON=" (which "python"))))
- (setenv "LANG" "en_US.utf8")
- ;; Make installed package available for running the tests
- (add-installed-pythonpath inputs outputs)
- (with-directory-excursion "docs"
- ;; FIXME: pdf fails to build
- ;;(system* "make" "pdf" "PAPER=a4")
- (system* "make" python-arg "html")
- (system* "make" python-arg "info"))
- (copy-recursively "docs/man" man1)
- (copy-recursively "examples" examples)
- (copy-recursively "docs/build/html" html)
- ;; (copy-file "docs/build/latex/ipython.pdf"
- ;; (string-append doc "/ipython.pdf"))
- (mkdir-p info)
- (copy-file "docs/build/texinfo/ipython.info"
- (string-append info "/ipython.info"))
- (copy-file "COPYING.rst" (string-append doc "/COPYING.rst")))
- #t))
;; Tests can only be run after the library has been installed and not
;; within the source directory.
(delete 'check)
@@ -5195,19 +5297,11 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
(substitute* "./IPython/core/tests/test_inputtransformer.py"
(("#!/usr/bin/env python")
(string-append "#!" (which "python"))))
- ;; Disable 1 failing test
- (substitute* "./IPython/core/tests/test_magic.py"
- (("def test_dirops\\(\\):" all)
- (string-append "@dec.skipif(True)\n" all)))
;; This test introduces a circular dependency on ipykernel
;; (which depends on ipython).
(delete-file "IPython/core/tests/test_display.py")
- ;; These tests throw errors for unknown reasons.
- (delete-file "IPython/extensions/tests/test_storemagic.py")
- (delete-file "IPython/core/tests/test_displayhook.py")
+ ;; AttributeError: module 'IPython.core' has no attribute 'formatters'
(delete-file "IPython/core/tests/test_interactiveshell.py")
- (delete-file "IPython/core/tests/test_pylabtools.py")
- (delete-file "IPython/core/tests/test_paths.py")
#t)))))
(home-page "https://ipython.org")
(synopsis "IPython is a tool for interactive computing in Python")
@@ -5216,22 +5310,88 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
Powerful interactive shells, a browser-based notebook, support for interactive
data visualization, embeddable interpreters and tools for parallel
computing.")
- (license license:bsd-3)
- (properties `((python2-variant . ,(delay python2-ipython))))))
+ (license license:bsd-3)))
-(define-public python2-ipython
- (let ((ipython (package-with-python2 (strip-python2-variant python-ipython))))
- (package
- (inherit ipython)
- ;; FIXME: add pyreadline once available.
- (propagated-inputs
- `(("python2-backports-shutil-get-terminal-size"
- ,python2-backports-shutil-get-terminal-size)
- ("python2-pathlib2" ,python2-pathlib2)
- ,@(package-propagated-inputs ipython)))
- (native-inputs
- `(("python2-mock" ,python2-mock)
- ,@(package-native-inputs ipython))))))
+(define-public python-ipython-documentation
+ (package
+ (inherit python-ipython)
+ (name "python-ipython-documentation")
+ (version (package-version python-ipython))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'build)
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((data (string-append (assoc-ref outputs "out") "/share"))
+ (doc (string-append data "/doc/" ,name "-" ,version))
+ (html (string-append doc "/html"))
+ (man1 (string-append data "/man/man1"))
+ (info (string-append data "/info"))
+ (examples (string-append doc "/examples"))
+ (python-arg (string-append "PYTHON=" (which "python"))))
+ (setenv "LANG" "en_US.utf8")
+ (with-directory-excursion "docs"
+ ;; FIXME: pdf fails to build
+ ;;(system* "make" "pdf" "PAPER=a4")
+ (system* "make" python-arg "html")
+ ;; FIXME: the generated texi file contains ^@^@, which trips
+ ;; up the parser.
+ ;; (system* "make" python-arg "info")
+ )
+ (copy-recursively "docs/man" man1)
+ (copy-recursively "examples" examples)
+ (copy-recursively "docs/build/html" html)
+ ;; (copy-file "docs/build/latex/ipython.pdf"
+ ;; (string-append doc "/ipython.pdf"))
+ (mkdir-p info)
+ ;; (copy-file "docs/build/texinfo/ipython.info"
+ ;; (string-append info "/ipython.info"))
+ (copy-file "COPYING.rst" (string-append doc "/COPYING.rst")))
+ #t)))))
+ (inputs
+ `(("python-ipython" ,python-ipython)
+ ("python-ipykernel" ,python-ipykernel)))
+ (native-inputs
+ `(("python-sphinx" ,python-sphinx)
+ ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
+ ;; FIXME: It's possible that a smaller union would work just as well.
+ ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
+ texlive-fonts-ec
+ texlive-generic-ifxetex
+ texlive-generic-pdftex
+ texlive-latex-amsfonts
+ texlive-latex-capt-of
+ texlive-latex-cmap
+ texlive-latex-environ
+ texlive-latex-eqparbox
+ texlive-latex-etoolbox
+ texlive-latex-expdlist
+ texlive-latex-fancyhdr
+ texlive-latex-fancyvrb
+ texlive-latex-fncychap
+ texlive-latex-float
+ texlive-latex-framed
+ texlive-latex-geometry
+ texlive-latex-graphics
+ texlive-latex-hyperref
+ texlive-latex-mdwtools
+ texlive-latex-multirow
+ texlive-latex-needspace
+ texlive-latex-oberdiek
+ texlive-latex-parskip
+ texlive-latex-preview
+ texlive-latex-tabulary
+ texlive-latex-threeparttable
+ texlive-latex-titlesec
+ texlive-latex-trimspaces
+ texlive-latex-ucs
+ texlive-latex-upquote
+ texlive-latex-url
+ texlive-latex-varwidth
+ texlive-latex-wrapfig)))
+ ("texinfo" ,texinfo)))))
(define-public python-urwid
(package
@@ -7437,21 +7597,19 @@ in the data.")
(define-public python-jupyter-console
(package
(name "python-jupyter-console")
- (version "5.2.0")
+ (version "6.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jupyter_console" version))
(sha256
(base32
- "1kam1qzgwr7srhm5r6aj90di5sws4bq0jmiw15452ddamb9yspal"))))
+ "1xdjw11cppf1fxvwkw2bk13ckkwas3bdah8baingn9296mvfi31h"))))
(build-system python-build-system)
- ;; Tests only run in an TTY.
- (arguments `(#:tests? #f))
(propagated-inputs
`(("python-ipykernel" ,python-ipykernel)
("python-jupyter-client" ,python-jupyter-client)
- ("python-prompt-toolkit" ,python-prompt-toolkit-1)
+ ("python-prompt-toolkit" ,python-prompt-toolkit)
("python-pygments" ,python-pygments)))
(native-inputs
`(("python-nose" ,python-nose)))
@@ -7463,7 +7621,32 @@ Jupyter kernels such as IJulia and IRKernel.")
(license license:bsd-3)))
(define-public python2-jupyter-console
- (package-with-python2 python-jupyter-console))
+ (package
+ (name "python2-jupyter-console")
+ (version "5.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jupyter_console" version))
+ (sha256
+ (base32
+ "1kam1qzgwr7srhm5r6aj90di5sws4bq0jmiw15452ddamb9yspal"))))
+ (build-system python-build-system)
+ ;; Tests only run in an TTY.
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python2-ipykernel" ,python2-ipykernel)
+ ("python2-jupyter-client" ,python2-jupyter-client)
+ ("python2-prompt-toolkit" ,python2-prompt-toolkit-1)
+ ("python2-pygments" ,python2-pygments)))
+ (native-inputs
+ `(("python2-nose" ,python2-nose)))
+ (home-page "https://jupyter.org")
+ (synopsis "Jupyter terminal console")
+ (description "This package provides a terminal-based console frontend for
+Jupyter kernels. It also allows for console-based interaction with non-Python
+Jupyter kernels such as IJulia and IRKernel.")
+ (license license:bsd-3)))
;; The python-ipython and python-jupyter-console require each other. To get
;; the functionality in both packages working, strip down the
@@ -8298,34 +8481,35 @@ document.")
(define-public python-botocore
(package
- (name "python-botocore")
- (version "1.8.43")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "botocore" version))
- (sha256
- (base32
- "12cqpbnz3vfv41mp9admvciw7bc7hz57sjpqs2bxaw9wnfmbw5lg"))))
- (build-system python-build-system)
- (arguments
- ;; FIXME: Many tests are failing.
- '(#:tests? #f))
- (propagated-inputs
- `(("python-dateutil" ,python-dateutil)
- ("python-docutils" ,python-docutils)
- ("python-jmespath" ,python-jmespath)))
- (native-inputs
- `(("python-mock" ,python-mock)
- ("python-nose" ,python-nose)
- ("behave" ,behave)
- ("python-tox" ,python-tox)
- ("python-wheel" ,python-wheel)))
- (home-page "https://github.com/boto/botocore")
- (synopsis "Low-level interface to AWS")
- (description "Botocore is a Python library that provides a low-level
+ (name "python-botocore")
+ (version "1.12.149")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "botocore" version))
+ (sha256
+ (base32
+ "12597f74khp3ngwr282cb949w0gcqj20rkfc3x275dijavyy5cmf"))))
+ (build-system python-build-system)
+ (arguments
+ ;; FIXME: Many tests are failing.
+ '(#:tests? #f))
+ (propagated-inputs
+ `(("python-dateutil" ,python-dateutil)
+ ("python-docutils" ,python-docutils)
+ ("python-jmespath" ,python-jmespath)))
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-nose" ,python-nose)
+ ("behave" ,behave)
+ ("python-tox" ,python-tox)
+ ("python-urllib3" ,python-urllib3)
+ ("python-wheel" ,python-wheel)))
+ (home-page "https://github.com/boto/botocore")
+ (synopsis "Low-level interface to AWS")
+ (description "Botocore is a Python library that provides a low-level
interface to the Amazon Web Services (AWS) API.")
- (license license:asl2.0)))
+ (license license:asl2.0)))
(define-public python2-botocore
(package-with-python2 python-botocore))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 11f3aacf00..aa92e82ac2 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -261,6 +261,7 @@ introspection capabilities; intuitive object orientation; natural
expression of procedural code; full modularity, supporting hierarchical
packages; exception-based error handling; and very high level dynamic
data types.")
+ (properties '((cpe-name . "python")))
(license license:psfl)))
;; Current 2.x version.
diff --git a/gnu/packages/rush.scm b/gnu/packages/rush.scm
index 1b4ea6bb5d..b1ba7daaaa 100644
--- a/gnu/packages/rush.scm
+++ b/gnu/packages/rush.scm
@@ -26,14 +26,14 @@
(define-public rush
(package
(name "rush")
- (version "1.8")
+ (version "1.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/rush/rush-"
version ".tar.gz"))
(sha256
(base32
- "1vxdb81ify4xcyygh86250pi50krb16dkj42i5ii4ns3araiwckz"))))
+ "12x7dyi9vl3lwlv618156nzpi5s0li93wcx2c26h4z7la20yq2yk"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/rush/")
(synopsis "Restricted user (login) shell")
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 3f5ec590a9..9c8088b2f7 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -1048,7 +1048,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(setenv "RUST_TEST_THREADS" "2")
#t)))))))))
-(define-public rust
+(define-public rust-1.34
(let ((base-rust
(rust-bootstrapped-package rust-1.33 "1.34.1"
"19s09k7y5j6g3y4d2rk6kg9pvq6ml94c49w6b72dmq8p9lk8bixh")))
@@ -1062,3 +1062,23 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(delete-file-recursively "src/llvm-project")
(delete-file-recursively "vendor/jemalloc-sys/jemalloc")
#t)))))))
+
+(define-public rust
+ (let ((base-rust
+ (rust-bootstrapped-package rust-1.34 "1.35.0"
+ "0bbizy6b7002v1rdhrxrf5gijclbyizdhkglhp81ib3bf5x66kas")))
+ (package
+ (inherit base-rust)
+ (arguments
+ (substitute-keyword-arguments (package-arguments base-rust)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ ;; The tidy test includes a pass which ensures large binaries
+ ;; don't accidentally get checked into the rust git repo.
+ ;; Unfortunately the test assumes that git is always available,
+ ;; so we'll comment out the invocation of this pass.
+ (add-after 'configure 'disable-tidy-bins-check
+ (lambda* _
+ (substitute* "src/tools/tidy/src/main.rs"
+ (("bins::check") "//bins::check"))
+ #t)))))))))
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index baa79ab1c0..63d1281668 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -18,12 +18,20 @@
(define-module (gnu packages sagemath)
#:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
+ #:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages bdw-gc)
+ #:use-module (gnu packages boost)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages image)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz))
@@ -31,14 +39,14 @@
(define-public python-cypari2
(package
(name "python-cypari2")
- (version "2.0.3")
+ (version "2.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cypari2" version))
(sha256
(base32
- "0mghbmilmy34xp1d50xdx76sijqxmpkm2bcgx2v1mdji2ff7n0yc"))))
+ "1nwkzgqvbw6361x0rpggy1q5nx663fswhpvg8md6xhqyfwpgc7nz"))))
(build-system python-build-system)
(native-inputs
`(("python-cython" ,python-cython)))
@@ -60,18 +68,21 @@ but it can be used independently.")
(package-with-python2 python-cypari2))
;; The stable version of the following package is not young enough to be
-;; used with Sage, since it does not support cython. One would need to
-;; use an alpha release. On the other hand, Sage can be built without it.
+;; used with Sage, since it does not support cython; so we use a beta
+;; release.
(define-public python-gmpy2
(package
(name "python-gmpy2")
- (version "2.0.8")
+ (version "2.1.0b1")
(source (origin
- (method url-fetch)
- (uri (pypi-uri "gmpy2" version ".zip"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aleaxit/gmpy")
+ (commit (string-append "gmpy2-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0grx6zmi99iaslm07w6c2aqpnmbkgrxcqjrqpfq223xri0r3w8yx"))))
+ "0ljvnmhxqdfsp0yy4c2hynhk5sggm63kkqsq4iwq4k9vsnx2xm97"))))
(build-system python-build-system)
(native-inputs
`(("unzip" ,unzip)))
@@ -89,3 +100,256 @@ libraries GMO, MPFR and MPC.")
(define-public python2-gmpy2
(package-with-python2 python-gmpy2))
+
+(define-public cliquer
+ (package
+ (name "cliquer")
+ (version "1.21")
+ ;; The original source package is available from the home page and
+ ;; has not seen any release since 2010; it comes with only a Makefile
+ ;; without an "install" target. Instead, there is an autotoolized
+ ;; tarball available from the Sage project.
+ (source
+ (origin
+ (method url-fetch)
+ (uri "http://users.ox.ac.uk/~coml0531/sage/cliquer-1.21.tar.gz")
+ (sha256
+ (base32
+ "1hdzrmrx0nvvj8kbwxrs8swqgkd284khzl623jizixcv28xb77aq"))))
+ (build-system gnu-build-system)
+ (synopsis "C routines for finding cliques in weighted graphs")
+ (description "Cliquer is a set of reentrant C routines for finding
+cliques in a weighted or unweighted graph. It uses an exact
+branch-and-bound algorithm. It can search for maximum or maximum-weight
+cliques or cliques with size or weight within a given range, restrict the
+search to maximal cliques, store cliques in memory and call a user-defined
+function for every found clique.")
+ (license license:gpl2+)
+ (home-page "https://users.aalto.fi/~pat/cliquer.html")))
+
+(define-public libbraiding
+ (package
+ (name "libbraiding")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://github.com/miguelmarco/"
+ name))
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0l68rikfr7k2l547gb3pp3g8cj5zzxwipm79xrb5r8ffj466ydxg"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (synopsis "Computations with braid groups")
+ (description "libbraiding performs computations with braid groups,
+in particular it computes normal forms of group elements.")
+ (license license:gpl2+)
+ (home-page "https://github.com/miguelmarco/libbraiding")))
+
+(define-public libhomfly
+ (package
+ (name "libhomfly")
+ (version "1.02r6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://github.com/miguelmarco/"
+ name))
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0sv3cwrf9v9sb5a8wbhjmarxvya13ma3j8y8592f9ymxlk5y0ldk"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("libgc" ,libgc)))
+ (synopsis "Computation of homfly polynomials of links")
+ (description "libhomfly computes homfly polynomials of links,
+represented as strings.")
+ (license license:public-domain)
+ (home-page "https://github.com/miguelmarco/libhomfly")))
+
+;; The following three packages from the Linbox group are needed in
+;; an outdated version for Sage.
+
+(define-public givaro-4.0.4
+ (package (inherit givaro)
+ (name "givaro")
+ (version "4.0.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/linbox-team/givaro")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "199p8wyj5i63jbnk7j8qbdbfp5rm2lpmcxyk3mdjy9bz7ygx3hhy"))))))
+
+(define-public fflas-ffpack-2.3.2
+ (package (inherit fflas-ffpack)
+ (name "fflas-ffpack")
+ (version "2.3.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/linbox-team/fflas-ffpack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1cqhassj2dny3gx0iywvmnpq8ca0d6m82xl5rz4mb8gaxr2kwddl"))))
+ (propagated-inputs
+ `(("givaro" ,givaro-4.0.4)))
+ ;; A test fails, but since all tests pass in the latest version,
+ ;; there is not much point in investigating.
+ (arguments
+ (substitute-keyword-arguments (package-arguments fflas-ffpack)
+ ((#:tests? _ #f) #f)))))
+
+(define-public linbox-1.5.2
+ (package (inherit linbox)
+ (version "1.5.2")
+ (name "linbox")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/linbox-team/linbox")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wfivlwp30mzdy1697w7rzb8caajim50mc8h27k82yipn2qc5n4i"))))
+ (inputs
+ `(("fflas-ffpack" ,fflas-ffpack-2.3.2)))))
+
+(define-public pynac
+ (package
+ (name "pynac")
+ (version "0.7.25")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pynac/pynac/")
+ (commit (string-append "pynac-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0nnifvg6kzx0lq6gz7znind8g30v3d2pjfwgsdiks3vv9kv9nbj3"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("flint" ,flint)
+ ("gmp" ,gmp)
+ ("python" ,python)
+ ("singular" ,singular)))
+ (synopsis "Sage fork of GiNaC")
+ (description "Pynac is a derivative of the C++ library GiNaC, which
+allows manipulation of symbolic expressions. It currently provides the
+backend for symbolic expressions in Sage. The main difference between
+Pynac and GiNaC is that Pynac relies on Sage to provide the operations
+on numerical types, while GiNaC depends on CLN for this purpose.")
+ (license license:gpl2+)
+ (home-page "http://pynac.org/")))
+
+;; Sage has become upstream of the following package.
+(define-public zn-poly
+ (package
+ (name "zn-poly")
+ (version "0.9.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://gitlab.com/sagemath/"
+ "zn_poly.git/"))
+ (commit version)))
+ (file-name (git-file-name "zn_poly" version))
+ (sha256
+ (base32
+ "0ra5vy585bqq7g3317iw6fp44iqgqvds3j0l1va6mswimypq4vxb"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("python" ,python-2)))
+ (inputs
+ `(("gmp" ,gmp)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ ;; The configure script chokes on --enable-fast-install.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (invoke "./configure"
+ (string-append "--prefix=" (assoc-ref outputs "out"))
+ "--cflags=-O3 -fPIC")))
+ (add-before 'build 'prepare-build
+ (lambda _
+ (setenv "CC" "gcc")
+ #t))
+ (add-after 'build 'build-so
+ (lambda _
+ (invoke "make" "libzn_poly.so")))
+ (add-after 'install 'install-so
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
+ (install-file "libzn_poly.so" lib)))))))
+ (synopsis "Arithmetic for polynomials over Z/NZ")
+ (description "zn_poly implements the arithmetic of polynomials the
+coefficients of which are modular integers.")
+ (license (list license:gpl2 license:gpl3)) ; dual licensed
+ (home-page "https://gitlab.com/sagemath/zn_poly")))
+
+(define-public brial
+ (package
+ (name "brial")
+ (version "1.2.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BRiAl/BRiAl/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1nv56fp3brpzanxj7vwvxqdafqfsfhdgq5imr3m94psw5gdfqwja"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("boost" ,boost)
+ ("libpng" ,libpng)
+ ("m4ri" ,m4ri)))
+ (arguments
+ ;; We are missing the boost unit test framework.
+ `(#:tests? #f
+ #:configure-flags (list "--without-boost-unit-test-framework")))
+ (synopsis "Arithmetic of polynomials over boolean rings")
+ (description "BRiAl is the successor to PolyBoRi maintained by the
+Sage community. Its core is a C++ library, which provides high-level data
+types for Boolean polynomials and monomials, exponent vectors, as well as
+for the underlying polynomial rings and subsets of the powerset of the
+Boolean variables. As a unique approach, binary decision diagrams are
+used as internal storage type for polynomial structures.")
+ (license license:gpl2+)
+ (home-page "https://gitlab.com/sagemath/zn_poly")))
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 7803a1c8d1..812a36ca9a 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -153,14 +153,14 @@ anywhere.")
(define-public samba
(package
(name "samba")
- (version "4.10.4")
+ (version "4.10.5")
(source (origin
(method url-fetch)
(uri (string-append "https://download.samba.org/pub/samba/stable/"
"samba-" version ".tar.gz"))
(sha256
(base32
- "0xhfbh42dihccc85ffx243lyhf3jnphhi6xfcsr3a6mhsm7w1p26"))))
+ "0xb3mz38hcayqxchk0ws9mxn10vswsn97jbxl4gcwi4cbrnjc43c"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 3e5ab72f20..9962cbdcb5 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -437,7 +437,7 @@ implementation techniques and as an expository tool.")
(define-public racket
(package
(name "racket")
- (version "7.0")
+ (version "7.3")
(source (origin
(method url-fetch)
(uri (list (string-append "http://mirror.racket-lang.org/installers/"
@@ -447,7 +447,7 @@ implementation techniques and as an expository tool.")
version "/racket-" version "-src.tgz")))
(sha256
(base32
- "1glv5amsp9xp480d4yr63hhm9kkyav06yl3a6p489nkr4cln0j9a"))
+ "0h6072njhb87rkz4arijvahxgjzn8r14s4wns0ijvxm89bg136yl"))
(patches (search-patches
"racket-store-checksum-override.patch"))))
(build-system gnu-build-system)
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 49152dc3fd..f8c0fdf71f 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -749,14 +749,14 @@ Shell (pdksh).")
(define-public oil-shell
(package
(name "oil-shell")
- (version "0.5.0")
+ (version "0.6.pre22")
(source (origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.xz"))
(sha256
(base32
- "03zc7rhhpl0cybng2i3c33pky1knsnyvn526bn91hg6w4znvn66w"))))
+ "1kslycqa8rrzk9p2265dy045xd88q675w4baqiygcrnvxwn588c5"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; the tests are not distributed in the tarballs
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index a9475ab87b..a5773c21e5 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -90,7 +90,7 @@
("python-mock" ,python-mock)
("python-nose" ,python-nose)
("python-pytest" ,python-pytest)))
- (home-page "http://sphinx-doc.org/")
+ (home-page "https://sphinx-doc.org/")
(synopsis "Python documentation generator")
(description "Sphinx is a tool that makes it easy to create documentation
for Python projects or other documents consisting of multiple reStructuredText
@@ -341,7 +341,7 @@ SVG images natively (e.g. LaTeX).")
(arguments
;; FIXME: Tests depend on Sphinx, which depends on this.
`(#:tests? #f))
- (home-page "http://sphinx-doc.org/")
+ (home-page "https://sphinx-doc.org/")
(synopsis "Sphinx API for web applications")
(description "This package provides a Python API to easily integrate
Sphinx documentation into your web application. It provides tools to
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 156a329627..21fe65a08d 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1137,18 +1137,17 @@ legends.")
(define-public r-ggplot2
(package
(name "r-ggplot2")
- (version "3.1.1")
+ (version "3.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggplot2" version))
(sha256
- (base32 "0y8cks9r9hvjlx0isnvbgs3p0al167hlr3q7c3syfcj77dzjkpmz"))))
+ (base32 "1cvk9pw59kxx19kamqwa15h26rbznp0vvqpn7y8kgjssnrzqkdii"))))
(build-system r-build-system)
(propagated-inputs
`(("r-digest" ,r-digest)
("r-gtable" ,r-gtable)
- ("r-plyr" ,r-plyr)
("r-lazyeval" ,r-lazyeval)
("r-mass" ,r-mass)
("r-mgcv" ,r-mgcv)
@@ -1347,13 +1346,13 @@ adapted for other output formats, such as HTML or LaTeX.")
(define-public r-formatr
(package
(name "r-formatr")
- (version "1.6")
+ (version "1.7")
(source (origin
(method url-fetch)
(uri (cran-uri "formatR" version))
(sha256
(base32
- "0a9229rg3s9qga5v2fwfdqr0z3bk2yycv8kijrcm3jh66l68zjgm"))))
+ "1nsxbrx31k3y6yql30qkrvdfyznlia2qfvwv95mfiy7m7wdn4rm3"))))
(build-system r-build-system)
(home-page "http://yihui.name/formatR")
(synopsis "Format R code automatically")
@@ -1386,13 +1385,13 @@ supported via Andre Simon's highlight package.")
(define-public r-mime
(package
(name "r-mime")
- (version "0.6")
+ (version "0.7")
(source (origin
(method url-fetch)
(uri (cran-uri "mime" version))
(sha256
(base32
- "00f4gw4sg1kn03s67gficxgb7a7fb6pwhlvrxrml05q1mc2vcxa7"))))
+ "12vpip67ajb90b8p96w43ir7mavrw2i61bwvpfnrlmlj9kj3w20i"))))
(build-system r-build-system)
(home-page "https://github.com/yihui/mime")
(synopsis "R package to map filenames to MIME types")
@@ -2597,13 +2596,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
- (version "0.9.400.3.0")
+ (version "0.9.500.2.0")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
- "1c0kmp54xgg67hxpqm8bibcxmmwljbdvm9p1d9wzirp83x86v4sn"))))
+ "1lyvpb7n54ijlqns29qiixqr39334knf67cnixvlic58945glrhv"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
;; All needed for vignettes
@@ -3163,13 +3162,13 @@ using the multicore functionality of the parallel package.")
(define-public r-dt
(package
(name "r-dt")
- (version "0.6")
+ (version "0.7")
(source (origin
(method url-fetch)
(uri (cran-uri "DT" version))
(sha256
(base32
- "05kr88yshq6siarp5q7aapvsr63vx3p0aqablwgifn8m2sfqxmif"))))
+ "0b6ywgzk9b35y5f69zwfz3vv7qwqqj3xsmy0xymf7nfcvrqg3qqx"))))
(properties
`((upstream-name . "DT")))
(build-system r-build-system)
@@ -3543,13 +3542,13 @@ maintenance for package developers.")
(define-public r-r-utils
(package
(name "r-r-utils")
- (version "2.8.0")
+ (version "2.9.0")
(source (origin
(method url-fetch)
(uri (cran-uri "R.utils" version))
(sha256
(base32
- "1jaarld1jgpzh18kh9g3rlzcrk51vdgn2n1d1y28szzxlz94vifg"))))
+ "1w4zn2db15bggfnh64fbyi2z2sj47rcd4xn53b28dsnkamdcramj"))))
(properties `((upstream-name . "R.utils")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index bfcefb7270..a84281364f 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -97,14 +97,13 @@ It started life as a fork of the currently unmaintained Newsbeuter.")
(define-public rtv
(package
(name "rtv")
- (version "1.26.0")
+ (version "1.27.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "rtv" version))
(sha256
- (base32
- "1aamkli1mlq2vxixlva790y0l0cbvbkz07lknajin0841sdq0411"))))
+ (base32 "0hvw426y09l3yzwv2zkb9hifpfbg9wd1gg0y3z3pxcli6n3ii2wl"))))
(build-system python-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index f742e86a6b..4d0e875012 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1032,7 +1032,7 @@ comfortably in a pager or editor.
(define-public eternalterminal
(package
(name "eternalterminal")
- (version "5.1.9")
+ (version "5.1.10")
(source
(origin
(method git-fetch)
@@ -1041,8 +1041,7 @@ comfortably in a pager or editor.
(commit (string-append "et-v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "07ynkcnk3z6wafdlnzdxcd308cw1rzabxyq47ybj79lyji3wsgk7"))))
+ (base32 "0jh89229bd9s82h3aj6faaybwr5xvnk8w2kgz47gq263pz021zpl"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DBUILD_TEST=ON")
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 534934dfd1..731bbc5d16 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -140,8 +140,7 @@ based command language.")
("pkg-config" ,pkg-config)
("ruby" ,ruby)))
(inputs
- `(("ncurses" ,ncurses)
- ("boost" ,boost)))
+ `(("ncurses" ,ncurses)))
(synopsis "Vim-inspired code editor")
(description
"Kakoune is a code editor heavily inspired by Vim, as such most of its
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index c204fb9b92..79835e8578 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -851,3 +851,28 @@ Mainland China, Taiwan, and Hong-Kong.")
hosts and terminals. It converts input kanji code to designated kanji code
such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32.")
(license license:zlib))))
+
+(define-public python-pandocfilters
+ (package
+ (name "python-pandocfilters")
+ (version "1.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pandocfilters" version))
+ (sha256
+ (base32
+ "1a8d9b7s48gmq9zj0pmbyv2sivn5i7m6mybgpkk4jm5vd7hp1pdk"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/jgm/pandocfilters")
+ (synopsis "Python module for writing Pandoc filters")
+ (description "Pandoc is a powerful utility to transform various
+input formats into a wide range of output formats. To alter the
+exported output document, Pandoc allows the usage of filters, which
+are pipes that read a JSON serialization of the Pandoc AST from stdin,
+transform it in some way, and write it to stdout. It allows therefore
+to alter the processing of Pandoc's supported input formats, for
+instance one can add new syntax elements to markdown, etc.
+
+This package provides Python bindings.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/usb-modeswitch.scm b/gnu/packages/usb-modeswitch.scm
new file mode 100644
index 0000000000..8f1cf9df60
--- /dev/null
+++ b/gnu/packages/usb-modeswitch.scm
@@ -0,0 +1,166 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages usb-modeswitch)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages embedded)
+ #:use-module (gnu packages libusb)
+ #:use-module (gnu packages pkg-config))
+
+(define-public usb-modeswitch-data
+ (package
+ (name "usb-modeswitch-data")
+ (version "20170806")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.draisberghof.de/usb_modeswitch/"
+ "usb-modeswitch-data-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0b1wari3aza6qjggqd0hk2zsh93k1q8scgmwh6f8wr0flpr3whff"))))
+ (build-system trivial-build-system)
+ (native-inputs `(("tar" ,tar)
+ ("bzip2" ,bzip2)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (tar (assoc-ref %build-inputs "tar"))
+ (bzip2 (assoc-ref %build-inputs "bzip2"))
+ (files (string-append "usb-modeswitch-data-"
+ ,(package-version this-package)))
+ (share-dir (string-append %output "/share"))
+ (doc-dir (string-append share-dir "/doc/"))
+ (license-dir (string-append doc-dir
+ (strip-store-file-name %output)))
+ (udev-dir (string-append %output "/udev")))
+ (copy-file source "data.tar.bz2")
+ (invoke (string-append bzip2 "/bin/bzip2") "-d" "data.tar.bz2")
+ (invoke (string-append tar "/bin/tar") "xvf" "data.tar")
+ (copy-recursively (string-append files "/usb_modeswitch.d")
+ (string-append share-dir "/usb_modeswitch.d"))
+ (install-file (string-append files "/40-usb_modeswitch.rules")
+ udev-dir)
+ (install-file (string-append files "/COPYING") license-dir)))))
+ (home-page "http://www.draisberghof.de/usb_modeswitch/")
+ (synopsis "Data package for USB_ModeSwitch")
+ (description "This packages contains data about devices and a UDEV rules
+file for use with USB_ModeSwitch.")
+ (license license:gpl2+)))
+
+(define-public usb-modeswitch
+ (package
+ (name "usb-modeswitch")
+ (version "2.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.draisberghof.de/usb_modeswitch/"
+ "usb-modeswitch-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "19ifi80g9ns5dmspchjvfj4ykxssq9yrci8m227dgb3yr04srzxb"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove bundled jimtcl.
+ '(begin
+ (delete-file-recursively "jim")
+ #t))
+ (patches
+ (search-patches "usb-modeswitch-accept-config-arg.patch"))))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("libusb" ,libusb)
+ ("jimtcl" ,jimtcl)
+ ("usb-modeswitch-data" ,usb-modeswitch-data)))
+ (outputs '("out" "dispatcher"))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; does not support `make check`
+ #:make-flags (list "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'install
+ (lambda* (#:key source outputs inputs #:allow-other-keys)
+ (let* ((source (assoc-ref inputs "source"))
+ (jimtcl (assoc-ref inputs "jimtcl"))
+ (data (assoc-ref inputs "usb-modeswitch-data"))
+ (out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man1 (string-append out "/share/man/man1"))
+ (dispatcher-out (assoc-ref outputs "dispatcher"))
+ (udev (string-append dispatcher-out "/lib/udev"))
+ (etc (string-append dispatcher-out "/etc"))
+ (dispatcher-bin (string-append dispatcher-out "/bin"))
+ (dispatcher-man1 (string-append dispatcher-out
+ "/share/man/man1")))
+ (begin
+ ;; Users can install the default output and
+ ;; usb-modeswitch-data and then modeswitch their USB device
+ ;; by running e.g.:
+ ;;
+ ;; sudo usb_modeswitch -c \
+ ;; ~/.guix-profile/share/usb_modeswitch.d/12d1\:14fe \
+ ;; -v 0x12d1 -p 0x14fe
+ ;;
+ ;; But it is simpler to use the usb-modeswitch-service-type
+ ;; that installs a UDEV rules file which invokes a shell
+ ;; script in lib/udev (also called `usb_modeswitch' like the
+ ;; main binary) which, in turn, invokes the program
+ ;; `usb_modeswitch_dispatcher'. Normal users should not
+ ;; invoke this dispatcher directly, so it is a separate output.
+ (install-file "usb_modeswitch" bin)
+ (install-file "usb_modeswitch.conf" etc)
+ (install-file "usb_modeswitch.1" man1)
+ (install-file "usb_modeswitch_dispatcher.1" dispatcher-man1)
+
+ (substitute* "usb_modeswitch.sh"
+ (("PATH=") "PATH=$PATH:") ; we do not want hardcoded FHS path
+ (("init_path=") "init_path=/does/not/exist")) ; no /sbin/init
+ (rename-file "usb_modeswitch.sh" "usb_modeswitch")
+ (install-file "usb_modeswitch" udev)
+
+ (rename-file "usb_modeswitch.tcl" "usb_modeswitch_dispatcher")
+ (substitute* "usb_modeswitch_dispatcher"
+ (("/usr/bin/tclsh")
+ (string-append jimtcl "/bin/jimsh"))
+ (("/usr/sbin") bin)
+ (("/usr/share/usb_modeswitch")
+ (string-append data "/share/usb_modeswitch.d")))
+ (install-file "usb_modeswitch_dispatcher"
+ dispatcher-bin)
+ #t)))))))
+ (home-page "http://www.draisberghof.de/usb_modeswitch/")
+ (synopsis "Mode switching tool for controlling `multi-mode' USB devices")
+ (description "USB_ModeSwitch is a mode switching tool for controlling USB
+devices with multiple @dfn{modes}. When plugged in for the first time many
+USB devices (primarily high-speed WAN modems) act like a flash storage
+containing installers for Windows drivers. USB_ModeSwitch replays the
+sequence the Windows drivers would send to switch their mode from storage to
+modem (or whatever the thing is supposed to do).")
+ (license license:gpl2+)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index c8773adc7b..8effe1d502 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1223,14 +1223,14 @@ control to Git repositories.")
(define-public mercurial
(package
(name "mercurial")
- (version "5.0")
+ (version "5.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.mercurial-scm.org/"
"release/mercurial-" version ".tar.gz"))
(sha256
(base32
- "0akivl76sb4q2s42zncrm8jcsn86718wdcngfcw8i6wd2fh7dv2l"))))
+ "1kk27radafw2q18khg9mk52vny3bmki5wf7pbsmgx5amrpjai62c"))))
(build-system python-build-system)
(arguments
`(;; Restrict to Python 2, as Python 3 would require
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d1fdd12177..028a3b786f 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1627,7 +1627,10 @@ audio, images) from the Web. It can use either mpv or vlc for playback.")
("perl-libwww" ,perl-libwww)
("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
("perl-mozilla-ca" ,perl-mozilla-ca)
- ("perl-unicode-linebreak" ,perl-unicode-linebreak)))
+ ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+
+ ;; Some videos play without youtube-dl, but others silently fail to.
+ ("youtube-dl" ,youtube-dl)))
(arguments
`(#:modules ((guix build perl-build-system)
(guix build utils)
@@ -1635,6 +1638,13 @@ audio, images) from the Web. It can use either mpv or vlc for playback.")
#:module-build-flags '("--gtk")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'refer-to-inputs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/WWW/YoutubeViewer.pm"
+ (("'youtube-dl'")
+ (format #f "'~a/bin/youtube-dl'"
+ (assoc-ref inputs "youtube-dl"))))
+ #t))
(add-after 'install 'install-desktop
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -2668,16 +2678,16 @@ of modern, widely supported codecs.")
(define-public openh264
(package
(name "openh264")
- (version "1.8.0")
+ (version "2.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/cisco/"
name "/releases/download/v"
- version "/Source.Code.tar.gz.gz"))
+ version "/Source.Code.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0niha3wnn1jsndvz9vfwy2wyql8mp9j6v75vjsipy0idwan5yzgf"))))
+ "0iq802xfsfkskg6q1j0kg90xh04vv1sxf61mrmahgynz5d7hx2ii"))))
(build-system gnu-build-system)
(native-inputs
`(("nasm" ,nasm)
@@ -3478,7 +3488,7 @@ video from a Wayland session.")
(define-public gaupol
(package
(name "gaupol")
- (version "1.5")
+ (version "1.6")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3487,7 +3497,7 @@ video from a Wayland session.")
(file-name (git-file-name name version))
(sha256
(base32
- "0dk44fmcs86ymfxfbpdbrr4x5nn5hnv57wkqjyw61g779xjhlrd2"))))
+ "164wlxxjiqvkzbqjzvqvz2zkn0kgqmhn52294xx4vc9b9ngdnn0m"))))
(build-system python-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index aa543b68d0..7f2db9980e 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 HiPhish <hiphish@posteo.de>
+;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +31,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin) ; For GNU hostname
@@ -52,6 +54,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages ruby)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
@@ -888,3 +891,29 @@ from the @command{vi}-editor:
@end enumerate
With the package comes a plugin to use vifm as a vim file selector.")
(license license:gpl2+)))
+
+(define-public python-pynvim
+ (package
+ (name "python-pynvim")
+ (version "0.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pynvim" version))
+ (sha256
+ (base32
+ "01dybk4vs452pljn1q3il5z2sd313ki0lgiglc0xmjc6wp290r6g"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-greenlet" ,python-greenlet)
+ ("python-msgpack" ,python-msgpack)))
+ (arguments
+ `(#:tests? #f))
+ (home-page "https://github.com/neovim/pynvim")
+ (synopsis "Python client and plugin host for neovim")
+ (description "Pynvim implements support for python plugins in neovim. It
+also works as a library for connecting to and scripting neovim processes
+through its msgpack-rpc API.")
+ (license license:asl2.0)))
+
+(define-public python2-pynvim
+ (package-with-python2 python-pynvim))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index d022c6be46..1d9190ef63 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -32,6 +32,7 @@
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4234,27 +4235,19 @@ NetSurf project.")
(define-public ikiwiki
(package
(name "ikiwiki")
- (version "3.20170111")
+ (version "3.20190228")
(source
(origin
(method url-fetch)
(uri (string-append "http://snapshot.debian.org/archive/debian/"
- "20170111T215449Z/pool/main/i/ikiwiki/ikiwiki_"
- version ".tar.xz"))
+ "20190301T035241Z/pool/main/i/ikiwiki/ikiwiki_"
+ version ".orig.tar.xz"))
(sha256
(base32
- "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz"))))
+ "17pyblaqhkb61lxl63bzndiffism8k859p54k3k4sghclq6lsynh"))))
(build-system perl-build-system)
(arguments
- `(;; Image tests fail
- ;;
- ;; Test Summary Report
- ;; -------------------
- ;; t/img.t (Wstat: 2304 Tests: 62 Failed: 9)
- ;; Failed tests: 21, 27-28, 30-35
- ;; Non-zero exit status: 9
- #:tests? #f
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'include-PERL5LIB-in-wrapper
(lambda _
@@ -4819,14 +4812,14 @@ tools like SSH (Secure Shell) to reach the outside world.")
(define-public stunnel
(package
(name "stunnel")
- (version "5.54")
+ (version "5.55")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.stunnel.org/downloads/stunnel-"
version ".tar.gz"))
(sha256
- (base32 "00krr0h3vsyi93mqhrbgfgn8v47l4l3hzdg1ccfnpd3lqak8i1ay"))))
+ (base32 "0qjc0wkjf6bqz29fvwwsn9hnjhm6alsm10jcwx4jad2q3ks6kplh"))))
(build-system gnu-build-system)
(native-inputs
;; For tests.
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 4940156db5..7261137cab 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -31,12 +31,13 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnunet)
#:use-module (gnu packages libidn)
- #:use-module (gnu packages python)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages web)
#:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -45,7 +46,7 @@
(define-public wget
(package
(name "wget")
- (version "1.20.1")
+ (version "1.20.3")
(source
(origin
(method url-fetch)
@@ -53,7 +54,7 @@
version ".tar.lz"))
(sha256
(base32
- "0a29qsqxkk8145vkyy35q5a1wc7qzwx3qj3gmfrkmi9xs96yhqqg"))))
+ "1frajd86ds8vz2hprq30wq8ya89z9dcxnwm8nwk12bbc47l7qq39"))))
(build-system gnu-build-system)
(inputs
`(("gnutls" ,gnutls)
@@ -102,7 +103,7 @@ in downloaded documents to relative links.")
(lambda _
(substitute* "wgetpaste"
((" poundpython\"") "\"")
- (("-poundpython") "-dpaste"))
+ (("-poundpython") "-bpaste")) ; dpaste blocks tor users
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
@@ -123,11 +124,12 @@ in downloaded documents to relative links.")
,(delete-duplicates
(map (lambda (command) (dirname (which command)))
(list "bash" "mktemp" "sed" "sort" "tee" "tr"
- "wget")))))
+ "wget" "xclip")))))
#t))))
#:tests? #f)) ; no test target
(inputs
- `(("wget" ,wget)))
+ `(("wget" ,wget)
+ ("xclip" ,xclip)))
(home-page "http://wgetpaste.zlin.dk/")
(synopsis "Script that automates pasting to a number of pastebin services")
(description
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index f0589e98f1..90bc7fc883 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -17,9 +17,10 @@
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
-;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
+;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -85,6 +86,10 @@
#:use-module (gnu packages version-control)
#:use-module (gnu packages man)
#:use-module (gnu packages textutils)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages logging)
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages commencement) ; TODO remove when default gcc version >=7
#:use-module (guix download)
#:use-module (guix git-download))
@@ -1201,6 +1206,12 @@ modules for building a Wayland compositor.")
(modify-phases %standard-phases
(add-before 'configure 'hardcode-paths
(lambda* (#:key inputs #:allow-other-keys)
+ ;; Hardcode path to swaybg.
+ (substitute* "sway/config.c"
+ (("strdup..swaybg..")
+ (string-append "strdup(\"" (assoc-ref inputs "swaybg")
+ "/bin/swaybg\")")))
+ ;; Hardcode path to scdoc.
(substitute* "meson.build"
(("scdoc.get_pkgconfig_variable..scdoc..")
(string-append "'" (assoc-ref inputs "scdoc")
@@ -1214,6 +1225,7 @@ modules for building a Wayland compositor.")
("libinput" ,libinput)
("libxkbcommon" ,libxkbcommon)
("pango" ,pango)
+ ("swaybg" ,swaybg)
("wayland" ,wayland)
("wlroots" ,wlroots)))
(native-inputs `(("git" ,git)
@@ -1242,7 +1254,10 @@ modules for building a Wayland compositor.")
(sha256
(base32 "04agcbhc473jkk7npb40i94ny8naykxzpjcw2lvl05kxv65y5d9v"))))
(build-system meson-build-system)
- (inputs `(("wayland" ,wayland)))
+ (arguments
+ `(#:configure-flags '("-Dlogind-provider=elogind")))
+ (inputs `(("elogind" ,elogind)
+ ("wayland" ,wayland)))
(native-inputs `(("pkg-config" ,pkg-config)
("scdoc" ,scdoc)
("wayland-protocols" ,wayland-protocols)))
@@ -1305,3 +1320,76 @@ modules for building a Wayland compositor.")
(synopsis "Screen wallpaper utility for Wayland compositors")
(description "Swaybg is a wallpaper utility for Wayland compositors.")
(license license:expat))) ; MIT license
+
+(define-public waybar
+ (package
+ (name "waybar")
+ (version "0.6.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Alexays/Waybar.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wyp1p9r1k8jnjq8clp2fx8xa3f4lfrgbp67fxrjh9718p4br0ab"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-Dout=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ ;; TODO remove when issue #30756 is resolved
+ (add-before 'configure 'fix-gcc
+ (lambda _
+ (unsetenv "C_INCLUDE_PATH")
+ (unsetenv "CPLUS_INCLUDE_PATH")
+ #t)))))
+ (inputs `(("fmt" ,fmt)
+ ("gtkmm" ,gtkmm)
+ ("jsoncpp" ,jsoncpp)
+ ("libdbusmenu" ,libdbusmenu)
+ ("libinput" ,libinput)
+ ("libmpdclent" ,libmpdclient)
+ ("libnl" ,libnl)
+ ("pulseaudio" ,pulseaudio)
+ ("spdlog" ,spdlog)
+ ("wayland" ,wayland)))
+ (native-inputs `(("gcc-toolchain" ,gcc-toolchain-7) ; TODO remove when default gcc version >=7
+ ("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)
+ ("wayland-protocols" ,wayland-protocols)))
+ (home-page "https://github.com/Alexays/Waybar")
+ (synopsis "Wayland bar for Sway and Wlroots based compositors.")
+ (description "Waybar is a highly customisable Wayland bar for Sway and
+Wlroots based compositors.")
+ (license license:expat))) ; MIT license
+
+(define-public mako
+ (package
+ (name "mako")
+ (version "1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emersion/mako.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17azdc37xsbmx13fkfp23vg9lznrv9fh6nhagn64wdq3nhsxm3b6"))))
+ (build-system meson-build-system)
+ (inputs `(("cairo" ,cairo)
+ ("elogind" ,elogind)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("pango" ,pango)
+ ("wayland" ,wayland)))
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("scdoc" ,scdoc)
+ ("wayland-protocols" ,wayland-protocols)))
+ (home-page "https://wayland.emersion.fr/mako")
+ (synopsis "Lightweight Wayland notification daemon")
+ (description "Mako is a lightweight notification daemon for Wayland
+compositors that support the layer-shell protocol.")
+ (license license:expat))) ; MIT license
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 400dca9290..fc60758724 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -516,15 +516,14 @@ that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
(define-public perl-xml-sax
(package
(name "perl-xml-sax")
- (version "1.00")
+ (version "1.02")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
"XML-SAX-" version ".tar.gz"))
(sha256
- (base32
- "1qra9k3wszjxvsgbragl55z3qba4nri0ipmjaxfib4l6xxj6bsj5"))))
+ (base32 "0am13vnv8qsjafr5ljakwnkhlwpk15sga02z8mxsg9is0j3w61j5"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 0f2231ca8d..b7feded821 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5994,7 +5994,7 @@ basic eye-candy effects.")
(define-public xpra
(package
(name "xpra")
- (version "2.5.1")
+ (version "2.5.2")
(source
(origin
(method url-fetch)
@@ -6002,7 +6002,7 @@ basic eye-candy effects.")
version ".tar.xz"))
(sha256
(base32
- "14l3bs7mlkd2lphjhnbw5dr95pg7x1k61s9wk35dra4li2xjy1lm"))))
+ "1zbh2990crrxp02c554yh30f0s9znm6iiiklkw8vpxrlmdv1z8ks"))))
(build-system python-build-system)
(inputs `(("ffmpeg" ,ffmpeg)
("flac" ,flac)
diff --git a/gnu/packages/zwave.scm b/gnu/packages/zwave.scm
index 43d1747332..f07367d264 100644
--- a/gnu/packages/zwave.scm
+++ b/gnu/packages/zwave.scm
@@ -21,9 +21,12 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
#:use-module (gnu packages base)
+ #:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml))
(define-public open-zwave
@@ -39,6 +42,7 @@
(sha256
(base32
"0xgs4mmr0480c269wx9xkk67ikjzxkh8xcssrdx0f5xcl1lyd333"))
+ (patches (search-patches "open-zwave-hidapi.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -52,6 +56,9 @@
(substitute* "cpp/build/Makefile"
(("LIBS \\+= -ludev")
"LIBS += -ludev -ltinyxml "))
+
+ ;; Delete the bundled HIDAPI.
+ (delete-file-recursively "cpp/hidapi")
#t))))
(build-system gnu-build-system)
(arguments
@@ -70,9 +77,11 @@
;; them.
#:tests? #f))
(native-inputs `(("which" ,which)
+ ("pkg-config" ,pkg-config)
("perl" ,perl) ;for tests
("perl-xml-simple" ,perl-xml-simple)))
(inputs `(("tinyxml" ,tinyxml)
+ ("hidapi" ,hidapi)
("eudev" ,eudev)))
(home-page "http://www.openzwave.net/")
(synopsis "Access Z-Wave devices from C++ programs")
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index a3e43dd1c1..df3cb01646 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,7 +19,6 @@
(define-module (gnu services admin)
#:use-module (gnu packages admin)
- #:use-module (gnu packages base)
#:use-module (gnu services)
#:use-module (gnu services mcron)
#:use-module (gnu services shepherd)
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 652f7b1b02..343d507c14 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1067,6 +1067,7 @@ dispatches events from it.")))
profile-service-type
(list network-manager-applet))
(service modem-manager-service-type)
+ (service usb-modeswitch-service-type)
;; The D-Bus clique.
(service avahi-service-type)
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 216b2c80b0..3de0b4c2f3 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Kristofer Buffington <kristoferbuffington@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -69,7 +70,7 @@
imap4d-configuration
imap4d-configuration?
imap4d-service-type
- %defualt-imap4d-config-file))
+ %default-imap4d-config-file))
;;; Commentary:
;;;
@@ -1667,6 +1668,9 @@ accept from local for any relay
(mkdir-p "/var/spool/smtpd")
(chmod "/var/spool/smtpd" #o711))))))
+(define %opensmtpd-pam-services
+ (list (unix-pam-service "smtpd")))
+
(define opensmtpd-service-type
(service-type
(name 'opensmtpd)
@@ -1675,6 +1679,8 @@ accept from local for any relay
(const %opensmtpd-accounts))
(service-extension activation-service-type
opensmtpd-activation)
+ (service-extension pam-root-service-type
+ (const %opensmtpd-pam-services))
(service-extension profile-service-type
(compose list opensmtpd-configuration-package))
(service-extension shepherd-root-service-type
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
index fd84589c19..7238665404 100644
--- a/gnu/services/mcron.scm
+++ b/gnu/services/mcron.scm
@@ -18,7 +18,6 @@
(define-module (gnu services mcron)
#:use-module (gnu services)
- #:use-module (gnu services base)
#:use-module (gnu services shepherd)
#:autoload (gnu packages guile-xyz) (mcron)
#:use-module (guix deprecation)
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 082a85f63d..73acb3b17f 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -33,10 +34,13 @@
#:use-module (gnu system shadow)
#:use-module (gnu system pam)
#:use-module (gnu packages admin)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages connman)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages linux)
#:use-module (gnu packages tor)
+ #:use-module (gnu packages usb-modeswitch)
#:use-module (gnu packages messaging)
#:use-module (gnu packages networking)
#:use-module (gnu packages ntp)
@@ -104,6 +108,12 @@
modem-manager-configuration?
modem-manager-service-type
+ usb-modeswitch-configuration
+ usb-modeswitch-configuration?
+ usb-modeswitch-configuration-usb-modeswitch
+ usb-modeswitch-configuration-usb-modeswitch-data
+ usb-modeswitch-service-type
+
<wpa-supplicant-configuration>
wpa-supplicant-configuration
wpa-supplicant-configuration?
@@ -1043,6 +1053,100 @@ networking."))))
;;;
+;;; USB_ModeSwitch
+;;;
+
+(define-record-type* <usb-modeswitch-configuration>
+ usb-modeswitch-configuration make-usb-modeswitch-configuration
+ usb-modeswitch-configuration?
+ (usb-modeswitch usb-modeswitch-configuration-usb-modeswitch
+ (default usb-modeswitch))
+ (usb-modeswitch-data usb-modeswitch-configuration-usb-modeswitch-data
+ (default usb-modeswitch-data))
+ (config-file usb-modeswitch-configuration-config-file
+ (default #~(string-append #$usb-modeswitch:dispatcher
+ "/etc/usb_modeswitch.conf"))))
+
+(define (usb-modeswitch-sh usb-modeswitch config-file)
+ "Build a copy of usb_modeswitch.sh located in package USB-MODESWITCH,
+modified to pass the CONFIG-FILE in its calls to usb_modeswitch_dispatcher,
+and wrap it to actually find the dispatcher in USB-MODESWITCH. The script
+will be run by USB_ModeSwitch’s udev rules file when a modeswitchable USB
+device is detected."
+ (computed-file
+ "usb_modeswitch-sh"
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (let ((cfg-param
+ #$(if config-file
+ #~(string-append " --config-file=" #$config-file)
+ "")))
+ (mkdir #$output)
+ (install-file (string-append #$usb-modeswitch:dispatcher
+ "/lib/udev/usb_modeswitch")
+ #$output)
+
+ ;; insert CFG-PARAM into usb_modeswitch_dispatcher command-lines
+ (substitute* (string-append #$output "/usb_modeswitch")
+ (("(exec usb_modeswitch_dispatcher .*)( 2>>)" _ left right)
+ (string-append left cfg-param right))
+ (("(exec usb_modeswitch_dispatcher .*)( &)" _ left right)
+ (string-append left cfg-param right)))
+
+ ;; wrap-program needs bash in PATH:
+ (putenv (string-append "PATH=" #$bash "/bin"))
+ (wrap-program (string-append #$output "/usb_modeswitch")
+ `("PATH" ":" = (,(string-append #$coreutils "/bin")
+ ,(string-append
+ #$usb-modeswitch:dispatcher
+ "/bin")))))))))
+
+(define (usb-modeswitch-configuration->udev-rules config)
+ "Build a rules file for extending udev-service-type from the rules in the
+usb-modeswitch package specified in CONFIG. The rules file will invoke
+usb_modeswitch.sh from the usb-modeswitch package, modified to pass the right
+config file."
+ (match config
+ (($ <usb-modeswitch-configuration> usb-modeswitch data config-file)
+ (computed-file
+ "usb_modeswitch.rules"
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (let ((in (string-append #$data "/udev/40-usb_modeswitch.rules"))
+ (out (string-append #$output "/lib/udev/rules.d"))
+ (script #$(usb-modeswitch-sh usb-modeswitch config-file)))
+ (mkdir-p out)
+ (chdir out)
+ (install-file in out)
+ (substitute* "40-usb_modeswitch.rules"
+ (("PROGRAM=\"usb_modeswitch")
+ (string-append "PROGRAM=\"" script "/usb_modeswitch"))
+ (("RUN\\+=\"usb_modeswitch")
+ (string-append "RUN+=\"" script "/usb_modeswitch"))))))))))
+
+(define usb-modeswitch-service-type
+ (service-type
+ (name 'usb-modeswitch)
+ (extensions
+ (list
+ (service-extension
+ udev-service-type
+ (lambda (config)
+ (let ((rules (usb-modeswitch-configuration->udev-rules config)))
+ (list rules))))))
+ (default-value (usb-modeswitch-configuration))
+ (description "Run @uref{http://www.draisberghof.de/usb_modeswitch/,
+USB_ModeSwitch}, a mode switching tool for controlling USB devices with
+multiple @dfn{modes}. When plugged in for the first time many USB
+devices (primarily high-speed WAN modems) act like a flash storage containing
+installers for Windows drivers. USB_ModeSwitch replays the sequence the
+Windows drivers would send to switch their mode from storage to modem (or
+whatever the thing is supposed to do).")))
+
+
+;;;
;;; WPA supplicant
;;;
diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index 72ecb7d089..dfe33991d0 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -77,7 +77,8 @@ GID."
"Return the activation gexp."
(with-imported-modules '((guix build utils))
#~(begin
- (use-modules (guix build utils))
+ (use-modules (guix build utils)
+ (srfi srfi-26))
(for-each (cut mkdir-p <>) '("/nix/store" "/nix/var/log"
"/nix/var/nix/gcroots/per-user"
"/nix/var/nix/profiles/per-user"))
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index c1e963d047..61248c62b9 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -30,6 +30,7 @@
#:use-module (gnu build linux-container)
#:use-module (gnu services)
#:use-module (gnu services base)
+ #:use-module (gnu services shepherd)
#:use-module (gnu system)
#:use-module (gnu system file-systems)
#:export (system-container
@@ -65,6 +66,16 @@ from OS that are needed on the bare metal and not in a container."
files)))
base)))
+(define dummy-networking-service-type
+ (shepherd-service-type
+ 'dummy-networking
+ (const (shepherd-service
+ (documentation "Provide loopback and networking without actually
+doing anything.")
+ (provision '(loopback networking))
+ (start #~(const #t))))
+ #f))
+
(define* (containerized-operating-system os mappings
#:key
shared-network?
@@ -96,7 +107,8 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
agetty-service-type)
;; Remove nscd service if network is shared with the host.
(if shared-network?
- (list nscd-service-type)
+ (list nscd-service-type
+ static-networking-service-type)
(list))))
(operating-system
@@ -105,10 +117,17 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
(essential-services (container-essential-services
this-operating-system
#:shared-network? shared-network?))
- (services (remove (lambda (service)
- (memq (service-kind service)
- useless-services))
- (operating-system-user-services os)))
+ (services (append (remove (lambda (service)
+ (memq (service-kind service)
+ useless-services))
+ (operating-system-user-services os))
+ ;; Many Guix services depend on a 'networking' shepherd
+ ;; service, so make sure to provide a dummy 'networking'
+ ;; service when we are sure that networking is already set up
+ ;; in the host and can be used. That prevents double setup.
+ (if shared-network?
+ (list (service dummy-networking-service-type))
+ '())))
(file-systems (append (map mapping->fs
(if shared-network?
(append %network-file-mappings mappings)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 0d4ed63eec..e7f7d8ca51 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -535,6 +535,11 @@ system."
;; Set the SQL schema location.
(sql-schema #$schema)
+ ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
+ (setenv "GUIX_LOCPATH"
+ #+(file-append glibc-utf8-locales "/lib/locale"))
+ (setlocale LC_ALL "en_US.utf8")
+
(let* (;; This initializer requires elevated privileges that are
;; not normally available in the build environment (e.g.,
;; it needs to create device nodes). In order to obtain
diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm
index 10e5be71d8..f064da5f53 100644
--- a/gnu/tests/mail.scm
+++ b/gnu/tests/mail.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,6 +24,7 @@
(define-module (gnu tests mail)
#:use-module (gnu tests)
+ #:use-module (gnu packages mail)
#:use-module (gnu system)
#:use-module (gnu system vm)
#:use-module (gnu services)
@@ -136,7 +138,9 @@ accept from any for local deliver to mbox
(define (queue-empty?)
(eof-object?
(read-line
- (open-input-pipe "smtpctl show queue"))))
+ (open-input-pipe
+ (string-append #$(file-append opensmtpd "/sbin/smtpctl")
+ " show queue")))))
(let wait ()
(if (queue-empty?)
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index dc137421e9..fa211d456d 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -29,6 +29,8 @@
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
+ #:use-module (ice-9 vlist)
+ #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (%cargo-build-system-modules
%cargo-utils-modules
@@ -118,18 +120,128 @@ to NAME and VERSION."
#:inputs inputs
#:system system
#:modules imported-modules
- #:outputs (cons "src" outputs)
+ #:outputs outputs
#:guile-for-build guile-for-build))
+(define (package-cargo-inputs p)
+ (apply
+ (lambda* (#:key (cargo-inputs '()) #:allow-other-keys)
+ cargo-inputs)
+ (package-arguments p)))
+
+(define (package-cargo-development-inputs p)
+ (apply
+ (lambda* (#:key (cargo-development-inputs '()) #:allow-other-keys)
+ cargo-development-inputs)
+ (package-arguments p)))
+
+(define (crate-closure inputs)
+ "Return the closure of INPUTS when considering the 'cargo-inputs' and
+'cargod-dev-deps' edges. Omit duplicate inputs, except for those
+already present in INPUTS itself.
+
+This is implemented as a breadth-first traversal such that INPUTS is
+preserved, and only duplicate extracted inputs are removed.
+
+Forked from ((guix packages) transitive-inputs) since this extraction
+uses slightly different rules compared to the rest of Guix (i.e. we
+do not extract the conventional inputs)."
+ (define (seen? seen item)
+ ;; FIXME: We're using pointer identity here, which is extremely sensitive
+ ;; to memoization in package-producing procedures; see
+ ;; <https://bugs.gnu.org/30155>.
+ (vhash-assq item seen))
+
+ (let loop ((inputs inputs)
+ (result '())
+ (propagated '())
+ (first? #t)
+ (seen vlist-null))
+ (match inputs
+ (()
+ (if (null? propagated)
+ (reverse result)
+ (loop (reverse (concatenate propagated)) result '() #f seen)))
+ (((and input (label (? package? package))) rest ...)
+ (if (and (not first?) (seen? seen package))
+ (loop rest result propagated first? seen)
+ (loop rest
+ (cons input result)
+ (cons (package-cargo-inputs package)
+ propagated)
+ first?
+ (vhash-consq package package seen))))
+ ((input rest ...)
+ (loop rest (cons input result) propagated first? seen)))))
+
+(define (expand-crate-sources cargo-inputs cargo-development-inputs)
+ "Extract all transitive sources for CARGO-INPUTS and CARGO-DEVELOPMENT-INPUTS
+along their 'cargo-inputs' edges.
+
+Cargo requires all transitive crate dependencies' sources to be available
+in its index, even if they are optional (this is so it can generate
+deterministic Cargo.lock files regardless of the target platform or enabled
+features). Thus we need all transitive crate dependencies for any cargo
+dev-dependencies, but this is only needed when building/testing a crate directly
+(i.e. we will never need transitive dev-dependencies for any dependency crates).
+
+Another complication arises due potential dependency cycles from Guix's
+perspective: Although cargo does not permit cyclic dependencies between crates,
+however, it permits cycles to occur via dev-dependencies. For example, if crate
+X depends on crate Y, crate Y's tests could pull in crate X to to verify
+everything builds properly (this is a rare scenario, but it it happens for
+example with the `proc-macro2` and `quote` crates). This is allowed by cargo
+because tests are built as a pseudo-crate which happens to depend on the
+X and Y crates, forming an acyclic graph.
+
+We can side step this problem by only considering regular cargo dependencies
+since they are guaranteed to not have cycles. We can further resolve any
+potential dev-dependency cycles by extracting package sources (which never have
+any dependencies and thus no cycles can exist).
+
+There are several implications of this decision:
+* Building a package definition does not require actually building/checking
+any dependent crates. This can be a benefits:
+ - For example, sometimes a crate may have an optional dependency on some OS
+ specific package which cannot be built or run on the current system. This
+ approach means that the build will not fail if cargo ends up internally ignoring
+ the dependency.
+ - It avoids waiting for quadratic builds from source: cargo always builds
+ dependencies within the current workspace. This is largely due to Rust not
+ having a stable ABI and other resolutions that cargo applies. This means that
+ if we have a depencency chain of X -> Y -> Z and we build each definition
+ independently the following will happen:
+ * Cargo will build and test crate Z
+ * Cargo will build crate Z in Y's workspace, then build and test Y
+ * Cargo will build crates Y and Z in X's workspace, then build and test X
+* But there are also some downsides with this approach:
+ - If a dependent crate is subtly broken on the system (i.e. it builds but its
+ tests fail) the consuming crates may build and test successfully but
+ actually fail during normal usage (however, the CI will still build all
+ packages which will give visibility in case packages suddenly break).
+ - Because crates aren't declared as regular inputs, other Guix facilities
+ such as tracking package graphs may not work by default (however, this is
+ something that can always be extended or reworked in the future)."
+ (filter-map
+ (match-lambda
+ ((label (? package? p))
+ (list label (package-source p)))
+ ((label input)
+ (list label input)))
+ (crate-closure (append cargo-inputs cargo-development-inputs))))
+
(define* (lower name
#:key source inputs native-inputs outputs system target
(rust (default-rust))
+ (cargo-inputs '())
+ (cargo-development-inputs '())
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
(define private-keywords
- '(#:source #:target #:rust #:inputs #:native-inputs #:outputs))
+ '(#:source #:target #:rust #:inputs #:native-inputs #:outputs
+ #:cargo-inputs #:cargo-development-inputs))
(and (not target) ;; TODO: support cross-compilation
(bag
@@ -145,6 +257,7 @@ to NAME and VERSION."
,@(standard-packages)))
(build-inputs `(("cargo" ,rust "cargo")
("rustc" ,rust)
+ ,@(expand-crate-sources cargo-inputs cargo-development-inputs)
,@native-inputs))
(outputs outputs)
(build cargo-build)
diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm
index 9f44bd6ee9..1f36304b15 100644
--- a/guix/build/cargo-build-system.scm
+++ b/guix/build/cargo-build-system.scm
@@ -54,6 +54,22 @@
(bin-dep? (lambda (dep) (find bin? (get-kinds dep)))))
(find bin-dep? (manifest-targets))))
+(define (crate-src? path)
+ "Check if PATH refers to a crate source, namely a gzipped tarball with a
+Cargo.toml file present at its root."
+ (and (gzip-file? path)
+ ;; First we print out all file names within the tarball to see if it
+ ;; looks like the source of a crate. However, the tarball will include
+ ;; an extra path component which we would like to ignore (since we're
+ ;; interested in checking if a Cargo.toml exists at the root of the
+ ;; archive, but not nested anywhere else). We do this by cutting up
+ ;; each output line and only looking at the second component. We then
+ ;; check if it matches Cargo.toml exactly and short circuit if it does.
+ (zero? (apply system* (list "sh" "-c"
+ (string-append "tar -tf " path
+ " | cut -d/ -f2"
+ " | grep -q '^Cargo.toml$'"))))))
+
(define* (configure #:key inputs
(vendor-dir "guix-vendor")
#:allow-other-keys)
@@ -67,14 +83,21 @@
(for-each
(match-lambda
((name . path)
- (let* ((rust-share (string-append path "/share/rust-source"))
- (basepath (basename path))
- (link-dir (string-append vendor-dir "/" basepath)))
- (and (file-exists? rust-share)
+ (let* ((basepath (basename path))
+ (crate-dir (string-append vendor-dir "/" basepath)))
+ (and (crate-src? path)
;; Gracefully handle duplicate inputs
- (not (file-exists? link-dir))
- (symlink rust-share link-dir)))))
+ (not (file-exists? crate-dir))
+ (mkdir-p crate-dir)
+ ;; Cargo crates are simply gzipped tarballs but with a .crate
+ ;; extension. We expand the source to a directory name we control
+ ;; so that we can generate any cargo checksums.
+ ;; The --strip-components argument is needed to prevent creating
+ ;; an extra directory within `crate-dir`.
+ (invoke "tar" "xvf" path "-C" crate-dir "--strip-components" "1")
+ (generate-checksums crate-dir)))))
inputs)
+
;; Configure cargo to actually use this new directory.
(mkdir-p ".cargo")
(let ((port (open-file ".cargo/config" "w" #:encoding "utf-8")))
@@ -117,24 +140,6 @@ directory = '" port)
(define (touch file-name)
(call-with-output-file file-name (const #t)))
-(define* (install-source #:key inputs outputs #:allow-other-keys)
- "Install the source for a given Cargo package."
- (let* ((out (assoc-ref outputs "out"))
- (src (assoc-ref inputs "source"))
- (rsrc (string-append (assoc-ref outputs "src")
- "/share/rust-source")))
- (mkdir-p rsrc)
- ;; Rust doesn't have a stable ABI yet. Because of this
- ;; Cargo doesn't have a search path for binaries yet.
- ;; Until this changes we are working around this by
- ;; vendoring the crates' sources by symlinking them
- ;; to store paths.
- (copy-recursively "." rsrc)
- (touch (string-append rsrc "/.cargo-ok"))
- (generate-checksums rsrc)
- (install-file "Cargo.toml" rsrc)
- #t))
-
(define* (install #:key inputs outputs skip-build? #:allow-other-keys)
"Install a given Cargo package."
(let* ((out (assoc-ref outputs "out")))
@@ -156,7 +161,6 @@ directory = '" port)
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'bootstrap)
- (add-before 'configure 'install-source install-source)
(replace 'configure configure)
(replace 'build build)
(replace 'check check)
diff --git a/guix/derivations.scm b/guix/derivations.scm
index cad77bdb06..8145d51143 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -62,6 +62,7 @@
<derivation-input>
derivation-input?
derivation-input-path
+ derivation-input-derivation
derivation-input-sub-derivations
derivation-input-output-paths
valid-derivation-input?
@@ -152,6 +153,10 @@
(path derivation-input-path) ; store path
(sub-derivations derivation-input-sub-derivations)) ; list of strings
+(define (derivation-input-derivation input)
+ "Return the <derivation> object INPUT refers to."
+ (read-derivation-from-file (derivation-input-path input)))
+
(set-record-type-printer! <derivation>
(lambda (drv port)
(format port "#<derivation ~a => ~a ~a>"
@@ -243,9 +248,7 @@ result is the set of prerequisites of DRV not already in valid."
(fold2 loop
(append inputs result)
(fold set-insert input-set inputs)
- (map (lambda (i)
- (read-derivation-from-file (derivation-input-path i)))
- inputs)))))
+ (map derivation-input-derivation inputs)))))
(define (offloadable-derivation? drv)
"Return true if DRV can be offloaded, false otherwise."
diff --git a/guix/grafts.scm b/guix/grafts.scm
index a3e12f6efd..3b43e11425 100644
--- a/guix/grafts.scm
+++ b/guix/grafts.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,9 +22,9 @@
#:use-module (guix records)
#:use-module (guix derivations)
#:use-module ((guix utils) #:select (%current-system))
+ #:use-module (guix sets)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9 gnu)
- #:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (ice-9 match)
@@ -151,21 +151,6 @@ are not recursively applied to dependencies of DRV."
#:substitutable? #f
#:properties properties)))))
-(define (item->deriver store item)
- "Return two values: the derivation that led to ITEM (a store item), and the
-name of the output of that derivation ITEM corresponds to (for example
-\"out\"). When ITEM has no deriver, for instance because it is a plain file,
-#f and #f are returned."
- (match (valid-derivers store item)
- (() ;ITEM is a plain file
- (values #f #f))
- ((drv-file _ ...)
- (let ((drv (read-derivation-from-file drv-file)))
- (values drv
- (any (match-lambda
- ((name . path)
- (and (string=? item path) name)))
- (derivation->output-paths drv)))))))
(define (non-self-references references drv outputs)
"Return the list of references of the OUTPUTS of DRV, excluding self
@@ -230,6 +215,33 @@ available."
(set-current-state (vhash-cons key result cache))
(return result)))))))
+(define (reference-origin drv item)
+ "Return the derivation/output pair among the inputs of DRV, recursively,
+that produces ITEM. Return #f if ITEM is not produced by a derivation (i.e.,
+it's a content-addressed \"source\"), or if it's not produced by a dependency
+of DRV."
+ ;; Perform a breadth-first traversal of the dependency graph of DRV in
+ ;; search of the derivation that produces ITEM.
+ (let loop ((drv (list drv))
+ (visited (setq)))
+ (match drv
+ (()
+ #f)
+ ((drv . rest)
+ (if (set-contains? visited drv)
+ (loop rest visited)
+ (let ((inputs (derivation-inputs drv)))
+ (or (any (lambda (input)
+ (let ((drv (derivation-input-derivation input)))
+ (any (match-lambda
+ ((output . file)
+ (and (string=? file item)
+ (cons drv output))))
+ (derivation->output-paths drv))))
+ inputs)
+ (loop (append rest (map derivation-input-derivation inputs))
+ (set-insert drv visited)))))))))
+
(define* (cumulative-grafts store drv grafts
references
#:key
@@ -257,16 +269,17 @@ derivations to the corresponding set of grafts."
#f)))
(define (dependency-grafts item)
- (let-values (((drv output) (item->deriver store item)))
- (if drv
- ;; If GRAFTS already contains a graft from DRV, do not override it.
- (if (find (cut graft-origin? drv <>) grafts)
- (state-return grafts)
- (cumulative-grafts store drv grafts references
- #:outputs (list output)
- #:guile guile
- #:system system))
- (state-return grafts))))
+ (match (reference-origin drv item)
+ ((drv . output)
+ ;; If GRAFTS already contains a graft from DRV, do not override it.
+ (if (find (cut graft-origin? drv <>) grafts)
+ (state-return grafts)
+ (cumulative-grafts store drv grafts references
+ #:outputs (list output)
+ #:guile guile
+ #:system system)))
+ (#f
+ (state-return grafts))))
(with-cache (cons (derivation-file-name drv) outputs)
(match (non-self-references references drv outputs)
diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm
index 1a87be0b00..7dfe771e41 100644
--- a/guix/import/cabal.scm
+++ b/guix/import/cabal.scm
@@ -40,6 +40,7 @@
cabal-package?
cabal-package-name
cabal-package-version
+ cabal-package-revision
cabal-package-license
cabal-package-home-page
cabal-package-source-repository
@@ -638,13 +639,14 @@ If #f use the function 'port-filename' to obtain it."
;; information of the Cabal file, but only the ones we currently are
;; interested in.
(define-record-type <cabal-package>
- (make-cabal-package name version license home-page source-repository
+ (make-cabal-package name version revision license home-page source-repository
synopsis description
executables lib test-suites
flags eval-environment custom-setup)
cabal-package?
(name cabal-package-name)
(version cabal-package-version)
+ (revision cabal-package-revision)
(license cabal-package-license)
(home-page cabal-package-home-page)
(source-repository cabal-package-source-repository)
@@ -838,6 +840,7 @@ See the manual for limitations.")))))))
(define (cabal-evaluated-sexp->package evaluated-sexp)
(let* ((name (lookup-join evaluated-sexp "name"))
(version (lookup-join evaluated-sexp "version"))
+ (revision (lookup-join evaluated-sexp "x-revision"))
(license (lookup-join evaluated-sexp "license"))
(home-page (lookup-join evaluated-sexp "homepage"))
(home-page-or-hackage
@@ -856,7 +859,7 @@ See the manual for limitations.")))))))
(custom-setup (match (make-cabal-section evaluated-sexp 'custom-setup)
((x) x)
(_ #f))))
- (make-cabal-package name version license home-page-or-hackage
+ (make-cabal-package name version revision license home-page-or-hackage
source-repository synopsis description executables lib
test-suites flags eval-environment custom-setup)))
diff --git a/guix/import/crate.scm b/guix/import/crate.scm
index e0b400d054..9a73d9fe16 100644
--- a/guix/import/crate.scm
+++ b/guix/import/crate.scm
@@ -65,29 +65,53 @@
(path (string-append "/" version "/dependencies"))
(deps-json (json-fetch-alist (string-append crate-url name path)))
(deps (assoc-ref deps-json "dependencies"))
- (input-crates (filter (crate-kind-predicate "normal") deps))
- (native-input-crates
+ (dep-crates (filter (crate-kind-predicate "normal") deps))
+ (dev-dep-crates
(filter (lambda (dep)
(not ((crate-kind-predicate "normal") dep))) deps))
- (inputs (crates->inputs input-crates))
- (native-inputs (crates->inputs native-input-crates))
+ (cargo-inputs (crates->inputs dep-crates))
+ (cargo-development-inputs (crates->inputs dev-dep-crates))
(home-page (match homepage
(() repository)
(_ homepage))))
(callback #:name name #:version version
- #:inputs inputs #:native-inputs native-inputs
+ #:cargo-inputs cargo-inputs
+ #:cargo-development-inputs cargo-development-inputs
#:home-page home-page #:synopsis synopsis
#:description description #:license license)))
-(define* (make-crate-sexp #:key name version inputs native-inputs
+(define (maybe-cargo-inputs package-names)
+ (match (package-names->package-inputs package-names)
+ (()
+ '())
+ ((package-inputs ...)
+ `((#:cargo-inputs ,package-inputs)))))
+
+(define (maybe-cargo-development-inputs package-names)
+ (match (package-names->package-inputs package-names)
+ (()
+ '())
+ ((package-inputs ...)
+ `((#:cargo-development-inputs ,package-inputs)))))
+
+(define (maybe-arguments arguments)
+ (match arguments
+ (()
+ '())
+ ((args ...)
+ `((arguments (,'quasiquote ,args))))))
+
+(define* (make-crate-sexp #:key name version cargo-inputs cargo-development-inputs
home-page synopsis description license
#:allow-other-keys)
"Return the `package' s-expression for a rust package with the given NAME,
-VERSION, INPUTS, NATIVE-INPUTS, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
+VERSION, CARGO-INPUTS, CARGO-DEVELOPMENT-INPUTS, HOME-PAGE, SYNOPSIS, DESCRIPTION,
+and LICENSE."
(let* ((port (http-fetch (crate-uri name version)))
(guix-name (crate-name->package-name name))
- (inputs (map crate-name->package-name inputs))
- (native-inputs (map crate-name->package-name native-inputs))
+ (cargo-inputs (map crate-name->package-name cargo-inputs))
+ (cargo-development-inputs (map crate-name->package-name
+ cargo-development-inputs))
(pkg `(package
(name ,guix-name)
(version ,version)
@@ -99,8 +123,9 @@ VERSION, INPUTS, NATIVE-INPUTS, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
(base32
,(bytevector->nix-base32-string (port-sha256 port))))))
(build-system cargo-build-system)
- ,@(maybe-native-inputs native-inputs "src")
- ,@(maybe-inputs inputs "src")
+ ,@(maybe-arguments (append (maybe-cargo-inputs cargo-inputs)
+ (maybe-cargo-development-inputs
+ cargo-development-inputs)))
(home-page ,(match home-page
(() "")
(_ home-page)))
diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 366256b40d..6f426af900 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -117,19 +117,34 @@ version is returned."
(#f name)
(m (match:substring m 1)))))))
+(define (read-cabal-and-hash port)
+ "Read a Cabal file from PORT and return it and its hash in nix-base32
+format as two values."
+ (let-values (((port get-hash) (open-sha256-input-port port)))
+ (values (read-cabal (canonical-newline-port port))
+ (bytevector->nix-base32-string (get-hash)))))
+
+(define (hackage-fetch-and-hash name-version)
+ "Fetch the latest Cabal revision for the package NAME-VERSION, and return
+two values: the parsed Cabal file and its hash in nix-base32 format. If the
+version part is omitted from the package name, then fetch the latest
+version. On failure, both return values will be #f."
+ (guard (c ((and (http-get-error? c)
+ (= 404 (http-get-error-code c)))
+ (values #f #f))) ;"expected" if package is unknown
+ (let*-values (((name version) (package-name->name+version name-version))
+ ((url) (hackage-cabal-url name version))
+ ((port _) (http-fetch url))
+ ((cabal hash) (read-cabal-and-hash port)))
+ (close-port port)
+ (values cabal hash))))
+
(define (hackage-fetch name-version)
"Return the Cabal file for the package NAME-VERSION, or #f on failure. If
the version part is omitted from the package name, then return the latest
version."
- (guard (c ((and (http-get-error? c)
- (= 404 (http-get-error-code c)))
- #f)) ;"expected" if package is unknown
- (let-values (((name version) (package-name->name+version name-version)))
- (let* ((url (hackage-cabal-url name version))
- (port (http-fetch url))
- (result (read-cabal (canonical-newline-port port))))
- (close-port port)
- result))))
+ (let-values (((cabal hash) (hackage-fetch-and-hash name-version)))
+ cabal))
(define string->license
;; List of valid values from
@@ -198,15 +213,20 @@ package being processed and is used to filter references to itself."
(cons own-name ghc-standard-libraries))))
dependencies))
-(define* (hackage-module->sexp cabal #:key (include-test-dependencies? #t))
+(define* (hackage-module->sexp cabal cabal-hash
+ #:key (include-test-dependencies? #t))
"Return the `package' S-expression for a Cabal package. CABAL is the
-representation of a Cabal file as produced by 'read-cabal'."
+representation of a Cabal file as produced by 'read-cabal'. CABAL-HASH is
+the hash of the Cabal file."
(define name
(cabal-package-name cabal))
(define version
(cabal-package-version cabal))
+
+ (define revision
+ (cabal-package-revision cabal))
(define source-url
(hackage-source-url name version))
@@ -252,9 +272,14 @@ representation of a Cabal file as produced by 'read-cabal'."
(list 'quasiquote inputs))))))
(define (maybe-arguments)
- (if (not include-test-dependencies?)
- '((arguments `(#:tests? #f)))
- '()))
+ (match (append (if (not include-test-dependencies?)
+ '(#:tests? #f)
+ '())
+ (if (not (string-null? revision))
+ `(#:cabal-revision (,revision ,cabal-hash))
+ '()))
+ (() '())
+ (args `((arguments (,'quasiquote ,args))))))
(let ((tarball (with-store store
(download-to-store store source-url))))
@@ -294,10 +319,11 @@ symbol 'true' or 'false'. The value associated with other keys has to conform
to the Cabal file format definition. The default value associated with the
keys \"os\", \"arch\" and \"impl\" is \"linux\", \"x86_64\" and \"ghc\"
respectively."
- (let ((cabal-meta (if port
- (read-cabal (canonical-newline-port port))
- (hackage-fetch package-name))))
- (and=> cabal-meta (compose (cut hackage-module->sexp <>
+ (let-values (((cabal-meta cabal-hash)
+ (if port
+ (read-cabal-and-hash port)
+ (hackage-fetch-and-hash package-name))))
+ (and=> cabal-meta (compose (cut hackage-module->sexp <> cabal-hash
#:include-test-dependencies?
include-test-dependencies?)
(cut eval-cabal <> cabal-environment)))))
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 63fc9bbb27..84503ab907 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -52,6 +52,7 @@
url-fetch
guix-hash-url
+ package-names->package-inputs
maybe-inputs
maybe-native-inputs
package->definition
@@ -236,6 +237,9 @@ into a proper sentence and by using two spaces between sentences."
cleaned 'pre ". " 'post)))
(define* (package-names->package-inputs names #:optional (output #f))
+ "Given a list of PACKAGE-NAMES, and an optional OUTPUT, tries to generate a
+quoted list of inputs, as suitable to use in an 'inputs' field of a package
+definition."
(map (lambda (input)
(cons* input (list 'unquote (string->symbol input))
(or (and output (list output))
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 65d9c3da13..41d4fefad2 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -94,6 +94,7 @@
fsf-free
wtfpl2
wxwindows3.1+
+ hpnd
fsdg-compatible))
(define-record-type <license>
@@ -628,6 +629,11 @@ which may be a file:// URI pointing the package's tree."
"http://www.gzip.org/zlib/zlib_license.html"
"https://www.gnu.org/licenses/license-list#ZLib"))
+(define hpnd
+ (license "HPND"
+ "https://directory.fsf.org/wiki/License:HPND"
+ "https://www.gnu.org/licenses/license-list#HPND"))
+
(define* (fsf-free uri #:optional (comment ""))
"Return a license that does not fit any of the ones above or a collection
of licenses, approved as free by the FSF. More details can be found at URI."
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 8fa700c883..61ca4dca9f 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -935,9 +935,12 @@ needed."
#:mode mode))
(cond ((assoc-ref opts 'log-file?)
+ ;; Pass 'show-build-log' the output file names, not the
+ ;; derivation file names, because there can be several
+ ;; derivations leading to the same output.
(for-each (cut show-build-log store <> urls)
(delete-duplicates
- (append (map derivation-file-name drv)
+ (append (map derivation->output-path drv)
items))))
((assoc-ref opts 'derivations-only?)
(format #t "~{~a~%~}" (map derivation-file-name drv))
diff --git a/guix/utils.scm b/guix/utils.scm
index 709cdf9353..f480c3291f 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -718,7 +718,7 @@ environment variable name like \"XDG_CONFIG_HOME\"; SUFFIX is a suffix like
(define (canonical-newline-port port)
"Return an input port that wraps PORT such that all newlines consist
- of a single carriage return."
+ of a single linefeed."
(define (get-position)
(if (port-has-port-position? port) (port-position port) #f))
(define (set-position! position)
@@ -730,11 +730,11 @@ environment variable name like \"XDG_CONFIG_HOME\"; SUFFIX is a suffix like
(let loop ((count 0)
(byte (get-u8 port)))
(cond ((eof-object? byte) count)
+ ;; XXX: consume all CRs even if not followed by LF.
+ ((eqv? byte (char->integer #\return)) (loop count (get-u8 port)))
((= count (- n 1))
(bytevector-u8-set! bv (+ start count) byte)
n)
- ;; XXX: consume all LFs even if not followed by CR.
- ((eqv? byte (char->integer #\return)) (loop count (get-u8 port)))
(else
(bytevector-u8-set! bv (+ start count) byte)
(loop (+ count 1) (get-u8 port))))))
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 06bc7601b9..fe7bf79069 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -2348,7 +2348,7 @@ PathSet parseReferenceSpecifiers(const Derivation & drv, string attr)
else if (drv.outputs.find(*i) != drv.outputs.end())
result.insert(drv.outputs.find(*i)->second.path);
else throw BuildError(
- format("derivation contains an illegal reference specifier `%1%'")
+ format("derivation contains an invalid reference specifier `%1%'")
% *i);
}
return result;
diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc
index 69f6d06563..6df20e7a52 100644
--- a/nix/libstore/globals.cc
+++ b/nix/libstore/globals.cc
@@ -196,7 +196,7 @@ string Settings::pack()
if (i->first.find('\n') != string::npos ||
i->first.find('=') != string::npos ||
i->second.find('\n') != string::npos)
- throw Error("illegal option name/value");
+ throw Error("invalid option name/value");
s += i->first; s += '='; s += i->second; s += '\n';
}
return s;
diff --git a/nix/libstore/store-api.cc b/nix/libstore/store-api.cc
index 709d17ea21..0de0b6b298 100644
--- a/nix/libstore/store-api.cc
+++ b/nix/libstore/store-api.cc
@@ -61,7 +61,7 @@ void checkStoreName(const string & name)
/* Disallow names starting with a dot for possible security
reasons (e.g., "." and ".."). */
if (string(name, 0, 1) == ".")
- throw Error(format("illegal name: `%1%'") % name);
+ throw Error(format("invalid name: `%1%'") % name);
foreach (string::const_iterator, i, name)
if (!((*i >= 'A' && *i <= 'Z') ||
(*i >= 'a' && *i <= 'z') ||
diff --git a/tests/crate.scm b/tests/crate.scm
index a1dcfd5e52..a4a328d507 100644
--- a/tests/crate.scm
+++ b/tests/crate.scm
@@ -89,9 +89,9 @@
('base32
(? string? hash)))))
('build-system 'cargo-build-system)
- ('inputs
+ ('arguments
('quasiquote
- (("rust-bar" ('unquote 'rust-bar) "src"))))
+ (('#:cargo-inputs (("rust-bar" ('unquote rust-bar)))))))
('home-page "http://example.com")
('synopsis "summary")
('description "summary")
diff --git a/tests/derivations.scm b/tests/derivations.scm
index c421d094a4..93f4cdd8ee 100644
--- a/tests/derivations.scm
+++ b/tests/derivations.scm
@@ -816,20 +816,17 @@
(null? (derivation-prerequisites-to-build %store drv))))
(test-assert "derivation-prerequisites-to-build when outputs already present"
- (let* ((builder '(begin (mkdir %output) #t))
+ (let* ((builder `(begin ,(random-text) (mkdir %output) #t))
(input-drv (build-expression->derivation %store "input" builder))
- (input-path (derivation-output-path
- (assoc-ref (derivation-outputs input-drv)
- "out")))
+ (input-path (derivation->output-path input-drv))
(drv (build-expression->derivation %store "something" builder
#:inputs
`(("i" ,input-drv))))
(output (derivation->output-path drv)))
- ;; Make sure these things are not already built.
- (when (valid-path? %store input-path)
- (delete-paths %store (list input-path)))
- (when (valid-path? %store output)
- (delete-paths %store (list output)))
+ ;; Assume these things are not already built.
+ (when (or (valid-path? %store input-path)
+ (valid-path? %store output))
+ (error "things already built" input-drv))
(and (equal? (map derivation-input-path
(derivation-prerequisites-to-build %store drv))
diff --git a/tests/hackage.scm b/tests/hackage.scm
index 38a5825af7..77e333cbfc 100644
--- a/tests/hackage.scm
+++ b/tests/hackage.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -236,7 +237,7 @@ library
(test-assert "hackage->guix-package test 6"
(eval-test-with-cabal test-cabal-6 match-ghc-foo-6))
-;; Check multi-line layouted description
+;; Check multi-line layouted description.
(define test-cabal-multiline-layout
"name: foo
version: 1.0.0
@@ -254,7 +255,7 @@ executable cabal
(test-assert "hackage->guix-package test multiline desc (layout)"
(eval-test-with-cabal test-cabal-multiline-layout match-ghc-foo))
-;; Check multi-line braced description
+;; Check multi-line braced description.
(define test-cabal-multiline-braced
"name: foo
version: 1.0.0
@@ -274,6 +275,98 @@ executable cabal
(test-assert "hackage->guix-package test multiline desc (braced)"
(eval-test-with-cabal test-cabal-multiline-braced match-ghc-foo))
+;; Check mixed layout. Compare e.g. warp.
+(define test-cabal-mixed-layout
+ "name: foo
+version: 1.0.0
+homepage: http://test.org
+synopsis: synopsis
+description: description
+license: BSD3
+executable cabal
+ build-depends:
+ HTTP >= 4000.2.5 && < 4000.3,
+ mtl >= 2.0 && < 3
+ ghc-options: -Wall
+")
+
+;; Fails: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35743
+(test-expect-fail 1)
+(test-assert "hackage->guix-package test mixed layout"
+ (eval-test-with-cabal test-cabal-mixed-layout match-ghc-foo))
+
+;; Check flag executable. Compare e.g. darcs.
+(define test-cabal-flag-executable
+ "name: foo
+version: 1.0.0
+homepage: http://test.org
+synopsis: synopsis
+description: description
+license: BSD3
+flag executable
+ description: Build executable
+ default: True
+executable cabal
+ if !flag(executable)
+ buildable: False
+ else
+ buildable: True
+
+ build-depends:
+ HTTP >= 4000.2.5 && < 4000.3,
+ mtl >= 2.0 && < 3
+")
+
+;; Fails: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25138
+(test-expect-fail 1)
+(test-assert "hackage->guix-package test flag executable"
+ (eval-test-with-cabal test-cabal-flag-executable match-ghc-foo))
+
+;; Check Hackage Cabal revisions.
+(define test-cabal-revision
+ "name: foo
+version: 1.0.0
+x-revision: 2
+homepage: http://test.org
+synopsis: synopsis
+description: description
+license: BSD3
+executable cabal
+ build-depends:
+ HTTP >= 4000.2.5 && < 4000.3,
+ mtl >= 2.0 && < 3
+")
+
+(define-package-matcher match-ghc-foo-revision
+ ('package
+ ('name "ghc-foo")
+ ('version "1.0.0")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('string-append
+ "https://hackage.haskell.org/package/foo/foo-"
+ 'version
+ ".tar.gz"))
+ ('sha256
+ ('base32
+ (? string? hash)))))
+ ('build-system 'haskell-build-system)
+ ('inputs
+ ('quasiquote
+ (("ghc-http" ('unquote 'ghc-http)))))
+ ('arguments
+ ('quasiquote
+ ('#:cabal-revision
+ ("2" "0xxd88fb659f0krljidbvvmkh9ppjnx83j0nqzx8whcg4n5qbyng"))))
+ ('home-page "http://test.org")
+ ('synopsis (? string?))
+ ('description (? string?))
+ ('license 'bsd-3)))
+
+(test-assert "hackage->guix-package test cabal revision"
+ (eval-test-with-cabal test-cabal-revision match-ghc-foo-revision))
+
(test-assert "read-cabal test 1"
(match (call-with-input-string test-read-cabal-1 read-cabal)
((("name" ("test-me"))
diff --git a/tests/utils.scm b/tests/utils.scm
index 44861384ab..f78ec356bd 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -230,6 +230,12 @@ skip these tests."
"This is a journey\r\nInto the sound\r\nA journey ...\n")))
(get-string-all (canonical-newline-port port))))
+(test-equal "canonical-newline-port-1024"
+ (string-concatenate (make-list 100 "0123456789abcde\n"))
+ (let ((port (open-string-input-port
+ (string-concatenate
+ (make-list 100 "0123456789abcde\r\n")))))
+ (get-string-all (canonical-newline-port port))))
(test-equal "edit-expression"
"(display \"GNU Guix\")\n(newline)\n"