summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-04-19 16:53:01 +0200
committerMarius Bakke <mbakke@fastmail.com>2020-04-19 16:53:01 +0200
commit7abe35febe4234609e14e169b6fcc0cbaf4c7119 (patch)
tree5a8307a28e0c0a6aeab21ce8b9d3487229522588
parent457ded48c54ba04489cb871d3ec6bda0c59bead7 (diff)
parent5c10d55206a4f7a9b932ff08512a4f50c1db35be (diff)
Merge branch 'master' into core-updates
-rw-r--r--Makefile.am3
-rw-r--r--build-aux/git-authenticate.scm7
-rw-r--r--doc/guix.texi84
-rw-r--r--doc/local.mk3
-rw-r--r--doc/package-hello.json31
-rw-r--r--gnu/installer.scm20
-rw-r--r--gnu/installer/connman.scm1
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/aidc.scm67
-rw-r--r--gnu/packages/augeas.scm9
-rw-r--r--gnu/packages/backup.scm4
-rw-r--r--gnu/packages/bioconductor.scm10
-rw-r--r--gnu/packages/bioinformatics.scm84
-rw-r--r--gnu/packages/calendar.scm17
-rw-r--r--gnu/packages/chromium.scm4
-rw-r--r--gnu/packages/ci.scm12
-rw-r--r--gnu/packages/compression.scm2
-rw-r--r--gnu/packages/cran.scm31
-rw-r--r--gnu/packages/databases.scm2
-rw-r--r--gnu/packages/diffoscope.scm12
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/education.scm41
-rw-r--r--gnu/packages/emacs-xyz.scm4
-rw-r--r--gnu/packages/file-systems.scm4
-rw-r--r--gnu/packages/finance.scm107
-rw-r--r--gnu/packages/games.scm8
-rw-r--r--gnu/packages/gnome.scm28
-rw-r--r--gnu/packages/gpodder.scm22
-rw-r--r--gnu/packages/guile-xyz.scm17
-rw-r--r--gnu/packages/image.scm19
-rw-r--r--gnu/packages/kde-frameworks.scm2
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/mail.scm20
-rw-r--r--gnu/packages/mastodon.scm4
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/node-xyz.scm24
-rw-r--r--gnu/packages/patches/python-jedi-sort-project-test.patch18
-rw-r--r--gnu/packages/pdf.scm10
-rw-r--r--gnu/packages/python-xyz.scm68
-rw-r--r--gnu/packages/radio.scm119
-rw-r--r--gnu/packages/vim.scm4
-rw-r--r--gnu/packages/xfce.scm25
-rw-r--r--gnu/packages/xorg.scm6
-rw-r--r--gnu/services/base.scm124
-rw-r--r--gnu/services/sddm.scm2
-rw-r--r--gnu/services/shepherd.scm126
-rw-r--r--gnu/system/shadow.scm11
-rw-r--r--guix/build/syscalls.scm50
-rw-r--r--guix/gnupg.scm11
-rw-r--r--guix/import/json.scm61
-rw-r--r--guix/import/print.scm96
-rw-r--r--guix/import/utils.scm36
-rw-r--r--guix/scripts/build.scm7
-rw-r--r--guix/scripts/import/json.scm12
-rw-r--r--guix/scripts/package.scm7
-rw-r--r--guix/status.scm6
-rw-r--r--guix/tests/git.scm37
-rw-r--r--guix/ui.scm14
59 files changed, 1075 insertions, 503 deletions
diff --git a/Makefile.am b/Makefile.am
index 1fcf1c7b56f..bb243fe9fe7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -669,7 +669,7 @@ GUIX_FOR_BINARY_TARBALL = guile3.0-guix
669# The self-contained tarball. 669# The self-contained tarball.
670guix-binary.%.tar.xz: 670guix-binary.%.tar.xz:
671 $(AM_V_GEN)GUIX_PACKAGE_PATH= \ 671 $(AM_V_GEN)GUIX_PACKAGE_PATH= \
672 tarball=`$(top_builddir)/pre-inst-env guix pack -K -C xz \ 672 tarball=`$(top_builddir)/pre-inst-env guix pack -C xz \
673 --fallback \ 673 --fallback \
674 -s "$*" --localstatedir --profile-name=current-guix \ 674 -s "$*" --localstatedir --profile-name=current-guix \
675 $(GUIX_FOR_BINARY_TARBALL)` ; \ 675 $(GUIX_FOR_BINARY_TARBALL)` ; \
@@ -819,6 +819,7 @@ release: dist-with-updated-version
819 for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \ 819 for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \
820 image=`$(top_builddir)/pre-inst-env \ 820 image=`$(top_builddir)/pre-inst-env \
821 guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \ 821 guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \
822 --save-provenance \
822 --system=$$system --fallback \ 823 --system=$$system --fallback \
823 gnu/system/examples/vm-image.tmpl` ; \ 824 gnu/system/examples/vm-image.tmpl` ; \
824 if [ ! -f "$$image" ] ; then \ 825 if [ ! -f "$$image" ] ; then \
diff --git a/build-aux/git-authenticate.scm b/build-aux/git-authenticate.scm
index 37e0c6800c9..bb48dddc59a 100644
--- a/build-aux/git-authenticate.scm
+++ b/build-aux/git-authenticate.scm
@@ -1,5 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
3;;; 4;;;
4;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
5;;; 6;;;
@@ -148,10 +149,10 @@
148 "F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37") 149 "F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37")
149 ("nckx" 150 ("nckx"
150 ;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B" 151 ;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
151 "7E8F AED0 0944 78EF 72E6 4D16 D889 B0F0 18C5 493C")
152 ("nckx (2nd)"
153 ;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
154 "F5DA 2032 4B87 3D0B 7A38 7672 0DB0 FF88 4F55 6D79") 152 "F5DA 2032 4B87 3D0B 7A38 7672 0DB0 FF88 4F55 6D79")
153 ("nckx (revoked; not compromised)"
154 ;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
155 "7E8F AED0 0944 78EF 72E6 4D16 D889 B0F0 18C5 493C")
155 ("niedzejkob" 156 ("niedzejkob"
156 "E576 BFB2 CF6E B13D F571 33B9 E315 A758 4613 1564") 157 "E576 BFB2 CF6E B13D F571 33B9 E315 A758 4613 1564")
157 ("ngz" 158 ("ngz"
diff --git a/doc/guix.texi b/doc/guix.texi
index ef5f68db24f..0b8460a6fe6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -77,6 +77,7 @@ Copyright @copyright{} 2020 Jakub Kądziołka@*
77Copyright @copyright{} 2020 Jack Hill@* 77Copyright @copyright{} 2020 Jack Hill@*
78Copyright @copyright{} 2020 Naga Malleswari@* 78Copyright @copyright{} 2020 Naga Malleswari@*
79Copyright @copyright{} 2020 Brice Waegeneire@* 79Copyright @copyright{} 2020 Brice Waegeneire@*
80Copyright @copyright{} 2020 R Veera Kumar@*
80 81
81Permission is granted to copy, distribute and/or modify this document 82Permission is granted to copy, distribute and/or modify this document
82under the terms of the GNU Free Documentation License, Version 1.3 or 83under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -547,7 +548,14 @@ We recommend the use of this
547@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, 548@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
548shell installer script}. The script automates the download, installation, and 549shell installer script}. The script automates the download, installation, and
549initial configuration steps described below. It should be run as the root 550initial configuration steps described below. It should be run as the root
550user. 551user. As root, you can thus run this:
552
553@example
554cd /tmp
555wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
556chmod +x guix-install.sh
557./guix-install.sh
558@end example
551@end quotation 559@end quotation
552 560
553Installing goes along these lines: 561Installing goes along these lines:
@@ -651,7 +659,7 @@ with these commands:
651@example 659@example
652# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \ 660# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
653 /etc/systemd/system/ 661 /etc/systemd/system/
654# systemctl start guix-daemon && systemctl enable guix-daemon 662# systemctl enable --now guix-daemon
655@end example 663@end example
656 664
657If your host distro uses the Upstart init system: 665If your host distro uses the Upstart init system:
@@ -2823,6 +2831,15 @@ in the root of their project source tree that can be used to test
2823development snapshots and create reproducible development environments 2831development snapshots and create reproducible development environments
2824(@pxref{Invoking guix environment}). 2832(@pxref{Invoking guix environment}).
2825 2833
2834The @var{file} may also contain a JSON representation of one or more
2835package definitions. Running @code{guix package -f} on
2836@file{hello.json} with the following contents would result in installing
2837the package @code{greeter} after building @code{myhello}:
2838
2839@example
2840@verbatiminclude package-hello.json
2841@end example
2842
2826@item --remove=@var{package} @dots{} 2843@item --remove=@var{package} @dots{}
2827@itemx -r @var{package} @dots{} 2844@itemx -r @var{package} @dots{}
2828Remove the specified @var{package}s. 2845Remove the specified @var{package}s.
@@ -4616,8 +4633,8 @@ served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:
4616 4633
4617@example 4634@example
4618$ wget -O - \ 4635$ wget -O - \
4619 https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \ 4636 https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \
4620 | bunzip2 | guix archive -x /tmp/emacs 4637 | gunzip | guix archive -x /tmp/emacs
4621@end example 4638@end example
4622 4639
4623Single-item archives are different from multiple-item archives produced 4640Single-item archives are different from multiple-item archives produced
@@ -4627,7 +4644,8 @@ and they do @emph{not} embed a signature. Thus this operation does
4627unsafe. 4644unsafe.
4628 4645
4629The primary purpose of this operation is to facilitate inspection of 4646The primary purpose of this operation is to facilitate inspection of
4630archive contents coming from possibly untrusted substitute servers. 4647archive contents coming from possibly untrusted substitute servers
4648(@pxref{Invoking guix challenge}).
4631 4649
4632@item --list 4650@item --list
4633@itemx -t 4651@itemx -t
@@ -5807,7 +5825,7 @@ or a list of such values.
5807@item @code{home-page} 5825@item @code{home-page}
5808The URL to the home-page of the package, as a string. 5826The URL to the home-page of the package, as a string.
5809 5827
5810@item @code{supported-systems} (default: @var{%supported-systems}) 5828@item @code{supported-systems} (default: @code{%supported-systems})
5811The list of systems supported by the package, as strings of the form 5829The list of systems supported by the package, as strings of the form
5812@code{architecture-kernel}, for example @code{"x86_64-linux"}. 5830@code{architecture-kernel}, for example @code{"x86_64-linux"}.
5813 5831
@@ -6171,7 +6189,6 @@ if they are defined by the crate.
6171 6189
6172 6190
6173@defvr {Scheme Variable} copy-build-system 6191@defvr {Scheme Variable} copy-build-system
6174@cindex (copy build system)
6175This variable is exported by @code{(guix build-system copy)}. It 6192This variable is exported by @code{(guix build-system copy)}. It
6176supports builds of simple packages that don't require much compiling, 6193supports builds of simple packages that don't require much compiling,
6177mostly just moving files around. 6194mostly just moving files around.
@@ -7371,7 +7388,7 @@ increments the current state value:
7371@result{} 3 7388@result{} 3
7372@end lisp 7389@end lisp
7373 7390
7374When ``run'' through @var{%state-monad}, we obtain that additional state 7391When ``run'' through @code{%state-monad}, we obtain that additional state
7375value, which is the number of @code{square} calls. 7392value, which is the number of @code{square} calls.
7376@end defvr 7393@end defvr
7377 7394
@@ -7403,7 +7420,7 @@ The main interface to the store monad, provided by the @code{(guix
7403store)} module, is as follows. 7420store)} module, is as follows.
7404 7421
7405@defvr {Scheme Variable} %store-monad 7422@defvr {Scheme Variable} %store-monad
7406The store monad---an alias for @var{%state-monad}. 7423The store monad---an alias for @code{%state-monad}.
7407 7424
7408Values in the store monad encapsulate accesses to the store. When its 7425Values in the store monad encapsulate accesses to the store. When its
7409effect is needed, a value of the store monad must be ``evaluated'' by 7426effect is needed, a value of the store monad must be ``evaluated'' by
@@ -7764,7 +7781,7 @@ information about monads.)
7764 [#:system (%current-system)] [#:target #f] [#:graft? #t] @ 7781 [#:system (%current-system)] [#:target #f] [#:graft? #t] @
7765 [#:hash #f] [#:hash-algo #f] @ 7782 [#:hash #f] [#:hash-algo #f] @
7766 [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ 7783 [#:recursive? #f] [#:env-vars '()] [#:modules '()] @
7767 [#:module-path @var{%load-path}] @ 7784 [#:module-path @code{%load-path}] @
7768 [#:effective-version "2.2"] @ 7785 [#:effective-version "2.2"] @
7769 [#:references-graphs #f] [#:allowed-references #f] @ 7786 [#:references-graphs #f] [#:allowed-references #f] @
7770 [#:disallowed-references #f] @ 7787 [#:disallowed-references #f] @
@@ -8068,7 +8085,7 @@ item. This is achieved using the @code{lower-object} monadic procedure.
8068 8085
8069@deffn {Monadic Procedure} lower-object @var{obj} [@var{system}] @ 8086@deffn {Monadic Procedure} lower-object @var{obj} [@var{system}] @
8070 [#:target #f] 8087 [#:target #f]
8071Return as a value in @var{%store-monad} the derivation or store item 8088Return as a value in @code{%store-monad} the derivation or store item
8072corresponding to @var{obj} for @var{system}, cross-compiling for 8089corresponding to @var{obj} for @var{system}, cross-compiling for
8073@var{target} if @var{target} is true. @var{obj} must be an object that 8090@var{target} if @var{target} is true. @var{obj} must be an object that
8074has an associated gexp compiler, such as a @code{<package>}. 8091has an associated gexp compiler, such as a @code{<package>}.
@@ -8550,6 +8567,15 @@ As an example, @var{file} might contain a package definition like this
8550@include package-hello.scm 8567@include package-hello.scm
8551@end lisp 8568@end lisp
8552 8569
8570The @var{file} may also contain a JSON representation of one or more
8571package definitions. Running @code{guix build -f} on @file{hello.json}
8572with the following contents would result in building the packages
8573@code{myhello} and @code{greeter}:
8574
8575@example
8576@verbatiminclude package-hello.json
8577@end example
8578
8553@item --manifest=@var{manifest} 8579@item --manifest=@var{manifest}
8554@itemx -m @var{manifest} 8580@itemx -m @var{manifest}
8555Build all packages listed in the given @var{manifest} 8581Build all packages listed in the given @var{manifest}
@@ -10555,8 +10581,8 @@ Alternately, we can do something along these lines (@pxref{Invoking guix
10555archive}): 10581archive}):
10556 10582
10557@example 10583@example
10558$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \ 10584$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \
10559 | guix archive -x /tmp/git 10585 | lzip -d | guix archive -x /tmp/git
10560$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git 10586$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git
10561@end example 10587@end example
10562 10588
@@ -11234,7 +11260,7 @@ By that, we mean all the global system configuration, not per-user
11234configuration (@pxref{Using the Configuration System}). 11260configuration (@pxref{Using the Configuration System}).
11235 11261
11236@table @asis 11262@table @asis
11237@item @code{kernel} (default: @var{linux-libre}) 11263@item @code{kernel} (default: @code{linux-libre})
11238The package object of the operating system kernel to use@footnote{Currently 11264The package object of the operating system kernel to use@footnote{Currently
11239only the Linux-libre kernel is supported. In the future, it will be 11265only the Linux-libre kernel is supported. In the future, it will be
11240possible to use the GNU@tie{}Hurd.}. 11266possible to use the GNU@tie{}Hurd.}.
@@ -11391,11 +11417,11 @@ As a user you should @emph{never} need to touch this field.
11391Linux @dfn{pluggable authentication module} (PAM) services. 11417Linux @dfn{pluggable authentication module} (PAM) services.
11392@c FIXME: Add xref to PAM services section. 11418@c FIXME: Add xref to PAM services section.
11393 11419
11394@item @code{setuid-programs} (default: @var{%setuid-programs}) 11420@item @code{setuid-programs} (default: @code{%setuid-programs})
11395List of string-valued G-expressions denoting setuid programs. 11421List of string-valued G-expressions denoting setuid programs.
11396@xref{Setuid Programs}. 11422@xref{Setuid Programs}.
11397 11423
11398@item @code{sudoers-file} (default: @var{%sudoers-specification}) 11424@item @code{sudoers-file} (default: @code{%sudoers-specification})
11399@cindex sudoers file 11425@cindex sudoers file
11400The contents of the @file{/etc/sudoers} file as a file-like object 11426The contents of the @file{/etc/sudoers} file as a file-like object
11401(@pxref{G-Expressions, @code{local-file} and @code{plain-file}}). 11427(@pxref{G-Expressions, @code{local-file} and @code{plain-file}}).
@@ -11561,7 +11587,7 @@ variables.
11561 11587
11562@defvr {Scheme Variable} %base-file-systems 11588@defvr {Scheme Variable} %base-file-systems
11563These are essential file systems that are required on normal systems, 11589These are essential file systems that are required on normal systems,
11564such as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see 11590such as @code{%pseudo-terminal-file-system} and @code{%immutable-store} (see
11565below.) Operating system declarations should always contain at least 11591below.) Operating system declarations should always contain at least
11566these. 11592these.
11567@end defvr 11593@end defvr
@@ -12628,7 +12654,7 @@ and caches.
12628@defvr {Scheme Variable} %nscd-default-configuration 12654@defvr {Scheme Variable} %nscd-default-configuration
12629This is the default @code{<nscd-configuration>} value (see below) used 12655This is the default @code{<nscd-configuration>} value (see below) used
12630by @code{nscd-service}. It uses the caches defined by 12656by @code{nscd-service}. It uses the caches defined by
12631@var{%nscd-default-caches}; see below. 12657@code{%nscd-default-caches}; see below.
12632@end defvr 12658@end defvr
12633 12659
12634@deftp {Data Type} nscd-configuration 12660@deftp {Data Type} nscd-configuration
@@ -12653,7 +12679,7 @@ Name of the nscd log file. This is where debugging output goes when
12653Integer denoting the debugging levels. Higher numbers mean that more 12679Integer denoting the debugging levels. Higher numbers mean that more
12654debugging output is logged. 12680debugging output is logged.
12655 12681
12656@item @code{caches} (default: @var{%nscd-default-caches}) 12682@item @code{caches} (default: @code{%nscd-default-caches})
12657List of @code{<nscd-cache>} objects denoting things to be cached; see 12683List of @code{<nscd-cache>} objects denoting things to be cached; see
12658below. 12684below.
12659 12685
@@ -12925,7 +12951,7 @@ well as in the @var{groups} field of the @var{operating-system} record.
12925@end lisp 12951@end lisp
12926 12952
12927@defvr {Scheme Variable} urandom-seed-service-type 12953@defvr {Scheme Variable} urandom-seed-service-type
12928Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} 12954Save some entropy in @code{%random-seed-file} to seed @file{/dev/urandom}
12929when rebooting. It also tries to seed @file{/dev/urandom} from 12955when rebooting. It also tries to seed @file{/dev/urandom} from
12930@file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is 12956@file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is
12931readable. 12957readable.
@@ -13304,7 +13330,7 @@ Either @code{#f} or a gexp to execute once the rotation has completed.
13304@end deftp 13330@end deftp
13305 13331
13306@defvr {Scheme Variable} %default-rotations 13332@defvr {Scheme Variable} %default-rotations
13307Specifies weekly rotation of @var{%rotated-files} and of 13333Specifies weekly rotation of @code{%rotated-files} and of
13308@file{/var/log/guix-daemon.log}. 13334@file{/var/log/guix-daemon.log}.
13309@end defvr 13335@end defvr
13310 13336
@@ -13764,7 +13790,7 @@ clock synchronized with that of the given servers.
13764 13790
13765@defvr {Scheme Variable} %openntpd-servers 13791@defvr {Scheme Variable} %openntpd-servers
13766This variable is a list of the server addresses defined in 13792This variable is a list of the server addresses defined in
13767@var{%ntp-servers}. 13793@code{%ntp-servers}.
13768@end defvr 13794@end defvr
13769 13795
13770@deftp {Data Type} openntpd-configuration 13796@deftp {Data Type} openntpd-configuration
@@ -13782,7 +13808,7 @@ See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more
13782information. 13808information.
13783@item @code{server} (default: @code{'()}) 13809@item @code{server} (default: @code{'()})
13784Specify a list of IP addresses or hostnames of NTP servers to synchronize to. 13810Specify a list of IP addresses or hostnames of NTP servers to synchronize to.
13785@item @code{servers} (default: @var{%openntp-servers}) 13811@item @code{servers} (default: @code{%openntp-servers})
13786Specify a list of IP addresses or hostnames of NTP pools to synchronize to. 13812Specify a list of IP addresses or hostnames of NTP pools to synchronize to.
13787@item @code{constraint-from} (default: @code{'()}) 13813@item @code{constraint-from} (default: @code{'()})
13788@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS. 13814@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers via TLS.
@@ -25634,6 +25660,11 @@ If true, this must be the name of a file to log messages to.
25634@cindex dictionary 25660@cindex dictionary
25635The @code{(gnu services dict)} module provides the following service: 25661The @code{(gnu services dict)} module provides the following service:
25636 25662
25663@defvr {Scheme Variable} dicod-service-type
25664This is the type of the service that runs the @command{dicod} daemon, an
25665implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}).
25666@end defvr
25667
25637@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)] 25668@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)]
25638Return a service that runs the @command{dicod} daemon, an implementation 25669Return a service that runs the @command{dicod} daemon, an implementation
25639of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}). 25670of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}).
@@ -27086,8 +27117,8 @@ evaluates to. As an example, @var{file} might contain a definition like this:
27086 27117
27087The file should evaluate to a list of @var{machine} objects. This example, 27118The file should evaluate to a list of @var{machine} objects. This example,
27088upon being deployed, will create a new generation on the remote system 27119upon being deployed, will create a new generation on the remote system
27089realizing the @code{operating-system} declaration @var{%system}. 27120realizing the @code{operating-system} declaration @code{%system}.
27090@var{environment} and @var{configuration} specify how the machine should be 27121@code{environment} and @code{configuration} specify how the machine should be
27091provisioned---that is, how the computing resources should be created and 27122provisioned---that is, how the computing resources should be created and
27092managed. The above example does not create any resources, as a 27123managed. The above example does not create any resources, as a
27093@code{'managed-host} is a machine that is already running the Guix system and 27124@code{'managed-host} is a machine that is already running the Guix system and
@@ -27229,7 +27260,8 @@ This image boots the Xfce graphical environment and it contains some
27229commonly-used tools. You can install more software in the image by running 27260commonly-used tools. You can install more software in the image by running
27230@command{guix package} in a terminal (@pxref{Invoking guix package}). You can 27261@command{guix package} in a terminal (@pxref{Invoking guix package}). You can
27231also reconfigure the system based on its initial configuration file available 27262also reconfigure the system based on its initial configuration file available
27232as @file{/etc/config.scm} (@pxref{Using the Configuration System}). 27263as @file{/run/current-system/configuration.scm} (@pxref{Using the
27264Configuration System}).
27233 27265
27234Instead of using this pre-built image, one can also build their own virtual 27266Instead of using this pre-built image, one can also build their own virtual
27235machine image using @command{guix system vm-image} (@pxref{Invoking guix 27267machine image using @command{guix system vm-image} (@pxref{Invoking guix
diff --git a/doc/local.mk b/doc/local.mk
index 3805593172c..30c4a8c34dd 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -53,7 +53,8 @@ EXTRA_DIST += \
53 $(DOT_VECTOR_GRAPHICS) \ 53 $(DOT_VECTOR_GRAPHICS) \
54 %D%/images/coreutils-size-map.eps \ 54 %D%/images/coreutils-size-map.eps \
55 %D%/environment-gdb.scm \ 55 %D%/environment-gdb.scm \
56 %D%/package-hello.scm 56 %D%/package-hello.scm \
57 %D%/package-hello.json
57 58
58OS_CONFIG_EXAMPLES_TEXI = \ 59OS_CONFIG_EXAMPLES_TEXI = \
59 %D%/os-config-bare-bones.texi \ 60 %D%/os-config-bare-bones.texi \
diff --git a/doc/package-hello.json b/doc/package-hello.json
new file mode 100644
index 00000000000..a47e266e4bd
--- /dev/null
+++ b/doc/package-hello.json
@@ -0,0 +1,31 @@
1[
2 {
3 "name": "myhello",
4 "version": "2.10",
5 "source": "mirror://gnu/hello/hello-2.10.tar.gz",
6 "build-system": "gnu",
7 "arguments": {
8 "tests?": false
9 }
10 "home-page": "https://www.gnu.org/software/hello/",
11 "synopsis": "Hello, GNU world: An example GNU package",
12 "description": "GNU Hello prints a greeting.",
13 "license": "GPL-3.0+",
14 "native-inputs": ["gettext"]
15 },
16 {
17 "name": "greeter",
18 "version": "1.0",
19 "source": "https://example.com/greeter-1.0.tar.gz",
20 "build-system": "gnu",
21 "arguments": {
22 "test-target": "foo",
23 "parallel-build?": false,
24 },
25 "home-page": "https://example.com/",
26 "synopsis": "Greeter using GNU Hello",
27 "description": "This is a wrapper around GNU Hello.",
28 "license": "GPL-3.0+",
29 "inputs": ["myhello", "hello"]
30 }
31]
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 3b69cdbdeed..79113cb0ef8 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -301,25 +301,6 @@ selected keymap."
301 ((installer-final-page current-installer) 301 ((installer-final-page current-installer)
302 result prev-steps)))))))) 302 result prev-steps))))))))
303 303
304(define guile-newt
305 ;; Guile-Newt with 'form-watch-fd'.
306 ;; TODO: Remove once a new release is out.
307 (let ((commit "c3cdeb0b53ac71aedabee669f57d44563c662446")
308 (revision "2"))
309 (package
310 (inherit (@ (gnu packages guile-xyz) guile-newt))
311 (name "guile-newt")
312 (version (git-version "0.0.1" revision commit))
313 (source (origin
314 (method git-fetch)
315 (uri (git-reference
316 (url "https://gitlab.com/mothacehe/guile-newt")
317 (commit commit)))
318 (file-name (git-file-name name version))
319 (sha256
320 (base32
321 "1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09")))))))
322
323(define (installer-program) 304(define (installer-program)
324 "Return a file-like object that runs the given INSTALLER." 305 "Return a file-like object that runs the given INSTALLER."
325 (define init-gettext 306 (define init-gettext
@@ -377,6 +358,7 @@ selected keymap."
377 (gnu installer services) 358 (gnu installer services)
378 (gnu installer timezone) 359 (gnu installer timezone)
379 (gnu installer user) 360 (gnu installer user)
361 (gnu installer utils)
380 (gnu installer newt) 362 (gnu installer newt)
381 ((gnu installer newt keymap) 363 ((gnu installer newt keymap)
382 #:select (keyboard-layout->configuration)) 364 #:select (keyboard-layout->configuration))
diff --git a/gnu/installer/connman.scm b/gnu/installer/connman.scm
index 7f47b9af77a..386f431ced7 100644
--- a/gnu/installer/connman.scm
+++ b/gnu/installer/connman.scm
@@ -393,6 +393,7 @@ interactive connmanctl process."
393 (dynamic-wind 393 (dynamic-wind
394 (const #t) 394 (const #t)
395 (lambda () 395 (lambda ()
396 (setvbuf pipe 'line)
396 (run-connection-sequence pipe) 397 (run-connection-sequence pipe)
397 #t) 398 #t)
398 (lambda () 399 (lambda ()
diff --git a/gnu/local.mk b/gnu/local.mk
index 0795dec6e88..08b659c9297 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1387,6 +1387,7 @@ dist_patch_DATA = \
1387 %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \ 1387 %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
1388 %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ 1388 %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
1389 %D%/packages/patches/python-flint-includes.patch \ 1389 %D%/packages/patches/python-flint-includes.patch \
1390 %D%/packages/patches/python-jedi-sort-project-test.patch \
1390 %D%/packages/patches/python-libxml2-utf8.patch \ 1391 %D%/packages/patches/python-libxml2-utf8.patch \
1391 %D%/packages/patches/python-mox3-python3.6-compat.patch \ 1392 %D%/packages/patches/python-mox3-python3.6-compat.patch \
1392 %D%/packages/patches/python-testtools.patch \ 1393 %D%/packages/patches/python-testtools.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index e4f98082312..7105a09dd10 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -790,7 +790,7 @@ connection alive.")
790(define-public isc-dhcp 790(define-public isc-dhcp
791 (let* ((bind-major-version "9") 791 (let* ((bind-major-version "9")
792 (bind-minor-version "11") 792 (bind-minor-version "11")
793 (bind-patch-version "14") 793 (bind-patch-version "18")
794 (bind-release-type "") ; for patch release, use "-P" 794 (bind-release-type "") ; for patch release, use "-P"
795 (bind-release-version "") ; for patch release, e.g. "6" 795 (bind-release-version "") ; for patch release, e.g. "6"
796 (bind-version (string-append bind-major-version 796 (bind-version (string-append bind-major-version
@@ -927,7 +927,7 @@ connection alive.")
927 "/bind-" bind-version ".tar.gz")) 927 "/bind-" bind-version ".tar.gz"))
928 (sha256 928 (sha256
929 (base32 929 (base32
930 "1pv3bvm9dzyz2kqjkw15sgh0hd5fzsv274v5z6jp9c4nb5130fyr")))) 930 "0vws0zzb39mkphj4hhjrgfj9dzw951lc4pfa6pqg5ll5ma51mbsr"))))
931 931
932 ;; When cross-compiling, we need the cross Coreutils and sed. 932 ;; When cross-compiling, we need the cross Coreutils and sed.
933 ;; Otherwise just use those from %FINAL-INPUTS. 933 ;; Otherwise just use those from %FINAL-INPUTS.
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index b68f2137beb..5648f5a9ec4 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -1,6 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 John Darringon <jmd@gnu.org> 2;;; Copyright © 2014 John Darringon <jmd@gnu.org>
3;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> 3;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
4;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> 4;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
5;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> 5;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
6;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> 6;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
@@ -157,39 +157,34 @@ Python as well as GUI widgets for GTK and Qt.")
157 (license license:lgpl2.1+))) 157 (license license:lgpl2.1+)))
158 158
159(define-public qrcodegen-cpp 159(define-public qrcodegen-cpp
160 ;; Currently this project's installation mechanism only exists as a GitHub 160 (package
161 ;; pull request, so we build from a recent commit that the proposed patch 161 (name "qrcodegen-cpp")
162 ;; applies to. 162 (version "1.6.0")
163 (let ((commit "6ea933f1596d818bd21e9a6b8d2e851fb8b4bcf1") 163 (source (origin
164 (revision "0")) 164 (method git-fetch)
165 (package 165 (uri (git-reference
166 (name "qrcodegen-cpp") 166 (url "https://github.com/nayuki/QR-Code-generator.git")
167 (version (git-version "1.5.0" revision commit)) 167 (commit (string-append "v" version))))
168 (source (origin 168 (file-name (git-file-name name version))
169 (method git-fetch) 169 (patches (search-patches "qrcodegen-cpp-make-install.patch"))
170 (uri (git-reference 170 (sha256
171 (url "https://github.com/nayuki/QR-Code-generator.git") 171 (base32
172 (commit commit))) 172 "0iq9sv9na0vg996aqrxrjn9rrbiyy7sc9vslw945p3ky22pw3lql"))))
173 (file-name (git-file-name name version)) 173 (build-system gnu-build-system)
174 (patches (search-patches "qrcodegen-cpp-make-install.patch")) 174 (arguments
175 (sha256 175 `(#:tests? #f ; no test suite
176 (base32 176 #:make-flags
177 "19fcwqmfk2n9p2n01dv2j4x2y2mqip0j1wbmfbxjp34rqkjwcwxm")))) 177 (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
178 (build-system gnu-build-system) 178 #:phases
179 (arguments 179 (modify-phases %standard-phases
180 `(#:tests? #f ; no test suite 180 (delete 'configure) ; No ./configure script
181 #:make-flags 181 ;; Only build the C++ variant.
182 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) 182 (add-after 'unpack 'chdir
183 #:phases 183 (lambda _
184 (modify-phases %standard-phases 184 (chdir "cpp")
185 (delete 'configure) ; No ./configure script 185 #t)))))
186 ;; Only build the C++ variant. 186 (synopsis "QR Code generator library")
187 (add-after 'unpack 'chdir 187 (description "qrcodegen-cpp is a QR code generator library in C++. The
188 (lambda _
189 (chdir "cpp")
190 #t)))))
191 (synopsis "QR Code generator library")
192 (description "qrcodegen-cpp is a QR code generator library in C++. The
193project also offers Java, Javascript, Python, C, and Rust implementations.") 188project also offers Java, Javascript, Python, C, and Rust implementations.")
194 (home-page "https://www.nayuki.io/page/qr-code-generator-library") 189 (home-page "https://www.nayuki.io/page/qr-code-generator-library")
195 (license license:expat)))) 190 (license license:expat)))
diff --git a/gnu/packages/augeas.scm b/gnu/packages/augeas.scm
index fcba5bae7b8..b3c4803e04c 100644
--- a/gnu/packages/augeas.scm
+++ b/gnu/packages/augeas.scm
@@ -2,6 +2,7 @@
2;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> 2;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
3;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> 3;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
4;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> 4;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
5;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
5;;; 6;;;
6;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
7;;; 8;;;
@@ -32,23 +33,23 @@
32(define-public augeas 33(define-public augeas
33 (package 34 (package
34 (name "augeas") 35 (name "augeas")
35 (version "1.11.0") 36 (version "1.12.0")
36 (source (origin 37 (source (origin
37 (method url-fetch) 38 (method url-fetch)
38 (uri (string-append "http://download.augeas.net/augeas-" 39 (uri (string-append "http://download.augeas.net/augeas-"
39 version ".tar.gz")) 40 version ".tar.gz"))
40 (sha256 41 (sha256
41 (base32 42 (base32
42 "1c507qj6dfn2dnsl27w94zs9r45xrgm07y8bqba9ry2s0psfhg1r")))) 43 "11ybhb13wkkilsn7b416a1dn61m1xrq0lbdpkhp5w61jrk4l469j"))))
43 (build-system gnu-build-system) 44 (build-system gnu-build-system)
44 ;; Marked as "required" in augeas.pc 45 ;; Marked as "required" in augeas.pc.
45 (propagated-inputs 46 (propagated-inputs
46 `(("libxml2" ,libxml2))) 47 `(("libxml2" ,libxml2)))
47 (inputs 48 (inputs
48 `(("readline" ,readline))) 49 `(("readline" ,readline)))
49 (native-inputs 50 (native-inputs
50 `(("pkg-config" ,pkg-config))) 51 `(("pkg-config" ,pkg-config)))
51 (home-page "http://augeas.net/") 52 (home-page "https://augeas.net")
52 (synopsis "Edit configuration files programmatically") 53 (synopsis "Edit configuration files programmatically")
53 (description 54 (description
54 "Augeas is a library and command line tool for programmatically editing 55 "Augeas is a library and command line tool for programmatically editing
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 97c7be48ca0..149f857a41b 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -92,6 +92,7 @@
92 ("par2cmdline" ,par2cmdline) 92 ("par2cmdline" ,par2cmdline)
93 ("python-pexpect" ,python2-pexpect) 93 ("python-pexpect" ,python2-pexpect)
94 ("python-fasteners" ,python2-fasteners) 94 ("python-fasteners" ,python2-fasteners)
95 ("tzdata" ,tzdata-for-tests)
95 ("mock" ,python2-mock))) 96 ("mock" ,python2-mock)))
96 (propagated-inputs 97 (propagated-inputs
97 `(("lockfile" ,python2-lockfile) 98 `(("lockfile" ,python2-lockfile)
@@ -100,8 +101,7 @@
100 `(("librsync" ,librsync-0.9) 101 `(("librsync" ,librsync-0.9)
101 ("lftp" ,lftp) 102 ("lftp" ,lftp)
102 ("gnupg" ,gnupg) ; gpg executable needed 103 ("gnupg" ,gnupg) ; gpg executable needed
103 ("util-linux" ,util-linux) ; for setsid 104 ("util-linux" ,util-linux))) ; for setsid
104 ("tzdata" ,tzdata)))
105 (arguments 105 (arguments
106 `(#:python ,python-2 ; setup assumes Python 2 106 `(#:python ,python-2 ; setup assumes Python 2
107 #:test-target "test" 107 #:test-target "test"
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index a49c05dbce4..68d8e5b5742 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -2313,6 +2313,8 @@ possible, parallelization is achieved using the BiocParallel framework.")
2313 ("r-tidyr" ,r-tidyr) 2313 ("r-tidyr" ,r-tidyr)
2314 ("r-tidyselect" ,r-tidyselect) 2314 ("r-tidyselect" ,r-tidyselect)
2315 ("r-vim" ,r-vim))) 2315 ("r-vim" ,r-vim)))
2316 (native-inputs
2317 `(("r-nbconvertr" ,r-nbconvertr))) ; for vignettes
2316 (home-page "https://bioconductor.org/packages/destiny/") 2318 (home-page "https://bioconductor.org/packages/destiny/")
2317 (synopsis "Create and plot diffusion maps") 2319 (synopsis "Create and plot diffusion maps")
2318 (description "This package provides tools to create and plot diffusion 2320 (description "This package provides tools to create and plot diffusion
@@ -3529,6 +3531,8 @@ to multiple hypothesis correction.")
3529 ("r-qvalue" ,r-qvalue) 3531 ("r-qvalue" ,r-qvalue)
3530 ("r-reshape2" ,r-reshape2) 3532 ("r-reshape2" ,r-reshape2)
3531 ("r-s4vectors" ,r-s4vectors))) 3533 ("r-s4vectors" ,r-s4vectors)))
3534 (native-inputs
3535 `(("r-knitr" ,r-knitr)))
3532 (home-page "https://guangchuangyu.github.io/software/DOSE/") 3536 (home-page "https://guangchuangyu.github.io/software/DOSE/")
3533 (synopsis "Disease ontology semantic and enrichment analysis") 3537 (synopsis "Disease ontology semantic and enrichment analysis")
3534 (description 3538 (description
@@ -3899,6 +3903,8 @@ further downstream analysis on its output.")
3899 `(("r-biocparallel" ,r-biocparallel) 3903 `(("r-biocparallel" ,r-biocparallel)
3900 ("r-ellipse" ,r-ellipse) 3904 ("r-ellipse" ,r-ellipse)
3901 ("r-ggplot2" ,r-ggplot2))) 3905 ("r-ggplot2" ,r-ggplot2)))
3906 (native-inputs
3907 `(("r-knitr" ,r-knitr)))
3902 (home-page "https://bioconductor.org/packages/bacon/") 3908 (home-page "https://bioconductor.org/packages/bacon/")
3903 (synopsis "Controlling bias and inflation in association studies") 3909 (synopsis "Controlling bias and inflation in association studies")
3904 (description 3910 (description
@@ -6733,6 +6739,8 @@ using whole genome sequencing data.")
6733 `(("r-data-table" ,r-data-table) 6739 `(("r-data-table" ,r-data-table)
6734 ("r-ggplot2" ,r-ggplot2) 6740 ("r-ggplot2" ,r-ggplot2)
6735 ("r-metap" ,r-metap))) 6741 ("r-metap" ,r-metap)))
6742 (native-inputs
6743 `(("r-knitr" ,r-knitr)))
6736 (home-page "https://cran.r-project.org/web/packages/ActivePathways/") 6744 (home-page "https://cran.r-project.org/web/packages/ActivePathways/")
6737 (synopsis "Multivariate pathway enrichment analysis") 6745 (synopsis "Multivariate pathway enrichment analysis")
6738 (description 6746 (description
@@ -7105,6 +7113,8 @@ structures.")
7105 ("r-rjson" ,r-rjson) 7113 ("r-rjson" ,r-rjson)
7106 ("r-rsqlite" ,r-rsqlite) 7114 ("r-rsqlite" ,r-rsqlite)
7107 ("r-xml" ,r-xml))) 7115 ("r-xml" ,r-xml)))
7116 (native-inputs
7117 `(("r-knitr" ,r-knitr)))
7108 (home-page "https://github.com/TylerBackman/bioassayR") 7118 (home-page "https://github.com/TylerBackman/bioassayR")
7109 (synopsis "Cross-target analysis of small molecule bioactivity") 7119 (synopsis "Cross-target analysis of small molecule bioactivity")
7110 (description 7120 (description
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index cb4cfd58af3..e23bafa6235 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2399,13 +2399,13 @@ files.")
2399(define-public python-pybigwig 2399(define-public python-pybigwig
2400 (package 2400 (package
2401 (name "python-pybigwig") 2401 (name "python-pybigwig")
2402 (version "0.3.12") 2402 (version "0.3.17")
2403 (source (origin 2403 (source (origin
2404 (method url-fetch) 2404 (method url-fetch)
2405 (uri (pypi-uri "pyBigWig" version)) 2405 (uri (pypi-uri "pyBigWig" version))
2406 (sha256 2406 (sha256
2407 (base32 2407 (base32
2408 "00w4kfnm2c5l7wdwr2nj1z5djv8kzgf7h1zhsgv6njff1rwr26g0")) 2408 "157x6v48y299zm382krf1dw08fdxg95im8lnabhp5vc94s04zxj1"))
2409 (modules '((guix build utils))) 2409 (modules '((guix build utils)))
2410 (snippet 2410 (snippet
2411 '(begin 2411 '(begin
@@ -13642,32 +13642,34 @@ fasta subsequences.")
13642(define-public python-cooler 13642(define-public python-cooler
13643 (package 13643 (package
13644 (name "python-cooler") 13644 (name "python-cooler")
13645 (version "0.7.11") 13645 (version "0.8.7")
13646 (source 13646 (source
13647 (origin 13647 (origin
13648 (method url-fetch) 13648 (method url-fetch)
13649 (uri (pypi-uri "cooler" version)) 13649 (uri (pypi-uri "cooler" version))
13650 (sha256 13650 (sha256
13651 (base32 13651 (base32
13652 "08k5nxnxa6qsbk15z5z0q01n28042k87wi4905hh95rzqib15mhx")))) 13652 "01g6gqix9ba27sappz6nfyiwabzrlf8i5fn8kwcz8ra356cq9crp"))))
13653 (build-system python-build-system) 13653 (build-system python-build-system)
13654 (propagated-inputs 13654 (propagated-inputs
13655 `(("python-biopython" ,python-biopython) 13655 `(("python-asciitree" ,python-asciitree)
13656 ("python-biopython" ,python-biopython)
13656 ("python-click" ,python-click) 13657 ("python-click" ,python-click)
13657 ("python-cytoolz" ,python-cytoolz) 13658 ("python-cytoolz" ,python-cytoolz)
13658 ("python-dask" ,python-dask) 13659 ("python-dask" ,python-dask)
13659 ("python-h5py" ,python-h5py) 13660 ("python-h5py" ,python-h5py)
13660 ("python-multiprocess" ,python-multiprocess) 13661 ("python-multiprocess" ,python-multiprocess)
13662 ("python-numpy" ,python-numpy)
13661 ("python-pandas" ,python-pandas) 13663 ("python-pandas" ,python-pandas)
13662 ("python-pyfaidx" ,python-pyfaidx) 13664 ("python-pyfaidx" ,python-pyfaidx)
13663 ("python-pypairix" ,python-pypairix) 13665 ("python-pypairix" ,python-pypairix)
13664 ("python-pysam" ,python-pysam) 13666 ("python-pysam" ,python-pysam)
13665 ("python-scipy" ,python-scipy))) 13667 ("python-pyyaml" ,python-pyyaml)
13668 ("python-scipy" ,python-scipy)
13669 ("python-simplejson" ,python-simplejson)))
13666 (native-inputs 13670 (native-inputs
13667 `(("python-mock" ,python-mock) 13671 `(("python-mock" ,python-mock)
13668 ("python-nose" ,python-nose) 13672 ("python-pytest" ,python-pytest)))
13669 ("python-numpydoc" ,python-numpydoc)
13670 ("python-sphinx" ,python-sphinx)))
13671 (home-page "https://github.com/mirnylab/cooler") 13673 (home-page "https://github.com/mirnylab/cooler")
13672 (synopsis "Sparse binary format for genomic interaction matrices") 13674 (synopsis "Sparse binary format for genomic interaction matrices")
13673 (description 13675 (description
@@ -13676,6 +13678,46 @@ storage format, called @code{cool}, used to store genomic interaction data,
13676such as Hi-C contact matrices.") 13678such as Hi-C contact matrices.")
13677 (license license:bsd-3))) 13679 (license license:bsd-3)))
13678 13680
13681(define-public python-hicmatrix
13682 (package
13683 (name "python-hicmatrix")
13684 (version "12")
13685 (source
13686 (origin
13687 ;; Version 12 is not available on pypi.
13688 (method git-fetch)
13689 (uri (git-reference
13690 (url "https://github.com/deeptools/HiCMatrix.git")
13691 (commit version)))
13692 (file-name (git-file-name name version))
13693 (sha256
13694 (base32
13695 "1xhdyx16f3brgxgxybixdi64ki8nbbkq5vk4h9ahi11pzpjfn1pj"))))
13696 (build-system python-build-system)
13697 (arguments
13698 `(#:phases
13699 (modify-phases %standard-phases
13700 (add-after 'unpack 'relax-requirements
13701 (lambda _
13702 (substitute* '("requirements.txt"
13703 "setup.py")
13704 (("cooler *=+ *0.8.5")
13705 "cooler==0.8.*"))
13706 #t)))))
13707 (propagated-inputs
13708 `(("python-cooler" ,python-cooler)
13709 ("python-intervaltree" ,python-intervaltree)
13710 ("python-numpy" ,python-numpy)
13711 ("python-pandas" ,python-pandas)
13712 ("python-scipy" ,python-scipy)
13713 ("python-tables" ,python-tables)))
13714 (home-page "https://github.com/deeptools/HiCMatrix/")
13715 (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
13716 (description
13717 "This helper package implements the @code{HiCMatrix} class for
13718the HiCExplorer and pyGenomeTracks packages.")
13719 (license license:gpl3+)))
13720
13679(define-public python-hicexplorer 13721(define-public python-hicexplorer
13680 (package 13722 (package
13681 (name "python-hicexplorer") 13723 (name "python-hicexplorer")
@@ -13732,23 +13774,35 @@ genomic scores), long range contacts and the visualization of viewpoints.")
13732(define-public python-pygenometracks 13774(define-public python-pygenometracks
13733 (package 13775 (package
13734 (name "python-pygenometracks") 13776 (name "python-pygenometracks")
13735 (version "2.0") 13777 (version "3.3")
13736 (source 13778 (source
13737 (origin 13779 (origin
13738 (method url-fetch) 13780 (method url-fetch)
13739 (uri (pypi-uri "pyGenomeTracks" version)) 13781 (uri (pypi-uri "pyGenomeTracks" version))
13740 (sha256 13782 (sha256
13741 (base32 13783 (base32
13742 "1fws6bqsyy9kj3qiabhkqx4wd4i775gsxnhszqd3zg7w67sc1ic5")))) 13784 "16laa0wnf4qn9fb9ych4w1vqhqwjss70v0y0f6wp4gwqfrlgac0f"))))
13743 (build-system python-build-system) 13785 (build-system python-build-system)
13786 (arguments
13787 `(#:tests? #f ; there are none
13788 #:phases
13789 (modify-phases %standard-phases
13790 (add-after 'unpack 'relax-requirements
13791 (lambda _
13792 (substitute* "setup.py"
13793 (("matplotlib ==3.1.1")
13794 "matplotlib >=3.1.1"))
13795 #t)))))
13744 (propagated-inputs 13796 (propagated-inputs
13745 `(("python-configparser" ,python-configparser) 13797 `(("python-future" ,python-future)
13746 ("python-future" ,python-future) 13798 ("python-gffutils" ,python-gffutils)
13747 ("python-hicexplorer" ,python-hicexplorer) 13799 ("python-hicmatrix" ,python-hicmatrix)
13748 ("python-intervaltree" ,python-intervaltree) 13800 ("python-intervaltree" ,python-intervaltree)
13749 ("python-matplotlib" ,python-matplotlib) 13801 ("python-matplotlib" ,python-matplotlib)
13750 ("python-numpy" ,python-numpy) 13802 ("python-numpy" ,python-numpy)
13751 ("python-pybigwig" ,python-pybigwig))) 13803 ("python-pybigwig" ,python-pybigwig)
13804 ("python-pysam" ,python-pysam)
13805 ("python-tqdm" ,python-tqdm)))
13752 (native-inputs 13806 (native-inputs
13753 `(("python-pytest" ,python-pytest))) 13807 `(("python-pytest" ,python-pytest)))
13754 (home-page "https://pygenometracks.readthedocs.io") 13808 (home-page "https://pygenometracks.readthedocs.io")
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 5132a9d8ab5..104d61148ae 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -186,7 +186,17 @@ data units.")
186 (uri (pypi-uri "khal" version)) 186 (uri (pypi-uri "khal" version))
187 (sha256 187 (sha256
188 (base32 188 (base32
189 "1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l")))) 189 "1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))
190 (patches
191 (list
192 (origin
193 (method url-fetch)
194 ;; This patch fixes an issue with python-urwid-2.1.0
195 (uri "https://github.com/pimutils/khal/commit/2c5990c2de2015b251ba23617faa40ee11b8c22a.patch")
196 (file-name "khal-compat-urwid-2.1.0.patch")
197 (sha256
198 (base32
199 "11nd8hkjz68imwqqn0p54zmb53z2pfxmzchaviy7jc1ky5s9l663")))))))
190 (build-system python-build-system) 200 (build-system python-build-system)
191 (arguments 201 (arguments
192 `(#:phases (modify-phases %standard-phases 202 `(#:phases (modify-phases %standard-phases
@@ -219,9 +229,8 @@ data units.")
219 ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed) 229 ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
220 ("python-sphinx" ,python-sphinx))) 230 ("python-sphinx" ,python-sphinx)))
221 (inputs 231 (inputs
222 `(("sqlite" ,sqlite))) 232 `(("sqlite" ,sqlite)
223 (propagated-inputs 233 ("python-configobj" ,python-configobj)
224 `(("python-configobj" ,python-configobj)
225 ("python-dateutil" ,python-dateutil) 234 ("python-dateutil" ,python-dateutil)
226 ("python-icalendar" ,python-icalendar) 235 ("python-icalendar" ,python-icalendar)
227 ("python-tzlocal" ,python-tzlocal) 236 ("python-tzlocal" ,python-tzlocal)
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index d92d463e033..4755a940258 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -248,7 +248,7 @@ from forcing GEXP-PROMISE."
248 #:system system 248 #:system system
249 #:guile-for-build guile))) 249 #:guile-for-build guile)))
250 250
251(define %chromium-version "81.0.4044.92") 251(define %chromium-version "81.0.4044.113")
252(define %ungoogled-revision "b484ad4c0bdb696c86d941798ae6b0e2bd0db35d") 252(define %ungoogled-revision "b484ad4c0bdb696c86d941798ae6b0e2bd0db35d")
253(define %debian-revision "debian/81.0.4044.92-1") 253(define %debian-revision "debian/81.0.4044.92-1")
254(define package-revision "0") 254(define package-revision "0")
@@ -264,7 +264,7 @@ from forcing GEXP-PROMISE."
264 %chromium-version ".tar.xz")) 264 %chromium-version ".tar.xz"))
265 (sha256 265 (sha256
266 (base32 266 (base32
267 "0i0szd749ihb08rxnsmsbxq75b6x952wpk94jwc0ncv6gb83zkx2")))) 267 "0hsxxw7fm1p8g53msqb644v8vr4cpvjmpln444c2268rm43yik17"))))
268 268
269(define %ungoogled-origin 269(define %ungoogled-origin
270 (origin 270 (origin
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index a5474e0a96a..39aa54a9e8a 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -3,7 +3,7 @@
3;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> 3;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
4;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org> 4;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
5;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> 5;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
6;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> 6;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
7;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> 7;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
8;;; 8;;;
9;;; This file is part of GNU Guix. 9;;; This file is part of GNU Guix.
@@ -47,20 +47,20 @@
47 #:use-module (guix build-system gnu)) 47 #:use-module (guix build-system gnu))
48 48
49(define-public cuirass 49(define-public cuirass
50 (let ((commit "b9031db946ff89a39e1507b430f64402b0e9572a") 50 (let ((commit "27af1d34646f4e3fca09283cb52caa8b89cbb2b1")
51 (revision "28")) 51 (revision "29"))
52 (package 52 (package
53 (name "cuirass") 53 (name "cuirass")
54 (version (string-append "0.0.1-" revision "." (string-take commit 7))) 54 (version (git-version "0.0.1" revision commit))
55 (source (origin 55 (source (origin
56 (method git-fetch) 56 (method git-fetch)
57 (uri (git-reference 57 (uri (git-reference
58 (url "https://git.savannah.gnu.org/git/guix/guix-cuirass.git") 58 (url "https://git.savannah.gnu.org/git/guix/guix-cuirass.git")
59 (commit commit))) 59 (commit commit)))
60 (file-name (string-append name "-" version)) 60 (file-name (git-file-name name version))
61 (sha256 61 (sha256
62 (base32 62 (base32
63 "103smfbdpgaw17xw3vc9cb3nfisrx64k71rpzn8g35f3jz7bxdcf")))) 63 "199fzv4d18qslcggl7lj42ib600nckp0c40x7ahnb4rgnjw8ppyi"))))
64 (build-system gnu-build-system) 64 (build-system gnu-build-system)
65 (arguments 65 (arguments
66 '(#:modules ((guix build utils) 66 '(#:modules ((guix build utils)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index dfec9ac2779..72c6d93cfc6 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -503,7 +503,7 @@ than gzip and 15 % smaller output than bzip2.")
503 "/share/zoneinfo")) 503 "/share/zoneinfo"))
504 #t))))) 504 #t)))))
505 (native-inputs 505 (native-inputs
506 `(("tzdata" ,tzdata))) 506 `(("tzdata" ,tzdata-for-tests)))
507 (home-page "https://fragglet.github.com/lhasa/") 507 (home-page "https://fragglet.github.com/lhasa/")
508 (synopsis "LHA archive decompressor") 508 (synopsis "LHA archive decompressor")
509 (description "Lhasa is a replacement for the Unix LHA tool, for 509 (description "Lhasa is a replacement for the Unix LHA tool, for
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index e8b635ac168..cd2fea59969 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -12306,6 +12306,8 @@ select colors to use in your R code.")
12306 ("r-scales" ,r-scales) 12306 ("r-scales" ,r-scales)
12307 ("r-shiny" ,r-shiny) 12307 ("r-shiny" ,r-shiny)
12308 ("r-shinyjs" ,r-shinyjs))) 12308 ("r-shinyjs" ,r-shinyjs)))
12309 (native-inputs
12310 `(("r-knitr" ,r-knitr)))
12309 (home-page "https://github.com/daattali/ggExtra") 12311 (home-page "https://github.com/daattali/ggExtra")
12310 (synopsis "Marginal histograms for ggplot2 and other enhancements") 12312 (synopsis "Marginal histograms for ggplot2 and other enhancements")
12311 (description 12313 (description
@@ -18006,6 +18008,8 @@ allowed.")
18006 ("r-rsolnp" ,r-rsolnp) 18008 ("r-rsolnp" ,r-rsolnp)
18007 ("r-shiny" ,r-shiny) 18009 ("r-shiny" ,r-shiny)
18008 ("r-shinydashboard" ,r-shinydashboard))) 18010 ("r-shinydashboard" ,r-shinydashboard)))
18011 (native-inputs
18012 `(("r-knitr" ,r-knitr)))
18009 (home-page "https://github.com/Wenchao-Ma/GDINA") 18013 (home-page "https://github.com/Wenchao-Ma/GDINA")
18010 (synopsis "Generalized DINA model framework") 18014 (synopsis "Generalized DINA model framework")
18011 (description 18015 (description
@@ -20620,7 +20624,7 @@ techniques to average Bayesian predictive distributions.")
20620 "/share/zoneinfo")) 20624 "/share/zoneinfo"))
20621 #t))))) 20625 #t)))))
20622 (native-inputs 20626 (native-inputs
20623 `(("tzdata" ,tzdata) 20627 `(("tzdata" ,tzdata-for-tests)
20624 ("pandoc" ,ghc-pandoc))) 20628 ("pandoc" ,ghc-pandoc)))
20625 (propagated-inputs 20629 (propagated-inputs
20626 `(("r-bh" ,r-bh) 20630 `(("r-bh" ,r-bh)
@@ -21102,3 +21106,28 @@ client).")
21102designs with and without early outcomes for treatment selection and 21106designs with and without early outcomes for treatment selection and
21103subpopulation type designs.") 21107subpopulation type designs.")
21104 (license license:gpl3))) 21108 (license license:gpl3)))
21109
21110(define-public r-nbconvertr
21111 (package
21112 (name "r-nbconvertr")
21113 (version "1.3.2")
21114 (source
21115 (origin
21116 (method url-fetch)
21117 (uri (cran-uri "nbconvertR" version))
21118 (sha256
21119 (base32
21120 "0yhmz177r1miain65vspclahhz8cg7638ldbpsw8ylgf7a60l0sg"))))
21121 (properties `((upstream-name . "nbconvertR")))
21122 (build-system r-build-system)
21123 (inputs
21124 `(("jupyter" ,python-nbconvert)
21125 ("pandoc" ,ghc-pandoc)))
21126 (home-page "https://cran.r-project.org/web/packages/nbconvertR/")
21127 (synopsis "Vignette engine wrapping Jupyter notebooks")
21128 (description
21129 "This package calls the Jupyter script @code{nbconvert} to create
21130vignettes from notebooks. Those notebooks (@code{.ipynb} files) are files
21131containing rich text, code, and its output. Code cells can be edited and
21132evaluated interactively.")
21133 (license license:gpl3)))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 09568aec370..ccbcfca005c 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -508,7 +508,7 @@ replacement for the code@{python-memcached} library.")
508 ("python" ,python-2) 508 ("python" ,python-2)
509 ("python2-pymongo" ,python2-pymongo) 509 ("python2-pymongo" ,python2-pymongo)
510 ("python2-pyyaml" ,python2-pyyaml) 510 ("python2-pyyaml" ,python2-pyyaml)
511 ("tzdata" ,tzdata))) 511 ("tzdata" ,tzdata-for-tests)))
512 (arguments 512 (arguments
513 `(#:scons ,scons-python2 513 `(#:scons ,scons-python2
514 #:phases 514 #:phases
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 37f8f74b7bc..71c0039dfb0 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -45,6 +45,7 @@
45 #:use-module (gnu packages linux) 45 #:use-module (gnu packages linux)
46 #:use-module (gnu packages llvm) 46 #:use-module (gnu packages llvm)
47 #:use-module (gnu packages man) 47 #:use-module (gnu packages man)
48 #:use-module (gnu packages maths)
48 #:use-module (gnu packages mono) 49 #:use-module (gnu packages mono)
49 #:use-module (gnu packages ocaml) 50 #:use-module (gnu packages ocaml)
50 #:use-module (gnu packages package-management) 51 #:use-module (gnu packages package-management)
@@ -68,7 +69,7 @@
68 #:use-module (ice-9 match)) 69 #:use-module (ice-9 match))
69 70
70(define-public diffoscope 71(define-public diffoscope
71 (let ((version "139")) 72 (let ((version "141"))
72 (package 73 (package
73 (name "diffoscope") 74 (name "diffoscope")
74 (version version) 75 (version version)
@@ -80,7 +81,7 @@
80 (file-name (git-file-name name version)) 81 (file-name (git-file-name name version))
81 (sha256 82 (sha256
82 (base32 83 (base32
83 "1k4yjyvmn5nfdapkwgkr9gzpn18kr4c58n0f32pfkx4yakfqkk4i")))) 84 "0pls2jryx394ysaz0g8h959lhrsdqak9bkxjd5r6sdckgiikplkj"))))
84 (build-system python-build-system) 85 (build-system python-build-system)
85 (arguments 86 (arguments
86 `(#:phases (modify-phases %standard-phases 87 `(#:phases (modify-phases %standard-phases
@@ -91,6 +92,12 @@
91 (lambda _ 92 (lambda _
92 (substitute* "setup.py" 93 (substitute* "setup.py"
93 (("'python-magic',") "")))) 94 (("'python-magic',") ""))))
95 ;; Patch in support for known tools
96 (add-after 'unpack 'add-known-tools
97 (lambda _
98 (substitute* "diffoscope/external_tools.py"
99 (("'debian': 'hdf5-tools'")
100 "'debian': 'hdf5-tools', 'guix': 'hdf5'"))))
94 ;; This test is broken because our `file` package has a 101 ;; This test is broken because our `file` package has a
95 ;; bug in berkeley-db file type detection. 102 ;; bug in berkeley-db file type detection.
96 (add-after 'unpack 'remove-berkeley-test 103 (add-after 'unpack 'remove-berkeley-test
@@ -189,6 +196,7 @@
189 ("giflib:bin" ,giflib "bin") 196 ("giflib:bin" ,giflib "bin")
190 ("gnumeric" ,gnumeric) 197 ("gnumeric" ,gnumeric)
191 ("gnupg" ,gnupg) 198 ("gnupg" ,gnupg)
199 ("hdf5" ,hdf5)
192 ("imagemagick" ,imagemagick) 200 ("imagemagick" ,imagemagick)
193 ("libarchive" ,libarchive) 201 ("libarchive" ,libarchive)
194 ("llvm" ,llvm) 202 ("llvm" ,llvm)
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 869be47ad14..e1198d4381b 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -115,7 +115,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
115(define-public isc-bind 115(define-public isc-bind
116 (package 116 (package
117 (name "bind") 117 (name "bind")
118 (version "9.16.1") 118 (version "9.16.2")
119 (source (origin 119 (source (origin
120 (method url-fetch) 120 (method url-fetch)
121 (uri (string-append 121 (uri (string-append
@@ -123,7 +123,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
123 "/bind-" version ".tar.xz")) 123 "/bind-" version ".tar.xz"))
124 (sha256 124 (sha256
125 (base32 125 (base32
126 "14ayswxnyaqwb935iqdi1w9ih3zs0a0va59j4cyi5f9mh7kxf4x9")))) 126 "0gwr4p14zy5jqq050n762rfc33km51qwipcwy6bsvk55ziybgrfr"))))
127 (build-system gnu-build-system) 127 (build-system gnu-build-system)
128 (outputs `("out" "utils")) 128 (outputs `("out" "utils"))
129 (inputs 129 (inputs
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 836fc2b525b..a1fee29c4e9 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -6,6 +6,7 @@
6;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> 6;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
7;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> 7;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
8;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> 8;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
9;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
9;;; 10;;;
10;;; This file is part of GNU Guix. 11;;; This file is part of GNU Guix.
11;;; 12;;;
@@ -31,6 +32,7 @@
31 #:use-module (gnu packages compression) 32 #:use-module (gnu packages compression)
32 #:use-module (gnu packages curl) 33 #:use-module (gnu packages curl)
33 #:use-module (gnu packages databases) 34 #:use-module (gnu packages databases)
35 #:use-module (gnu packages flex)
34 #:use-module (gnu packages fonts) 36 #:use-module (gnu packages fonts)
35 #:use-module (gnu packages freedesktop) 37 #:use-module (gnu packages freedesktop)
36 #:use-module (gnu packages game-development) 38 #:use-module (gnu packages game-development)
@@ -43,12 +45,14 @@
43 #:use-module (gnu packages kde) 45 #:use-module (gnu packages kde)
44 #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules 46 #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
45 #:use-module (gnu packages mp3) 47 #:use-module (gnu packages mp3)
48 #:use-module (gnu packages ncurses)
46 #:use-module (gnu packages perl) 49 #:use-module (gnu packages perl)
47 #:use-module (gnu packages pkg-config) 50 #:use-module (gnu packages pkg-config)
48 #:use-module (gnu packages python) 51 #:use-module (gnu packages python)
49 #:use-module (gnu packages python-web) 52 #:use-module (gnu packages python-web)
50 #:use-module (gnu packages python-xyz) 53 #:use-module (gnu packages python-xyz)
51 #:use-module (gnu packages qt) 54 #:use-module (gnu packages qt)
55 #:use-module (gnu packages readline)
52 #:use-module (gnu packages sdl) 56 #:use-module (gnu packages sdl)
53 #:use-module (gnu packages sqlite) 57 #:use-module (gnu packages sqlite)
54 #:use-module (gnu packages texinfo) 58 #:use-module (gnu packages texinfo)
@@ -935,3 +939,40 @@ TuxMath also includes Factoroids, a game that gives practice in
935factoring numbers and simplifying fractions, as well as zapping rocks 939factoring numbers and simplifying fractions, as well as zapping rocks
936floating through space.") 940floating through space.")
937 (license license:gpl3+))) 941 (license license:gpl3+)))
942
943(define-public mdk
944 (package
945 (name "mdk")
946 (version "1.2.10")
947 (source
948 (origin
949 (method url-fetch)
950 (uri (string-append "mirror://gnu/mdk/v1.2.10/mdk-"
951 version ".tar.gz"))
952 (sha256
953 (base32
954 "1rwcq2b5vvv7318j92nxc5dayj27dpfhzc4rjiv4ccvsc0x35x5h"))))
955 (build-system gnu-build-system)
956 (arguments
957 `(#:configure-flags (list "--enable-gui=yes" "-with-readline=yes")))
958 (native-inputs
959 `(("flex" ,flex)
960 ("pkg-config" ,pkg-config)
961 ("intltool" ,intltool)
962 ("ncurses" ,ncurses)))
963 (inputs
964 `(("readline" ,readline)
965 ("glib" ,glib)
966 ("gtk+" ,gtk+)
967 ("pango" ,pango)
968 ("libglade" ,libglade)))
969 (home-page "https://www.gnu.org/software/mdk/")
970 (synopsis "Virtual development environment for Knuth's MIX")
971 (description
972 "GNU MDK is the Mix Development Kit, an emulation of the pedagogical
973computer MIX and its assembly language MIXAL. MIX has a virtual CPU with
974standard features such as registers, memory cells, an overflow toggle,
975comparison flags, input-output devices, and a set of binary instructions.
976The package includes a compiler, a virtual machine, a GUI for the virtual
977machine, and more.")
978 (license license:gpl3+)))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 37c449f437d..b2b15af6795 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -4975,7 +4975,7 @@ number.")
4975(define-public emacs-org-superstar 4975(define-public emacs-org-superstar
4976 (package 4976 (package
4977 (name "emacs-org-superstar") 4977 (name "emacs-org-superstar")
4978 (version "1.1.0") 4978 (version "1.2.1")
4979 (source 4979 (source
4980 (origin 4980 (origin
4981 (method git-fetch) 4981 (method git-fetch)
@@ -4984,7 +4984,7 @@ number.")
4984 (commit (string-append "v" version)))) 4984 (commit (string-append "v" version))))
4985 (file-name (git-file-name name version)) 4985 (file-name (git-file-name name version))
4986 (sha256 4986 (sha256
4987 (base32 "14aafqw8rnbmiy3kcw1a58vjxdyamrbmlldnlw018wgk0qqv0xpx")))) 4987 (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
4988 (build-system emacs-build-system) 4988 (build-system emacs-build-system)
4989 (propagated-inputs 4989 (propagated-inputs
4990 `(("emacs-org" ,emacs-org))) 4990 `(("emacs-org" ,emacs-org)))
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index e2c67e9126d..cc2ae2447ed 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -249,7 +249,7 @@ from the jfsutils package. It is meant to be used in initrds.")
249(define-public disorderfs 249(define-public disorderfs
250 (package 250 (package
251 (name "disorderfs") 251 (name "disorderfs")
252 (version "0.5.8") 252 (version "0.5.9")
253 (source 253 (source
254 (origin 254 (origin
255 (method git-fetch) 255 (method git-fetch)
@@ -259,7 +259,7 @@ from the jfsutils package. It is meant to be used in initrds.")
259 (file-name (git-file-name name version)) 259 (file-name (git-file-name name version))
260 (sha256 260 (sha256
261 (base32 261 (base32
262 "0pk9i0dycjq0wl6dp37r2hbadgpgmzbmjk2xpbjl36x4yrm4jns8")))) 262 "0irgr9hkm9icx1s44m9382484yx8hddzjxbsz621ip9c946pif0g"))))
263 (build-system gnu-build-system) 263 (build-system gnu-build-system)
264 (native-inputs 264 (native-inputs
265 `(("pkg-config" ,pkg-config))) 265 `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index aa713350403..80d0350cf52 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -13,7 +13,7 @@
13;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> 13;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
14;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net> 14;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
15;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> 15;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
16;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> 16;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
17;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org> 17;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
18;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net> 18;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
19;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org> 19;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
@@ -41,6 +41,7 @@
41 #:use-module (guix git-download) 41 #:use-module (guix git-download)
42 #:use-module (guix build-system gnu) 42 #:use-module (guix build-system gnu)
43 #:use-module (guix build-system cmake) 43 #:use-module (guix build-system cmake)
44 #:use-module (guix build-system copy)
44 #:use-module (guix build-system emacs) 45 #:use-module (guix build-system emacs)
45 #:use-module (guix build-system python) 46 #:use-module (guix build-system python)
46 #:use-module (guix build-system glib-or-gtk) 47 #:use-module (guix build-system glib-or-gtk)
@@ -241,11 +242,11 @@ and dynamically with report tools based on filtering and graphical charts.")
241 ("libedit" ,libedit) 242 ("libedit" ,libedit)
242 ("mpfr" ,mpfr) 243 ("mpfr" ,mpfr)
243 ("python" ,python-2) 244 ("python" ,python-2)
244 ("tzdata" ,tzdata)
245 ("utfcpp" ,utfcpp))) 245 ("utfcpp" ,utfcpp)))
246 (native-inputs 246 (native-inputs
247 `(("groff" ,groff) 247 `(("groff" ,groff)
248 ("texinfo" ,texinfo))) 248 ("texinfo" ,texinfo)
249 ("tzdata" ,tzdata-for-tests)))
249 (home-page "https://ledger-cli.org/") 250 (home-page "https://ledger-cli.org/")
250 (synopsis "Command-line double-entry accounting program") 251 (synopsis "Command-line double-entry accounting program")
251 (description 252 (description
@@ -1165,10 +1166,37 @@ information.")
1165 (home-page "https://grisbi.org") 1166 (home-page "https://grisbi.org")
1166 (license license:gpl2+))) 1167 (license license:gpl2+)))
1167 1168
1169(define-public trezord-udev-rules
1170 (let ((commit "bff7fdfe436c727982cc553bdfb29a9021b423b0")
1171 (revision "0"))
1172 (package
1173 (name "trezord-udev-rules")
1174 (version (git-version "0.0.0" revision commit))
1175 (source
1176 (origin
1177 (method git-fetch)
1178 (uri (git-reference
1179 (url "https://github.com/trezor/trezor-common.git")
1180 (commit commit)))
1181 (sha256
1182 (base32
1183 "14mrirrn68if7ja6qdk9qlxs1hv0f21vrxy5ncnms0gx9iwakp2l"))
1184 (file-name (git-file-name name version))))
1185 (build-system copy-build-system)
1186 (arguments
1187 '(#:install-plan
1188 '(("./udev/51-trezor.rules" "lib/udev/rules.d/"))))
1189 (home-page "https://github.com/trezor/trezor-common")
1190 (synopsis "Udev rules for trezord")
1191 (description
1192 "This contains the udev rules for trezord. This will let a user run
1193trezord as a regular user instead of needing to it run as root.")
1194 (license license:lgpl3+))))
1195
1168(define-public trezord 1196(define-public trezord
1169 (package 1197 (package
1170 (name "trezord") 1198 (name "trezord")
1171 (version "2.0.17") 1199 (version "2.0.29")
1172 (source 1200 (source
1173 (origin 1201 (origin
1174 (method git-fetch) 1202 (method git-fetch)
@@ -1177,7 +1205,7 @@ information.")
1177 (commit (string-append "v" version)))) 1205 (commit (string-append "v" version))))
1178 (sha256 1206 (sha256
1179 (base32 1207 (base32
1180 "0nqzpq0i3crh0i4r1cppja5sn3rwi1fv9afxzwzv63096x5l30a7")) 1208 "1ks1fa0027s3xp0z6qp0dxmayvrb4dwwscfhbx7da0khp153f2cp"))
1181 (file-name (git-file-name name version)))) 1209 (file-name (git-file-name name version))))
1182 (build-system go-build-system) 1210 (build-system go-build-system)
1183 (arguments 1211 (arguments
@@ -1405,14 +1433,14 @@ a Qt GUI.")
1405(define-public fulcrum 1433(define-public fulcrum
1406 (package 1434 (package
1407 (name "fulcrum") 1435 (name "fulcrum")
1408 (version "1.0.5b") 1436 (version "1.1.0")
1409 (source 1437 (source
1410 (origin 1438 (origin
1411 (method url-fetch) 1439 (method url-fetch)
1412 (uri (string-append "https://gitlab.com/FloweeTheHub/fulcrum/-/archive/v" 1440 (uri (string-append "https://gitlab.com/FloweeTheHub/fulcrum/-/archive/v"
1413 version "/fulcrum-v" version ".tar.gz")) 1441 version "/fulcrum-v" version ".tar.gz"))
1414 (sha256 1442 (sha256
1415 (base32 "1c1hkik8avill8ha33g76rk4b03j5ac8wiml69q4jav7a63ywgfy")))) 1443 (base32 "1xywwgsdhkiblv6la0pfhvn2s9q8vnz6pjg35647rlwzi6ybf0ak"))))
1416 (build-system gnu-build-system) 1444 (build-system gnu-build-system)
1417 (arguments 1445 (arguments
1418 `(#:phases 1446 `(#:phases
@@ -1440,6 +1468,71 @@ walets in a fast and small server. The full data is stored in a full node,
1440like Flowee the Hub, which Fulcrum connects to over RPC.") 1468like Flowee the Hub, which Fulcrum connects to over RPC.")
1441 (license license:gpl3+))) 1469 (license license:gpl3+)))
1442 1470
1471(define-public flowee
1472 (package
1473 (name "flowee")
1474 (version "2020.03.1")
1475 (source
1476 (origin
1477 (method url-fetch)
1478 (uri (string-append "https://gitlab.com/FloweeTheHub/thehub/-/archive/"
1479 version "/thehub-" version ".tar.gz"))
1480 (sha256
1481 (base32 "1ajd5axv9zyhh6njrvamm11zn52j1q4j3mwn2nfv7cjd4lhnhlsr"))))
1482 (build-system cmake-build-system)
1483 (arguments
1484 `(#:configure-flags '("-Dbuild_tests=ON" "-Denable_gui=OFF")
1485 #:phases
1486 (modify-phases %standard-phases
1487 (add-before 'configure 'make-qt-deterministic
1488 (lambda _
1489 ;; Make Qt deterministic.
1490 (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
1491 #t))
1492 (add-before 'configure 'disable-black-box
1493 ;; the black-box testing runs full hubs and lets them interact.
1494 ;; this is more fragile and a slow machine, or low memory machine, may
1495 ;; make the tests timeout and fail. We just disable them here.
1496 (lambda _
1497 (substitute* "testing/CMakeLists.txt"
1498 (("test_api") ""))
1499 #t))
1500 (add-after 'configure 'set-build-info
1501 ;; Their genbuild.sh to generate a build.h fails in guix (no .git dir) .
1502 ;; Its purpose is to write the tag name in the build.h file. We do that
1503 ;; here instead.
1504 (lambda _
1505 (with-output-to-file "include/build.h"
1506 (lambda _
1507 (display
1508 (string-append "#define BUILD_DESC " "\"", version "\""))))))
1509 (add-before 'check 'set-home
1510 (lambda _
1511 (setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
1512 #t))
1513 (replace 'check
1514 (lambda _
1515 (invoke "make" "check" "-C" "testing"))))))
1516 (inputs
1517 `(("boost" ,boost)
1518 ("gmp" ,gmp)
1519 ("libevent" ,libevent)
1520 ("miniupnpc" ,miniupnpc)
1521 ("openssl" ,openssl)
1522 ("qtbase" ,qtbase)))
1523 (native-inputs
1524 `(("pkg-config" ,pkg-config)
1525 ("qttools" ,qttools)
1526 ("util-linux" ,util-linux))) ; provides the hexdump command for tests
1527 (home-page "https://flowee.org")
1528 (synopsis "Flowee infrastructure tools and services")
1529 (description
1530 "Flowee packages all tier-1 applications and services from the Flowee group.
1531This includes components like The Hub and Indexer which and various others
1532that allows you to run services and through them access the Bitcoin Cash networks.")
1533 (license license:gpl3+)))
1534
1535
1443(define-public beancount 1536(define-public beancount
1444 (package 1537 (package
1445 (name "beancount") 1538 (name "beancount")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index f20a0bdca85..caa1e8d37ce 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -19,7 +19,7 @@
19;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org> 19;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
20;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net> 20;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
21;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> 21;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> 22;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
23;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> 23;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
24;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com> 24;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
25;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info> 25;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
@@ -1955,7 +1955,7 @@ asynchronously and at a user-defined speed.")
1955(define-public chess 1955(define-public chess
1956 (package 1956 (package
1957 (name "chess") 1957 (name "chess")
1958 (version "6.2.5") 1958 (version "6.2.6")
1959 (source 1959 (source
1960 (origin 1960 (origin
1961 (method url-fetch) 1961 (method url-fetch)
@@ -1963,13 +1963,15 @@ asynchronously and at a user-defined speed.")
1963 ".tar.gz")) 1963 ".tar.gz"))
1964 (sha256 1964 (sha256
1965 (base32 1965 (base32
1966 "00j8s0npgfdi41a0mr5w9qbdxagdk2v41lcr42rwl1jp6miyk6cs")))) 1966 "0kxhdv01ia91v2y0cmzbll391ns2vbmn65jjrv37h4s1srszh5yn"))))
1967 (build-system gnu-build-system) 1967 (build-system gnu-build-system)
1968 (home-page "https://www.gnu.org/software/chess/") 1968 (home-page "https://www.gnu.org/software/chess/")
1969 (synopsis "Full chess implementation") 1969 (synopsis "Full chess implementation")
1970 (description "GNU Chess is a chess engine. It allows you to compete 1970 (description "GNU Chess is a chess engine. It allows you to compete
1971against the computer in a game of chess, either through the default terminal 1971against the computer in a game of chess, either through the default terminal
1972interface or via an external visual interface such as GNU XBoard.") 1972interface or via an external visual interface such as GNU XBoard.")
1973 (properties '((upstream-name . "gnuchess")
1974 (ftp-directory . "/chess")))
1973 (license license:gpl3+))) 1975 (license license:gpl3+)))
1974 1976
1975(define freedink-engine 1977(define freedink-engine
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6de7aaf7c62..fbd4c5eb96b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -250,6 +250,34 @@ Desktop. It is designed to be as simple as possible and has some unique
250features to enable users to create their discs easily and quickly.") 250features to enable users to create their discs easily and quickly.")
251 (license license:gpl2+))) 251 (license license:gpl2+)))
252 252
253(define-public notification-daemon
254 (package
255 (name "notification-daemon")
256 (version "3.20.0")
257 (source
258 (origin
259 (method url-fetch)
260 (uri
261 (string-append "mirror://gnome/sources/" name "/"
262 (version-major+minor version) "/"
263 name "-" version ".tar.xz"))
264 (sha256
265 (base32
266 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
267 (build-system glib-or-gtk-build-system)
268 (native-inputs
269 `(("intltool" ,intltool)
270 ("pkg-config" ,pkg-config)))
271 (inputs
272 `(("glib" ,glib)
273 ("gtk+" ,gtk+)
274 ("x11" ,libx11)))
275 (synopsis "Notification Daemon for GNOME Desktop")
276 (description "Notification-Daemon is the server implementation of the
277freedesktop.org desktop notification specification.")
278 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
279 (license license:gpl2+)))
280
253(define-public mm-common 281(define-public mm-common
254 (package 282 (package
255 (name "mm-common") 283 (name "mm-common")
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index 02aef3ed479..6963da9dff3 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -38,7 +38,7 @@
38(define-public gpodder 38(define-public gpodder
39 (package 39 (package
40 (name "gpodder") 40 (name "gpodder")
41 (version "3.10.13") 41 (version "3.10.15")
42 (source 42 (source
43 (origin 43 (origin
44 (method git-fetch) 44 (method git-fetch)
@@ -47,11 +47,13 @@
47 (commit version))) 47 (commit version)))
48 (sha256 48 (sha256
49 (base32 49 (base32
50 "1h542syaxsx1hslfzlk3fx1nbp190zjw35kigw7a1kx1jwvfwapg")) 50 "0ghbanj142n0hgydzfjmnkdgri2kswsjal3mn10c723kih4ir4yr"))
51 (file-name (git-file-name name version)))) 51 (file-name (git-file-name name version))))
52 (build-system python-build-system) 52 (build-system python-build-system)
53 (native-inputs 53 (native-inputs
54 `(("intltool" ,intltool))) 54 `(("intltool" ,intltool)
55 ("python-coverage" ,python-coverage)
56 ("python-minimock" ,python-minimock)))
55 (inputs 57 (inputs
56 `(("gtk+" ,gtk+) 58 `(("gtk+" ,gtk+)
57 ("python-pygobject" ,python-pygobject) 59 ("python-pygobject" ,python-pygobject)
@@ -72,6 +74,12 @@
72 (substitute* "src/gpodder/util.py" 74 (substitute* "src/gpodder/util.py"
73 (("xdg-open") (string-append xdg-utils "/bin/xdg-open"))) 75 (("xdg-open") (string-append xdg-utils "/bin/xdg-open")))
74 #t))) 76 #t)))
77 (replace 'check
78 (lambda _
79 ; The `unittest' target overrides the PYTHONPATH variable.
80 (substitute* "makefile"
81 (("PYTHONPATH=src/") "PYTHONPATH=${PYTHONPATH}:src/"))
82 (invoke "make" "unittest")))
75 ;; 'msgmerge' introduces non-determinism by resetting the 83 ;; 'msgmerge' introduces non-determinism by resetting the
76 ;; POT-Creation-Date in .po files. 84 ;; POT-Creation-Date in .po files.
77 (add-before 'install 'do-not-run-msgmerge 85 (add-before 'install 'do-not-run-msgmerge
@@ -176,7 +184,13 @@ downloading episode status changes.")
176 (sha256 184 (sha256
177 (base32 "0k62ppg20i41gcc5x8ddjn7zbpy47hqpxzrq9257g2c71m4qw07b")))) 185 (base32 "0k62ppg20i41gcc5x8ddjn7zbpy47hqpxzrq9257g2c71m4qw07b"))))
178 (native-inputs 186 (native-inputs
179 `(("python-nose" ,python-nose))) 187 `(("python-coverage" ,python-coverage)
188 ("python-nose" ,python-nose)))
189 (arguments
190 '(#:phases
191 (modify-phases %standard-phases
192 (replace 'check
193 (lambda _ (invoke "nosetests"))))))
180 (build-system python-build-system) 194 (build-system python-build-system)
181 (home-page "http://gpodder.org/podcastparser") 195 (home-page "http://gpodder.org/podcastparser")
182 (synopsis "Simplified and fast RSS parser Python library") 196 (synopsis "Simplified and fast RSS parser Python library")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index ac8155fc897..5be56ba9f71 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1056,7 +1056,7 @@ format.")
1056(define-public guile-newt 1056(define-public guile-newt
1057 (package 1057 (package
1058 (name "guile-newt") 1058 (name "guile-newt")
1059 (version "0.0.1") 1059 (version "0.0.2")
1060 (source (origin 1060 (source (origin
1061 (method git-fetch) 1061 (method git-fetch)
1062 (uri (git-reference 1062 (uri (git-reference
@@ -1065,20 +1065,7 @@ format.")
1065 (file-name (git-file-name name version)) 1065 (file-name (git-file-name name version))
1066 (sha256 1066 (sha256
1067 (base32 1067 (base32
1068 "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695")) 1068 "1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09"))))
1069 (modules '((guix build utils)))
1070 (snippet
1071 '(begin
1072 ;; Allow builds with Guile 3.0.
1073 (substitute* "configure.ac"
1074 (("^GUILE_PKG.*")
1075 "GUILE_PKG([3.0 2.2 2.0])\n"))
1076
1077 ;; Remove "guile.m4" since it contains an obsolete version
1078 ;; of 'GUILE_PKG' that doesn't work with development
1079 ;; versions such as 2.9.
1080 (delete-file "m4/guile.m4")
1081 #t))))
1082 (build-system gnu-build-system) 1069 (build-system gnu-build-system)
1083 (arguments 1070 (arguments
1084 '(#:make-flags 1071 '(#:make-flags
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 0ae88ea1a41..c900bd0eb91 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1972,7 +1972,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
1972(define-public libavif 1972(define-public libavif
1973 (package 1973 (package
1974 (name "libavif") 1974 (name "libavif")
1975 (version "0.6.3") 1975 (version "0.7.1")
1976 (source (origin 1976 (source (origin
1977 (method git-fetch) 1977 (method git-fetch)
1978 (uri (git-reference 1978 (uri (git-reference
@@ -1981,7 +1981,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
1981 (file-name (git-file-name name version)) 1981 (file-name (git-file-name name version))
1982 (sha256 1982 (sha256
1983 (base32 1983 (base32
1984 "0fn2mcpvzw6h9sv8h0icbz10i8ihzzf5d5mx3fc4pvhicyz4syq8")))) 1984 "1xybjbbprvfsrwgysrn7grg6yp7v6ch5vci7zvdcdzcgyrbph172"))))
1985 (build-system cmake-build-system) 1985 (build-system cmake-build-system)
1986 (arguments 1986 (arguments
1987 `(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON" 1987 `(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON"
@@ -1989,18 +1989,15 @@ This package can be used to create @code{favicon.ico} files for web sites.")
1989 "-DAVIF_BUILD_TESTS=ON") 1989 "-DAVIF_BUILD_TESTS=ON")
1990 #:phases 1990 #:phases
1991 (modify-phases %standard-phases 1991 (modify-phases %standard-phases
1992 (replace 'check
1993 (lambda _
1994 (invoke "./aviftest" "../source/tests/data")))
1992 (add-after 'install 'install-readme 1995 (add-after 'install 'install-readme
1993 (lambda* (#:key outputs #:allow-other-keys) 1996 (lambda* (#:key outputs #:allow-other-keys)
1994 (let* ((out (assoc-ref outputs "out")) 1997 (let* ((out (assoc-ref outputs "out"))
1995 (doc (string-append out "/share/doc/libavif-" 1998 (doc (string-append out "/share/doc/libavif-" ,version)))
1996 ,version))) 1999 (install-file "../source/README.md" doc)
1997 (install-file "../source/README.md" doc))))) 2000 #t))))))
1998;; The test suite runs tests for all supported codecs and fails because we don't
1999;; have rav1e yet.
2000;; (replace 'check
2001;; (lambda _
2002;; (invoke "./aviftest" "../source/tests/data"))))
2003 #:tests? #f))
2004 (inputs 2001 (inputs
2005 `(("libaom" ,libaom) 2002 `(("libaom" ,libaom)
2006 ("dav1d" ,dav1d))) 2003 ("dav1d" ,dav1d)))
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index e220b2c24de..0c317093296 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -3537,7 +3537,7 @@ workspace.")
3537 ("shared-mime-info" ,shared-mime-info) 3537 ("shared-mime-info" ,shared-mime-info)
3538 ("kjobwidgets" ,kjobwidgets) ;; required for running the tests 3538 ("kjobwidgets" ,kjobwidgets) ;; required for running the tests
3539 ("strace" ,strace) 3539 ("strace" ,strace)
3540 ("tzdata" ,tzdata))) 3540 ("tzdata" ,tzdata-for-tests)))
3541 (propagated-inputs 3541 (propagated-inputs
3542 ;; These are required to be installed along with this package, see 3542 ;; These are required to be installed along with this package, see
3543 ;; lib64/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake 3543 ;; lib64/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 0970a3909c1..344ff77a359 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -369,26 +369,26 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
369 (sha256 hash))) 369 (sha256 hash)))
370 370
371 371
372(define-public linux-libre-5.6-version "5.6.4") 372(define-public linux-libre-5.6-version "5.6.5")
373(define-public linux-libre-5.6-pristine-source 373(define-public linux-libre-5.6-pristine-source
374 (let ((version linux-libre-5.6-version) 374 (let ((version linux-libre-5.6-version)
375 (hash (base32 "14cxbc9xi4s3xwx4yb1yd4z0kidsk3d443skf5sgmdhcalg79wax"))) 375 (hash (base32 "1rjjkcmzsj9azggh960qnk2x44ns475b8nbd4nxazrz1rgdx76zp")))
376 (make-linux-libre-source version 376 (make-linux-libre-source version
377 (%upstream-linux-source version hash) 377 (%upstream-linux-source version hash)
378 deblob-scripts-5.6))) 378 deblob-scripts-5.6)))
379 379
380(define-public linux-libre-5.4-version "5.4.32") 380(define-public linux-libre-5.4-version "5.4.33")
381(define-public linux-libre-5.4-pristine-source 381(define-public linux-libre-5.4-pristine-source
382 (let ((version linux-libre-5.4-version) 382 (let ((version linux-libre-5.4-version)
383 (hash (base32 "1czjjnln1cqrnjxw0md6mpw9haw9abdyvmxnjds56ym4nzx9jb8r"))) 383 (hash (base32 "0q9q48ij6vppfcrdf7fr24pvpwsd13pxjkdni6rnjq9a60hrcmxm")))
384 (make-linux-libre-source version 384 (make-linux-libre-source version
385 (%upstream-linux-source version hash) 385 (%upstream-linux-source version hash)
386 deblob-scripts-5.4))) 386 deblob-scripts-5.4)))
387 387
388(define-public linux-libre-4.19-version "4.19.115") 388(define-public linux-libre-4.19-version "4.19.116")
389(define-public linux-libre-4.19-pristine-source 389(define-public linux-libre-4.19-pristine-source
390 (let ((version linux-libre-4.19-version) 390 (let ((version linux-libre-4.19-version)
391 (hash (base32 "1hh170z3mv181l6cc6qqc12wif5jsmxbh2qxbq6b9km5irydkchi"))) 391 (hash (base32 "0r3vdc3npl1bn06w9v6wsq7d5mm7bnhm9wsz36pb9ar3xhimvrlf")))
392 (make-linux-libre-source version 392 (make-linux-libre-source version
393 (%upstream-linux-source version hash) 393 (%upstream-linux-source version hash)
394 deblob-scripts-4.19))) 394 deblob-scripts-4.19)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index b5cd660f21b..48b9ec307d0 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -24,7 +24,7 @@
24;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com> 24;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
25;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> 25;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
26;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com> 26;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
27;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com> 27;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
28;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> 28;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
29;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> 29;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
30;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> 30;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
@@ -89,6 +89,7 @@
89 #:use-module (gnu packages libevent) 89 #:use-module (gnu packages libevent)
90 #:use-module (gnu packages libidn) 90 #:use-module (gnu packages libidn)
91 #:use-module (gnu packages libunistring) 91 #:use-module (gnu packages libunistring)
92 #:use-module (gnu packages libunwind)
92 #:use-module (gnu packages linux) 93 #:use-module (gnu packages linux)
93 #:use-module (gnu packages lsof) 94 #:use-module (gnu packages lsof)
94 #:use-module (gnu packages lua) 95 #:use-module (gnu packages lua)
@@ -1432,6 +1433,11 @@ facilities for checking incoming mail.")
1432 (inputs 1433 (inputs
1433 `(("bzip2" ,bzip2) 1434 `(("bzip2" ,bzip2)
1434 ("libsodium" ,libsodium) ; extra password algorithms 1435 ("libsodium" ,libsodium) ; extra password algorithms
1436 ;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
1437 ;; backtrace_symbol() function so fallback to using libunwind.
1438 ,@(if (target-arm?)
1439 `(("libunwind" ,libunwind))
1440 '())
1435 ("linux-pam" ,linux-pam) 1441 ("linux-pam" ,linux-pam)
1436 ("lz4" ,lz4) 1442 ("lz4" ,lz4)
1437 ("openssl" ,openssl) 1443 ("openssl" ,openssl)
@@ -1955,26 +1961,26 @@ maintained.")
1955(define-public khard 1961(define-public khard
1956 (package 1962 (package
1957 (name "khard") 1963 (name "khard")
1958 (version "0.15.1") 1964 (version "0.16.1")
1959 (source (origin 1965 (source (origin
1960 (method url-fetch) 1966 (method url-fetch)
1961 (uri (pypi-uri name version)) 1967 (uri (pypi-uri name version))
1962 (sha256 1968 (sha256
1963 (base32 1969 (base32
1964 "18ba2xgfq8sw0bg6xmlfjpizid1hkzgswcfcc54gl21y2dwfda2w")))) 1970 "0fg4qh5gzki5wg958wlpc8a2icnk74gzg33lqxjm755cfnjng7qd"))))
1965 (build-system python-build-system) 1971 (build-system python-build-system)
1966 (arguments 1972 (arguments
1967 `(#:phases 1973 `(#:phases
1968 (modify-phases %standard-phases 1974 (modify-phases %standard-phases
1969 (add-after 'install 'install-doc 1975 (add-after 'install 'install-completions
1970 (lambda* (#:key outputs #:allow-other-keys) 1976 (lambda* (#:key outputs #:allow-other-keys)
1971 (let* ((out (assoc-ref outputs "out")) 1977 (let* ((out (assoc-ref outputs "out"))
1972 (doc (string-append out "/share/doc/khard"))) 1978 (zsh (string-append out "/share/zsh/site-functions")))
1973 (copy-recursively "misc/khard" doc) 1979 (copy-recursively "misc/zsh" zsh)
1974 #t)))))) 1980 #t))))))
1975 (native-inputs 1981 (native-inputs
1976 `(("python-setuptools-scm" ,python-setuptools-scm))) 1982 `(("python-setuptools-scm" ,python-setuptools-scm)))
1977 (propagated-inputs 1983 (inputs
1978 `(("python-atomicwrites" ,python-atomicwrites) 1984 `(("python-atomicwrites" ,python-atomicwrites)
1979 ("python-configobj" ,python-configobj) 1985 ("python-configobj" ,python-configobj)
1980 ("python-pyyaml" ,python-pyyaml) 1986 ("python-pyyaml" ,python-pyyaml)
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index 9f86ee56490..d6b0e25e6ba 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -29,13 +29,13 @@
29(define-public toot 29(define-public toot
30 (package 30 (package
31 (name "toot") 31 (name "toot")
32 (version "0.25.2") 32 (version "0.26.0")
33 (source 33 (source
34 (origin 34 (origin
35 (method url-fetch) 35 (method url-fetch)
36 (uri (pypi-uri "toot" version)) 36 (uri (pypi-uri "toot" version))
37 (sha256 37 (sha256
38 (base32 "16akld7zfr52rqrbgf6hmsca9qsrfdbbbd9bji8d26zggxmqq4vq")))) 38 (base32 "0h0lqm1q7i32i9n6yx5q2j563vc92h2sjh1ih4n2rxf98p6c5d1b"))))
39 (build-system python-build-system) 39 (build-system python-build-system)
40 (arguments 40 (arguments
41 '(#:phases 41 '(#:phases
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 4618817b431..9f1a62a7e72 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -608,14 +608,14 @@ of the same name.")
608(define-public wireshark 608(define-public wireshark
609 (package 609 (package
610 (name "wireshark") 610 (name "wireshark")
611 (version "3.2.2") 611 (version "3.2.3")
612 (source 612 (source
613 (origin 613 (origin
614 (method url-fetch) 614 (method url-fetch)
615 (uri (string-append "https://www.wireshark.org/download/src/wireshark-" 615 (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
616 version ".tar.xz")) 616 version ".tar.xz"))
617 (sha256 617 (sha256
618 (base32 "0ygdxpz0i4jxp55fg9x4xcan093wycjb66yas073gviz9kpj6naz")))) 618 (base32 "1fpsfjrap7j84sy728yhcr2gad9nq3n5gq03mwrmxnc6ijwf81zh"))))
619 (build-system cmake-build-system) 619 (build-system cmake-build-system)
620 (arguments 620 (arguments
621 `(#:phases 621 `(#:phases
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index 44236ec469f..27cd5c18b72 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -1,5 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> 2;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
3;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
3;;; 4;;;
4;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
5;;; 6;;;
@@ -244,3 +245,26 @@ protocol used in @code{node-lynx}.")
244 (description "This package provides the Node.js @code{util.deprecate()} 245 (description "This package provides the Node.js @code{util.deprecate()}
245function with browser support.") 246function with browser support.")
246 (license license:expat))) 247 (license license:expat)))
248
249(define-public node-semver
250 (package
251 (name "node-semver")
252 (version "7.2.1")
253 (source (origin
254 (method git-fetch)
255 (uri (git-reference
256 (url "https://github.com/npm/node-semver.git")
257 (commit (string-append "v" version))))
258 (file-name (git-file-name name version))
259 (sha256
260 (base32
261 "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p"))))
262 (build-system node-build-system)
263 (arguments
264 `(#:tests? #f)) ;; FIXME: Tests depend on node-tap
265 (home-page "https://github.com/npm/node-semver")
266 (synopsis "Parses semantic versions strings")
267 (description
268 "@code{node-semver} is a JavaScript implementation of the
269@uref{https://semver.org/, SemVer.org} specification.")
270 (license license:isc)))
diff --git a/gnu/packages/patches/python-jedi-sort-project-test.patch b/gnu/packages/patches/python-jedi-sort-project-test.patch
new file mode 100644
index 00000000000..b2d602dfe6d
--- /dev/null
+++ b/gnu/packages/patches/python-jedi-sort-project-test.patch
@@ -0,0 +1,18 @@
1Sort the result of file system traversal to avoid test failure on different
2file systems.
3
4Taken from upstream:
5https://github.com/davidhalter/jedi/commit/7ff76bb7d0d94514e17cd1647f4ffaf533dd55f5
6
7diff --git a/test/test_api/test_project.py b/test/test_api/test_project.py
8--- a/test/test_api/test_project.py
9+++ b/test/test_api/test_project.py
10@@ -135,7 +135,7 @@ def test_search(string, full_names, kwargs, skip_pre_python36):
11 defs = project.complete_search(string, **kwargs)
12 else:
13 defs = project.search(string, **kwargs)
14- assert [('stub:' if d.is_stub() else '') + d.full_name for d in defs] == full_names
15+ assert sorted([('stub:' if d.is_stub() else '') + d.full_name for d in defs]) == full_names
16
17
18 @pytest.mark.parametrize(
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index bb3a26525f9..8ccb133e1f8 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -822,7 +822,7 @@ using a stylus.")
822(define-public xournalpp 822(define-public xournalpp
823 (package 823 (package
824 (name "xournalpp") 824 (name "xournalpp")
825 (version "1.0.17") 825 (version "1.0.18")
826 (source 826 (source
827 (origin 827 (origin
828 (method git-fetch) 828 (method git-fetch)
@@ -831,7 +831,7 @@ using a stylus.")
831 (commit version))) 831 (commit version)))
832 (file-name (git-file-name name version)) 832 (file-name (git-file-name name version))
833 (sha256 833 (sha256
834 (base32 "0xw2mcgnm4sa9hrhfgp669lfypw97drxjmz5w8i5whaprpvmkxzw")))) 834 (base32 "0a9ygbmd4dwgck3k8wsrm2grynqa0adb12wwspzmzvpisbadffjy"))))
835 (build-system cmake-build-system) 835 (build-system cmake-build-system)
836 (arguments 836 (arguments
837 `(#:configure-flags (list "-DENABLE_CPPUNIT=ON") ;enable tests 837 `(#:configure-flags (list "-DENABLE_CPPUNIT=ON") ;enable tests
@@ -844,11 +844,6 @@ using a stylus.")
844 (modify-phases %standard-phases 844 (modify-phases %standard-phases
845 (add-after 'unpack 'fix-permissions-on-po-files 845 (add-after 'unpack 'fix-permissions-on-po-files
846 (lambda _ 846 (lambda _
847 ;; Always generate translations. A recent upstream patch
848 ;; disabled it.
849 (substitute* "po/CMakeLists.txt"
850 (("gettext_create_translations \\(\"\\$\\{potfile\\}\"\\)")
851 "gettext_create_translations (\"${potfile}\" ALL)"))
852 ;; Make sure 'msgmerge' can modify the PO files. 847 ;; Make sure 'msgmerge' can modify the PO files.
853 (for-each (lambda (po) (chmod po #o666)) 848 (for-each (lambda (po) (chmod po #o666))
854 (find-files "." "\\.po$")) 849 (find-files "." "\\.po$"))
@@ -857,7 +852,6 @@ using a stylus.")
857 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) 852 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
858 (native-inputs 853 (native-inputs
859 `(("cppunit" ,cppunit) 854 `(("cppunit" ,cppunit)
860 ("gcc" ,gcc-8) ;requires gcc 8+
861 ("gettext" ,gettext-minimal) 855 ("gettext" ,gettext-minimal)
862 ("pkg-config" ,pkg-config))) 856 ("pkg-config" ,pkg-config)))
863 (inputs 857 (inputs
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7c73b401819..0636b2b3ea4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -1699,14 +1699,14 @@ Python 3.3+.")
1699(define-public python-pyicu 1699(define-public python-pyicu
1700 (package 1700 (package
1701 (name "python-pyicu") 1701 (name "python-pyicu")
1702 (version "2.3.1") 1702 (version "2.4.3")
1703 (source 1703 (source
1704 (origin 1704 (origin
1705 (method url-fetch) 1705 (method url-fetch)
1706 (uri (pypi-uri "PyICU" version)) 1706 (uri (pypi-uri "PyICU" version))
1707 (sha256 1707 (sha256
1708 (base32 1708 (base32
1709 "1x4w8m7ifki9z2a187pgjr33z6z0rp2fii9b73djak1vhm9v9cnx")))) 1709 "075bw66b3w0nw6mc5k32fwmrhyrmq3d7da3q2mw212qfmm0pgjn0"))))
1710 (build-system python-build-system) 1710 (build-system python-build-system)
1711 (inputs 1711 (inputs
1712 `(("icu4c" ,icu4c))) 1712 `(("icu4c" ,icu4c)))
@@ -1717,24 +1717,10 @@ Python 3.3+.")
1717 (synopsis "Python extension wrapping the ICU C++ API") 1717 (synopsis "Python extension wrapping the ICU C++ API")
1718 (description 1718 (description
1719 "PyICU is a python extension wrapping the ICU C++ API.") 1719 "PyICU is a python extension wrapping the ICU C++ API.")
1720 (properties `((python2-variant . ,(delay python2-pyicu))))
1721 (license license:x11))) 1720 (license license:x11)))
1722 1721
1723(define-public python2-pyicu 1722(define-public python2-pyicu
1724 (let ((base (package-with-python2 1723 (package-with-python2 python-pyicu))
1725 (strip-python2-variant python-pyicu))))
1726 (package
1727 (inherit base)
1728 (arguments
1729 `(,@(package-arguments base)
1730 #:phases
1731 (modify-phases %standard-phases
1732 (add-before 'check 'delete-failing-test
1733 (λ _
1734 ;; XXX: This fails due to Unicode issues unique to Python 2,
1735 ;; it seems: <https://github.com/ovalhub/pyicu/issues/61>.
1736 (delete-file "test/test_Script.py")
1737 #t))))))))
1738 1724
1739(define-public python2-dogtail 1725(define-public python2-dogtail
1740 ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and 1726 ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
@@ -3877,14 +3863,14 @@ provides additional functionality on the produced Mallard documents.")
3877(define-public python-cython 3863(define-public python-cython
3878 (package 3864 (package
3879 (name "python-cython") 3865 (name "python-cython")
3880 (version "0.29.15") 3866 (version "0.29.16")
3881 (source 3867 (source
3882 (origin 3868 (origin
3883 (method url-fetch) 3869 (method url-fetch)
3884 (uri (pypi-uri "Cython" version)) 3870 (uri (pypi-uri "Cython" version))
3885 (sha256 3871 (sha256
3886 (base32 3872 (base32
3887 "0c5cjyxfvba6c0vih1fvhywp8bpz30vwvbjqdm1q1k55xzhmkn30")))) 3873 "01gs10myw0rw4jsikvqs0859fg7gficxhv508cxvnb4l9wl5a9r3"))))
3888 (build-system python-build-system) 3874 (build-system python-build-system)
3889 ;; we need the full python package and not just the python-wrapper 3875 ;; we need the full python package and not just the python-wrapper
3890 ;; because we need libpython3.3m.so 3876 ;; because we need libpython3.3m.so
@@ -6499,14 +6485,14 @@ computing.")
6499(define-public python-urwid 6485(define-public python-urwid
6500 (package 6486 (package
6501 (name "python-urwid") 6487 (name "python-urwid")
6502 (version "2.0.1") 6488 (version "2.1.0")
6503 (source 6489 (source
6504 (origin 6490 (origin
6505 (method url-fetch) 6491 (method url-fetch)
6506 (uri (pypi-uri "urwid" version)) 6492 (uri (pypi-uri "urwid" version))
6507 (sha256 6493 (sha256
6508 (base32 6494 (base32
6509 "1g6cpicybvbananpjikmjk8npmjk4xvak1wjzji62wc600wkwkb4")))) 6495 "11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8"))))
6510 (build-system python-build-system) 6496 (build-system python-build-system)
6511 (home-page "http://urwid.org") 6497 (home-page "http://urwid.org")
6512 (synopsis "Console user interface library for Python") 6498 (synopsis "Console user interface library for Python")
@@ -8037,14 +8023,14 @@ printing of sub-tables by specifying a row range.")
8037(define-public python-tables 8023(define-public python-tables
8038 (package 8024 (package
8039 (name "python-tables") 8025 (name "python-tables")
8040 (version "3.4.4") 8026 (version "3.6.1")
8041 (source 8027 (source
8042 (origin 8028 (origin
8043 (method url-fetch) 8029 (method url-fetch)
8044 (uri (pypi-uri "tables" version)) 8030 (uri (pypi-uri "tables" version))
8045 (sha256 8031 (sha256
8046 (base32 8032 (base32
8047 "0affz7k8babh8wdmsgrz5jxrd569by2w8ffimcxs9wiaf5rw1idx")) 8033 "0j8vnxh2m5n0cyk9z3ndcj5n1zj5rdxgc1gb78bqlyn2lyw75aa9"))
8048 (modules '((guix build utils))) 8034 (modules '((guix build utils)))
8049 (snippet 8035 (snippet
8050 '(begin 8036 '(begin
@@ -8062,9 +8048,11 @@ printing of sub-tables by specifying a row range.")
8062 (add-after 'unpack 'use-gcc 8048 (add-after 'unpack 'use-gcc
8063 (lambda _ 8049 (lambda _
8064 (substitute* "setup.py" 8050 (substitute* "setup.py"
8065 (("compiler = new_compiler\\(\\)" line) 8051 (("^( +)compiler = new_compiler\\(\\)" line indent)
8066 (string-append line 8052 (string-append line
8067 "\ncompiler.set_executables(compiler='gcc'," 8053 "\n"
8054 indent
8055 "compiler.set_executables(compiler='gcc',"
8068 "compiler_so='gcc'," 8056 "compiler_so='gcc',"
8069 "linker_exe='gcc'," 8057 "linker_exe='gcc',"
8070 "linker_so='gcc -shared')"))) 8058 "linker_so='gcc -shared')")))
@@ -9421,13 +9409,13 @@ minimal and fast API targeting the following uses:
9421(define-public python-icalendar 9409(define-public python-icalendar
9422 (package 9410 (package
9423 (name "python-icalendar") 9411 (name "python-icalendar")
9424 (version "4.0.4") 9412 (version "4.0.5")
9425 (source (origin 9413 (source (origin
9426 (method url-fetch) 9414 (method url-fetch)
9427 (uri (pypi-uri "icalendar" version)) 9415 (uri (pypi-uri "icalendar" version))
9428 (sha256 9416 (sha256
9429 (base32 9417 (base32
9430 "16gjvqv0n05jrb9g228pdjgzd3amz2pdhvcgsn1jypszjg5m2w9l")))) 9418 "14ynjj65kfmlcvpb7k097w789wvxncd3cr3xz5m1jz9yl9v6vv5q"))))
9431 (build-system python-build-system) 9419 (build-system python-build-system)
9432 (propagated-inputs 9420 (propagated-inputs
9433 `(("python-dateutil" ,python-dateutil) 9421 `(("python-dateutil" ,python-dateutil)
@@ -9516,20 +9504,20 @@ with a new public API, and RPython support.")
9516(define-public python-hy 9504(define-public python-hy
9517 (package 9505 (package
9518 (name "python-hy") 9506 (name "python-hy")
9519 (version "0.17.0") 9507 (version "0.18.0")
9520 (source (origin 9508 (source (origin
9521 (method url-fetch) 9509 (method url-fetch)
9522 (uri (pypi-uri "hy" version)) 9510 (uri (pypi-uri "hy" version))
9523 (sha256 9511 (sha256
9524 (base32 9512 (base32
9525 "1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi")))) 9513 "04dfwm336gw61fmgwikvh0cnxk682p19b4w555wl5d7mlym4rwj2"))))
9526 (build-system python-build-system) 9514 (build-system python-build-system)
9527 (arguments 9515 (arguments
9528 '(#:phases 9516 '(#:phases
9529 (modify-phases %standard-phases 9517 (modify-phases %standard-phases
9530 (add-before 'install 'set-HOME 9518 (add-before 'install 'set-HOME
9531 (lambda _ 9519 (lambda _
9532 (setenv "HOME" "/tmp"))) 9520 (setenv "HOME" "/tmp") #t))
9533 (replace 'check 9521 (replace 'check
9534 (lambda _ 9522 (lambda _
9535 ;; Tests require write access to HOME. 9523 ;; Tests require write access to HOME.
@@ -9540,10 +9528,8 @@ with a new public API, and RPython support.")
9540 ("python-nose" ,python-nose))) 9528 ("python-nose" ,python-nose)))
9541 (propagated-inputs 9529 (propagated-inputs
9542 `(("python-astor" ,python-astor) 9530 `(("python-astor" ,python-astor)
9543 ("python-clint" ,python-clint) 9531 ("python-colorama" ,python-colorama)
9544 ("python-rply" ,python-rply) 9532 ("python-rply" ,python-rply)
9545 ("python-fastentrypoints"
9546 ,python-fastentrypoints)
9547 ("python-funcparserlib" 9533 ("python-funcparserlib"
9548 ,python-funcparserlib))) 9534 ,python-funcparserlib)))
9549 (home-page "http://hylang.org/") 9535 (home-page "http://hylang.org/")
@@ -9554,9 +9540,6 @@ its Lisp code into the Python Abstract Syntax Tree, you have the whole world of
9554Python at your fingertips, in Lisp form.") 9540Python at your fingertips, in Lisp form.")
9555 (license license:expat))) 9541 (license license:expat)))
9556 9542
9557(define-public python2-hy
9558 (package-with-python2 python-hy))
9559
9560(define-public python2-functools32 9543(define-public python2-functools32
9561 (package 9544 (package
9562 (name "python2-functools32") 9545 (name "python2-functools32")
@@ -10357,13 +10340,13 @@ programmatically interfacing with your system's $EDITOR.")
10357(define-public python-vobject 10340(define-public python-vobject
10358 (package 10341 (package
10359 (name "python-vobject") 10342 (name "python-vobject")
10360 (version "0.9.5") 10343 (version "0.9.6.1")
10361 (source (origin 10344 (source (origin
10362 (method url-fetch) 10345 (method url-fetch)
10363 (uri (pypi-uri "vobject" version)) 10346 (uri (pypi-uri "vobject" version))
10364 (sha256 10347 (sha256
10365 (base32 10348 (base32
10366 "0hqjgf3ay1m5w1c0k00g5yfpdz1zni5qnr5rh9b8fg9hjvhwlmhg")))) 10349 "0081g4gngw28j7vw8101jk600wz4gzfrhf5myrqvn2mrfkn2llcn"))))
10367 (build-system python-build-system) 10350 (build-system python-build-system)
10368 (arguments 10351 (arguments
10369 '(;; The test suite relies on some non-portable Windows interfaces. 10352 '(;; The test suite relies on some non-portable Windows interfaces.
@@ -10374,7 +10357,7 @@ programmatically interfacing with your system's $EDITOR.")
10374 (synopsis "Parse and generate vCard and vCalendar files") 10357 (synopsis "Parse and generate vCard and vCalendar files")
10375 (description "Vobject is intended to be a full featured Python package for 10358 (description "Vobject is intended to be a full featured Python package for
10376parsing and generating vCard and vCalendar files. Currently, iCalendar files 10359parsing and generating vCard and vCalendar files. Currently, iCalendar files
10377are supported and well tested. vCard 3.0 files are supported, and all data 10360are supported and well tested. vCard 3.0 files are supported, and all data
10378should be imported, but only a few components are understood in a sophisticated 10361should be imported, but only a few components are understood in a sophisticated
10379way.") 10362way.")
10380 (home-page "https://eventable.github.io/vobject/") 10363 (home-page "https://eventable.github.io/vobject/")
@@ -11997,6 +11980,7 @@ characters, mouse support, and auto suggestions.")
11997 (origin 11980 (origin
11998 (method url-fetch) 11981 (method url-fetch)
11999 (uri (pypi-uri "jedi" version)) 11982 (uri (pypi-uri "jedi" version))
11983 (patches (search-patches "python-jedi-sort-project-test.patch"))
12000 (sha256 11984 (sha256
12001 (base32 11985 (base32
12002 "0c1h9x3a9klvk2g288wl328x8xgzw7136k6vs9hkd56b85vcjh6z")))) 11986 "0c1h9x3a9klvk2g288wl328x8xgzw7136k6vs9hkd56b85vcjh6z"))))
@@ -12007,7 +11991,7 @@ characters, mouse support, and auto suggestions.")
12007 (replace 'check 11991 (replace 'check
12008 (lambda _ 11992 (lambda _
12009 (setenv "HOME" "/tmp") 11993 (setenv "HOME" "/tmp")
12010 (invoke "python" "-m" "pytest")))))) 11994 (invoke "python" "-m" "pytest" "-vv"))))))
12011 (native-inputs 11995 (native-inputs
12012 `(("python-pytest" ,python-pytest) 11996 `(("python-pytest" ,python-pytest)
12013 ("python-docopt" ,python-docopt))) 11997 ("python-docopt" ,python-docopt)))
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index a84a31fd9c8..8f1562a176c 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -35,6 +35,7 @@
35 #:use-module (gnu packages check) 35 #:use-module (gnu packages check)
36 #:use-module (gnu packages documentation) 36 #:use-module (gnu packages documentation)
37 #:use-module (gnu packages engineering) 37 #:use-module (gnu packages engineering)
38 #:use-module (gnu packages fltk)
38 #:use-module (gnu packages ghostscript) 39 #:use-module (gnu packages ghostscript)
39 #:use-module (gnu packages glib) 40 #:use-module (gnu packages glib)
40 #:use-module (gnu packages gstreamer) 41 #:use-module (gnu packages gstreamer)
@@ -525,3 +526,121 @@ to the fix block above.
525using GNU Radio and the Qt GUI toolkit.") 526using GNU Radio and the Qt GUI toolkit.")
526 (home-page "https://gqrx.dk/") 527 (home-page "https://gqrx.dk/")
527 (license license:gpl3+))) 528 (license license:gpl3+)))
529
530(define-public fldigi
531 (package
532 (name "fldigi")
533 (version "4.1.11")
534 (source
535 (origin
536 (method url-fetch)
537 (uri (string-append "http://www.w1hkj.com/files/fldigi/fldigi-"
538 version ".tar.gz"))
539 (sha256
540 (base32 "1y62xn1pim38ibaf2mbl8b7aq20jdaac6lgggb9r402w9bj5b196"))))
541 (build-system gnu-build-system)
542 (native-inputs
543 `(("pkg-config" ,pkg-config)))
544 (inputs
545 `(("alsa-lib" ,alsa-lib)
546 ("fltk" ,fltk)
547 ("libpng" ,libpng)
548 ("libsamplerate" ,libsamplerate)
549 ("libx11" ,libx11)
550 ("libxext" ,libxext)
551 ("libxfixes" ,libxfixes)
552 ("libxft" ,libxft)
553 ("portaudio" ,portaudio)
554 ("pulseaudio" ,pulseaudio)))
555 (synopsis "Software modem for amateur radio use")
556 (description
557 "Fldigi is a software modem for amateur radio use. It is a sound card
558based program that is used for both transmitting and receiving data by
559connecting the microphone and headphone connections of a computer to some radio
560hardware.")
561 (home-page "http://www.w1hkj.com/")
562 (license license:gpl3+)))
563
564(define-public flrig
565 (package
566 (name "flrig")
567 (version "1.3.50")
568 (source
569 (origin
570 (method url-fetch)
571 (uri (string-append "http://www.w1hkj.com/files/flrig/flrig-"
572 version ".tar.gz"))
573 (sha256
574 (base32 "0fzrknzzi8kmzmrcfpc8rxr7v4a4ny6z6z5q5qwh95sp2kn2qzp9"))))
575 (build-system gnu-build-system)
576 (native-inputs
577 `(("pkg-config" ,pkg-config)))
578 (inputs
579 `(("fltk" ,fltk)
580 ("libx11" ,libx11)
581 ("libxext" ,libxext)
582 ("libxfixes" ,libxfixes)
583 ("libxft" ,libxft)))
584 (synopsis "Radio transceiver control program")
585 (description
586 "Flrig is a transceiver control program for amateur radio use.
587It provides computer aided control of various radios using a serial
588or USB connection.")
589 (home-page "http://www.w1hkj.com/")
590 (license license:gpl3+)))
591
592(define-public flamp
593 (package
594 (name "flamp")
595 (version "2.2.05")
596 (source
597 (origin
598 (method url-fetch)
599 (uri (string-append "http://www.w1hkj.com/files/flamp/flamp-"
600 version ".tar.gz"))
601 (sha256
602 (base32 "19z1kghhdf7bq6hi2j0mzlsn2nhpn3gl1a623x3inmsk80yw3ck4"))))
603 (build-system gnu-build-system)
604 (native-inputs
605 `(("pkg-config" ,pkg-config)))
606 (inputs
607 `(("fltk" ,fltk)
608 ("libx11" ,libx11)
609 ("libxext" ,libxext)
610 ("libxfixes" ,libxfixes)
611 ("libxft" ,libxft)))
612 (synopsis "Tool for AMP file transfer")
613 (description
614 "FLAMP is a program for transfering files by radio waves using AMP
615(Amateur Multicast Protocol).")
616 (home-page "http://www.w1hkj.com/")
617 (license license:gpl3+)))
618
619(define-public flwrap
620 (package
621 (name "flwrap")
622 (version "1.3.5")
623 (source
624 (origin
625 (method url-fetch)
626 (uri (string-append "http://www.w1hkj.com/files/flwrap/flwrap-"
627 version ".tar.gz"))
628 (sha256
629 (base32 "0qqivqkkravcg7j45740xfky2q3k7czqpkj6y364qff424q2pppg"))))
630 (build-system gnu-build-system)
631 (native-inputs
632 `(("pkg-config" ,pkg-config)))
633 (inputs
634 `(("fltk" ,fltk)
635 ("libx11" ,libx11)
636 ("libxext" ,libxext)
637 ("libxfixes" ,libxfixes)
638 ("libxft" ,libxft)))
639 (synopsis "File encapsulation program")
640 (description
641 "Flwrap is a software utility for amateur radio use. Its purpose is to
642encapsulate both text and binary files in a way that allows them to be
643transmitted over any of several digital modes and verified at the receipt end
644for correctness.")
645 (home-page "http://www.w1hkj.com/")
646 (license license:gpl3+)))
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 1d70de2ffae..ff7da7958f8 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -851,7 +851,7 @@ through its msgpack-rpc API.")
851(define-public vim-asyncrun 851(define-public vim-asyncrun
852 (package 852 (package
853 (name "vim-asyncrun") 853 (name "vim-asyncrun")
854 (version "2.7.1") 854 (version "2.7.5")
855 (source (origin 855 (source (origin
856 (method git-fetch) 856 (method git-fetch)
857 (uri (git-reference 857 (uri (git-reference
@@ -860,7 +860,7 @@ through its msgpack-rpc API.")
860 (file-name (git-file-name name version)) 860 (file-name (git-file-name name version))
861 (sha256 861 (sha256
862 (base32 862 (base32
863 "0f7slvz28772qsbrb8xfwrkprfm90wc9i36xhn797lacxcxgwqpw")))) 863 "02fiqf4rcrxbcgvj02mpd78wkxsrnbi54aciwh9fv5mnz5ka249m"))))
864 (build-system copy-build-system) 864 (build-system copy-build-system)
865 (arguments 865 (arguments
866 '(#:install-plan 866 '(#:install-plan
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index c17cd8ed403..1851a274067 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -711,15 +711,15 @@ and import the new pictures from your camera.")
711(define-public xfwm4 711(define-public xfwm4
712 (package 712 (package
713 (name "xfwm4") 713 (name "xfwm4")
714 (version "4.14.0") 714 (version "4.14.1")
715 (source (origin 715 (source (origin
716 (method url-fetch) 716 (method url-fetch)
717 (uri (string-append "https://archive.xfce.org/src/xfce/" 717 (uri (string-append "https://archive.xfce.org/src/xfce/"
718 name "/" (version-major+minor version) "/" 718 "xfwm4/" (version-major+minor version) "/"
719 name "-" version ".tar.bz2")) 719 "xfwm4-" version ".tar.bz2"))
720 (sha256 720 (sha256
721 (base32 721 (base32
722 "05dn4a1i0nm6wm3nyj7qli5bvfalxghcl7x543qr5l33vkw2n65l")))) 722 "0a0la57jh618qfl7czsn7mspcraqczkm1m616j7jwxkhh2hq21qh"))))
723 (build-system gnu-build-system) 723 (build-system gnu-build-system)
724 (native-inputs 724 (native-inputs
725 `(("pkg-config" ,pkg-config) 725 `(("pkg-config" ,pkg-config)
@@ -741,15 +741,15 @@ on the screen.")
741(define-public xfdesktop 741(define-public xfdesktop
742 (package 742 (package
743 (name "xfdesktop") 743 (name "xfdesktop")
744 (version "4.14.1") 744 (version "4.14.2")
745 (source (origin 745 (source (origin
746 (method url-fetch) 746 (method url-fetch)
747 (uri (string-append "https://archive.xfce.org/src/xfce/" 747 (uri (string-append "https://archive.xfce.org/src/xfce/"
748 name "/" (version-major+minor version) "/" 748 "xfdesktop/" (version-major+minor version) "/"
749 name "-" version ".tar.bz2")) 749 "xfdesktop-" version ".tar.bz2"))
750 (sha256 750 (sha256
751 (base32 751 (base32
752 "10pqxgpj7b57wpcsh2k98sj4aavcgxbs1lc8qsq4mibf4hba01gp")) 752 "0x1yx9sd5aanrlr1qnbwd2nsmcg09g4132k0kyb7z47a3x3381d3"))
753 (modules '((guix build utils))) 753 (modules '((guix build utils)))
754 (snippet 754 (snippet
755 #~(begin 755 #~(begin
@@ -781,6 +781,7 @@ on the screen.")
781 `(("pkg-config" ,pkg-config) 781 `(("pkg-config" ,pkg-config)
782 ("intltool" ,intltool) 782 ("intltool" ,intltool)
783 783
784 ;; For our own ‘prepare-background-image’ phase.
784 ("inkscape" ,inkscape) 785 ("inkscape" ,inkscape)
785 ("imagemagick" ,imagemagick))) 786 ("imagemagick" ,imagemagick)))
786 (inputs 787 (inputs
@@ -949,15 +950,15 @@ the desktop wallpaper.")
949(define-public xfce4-taskmanager 950(define-public xfce4-taskmanager
950 (package 951 (package
951 (name "xfce4-taskmanager") 952 (name "xfce4-taskmanager")
952 (version "1.2.2") 953 (version "1.2.3")
953 (source (origin 954 (source (origin
954 (method url-fetch) 955 (method url-fetch)
955 (uri (string-append "https://archive.xfce.org/src/apps/" 956 (uri (string-append "https://archive.xfce.org/src/apps/"
956 name "/" (version-major+minor version) "/" 957 "xfce4-taskmanager/" (version-major+minor version) "/"
957 name "-" version ".tar.bz2")) 958 "xfce4-taskmanager-" version ".tar.bz2"))
958 (sha256 959 (sha256
959 (base32 960 (base32
960 "04qflazmdrj4ys4r54yg4s5pqcjgk02idrjsls395zd4374636p4")))) 961 "1i63bnvpjpblnd0d3l1v065x9q1cz74cvlab5hzd0q8zgkd49z6w"))))
961 (build-system gnu-build-system) 962 (build-system gnu-build-system)
962 (native-inputs 963 (native-inputs
963 `(("intltool" ,intltool) 964 `(("intltool" ,intltool)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 47db1f507f4..21a24677c66 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -14,7 +14,7 @@
14;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> 14;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
15;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> 15;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
16;;; Copyright © 2017, 2020 Arun Isaac <arunisaac@systemreboot.net> 16;;; Copyright © 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
17;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> 17;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
18;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> 18;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
19;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> 19;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
20;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> 20;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
@@ -6004,7 +6004,7 @@ to answer a question. Xmessage can also exit after a specified time.")
6004(define-public xterm 6004(define-public xterm
6005 (package 6005 (package
6006 (name "xterm") 6006 (name "xterm")
6007 (version "351") 6007 (version "353")
6008 (source (origin 6008 (source (origin
6009 (method url-fetch) 6009 (method url-fetch)
6010 (uri (list 6010 (uri (list
@@ -6014,7 +6014,7 @@ to answer a question. Xmessage can also exit after a specified time.")
6014 "xterm-" version ".tgz"))) 6014 "xterm-" version ".tgz")))
6015 (sha256 6015 (sha256
6016 (base32 6016 (base32
6017 "05kf586my4irrzz2bxgmwjdvynyrg9ybhvfqmx29g70w4888l2kn")))) 6017 "0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5"))))
6018 (build-system gnu-build-system) 6018 (build-system gnu-build-system)
6019 (arguments 6019 (arguments
6020 '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts" 6020 '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 08ab5970dca..a532e884c3d 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -61,11 +61,11 @@
61 #:use-module (srfi srfi-26) 61 #:use-module (srfi srfi-26)
62 #:use-module (ice-9 match) 62 #:use-module (ice-9 match)
63 #:use-module (ice-9 format) 63 #:use-module (ice-9 format)
64 #:re-export (user-processes-service-type) ;backwards compatibility
64 #:export (fstab-service-type 65 #:export (fstab-service-type
65 root-file-system-service 66 root-file-system-service
66 file-system-service-type 67 file-system-service-type
67 swap-service 68 swap-service
68 user-processes-service-type
69 host-name-service 69 host-name-service
70 console-keymap-service 70 console-keymap-service
71 %default-console-font 71 %default-console-font
@@ -187,128 +187,6 @@
187 187
188 188
189;;; 189;;;
190;;; User processes.
191;;;
192
193(define %do-not-kill-file
194 ;; Name of the file listing PIDs of processes that must survive when halting
195 ;; the system. Typical example is user-space file systems.
196 "/etc/shepherd/do-not-kill")
197
198(define (user-processes-shepherd-service requirements)
199 "Return the 'user-processes' Shepherd service with dependencies on
200REQUIREMENTS (a list of service names).
201
202This is a synchronization point used to make sure user processes and daemons
203get started only after crucial initial services have been started---file
204system mounts, etc. This is similar to the 'sysvinit' target in systemd."
205 (define grace-delay
206 ;; Delay after sending SIGTERM and before sending SIGKILL.
207 4)
208
209 (list (shepherd-service
210 (documentation "When stopped, terminate all user processes.")
211 (provision '(user-processes))
212 (requirement requirements)
213 (start #~(const #t))
214 (stop #~(lambda _
215 (define (kill-except omit signal)
216 ;; Kill all the processes with SIGNAL except those listed
217 ;; in OMIT and the current process.
218 (let ((omit (cons (getpid) omit)))
219 (for-each (lambda (pid)
220 (unless (memv pid omit)
221 (false-if-exception
222 (kill pid signal))))
223 (processes))))
224
225 (define omitted-pids
226 ;; List of PIDs that must not be killed.
227 (if (file-exists? #$%do-not-kill-file)
228 (map string->number
229 (call-with-input-file #$%do-not-kill-file
230 (compose string-tokenize
231 (@ (ice-9 rdelim) read-string))))
232 '()))
233
234 (define (now)
235 (car (gettimeofday)))
236
237 (define (sleep* n)
238 ;; Really sleep N seconds.
239 ;; Work around <http://bugs.gnu.org/19581>.
240 (define start (now))
241 (let loop ((elapsed 0))
242 (when (> n elapsed)
243 (sleep (- n elapsed))
244 (loop (- (now) start)))))
245
246 (define lset= (@ (srfi srfi-1) lset=))
247
248 (display "sending all processes the TERM signal\n")
249
250 (if (null? omitted-pids)
251 (begin
252 ;; Easy: terminate all of them.
253 (kill -1 SIGTERM)
254 (sleep* #$grace-delay)
255 (kill -1 SIGKILL))
256 (begin
257 ;; Kill them all except OMITTED-PIDS. XXX: We would
258 ;; like to (kill -1 SIGSTOP) to get a fixed list of
259 ;; processes, like 'killall5' does, but that seems
260 ;; unreliable.
261 (kill-except omitted-pids SIGTERM)
262 (sleep* #$grace-delay)
263 (kill-except omitted-pids SIGKILL)
264 (delete-file #$%do-not-kill-file)))
265
266 (let wait ()
267 ;; Reap children, if any, so that we don't end up with
268 ;; zombies and enter an infinite loop.
269 (let reap-children ()
270 (define result
271 (false-if-exception
272 (waitpid WAIT_ANY (if (null? omitted-pids)
273 0
274 WNOHANG))))
275
276 (when (and (pair? result)
277 (not (zero? (car result))))
278 (reap-children)))
279
280 (let ((pids (processes)))
281 (unless (lset= = pids (cons 1 omitted-pids))
282 (format #t "waiting for process termination\
283 (processes left: ~s)~%"
284 pids)
285 (sleep* 2)
286 (wait))))
287
288 (display "all processes have been terminated\n")
289 #f))
290 (respawn? #f))))
291
292(define user-processes-service-type
293 (service-type
294 (name 'user-processes)
295 (extensions (list (service-extension shepherd-root-service-type
296 user-processes-shepherd-service)))
297 (compose concatenate)
298 (extend append)
299
300 ;; The value is the list of Shepherd services 'user-processes' depends on.
301 ;; Extensions can add new services to this list.
302 (default-value '())
303
304 (description "The @code{user-processes} service is responsible for
305terminating all the processes so that the root file system can be re-mounted
306read-only, just before rebooting/halting. Processes still running after a few
307seconds after @code{SIGTERM} has been sent are terminated with
308@code{SIGKILL}.")))
309
310
311;;;
312;;; File systems. 190;;; File systems.
313;;; 191;;;
314 192
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
index 1921afce95f..59f8b169855 100644
--- a/gnu/services/sddm.scm
+++ b/gnu/services/sddm.scm
@@ -170,7 +170,7 @@ Relogin=" (if (sddm-configuration-relogin? config)
170 (list (shepherd-service 170 (list (shepherd-service
171 (documentation "SDDM display manager.") 171 (documentation "SDDM display manager.")
172 (requirement '(user-processes)) 172 (requirement '(user-processes))
173 (provision '(display-manager)) 173 (provision '(xorg-server display-manager))
174 (start #~(make-forkexec-constructor #$sddm-command)) 174 (start #~(make-forkexec-constructor #$sddm-command))
175 (stop #~(make-kill-destructor))))) 175 (stop #~(make-kill-destructor)))))
176 176
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 9906ae43c48..e99458da432 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -63,7 +63,9 @@
63 63
64 shepherd-service-lookup-procedure 64 shepherd-service-lookup-procedure
65 shepherd-service-back-edges 65 shepherd-service-back-edges
66 shepherd-service-upgrade)) 66 shepherd-service-upgrade
67
68 user-processes-service-type))
67 69
68;;; Commentary: 70;;; Commentary:
69;;; 71;;;
@@ -415,4 +417,126 @@ need to be restarted to complete their upgrade."
415 417
416 (values to-unload to-restart)) 418 (values to-unload to-restart))
417 419
420
421;;;
422;;; User processes.
423;;;
424
425(define %do-not-kill-file
426 ;; Name of the file listing PIDs of processes that must survive when halting
427 ;; the system. Typical example is user-space file systems.
428 "/etc/shepherd/do-not-kill")
429
430(define (user-processes-shepherd-service requirements)
431 "Return the 'user-processes' Shepherd service with dependencies on
432REQUIREMENTS (a list of service names).
433
434This is a synchronization point used to make sure user processes and daemons
435get started only after crucial initial services have been started---file
436system mounts, etc. This is similar to the 'sysvinit' target in systemd."
437 (define grace-delay
438 ;; Delay after sending SIGTERM and before sending SIGKILL.
439 4)
440
441 (list (shepherd-service
442 (documentation "When stopped, terminate all user processes.")
443 (provision '(user-processes))
444 (requirement requirements)
445 (start #~(const #t))
446 (stop #~(lambda _
447 (define (kill-except omit signal)
448 ;; Kill all the processes with SIGNAL except those listed
449 ;; in OMIT and the current process.
450 (let ((omit (cons (getpid) omit)))
451 (for-each (lambda (pid)
452 (unless (memv pid omit)
453 (false-if-exception
454 (kill pid signal))))
455 (processes))))
456
457 (define omitted-pids
458 ;; List of PIDs that must not be killed.
459 (if (file-exists? #$%do-not-kill-file)
460 (map string->number
461 (call-with-input-file #$%do-not-kill-file
462 (compose string-tokenize
463 (@ (ice-9 rdelim) read-string))))
464 '()))
465
466 (define (now)
467 (car (gettimeofday)))
468
469 (define (sleep* n)
470 ;; Really sleep N seconds.
471 ;; Work around <http://bugs.gnu.org/19581>.
472 (define start (now))
473 (let loop ((elapsed 0))
474 (when (> n elapsed)
475 (sleep (- n elapsed))
476 (loop (- (now) start)))))
477
478 (define lset= (@ (srfi srfi-1) lset=))
479
480 (display "sending all processes the TERM signal\n")
481
482 (if (null? omitted-pids)
483 (begin
484 ;; Easy: terminate all of them.
485 (kill -1 SIGTERM)
486 (sleep* #$grace-delay)
487 (kill -1 SIGKILL))
488 (begin
489 ;; Kill them all except OMITTED-PIDS. XXX: We would
490 ;; like to (kill -1 SIGSTOP) to get a fixed list of
491 ;; processes, like 'killall5' does, but that seems
492 ;; unreliable.
493 (kill-except omitted-pids SIGTERM)
494 (sleep* #$grace-delay)
495 (kill-except omitted-pids SIGKILL)
496 (delete-file #$%do-not-kill-file)))
497
498 (let wait ()
499 ;; Reap children, if any, so that we don't end up with
500 ;; zombies and enter an infinite loop.
501 (let reap-children ()
502 (define result
503 (false-if-exception
504 (waitpid WAIT_ANY (if (null? omitted-pids)
505 0
506 WNOHANG))))
507
508 (when (and (pair? result)
509 (not (zero? (car result))))
510 (reap-children)))
511
512 (let ((pids (processes)))
513 (unless (lset= = pids (cons 1 omitted-pids))
514 (format #t "waiting for process termination\
515 (processes left: ~s)~%"
516 pids)
517 (sleep* 2)
518 (wait))))
519
520 (display "all processes have been terminated\n")
521 #f))
522 (respawn? #f))))
523
524(define user-processes-service-type
525 (service-type
526 (name 'user-processes)
527 (extensions (list (service-extension shepherd-root-service-type
528 user-processes-shepherd-service)))
529 (compose concatenate)
530 (extend append)
531
532 ;; The value is the list of Shepherd services 'user-processes' depends on.
533 ;; Extensions can add new services to this list.
534 (default-value '())
535
536 (description "The @code{user-processes} service is responsible for
537terminating all the processes so that the root file system can be re-mounted
538read-only, just before rebooting/halting. Processes still running after a few
539seconds after @code{SIGTERM} has been sent are terminated with
540@code{SIGKILL}.")))
541
418;;; shepherd.scm ends here 542;;; shepherd.scm ends here
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index 42480e823c5..a6f1d806cf4 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> 3;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
4;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> 4;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
5;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> 5;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -314,9 +314,7 @@ accounts among ACCOUNTS+GROUPS."
314 ;; 314 ;;
315 ;; XXX: We arrange for this service to stop right after it's done its job so 315 ;; XXX: We arrange for this service to stop right after it's done its job so
316 ;; that 'guix system reconfigure' knows that it can reload it fearlessly 316 ;; that 'guix system reconfigure' knows that it can reload it fearlessly
317 ;; (and thus create new home directories). The cost of this hack is that 317 ;; (and thus create new home directories).
318 ;; there's a small window during which first-time logins could happen before
319 ;; the home directory has been created.
320 (list (shepherd-service 318 (list (shepherd-service
321 (requirement '(file-systems)) 319 (requirement '(file-systems))
322 (provision '(user-homes)) 320 (provision '(user-homes))
@@ -374,6 +372,11 @@ the /etc/skel directory for those."
374 account-activation) 372 account-activation)
375 (service-extension shepherd-root-service-type 373 (service-extension shepherd-root-service-type
376 account-shepherd-service) 374 account-shepherd-service)
375 ;; Have 'user-processes' depend on 'user-homes' so that
376 ;; daemons start after their home directory has been
377 ;; created.
378 (service-extension user-processes-service-type
379 (const '(user-homes)))
377 (service-extension etc-service-type 380 (service-extension etc-service-type
378 etc-files))))) 381 etc-files)))))
379 382
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 0938ec0ff10..7ef03417c11 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -22,7 +22,6 @@
22 22
23(define-module (guix build syscalls) 23(define-module (guix build syscalls)
24 #:use-module (system foreign) 24 #:use-module (system foreign)
25 #:use-module (system base target) ;for cross-compilation support
26 #:use-module (rnrs bytevectors) 25 #:use-module (rnrs bytevectors)
27 #:autoload (ice-9 binary-ports) (get-bytevector-n) 26 #:autoload (ice-9 binary-ports) (get-bytevector-n)
28 #:use-module (srfi srfi-1) 27 #:use-module (srfi srfi-1)
@@ -892,36 +891,6 @@ system to PUT-OLD."
892 (namelen uint8) 891 (namelen uint8)
893 (name uint8)) 892 (name uint8))
894 893
895(define-syntax define-generic-identifier
896 (syntax-rules (gnu/linux gnu/hurd =>)
897 "Define a generic identifier that adjust to the current GNU variant."
898 ((_ id (gnu/linux => linux) (gnu/hurd => hurd))
899 (define-syntax id
900 (lambda (s)
901 (syntax-case s ()
902 ((_ args (... ...))
903 (if (string-contains (or (target-type) %host-type)
904 "linux")
905 #'(linux args (... ...))
906 #'(hurd args (... ...))))
907 (_
908 (if (string-contains (or (target-type) %host-type)
909 "linux")
910 #'linux
911 #'hurd))))))))
912
913(define-generic-identifier read-dirent-header
914 (gnu/linux => read-dirent-header/linux)
915 (gnu/hurd => read-dirent-header/hurd))
916
917(define-generic-identifier %struct-dirent-header
918 (gnu/linux => %struct-dirent-header/linux)
919 (gnu/hurd => %struct-dirent-header/hurd))
920
921(define-generic-identifier sizeof-dirent-header
922 (gnu/linux => sizeof-dirent-header/linux)
923 (gnu/hurd => sizeof-dirent-header/hurd))
924
925;; Constants for the 'type' field, from <dirent.h>. 894;; Constants for the 'type' field, from <dirent.h>.
926(define DT_UNKNOWN 0) 895(define DT_UNKNOWN 0)
927(define DT_FIFO 1) 896(define DT_FIFO 1)
@@ -960,19 +929,30 @@ system to PUT-OLD."
960 "closedir: ~A" (list (strerror err)) 929 "closedir: ~A" (list (strerror err))
961 (list err))))))) 930 (list err)))))))
962 931
963(define readdir* 932(define (readdir-procedure name-field-offset sizeof-dirent-header
933 read-dirent-header)
964 (let ((proc (syscall->procedure '* "readdir64" '(*)))) 934 (let ((proc (syscall->procedure '* "readdir64" '(*))))
965 (lambda* (directory #:optional (pointer->string pointer->string/utf-8)) 935 (lambda* (directory #:optional (pointer->string pointer->string/utf-8))
966 (let ((ptr (proc directory))) 936 (let ((ptr (proc directory)))
967 (and (not (null-pointer? ptr)) 937 (and (not (null-pointer? ptr))
968 (cons (pointer->string 938 (cons (pointer->string
969 (make-pointer (+ (pointer-address ptr) 939 (make-pointer (+ (pointer-address ptr) name-field-offset))
970 (c-struct-field-offset
971 %struct-dirent-header name)))
972 -1) 940 -1)
973 (read-dirent-header 941 (read-dirent-header
974 (pointer->bytevector ptr sizeof-dirent-header)))))))) 942 (pointer->bytevector ptr sizeof-dirent-header))))))))
975 943
944(define readdir*
945 ;; Decide at run time which one must be used.
946 (if (string-suffix? "linux-gnu" %host-type)
947 (readdir-procedure (c-struct-field-offset %struct-dirent-header/linux
948 name)
949 sizeof-dirent-header/linux
950 read-dirent-header/linux)
951 (readdir-procedure (c-struct-field-offset %struct-dirent-header/hurd
952 name)
953 sizeof-dirent-header/hurd
954 read-dirent-header/hurd)))
955
976(define* (scandir* name #:optional 956(define* (scandir* name #:optional
977 (select? (const #t)) 957 (select? (const #t))
978 (entry<? (lambda (entry1 entry2) 958 (entry<? (lambda (entry1 entry2)
diff --git a/guix/gnupg.scm b/guix/gnupg.scm
index bf0283f8fe8..5fae24b325a 100644
--- a/guix/gnupg.scm
+++ b/guix/gnupg.scm
@@ -1,6 +1,7 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2010, 2011, 2013, 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2010, 2011, 2013, 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> 3;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
4;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
4;;; 5;;;
5;;; This file is part of GNU Guix. 6;;; This file is part of GNU Guix.
6;;; 7;;;
@@ -71,6 +72,8 @@
71 "^\\[GNUPG:\\] VALIDSIG ([[:xdigit:]]+) ([[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}) ([[:digit:]]+) .*$")) 72 "^\\[GNUPG:\\] VALIDSIG ([[:xdigit:]]+) ([[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}) ([[:digit:]]+) .*$"))
72(define expkeysig-rx ; good signature, but expired key 73(define expkeysig-rx ; good signature, but expired key
73 (make-regexp "^\\[GNUPG:\\] EXPKEYSIG ([[:xdigit:]]+) (.*)$")) 74 (make-regexp "^\\[GNUPG:\\] EXPKEYSIG ([[:xdigit:]]+) (.*)$"))
75(define revkeysig-rx ; good signature, but revoked key
76 (make-regexp "^\\[GNUPG:\\] REVKEYSIG ([[:xdigit:]]+) (.*)$"))
74(define errsig-rx 77(define errsig-rx
75 ;; Note: The fingeprint part (the last element of the line) appeared in 78 ;; Note: The fingeprint part (the last element of the line) appeared in
76 ;; GnuPG 2.2.7 according to 'doc/DETAILS', and it may be missing. 79 ;; GnuPG 2.2.7 according to 'doc/DETAILS', and it may be missing.
@@ -114,6 +117,11 @@ revoked. Return a status s-exp if GnuPG failed."
114 (lambda (match) 117 (lambda (match)
115 `(expired-key-signature ,(match:substring match 1) ; fingerprint 118 `(expired-key-signature ,(match:substring match 1) ; fingerprint
116 ,(match:substring match 2)))) ; user name 119 ,(match:substring match 2)))) ; user name
120 ((regexp-exec revkeysig-rx line)
121 =>
122 (lambda (match)
123 `(revoked-key-signature ,(match:substring match 1) ; fingerprint
124 ,(match:substring match 2)))) ; user name
117 ((regexp-exec errsig-rx line) 125 ((regexp-exec errsig-rx line)
118 => 126 =>
119 (lambda (match) 127 (lambda (match)
@@ -157,7 +165,8 @@ a fingerprint/user pair; return #f otherwise."
157 (match (assq 'valid-signature status) 165 (match (assq 'valid-signature status)
158 (('valid-signature fingerprint date timestamp) 166 (('valid-signature fingerprint date timestamp)
159 (match (or (assq 'good-signature status) 167 (match (or (assq 'good-signature status)
160 (assq 'expired-key-signature status)) 168 (assq 'expired-key-signature status)
169 (assq 'revoked-key-signature status))
161 ((_ key-id user) (cons fingerprint user)) 170 ((_ key-id user) (cons fingerprint user))
162 (_ #f))) 171 (_ #f)))
163 (_ 172 (_
diff --git a/guix/import/json.scm b/guix/import/json.scm
index 8900724dcdf..0c98bb25b82 100644
--- a/guix/import/json.scm
+++ b/guix/import/json.scm
@@ -2,6 +2,7 @@
2;;; Copyright © 2014 David Thompson <davet@gnu.org> 2;;; Copyright © 2014 David Thompson <davet@gnu.org>
3;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org> 3;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
4;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org> 4;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
5;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
5;;; 6;;;
6;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
7;;; 8;;;
@@ -22,8 +23,16 @@
22 #:use-module (json) 23 #:use-module (json)
23 #:use-module (guix http-client) 24 #:use-module (guix http-client)
24 #:use-module (guix import utils) 25 #:use-module (guix import utils)
26 #:use-module (guix import print)
27 #:use-module (ice-9 match)
28 #:use-module (ice-9 rdelim)
29 #:use-module (srfi srfi-1)
30 #:use-module (srfi srfi-2)
31 #:use-module (srfi srfi-26)
25 #:use-module (srfi srfi-34) 32 #:use-module (srfi srfi-34)
26 #:export (json-fetch)) 33 #:export (json-fetch
34 json->code
35 json->scheme-file))
27 36
28(define* (json-fetch url 37(define* (json-fetch url
29 ;; Note: many websites returns 403 if we omit a 38 ;; Note: many websites returns 403 if we omit a
@@ -42,3 +51,53 @@ the query."
42 (result (json->scm port))) 51 (result (json->scm port)))
43 (close-port port) 52 (close-port port)
44 result))) 53 result)))
54
55(define (json->code file-name)
56 "Read FILE-NAME containing one ore more JSON package definitions and return
57a list of S-expressions, or return #F when the JSON is invalid."
58 (catch 'json-invalid
59 (lambda ()
60 (let ((json (json-string->scm
61 (with-input-from-file file-name read-string))))
62 (match json
63 (#(packages ...)
64 ;; To allow definitions to refer to one another, collect references
65 ;; to local definitions and tell alist->package to ignore them.
66 (second
67 (memq #:result
68 (fold
69 (lambda (pkg names+result)
70 (match names+result
71 ((#:names names #:result result)
72 (list #:names
73 (cons (assoc-ref pkg "name") names)
74 #:result
75 (append result
76 (list
77 (package->code (alist->package pkg names))
78 (string->symbol (assoc-ref pkg "name"))))))))
79 (list #:names '()
80 #:result '())
81 packages))))
82 (package
83 (list (package->code (alist->package json))
84 (string->symbol (assoc-ref json "name")))))))
85 (const #f)))
86
87(define (json->scheme-file file)
88 "Convert the FILE containing a JSON package definition to a Scheme
89representation and return the new file name (or #F on error)."
90 (and-let* ((sexprs (json->code file))
91 (file* (let* ((tempdir (or (getenv "TMPDIR") "/tmp"))
92 (template (string-append tempdir "/guix-XXXXXX"))
93 (port (mkstemp! template)))
94 (close-port port)
95 template)))
96 (call-with-output-file file*
97 (lambda (port)
98 (write '(use-modules (gnu)
99 (guix)
100 ((guix licenses) #:prefix license:))
101 port)
102 (for-each (cut write <> port) sexprs)))
103 file*))
diff --git a/guix/import/print.scm b/guix/import/print.scm
index 4c2a91fa4f3..11cc218285a 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> 2;;; Copyright © 2017, 2020 Ricardo Wurmus <rekado@elephly.net>
3;;; 3;;;
4;;; This file is part of GNU Guix. 4;;; This file is part of GNU Guix.
5;;; 5;;;
@@ -57,7 +57,7 @@ when evaluated."
57 ;; Print either license variable name or the code for a license object 57 ;; Print either license variable name or the code for a license object
58 (define (license->code lic) 58 (define (license->code lic)
59 (let ((var (variable-name lic '(guix licenses)))) 59 (let ((var (variable-name lic '(guix licenses))))
60 (or var 60 (or (symbol-append 'license: var)
61 `(license 61 `(license
62 (name ,(license-name lic)) 62 (name ,(license-name lic))
63 (uri ,(license-uri lic)) 63 (uri ,(license-uri lic))
@@ -79,7 +79,9 @@ when evaluated."
79 (patches (origin-patches source))) 79 (patches (origin-patches source)))
80 `(origin 80 `(origin
81 (method ,(procedure-name method)) 81 (method ,(procedure-name method))
82 (uri (string-append ,@(factorize-uri uri version))) 82 (uri (string-append ,@(match (factorize-uri uri version)
83 ((? string? uri) (list uri))
84 (factorized factorized))))
83 (sha256 85 (sha256
84 (base32 86 (base32
85 ,(format #f "~a" (bytevector->nix-base32-string sha256)))) 87 ,(format #f "~a" (bytevector->nix-base32-string sha256))))
@@ -92,6 +94,8 @@ when evaluated."
92 (define (package-lists->code lsts) 94 (define (package-lists->code lsts)
93 (list 'quasiquote 95 (list 'quasiquote
94 (map (match-lambda 96 (map (match-lambda
97 ((? symbol? s)
98 (list (symbol->string s) (list 'unquote s)))
95 ((label pkg . out) 99 ((label pkg . out)
96 (let ((mod (package-module-name pkg))) 100 (let ((mod (package-module-name pkg)))
97 (cons* label 101 (cons* label
@@ -121,45 +125,47 @@ when evaluated."
121 (home-page (package-home-page package)) 125 (home-page (package-home-page package))
122 (supported-systems (package-supported-systems package)) 126 (supported-systems (package-supported-systems package))
123 (properties (package-properties package))) 127 (properties (package-properties package)))
124 `(package 128 `(define-public ,(string->symbol name)
125 (name ,name) 129 (package
126 (version ,version) 130 (name ,name)
127 (source ,(source->code source version)) 131 (version ,version)
128 ,@(match properties 132 (source ,(source->code source version))
129 (() '()) 133 ,@(match properties
130 (_ `((properties ,properties)))) 134 (() '())
131 ,@(if replacement 135 (_ `((properties ,properties))))
132 `((replacement ,replacement)) 136 ,@(if replacement
133 '()) 137 `((replacement ,replacement))
134 (build-system ,(symbol-append (build-system-name build-system) 138 '())
135 '-build-system)) 139 (build-system (@ (guix build-system ,(build-system-name build-system))
136 ,@(match arguments 140 ,(symbol-append (build-system-name build-system)
137 (() '()) 141 '-build-system)))
138 (args `((arguments ,(list 'quasiquote args))))) 142 ,@(match arguments
139 ,@(match outputs 143 (() '())
140 (("out") '()) 144 (args `((arguments ,(list 'quasiquote args)))))
141 (outs `((outputs (list ,@outs))))) 145 ,@(match outputs
142 ,@(match native-inputs 146 (("out") '())
143 (() '()) 147 (outs `((outputs (list ,@outs)))))
144 (pkgs `((native-inputs ,(package-lists->code pkgs))))) 148 ,@(match native-inputs
145 ,@(match inputs 149 (() '())
146 (() '()) 150 (pkgs `((native-inputs ,(package-lists->code pkgs)))))
147 (pkgs `((inputs ,(package-lists->code pkgs))))) 151 ,@(match inputs
148 ,@(match propagated-inputs 152 (() '())
149 (() '()) 153 (pkgs `((inputs ,(package-lists->code pkgs)))))
150 (pkgs `((propagated-inputs ,(package-lists->code pkgs))))) 154 ,@(match propagated-inputs
151 ,@(if (lset= string=? supported-systems %supported-systems) 155 (() '())
152 '() 156 (pkgs `((propagated-inputs ,(package-lists->code pkgs)))))
153 `((supported-systems (list ,@supported-systems)))) 157 ,@(if (lset= string=? supported-systems %supported-systems)
154 ,@(match (map search-path-specification->code native-search-paths) 158 '()
155 (() '()) 159 `((supported-systems (list ,@supported-systems))))
156 (paths `((native-search-paths (list ,@paths))))) 160 ,@(match (map search-path-specification->code native-search-paths)
157 ,@(match (map search-path-specification->code search-paths) 161 (() '())
158 (() '()) 162 (paths `((native-search-paths (list ,@paths)))))
159 (paths `((search-paths (list ,@paths))))) 163 ,@(match (map search-path-specification->code search-paths)
160 (home-page ,home-page) 164 (() '())
161 (synopsis ,synopsis) 165 (paths `((search-paths (list ,@paths)))))
162 (description ,description) 166 (home-page ,home-page)
163 (license ,(if (list? license) 167 (synopsis ,synopsis)
164 `(list ,@(map license->code license)) 168 (description ,description)
165 (license->code license)))))) 169 (license ,(if (list? license)
170 `(list ,@(map license->code license))
171 (license->code license)))))))
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 94c8cb040b3..3809c3d0744 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -2,7 +2,7 @@
2;;; Copyright © 2012, 2013, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2012, 2013, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org> 3;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
4;;; Copyright © 2016 David Craven <david@craven.ch> 4;;; Copyright © 2016 David Craven <david@craven.ch>
5;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> 5;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
6;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> 6;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
7;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> 7;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
8;;; 8;;;
@@ -310,7 +310,23 @@ the expected fields of an <origin> object."
310 (uri (assoc-ref orig "uri")) 310 (uri (assoc-ref orig "uri"))
311 (sha256 sha)))))) 311 (sha256 sha))))))
312 312
313(define (alist->package meta) 313(define* (alist->package meta #:optional (known-inputs '()))
314 "Return a package value generated from the alist META. If the list of
315strings KNOWN-INPUTS is provided, do not treat the mentioned inputs as
316specifications to look up and replace them with plain symbols instead."
317 (define (process-inputs which)
318 (let-values (((regular known)
319 (lset-diff+intersection
320 string=?
321 (vector->list (or (assoc-ref meta which) #()))
322 known-inputs)))
323 (append (specs->package-lists regular)
324 (map string->symbol known))))
325 (define (process-arguments arguments)
326 (append-map (match-lambda
327 ((key . value)
328 (list (symbol->keyword (string->symbol key)) value)))
329 arguments))
314 (package 330 (package
315 (name (assoc-ref meta "name")) 331 (name (assoc-ref meta "name"))
316 (version (assoc-ref meta "version")) 332 (version (assoc-ref meta "version"))
@@ -318,15 +334,13 @@ the expected fields of an <origin> object."
318 (build-system 334 (build-system
319 (lookup-build-system-by-name 335 (lookup-build-system-by-name
320 (string->symbol (assoc-ref meta "build-system")))) 336 (string->symbol (assoc-ref meta "build-system"))))
321 (native-inputs 337 (arguments
322 (specs->package-lists 338 (or (and=> (assoc-ref meta "arguments")
323 (vector->list (or (assoc-ref meta "native-inputs") '#())))) 339 process-arguments)
324 (inputs 340 '()))
325 (specs->package-lists 341 (native-inputs (process-inputs "native-inputs"))
326 (vector->list (or (assoc-ref meta "inputs") '#())))) 342 (inputs (process-inputs "inputs"))
327 (propagated-inputs 343 (propagated-inputs (process-inputs "propagated-inputs"))
328 (specs->package-lists
329 (vector->list (or (assoc-ref meta "propagated-inputs") '#()))))
330 (home-page 344 (home-page
331 (assoc-ref meta "home-page")) 345 (assoc-ref meta "home-page"))
332 (synopsis 346 (synopsis
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 79bd84a1a03..8ff2fd19102 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -2,6 +2,7 @@
2;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> 3;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
4;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> 4;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
5;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
5;;; 6;;;
6;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
7;;; 8;;;
@@ -21,6 +22,7 @@
21(define-module (guix scripts build) 22(define-module (guix scripts build)
22 #:use-module (guix ui) 23 #:use-module (guix ui)
23 #:use-module (guix scripts) 24 #:use-module (guix scripts)
25 #:use-module (guix import json)
24 #:use-module (guix store) 26 #:use-module (guix store)
25 #:use-module (guix derivations) 27 #:use-module (guix derivations)
26 #:use-module (guix packages) 28 #:use-module (guix packages)
@@ -834,7 +836,10 @@ build---packages, gexps, derivations, and so on."
834 (else 836 (else
835 (list (specification->package spec))))) 837 (list (specification->package spec)))))
836 (('file . file) 838 (('file . file)
837 (ensure-list (load* file (make-user-module '())))) 839 (let ((file (or (and (string-suffix? ".json" file)
840 (json->scheme-file file))
841 file)))
842 (ensure-list (load* file (make-user-module '())))))
838 (('manifest . manifest) 843 (('manifest . manifest)
839 (map manifest-entry-item 844 (map manifest-entry-item
840 (manifest-entries 845 (manifest-entries
diff --git a/guix/scripts/import/json.scm b/guix/scripts/import/json.scm
index c9daf65479e..778e5f4bc59 100644
--- a/guix/scripts/import/json.scm
+++ b/guix/scripts/import/json.scm
@@ -23,7 +23,7 @@
23 #:use-module (guix utils) 23 #:use-module (guix utils)
24 #:use-module (guix scripts) 24 #:use-module (guix scripts)
25 #:use-module (guix import utils) 25 #:use-module (guix import utils)
26 #:use-module (guix import print) 26 #:use-module (guix import json)
27 #:use-module (guix scripts import) 27 #:use-module (guix scripts import)
28 #:use-module (guix packages) 28 #:use-module (guix packages)
29 #:use-module (srfi srfi-1) 29 #:use-module (srfi srfi-1)
@@ -88,14 +88,8 @@ Import and convert the JSON package definition in PACKAGE-FILE.\n"))
88 (reverse opts)))) 88 (reverse opts))))
89 (match args 89 (match args
90 ((file-name) 90 ((file-name)
91 (catch 'json-invalid 91 (or (json->code file-name)
92 (lambda () 92 (leave (G_ "invalid JSON in file '~a'~%") file-name)))
93 (let ((json (json-string->scm
94 (with-input-from-file file-name read-string))))
95 ;; TODO: also print define-module boilerplate
96 (package->code (alist->package json))))
97 (lambda _
98 (leave (G_ "invalid JSON in file '~a'~%") file-name))))
99 (() 93 (()
100 (leave (G_ "too few arguments~%"))) 94 (leave (G_ "too few arguments~%")))
101 ((many ...) 95 ((many ...)
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index b2b734aadd6..43a3bb2825c 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -7,6 +7,7 @@
7;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch> 7;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
8;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> 8;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
9;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> 9;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
10;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
10;;; 11;;;
11;;; This file is part of GNU Guix. 12;;; This file is part of GNU Guix.
12;;; 13;;;
@@ -33,6 +34,7 @@
33 #:use-module (guix packages) 34 #:use-module (guix packages)
34 #:use-module (guix profiles) 35 #:use-module (guix profiles)
35 #:use-module (guix search-paths) 36 #:use-module (guix search-paths)
37 #:use-module (guix import json)
36 #:use-module (guix monads) 38 #:use-module (guix monads)
37 #:use-module (guix utils) 39 #:use-module (guix utils)
38 #:use-module (guix config) 40 #:use-module (guix config)
@@ -416,7 +418,10 @@ Install, remove, or upgrade packages in a single transaction.\n"))
416 (option '(#\f "install-from-file") #t #f 418 (option '(#\f "install-from-file") #t #f
417 (lambda (opt name arg result arg-handler) 419 (lambda (opt name arg result arg-handler)
418 (values (alist-cons 'install 420 (values (alist-cons 'install
419 (load* arg (make-user-module '())) 421 (let ((file (or (and (string-suffix? ".json" arg)
422 (json->scheme-file arg))
423 arg)))
424 (load* file (make-user-module '())))
420 result) 425 result)
421 #f))) 426 #f)))
422 (option '(#\r "remove") #f #t 427 (option '(#\r "remove") #f #t
diff --git a/guix/status.scm b/guix/status.scm
index 4b2edc2f3c3..f40d5d59b96 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -472,8 +472,8 @@ addition to build events."
472 (let ((count (match (assq-ref properties 'graft) 472 (let ((count (match (assq-ref properties 'graft)
473 (#f 0) 473 (#f 0)
474 (lst (or (assq-ref lst 'count) 0))))) 474 (lst (or (assq-ref lst 'count) 0)))))
475 (format port (info (N_ "applying ~a graft for ~a..." 475 (format port (info (N_ "applying ~a graft for ~a ..."
476 "applying ~a grafts for ~a..." 476 "applying ~a grafts for ~a ..."
477 count)) 477 count))
478 count drv))) 478 count drv)))
479 ('profile 479 ('profile
@@ -525,7 +525,7 @@ addition to build events."
525 (newline port))) 525 (newline port)))
526 (('download-started item uri _ ...) 526 (('download-started item uri _ ...)
527 (erase-current-line*) 527 (erase-current-line*)
528 (format port (info (G_ "downloading from ~a...")) uri) 528 (format port (info (G_ "downloading from ~a ...")) uri)
529 (newline port)) 529 (newline port))
530 (('download-progress item uri 530 (('download-progress item uri
531 (= string->number size) 531 (= string->number size)
diff --git a/guix/tests/git.scm b/guix/tests/git.scm
index 21573ac14e5..566660e85e7 100644
--- a/guix/tests/git.scm
+++ b/guix/tests/git.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
3;;; 3;;;
4;;; This file is part of GNU Guix. 4;;; This file is part of GNU Guix.
5;;; 5;;;
@@ -30,6 +30,24 @@
30(define git-command 30(define git-command
31 (make-parameter "git")) 31 (make-parameter "git"))
32 32
33(define (call-with-environment-variables variables thunk)
34 "Call THUNK with the environment VARIABLES set."
35 (let ((environment (environ)))
36 (dynamic-wind
37 (lambda ()
38 (for-each (match-lambda
39 ((variable value)
40 (setenv variable value)))
41 variables))
42 thunk
43 (lambda ()
44 (environ environment)))))
45
46(define-syntax-rule (with-environment-variables variables exp ...)
47 "Evaluate EXP with the given environment VARIABLES set."
48 (call-with-environment-variables variables
49 (lambda () exp ...)))
50
33(define (populate-git-repository directory directives) 51(define (populate-git-repository directory directives)
34 "Initialize a new Git checkout and repository in DIRECTORY and apply 52 "Initialize a new Git checkout and repository in DIRECTORY and apply
35DIRECTIVES. Each element of DIRECTIVES is an sexp like: 53DIRECTIVES. Each element of DIRECTIVES is an sexp like:
@@ -41,8 +59,21 @@ Return DIRECTORY on success."
41 ;; Note: As of version 0.2.0, Guile-Git lacks the necessary bindings to do 59 ;; Note: As of version 0.2.0, Guile-Git lacks the necessary bindings to do
42 ;; all this, so resort to the "git" command. 60 ;; all this, so resort to the "git" command.
43 (define (git command . args) 61 (define (git command . args)
44 (apply invoke (git-command) "-C" directory 62 ;; Make sure Git doesn't rely on the user's config.
45 command args)) 63 (call-with-temporary-directory
64 (lambda (home)
65 (call-with-output-file (string-append home "/.gitconfig")
66 (lambda (port)
67 (display "[user]
68 email = charlie@example.org\n name = Charlie Guix\n"
69 port)))
70
71 (with-environment-variables
72 `(("GIT_CONFIG_NOSYSTEM" "1")
73 ("GIT_ATTR_NOSYSTEM" "1")
74 ("HOME" ,home))
75 (apply invoke (git-command) "-C" directory
76 command args)))))
46 77
47 (mkdir-p directory) 78 (mkdir-p directory)
48 (git "init") 79 (git "init")
diff --git a/guix/ui.scm b/guix/ui.scm
index 1ccc80a000a..ea5f460865c 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -234,8 +234,8 @@ information, or #f if it could not be found."
234 234
235 ;; Give 'load' an absolute file name so that it doesn't try to 235 ;; Give 'load' an absolute file name so that it doesn't try to
236 ;; search for FILE in %LOAD-PATH. Note: use 'load', not 236 ;; search for FILE in %LOAD-PATH. Note: use 'load', not
237 ;; 'primitive-load', so that FILE is compiled, which then allows us 237 ;; 'primitive-load', so that FILE is compiled, which then allows
238 ;; to provide better error reporting with source line numbers. 238 ;; us to provide better error reporting with source line numbers.
239 (load (canonicalize-path file))) 239 (load (canonicalize-path file)))
240 (const #f)))))) 240 (const #f))))))
241 (lambda _ 241 (lambda _
@@ -796,7 +796,7 @@ directories:~{ ~a~}~%")
796 (apply format #f format-string format-args)))))) 796 (apply format #f format-string format-args))))))
797 797
798(define-syntax-rule (leave-on-EPIPE exp ...) 798(define-syntax-rule (leave-on-EPIPE exp ...)
799 "Run EXP... in a context when EPIPE errors are caught and lead to 'exit' 799 "Run EXP... in a context where EPIPE errors are caught and lead to 'exit'
800with successful exit code. This is useful when writing to the standard output 800with successful exit code. This is useful when writing to the standard output
801may lead to EPIPE, because the standard output is piped through 'head' or 801may lead to EPIPE, because the standard output is piped through 'head' or
802similar." 802similar."
@@ -925,7 +925,7 @@ download."
925 drv)) 925 drv))
926 926
927 (define substitutable-info 927 (define substitutable-info
928 ;; Call 'substitutation-oracle' upfront so we don't end up launching the 928 ;; Call 'substitution-oracle' upfront so we don't end up launching the
929 ;; substituter many times. This makes a big difference, especially when 929 ;; substituter many times. This makes a big difference, especially when
930 ;; DRV is a long list as is the case with 'guix environment'. 930 ;; DRV is a long list as is the case with 'guix environment'.
931 (if use-substitutes? 931 (if use-substitutes?
@@ -1251,7 +1251,7 @@ separator between subsequent columns."
1251 1251
1252(define* (indented-string str indent 1252(define* (indented-string str indent
1253 #:key (initial-indent? #t)) 1253 #:key (initial-indent? #t))
1254 "Return STR with each newline preceded by IDENT spaces. When 1254 "Return STR with each newline preceded by INDENT spaces. When
1255INITIAL-INDENT? is true, the first line is also indented." 1255INITIAL-INDENT? is true, the first line is also indented."
1256 (define indent-string 1256 (define indent-string
1257 (make-list indent #\space)) 1257 (make-list indent #\space))
@@ -1534,7 +1534,7 @@ score, the more relevant OBJ is to REGEXPS."
1534 (,(lambda (package) 1534 (,(lambda (package)
1535 (filter (lambda (output) 1535 (filter (lambda (output)
1536 (not (member output 1536 (not (member output
1537 ;; Some common outpus shared by many packages. 1537 ;; Some common outputs shared by many packages.
1538 '("out" "doc" "debug" "lib" "include" "bin")))) 1538 '("out" "doc" "debug" "lib" "include" "bin"))))
1539 (package-outputs package))) 1539 (package-outputs package)))
1540 . 1) 1540 . 1)
@@ -1942,7 +1942,7 @@ found."
1942(define (run-guix . args) 1942(define (run-guix . args)
1943 "Run the 'guix' command defined by command line ARGS. 1943 "Run the 'guix' command defined by command line ARGS.
1944Unlike 'guix-main', this procedure assumes that locale, i18n support, 1944Unlike 'guix-main', this procedure assumes that locale, i18n support,
1945and signal handling has already been set up." 1945and signal handling have already been set up."
1946 (define option? (cut string-prefix? "-" <>)) 1946 (define option? (cut string-prefix? "-" <>))
1947 1947
1948 ;; The default %LOAD-EXTENSIONS includes the empty string, which doubles the 1948 ;; The default %LOAD-EXTENSIONS includes the empty string, which doubles the