Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2020-04-19 16:53:01 +02:00
commit 7abe35febe
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
59 changed files with 1075 additions and 503 deletions

View File

@ -669,7 +669,7 @@ GUIX_FOR_BINARY_TARBALL = guile3.0-guix
# The self-contained tarball.
guix-binary.%.tar.xz:
$(AM_V_GEN)GUIX_PACKAGE_PATH= \
tarball=`$(top_builddir)/pre-inst-env guix pack -K -C xz \
tarball=`$(top_builddir)/pre-inst-env guix pack -C xz \
--fallback \
-s "$*" --localstatedir --profile-name=current-guix \
$(GUIX_FOR_BINARY_TARBALL)` ; \
@ -819,6 +819,7 @@ release: dist-with-updated-version
for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \
image=`$(top_builddir)/pre-inst-env \
guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \
--save-provenance \
--system=$$system --fallback \
gnu/system/examples/vm-image.tmpl` ; \
if [ ! -f "$$image" ] ; then \

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -147,11 +148,11 @@
("mthl"
"F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37")
("nckx"
;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
"7E8F AED0 0944 78EF 72E6 4D16 D889 B0F0 18C5 493C")
("nckx (2nd)"
;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
"F5DA 2032 4B87 3D0B 7A38 7672 0DB0 FF88 4F55 6D79")
("nckx (revoked; not compromised)"
;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
"7E8F AED0 0944 78EF 72E6 4D16 D889 B0F0 18C5 493C")
("niedzejkob"
"E576 BFB2 CF6E B13D F571 33B9 E315 A758 4613 1564")
("ngz"

View File

@ -77,6 +77,7 @@ Copyright @copyright{} 2020 Jakub Kądziołka@*
Copyright @copyright{} 2020 Jack Hill@*
Copyright @copyright{} 2020 Naga Malleswari@*
Copyright @copyright{} 2020 Brice Waegeneire@*
Copyright @copyright{} 2020 R Veera Kumar@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -547,7 +548,14 @@ We recommend the use of this
@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
shell installer script}. The script automates the download, installation, and
initial configuration steps described below. It should be run as the root
user.
user. As root, you can thus run this:
@example
cd /tmp
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
chmod +x guix-install.sh
./guix-install.sh
@end example
@end quotation
Installing goes along these lines:
@ -651,7 +659,7 @@ with these commands:
@example
# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
/etc/systemd/system/
# systemctl start guix-daemon && systemctl enable guix-daemon
# systemctl enable --now guix-daemon
@end example
If 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
development snapshots and create reproducible development environments
(@pxref{Invoking guix environment}).
The @var{file} may also contain a JSON representation of one or more
package definitions. Running @code{guix package -f} on
@file{hello.json} with the following contents would result in installing
the package @code{greeter} after building @code{myhello}:
@example
@verbatiminclude package-hello.json
@end example
@item --remove=@var{package} @dots{}
@itemx -r @var{package} @dots{}
Remove the specified @var{package}s.
@ -4616,8 +4633,8 @@ served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:
@example
$ wget -O - \
https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \
| bunzip2 | guix archive -x /tmp/emacs
https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \
| gunzip | guix archive -x /tmp/emacs
@end example
Single-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
unsafe.
The primary purpose of this operation is to facilitate inspection of
archive contents coming from possibly untrusted substitute servers.
archive contents coming from possibly untrusted substitute servers
(@pxref{Invoking guix challenge}).
@item --list
@itemx -t
@ -5807,7 +5825,7 @@ or a list of such values.
@item @code{home-page}
The URL to the home-page of the package, as a string.
@item @code{supported-systems} (default: @var{%supported-systems})
@item @code{supported-systems} (default: @code{%supported-systems})
The list of systems supported by the package, as strings of the form
@code{architecture-kernel}, for example @code{"x86_64-linux"}.
@ -6171,7 +6189,6 @@ if they are defined by the crate.
@defvr {Scheme Variable} copy-build-system
@cindex (copy build system)
This variable is exported by @code{(guix build-system copy)}. It
supports builds of simple packages that don't require much compiling,
mostly just moving files around.
@ -7371,7 +7388,7 @@ increments the current state value:
@result{} 3
@end lisp
When ``run'' through @var{%state-monad}, we obtain that additional state
When ``run'' through @code{%state-monad}, we obtain that additional state
value, which is the number of @code{square} calls.
@end defvr
@ -7403,7 +7420,7 @@ The main interface to the store monad, provided by the @code{(guix
store)} module, is as follows.
@defvr {Scheme Variable} %store-monad
The store monad---an alias for @var{%state-monad}.
The store monad---an alias for @code{%state-monad}.
Values in the store monad encapsulate accesses to the store. When its
effect is needed, a value of the store monad must be ``evaluated'' by
@ -7764,7 +7781,7 @@ information about monads.)
[#:system (%current-system)] [#:target #f] [#:graft? #t] @
[#:hash #f] [#:hash-algo #f] @
[#:recursive? #f] [#:env-vars '()] [#:modules '()] @
[#:module-path @var{%load-path}] @
[#:module-path @code{%load-path}] @
[#:effective-version "2.2"] @
[#:references-graphs #f] [#:allowed-references #f] @
[#:disallowed-references #f] @
@ -8068,7 +8085,7 @@ item. This is achieved using the @code{lower-object} monadic procedure.
@deffn {Monadic Procedure} lower-object @var{obj} [@var{system}] @
[#:target #f]
Return as a value in @var{%store-monad} the derivation or store item
Return as a value in @code{%store-monad} the derivation or store item
corresponding to @var{obj} for @var{system}, cross-compiling for
@var{target} if @var{target} is true. @var{obj} must be an object that
has 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
@include package-hello.scm
@end lisp
The @var{file} may also contain a JSON representation of one or more
package definitions. Running @code{guix build -f} on @file{hello.json}
with the following contents would result in building the packages
@code{myhello} and @code{greeter}:
@example
@verbatiminclude package-hello.json
@end example
@item --manifest=@var{manifest}
@itemx -m @var{manifest}
Build all packages listed in the given @var{manifest}
@ -10555,8 +10581,8 @@ Alternately, we can do something along these lines (@pxref{Invoking guix
archive}):
@example
$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \
| guix archive -x /tmp/git
$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \
| lzip -d | guix archive -x /tmp/git
$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git
@end example
@ -11234,7 +11260,7 @@ By that, we mean all the global system configuration, not per-user
configuration (@pxref{Using the Configuration System}).
@table @asis
@item @code{kernel} (default: @var{linux-libre})
@item @code{kernel} (default: @code{linux-libre})
The package object of the operating system kernel to use@footnote{Currently
only the Linux-libre kernel is supported. In the future, it will be
possible to use the GNU@tie{}Hurd.}.
@ -11391,11 +11417,11 @@ As a user you should @emph{never} need to touch this field.
Linux @dfn{pluggable authentication module} (PAM) services.
@c FIXME: Add xref to PAM services section.
@item @code{setuid-programs} (default: @var{%setuid-programs})
@item @code{setuid-programs} (default: @code{%setuid-programs})
List of string-valued G-expressions denoting setuid programs.
@xref{Setuid Programs}.
@item @code{sudoers-file} (default: @var{%sudoers-specification})
@item @code{sudoers-file} (default: @code{%sudoers-specification})
@cindex sudoers file
The contents of the @file{/etc/sudoers} file as a file-like object
(@pxref{G-Expressions, @code{local-file} and @code{plain-file}}).
@ -11561,7 +11587,7 @@ variables.
@defvr {Scheme Variable} %base-file-systems
These are essential file systems that are required on normal systems,
such as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see
such as @code{%pseudo-terminal-file-system} and @code{%immutable-store} (see
below.) Operating system declarations should always contain at least
these.
@end defvr
@ -12628,7 +12654,7 @@ and caches.
@defvr {Scheme Variable} %nscd-default-configuration
This is the default @code{<nscd-configuration>} value (see below) used
by @code{nscd-service}. It uses the caches defined by
@var{%nscd-default-caches}; see below.
@code{%nscd-default-caches}; see below.
@end defvr
@deftp {Data Type} nscd-configuration
@ -12653,7 +12679,7 @@ Name of the nscd log file. This is where debugging output goes when
Integer denoting the debugging levels. Higher numbers mean that more
debugging output is logged.
@item @code{caches} (default: @var{%nscd-default-caches})
@item @code{caches} (default: @code{%nscd-default-caches})
List of @code{<nscd-cache>} objects denoting things to be cached; see
below.
@ -12925,7 +12951,7 @@ well as in the @var{groups} field of the @var{operating-system} record.
@end lisp
@defvr {Scheme Variable} urandom-seed-service-type
Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom}
Save some entropy in @code{%random-seed-file} to seed @file{/dev/urandom}
when rebooting. It also tries to seed @file{/dev/urandom} from
@file{/dev/hwrng} while booting, if @file{/dev/hwrng} exists and is
readable.
@ -13304,7 +13330,7 @@ Either @code{#f} or a gexp to execute once the rotation has completed.
@end deftp
@defvr {Scheme Variable} %default-rotations
Specifies weekly rotation of @var{%rotated-files} and of
Specifies weekly rotation of @code{%rotated-files} and of
@file{/var/log/guix-daemon.log}.
@end defvr
@ -13764,7 +13790,7 @@ clock synchronized with that of the given servers.
@defvr {Scheme Variable} %openntpd-servers
This variable is a list of the server addresses defined in
@var{%ntp-servers}.
@code{%ntp-servers}.
@end defvr
@deftp {Data Type} openntpd-configuration
@ -13782,7 +13808,7 @@ See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more
information.
@item @code{server} (default: @code{'()})
Specify a list of IP addresses or hostnames of NTP servers to synchronize to.
@item @code{servers} (default: @var{%openntp-servers})
@item @code{servers} (default: @code{%openntp-servers})
Specify a list of IP addresses or hostnames of NTP pools to synchronize to.
@item @code{constraint-from} (default: @code{'()})
@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.
@cindex dictionary
The @code{(gnu services dict)} module provides the following service:
@defvr {Scheme Variable} dicod-service-type
This is the type of the service that runs the @command{dicod} daemon, an
implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}).
@end defvr
@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)]
Return a service that runs the @command{dicod} daemon, an implementation
of 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:
The file should evaluate to a list of @var{machine} objects. This example,
upon being deployed, will create a new generation on the remote system
realizing the @code{operating-system} declaration @var{%system}.
@var{environment} and @var{configuration} specify how the machine should be
realizing the @code{operating-system} declaration @code{%system}.
@code{environment} and @code{configuration} specify how the machine should be
provisioned---that is, how the computing resources should be created and
managed. The above example does not create any resources, as a
@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
commonly-used tools. You can install more software in the image by running
@command{guix package} in a terminal (@pxref{Invoking guix package}). You can
also reconfigure the system based on its initial configuration file available
as @file{/etc/config.scm} (@pxref{Using the Configuration System}).
as @file{/run/current-system/configuration.scm} (@pxref{Using the
Configuration System}).
Instead of using this pre-built image, one can also build their own virtual
machine image using @command{guix system vm-image} (@pxref{Invoking guix

View File

@ -53,7 +53,8 @@ EXTRA_DIST += \
$(DOT_VECTOR_GRAPHICS) \
%D%/images/coreutils-size-map.eps \
%D%/environment-gdb.scm \
%D%/package-hello.scm
%D%/package-hello.scm \
%D%/package-hello.json
OS_CONFIG_EXAMPLES_TEXI = \
%D%/os-config-bare-bones.texi \

31
doc/package-hello.json Normal file
View File

@ -0,0 +1,31 @@
[
{
"name": "myhello",
"version": "2.10",
"source": "mirror://gnu/hello/hello-2.10.tar.gz",
"build-system": "gnu",
"arguments": {
"tests?": false
}
"home-page": "https://www.gnu.org/software/hello/",
"synopsis": "Hello, GNU world: An example GNU package",
"description": "GNU Hello prints a greeting.",
"license": "GPL-3.0+",
"native-inputs": ["gettext"]
},
{
"name": "greeter",
"version": "1.0",
"source": "https://example.com/greeter-1.0.tar.gz",
"build-system": "gnu",
"arguments": {
"test-target": "foo",
"parallel-build?": false,
},
"home-page": "https://example.com/",
"synopsis": "Greeter using GNU Hello",
"description": "This is a wrapper around GNU Hello.",
"license": "GPL-3.0+",
"inputs": ["myhello", "hello"]
}
]

View File

@ -301,25 +301,6 @@ selected keymap."
((installer-final-page current-installer)
result prev-steps))))))))
(define guile-newt
;; Guile-Newt with 'form-watch-fd'.
;; TODO: Remove once a new release is out.
(let ((commit "c3cdeb0b53ac71aedabee669f57d44563c662446")
(revision "2"))
(package
(inherit (@ (gnu packages guile-xyz) guile-newt))
(name "guile-newt")
(version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/mothacehe/guile-newt")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09")))))))
(define (installer-program)
"Return a file-like object that runs the given INSTALLER."
(define init-gettext
@ -377,6 +358,7 @@ selected keymap."
(gnu installer services)
(gnu installer timezone)
(gnu installer user)
(gnu installer utils)
(gnu installer newt)
((gnu installer newt keymap)
#:select (keyboard-layout->configuration))

View File

@ -393,6 +393,7 @@ interactive connmanctl process."
(dynamic-wind
(const #t)
(lambda ()
(setvbuf pipe 'line)
(run-connection-sequence pipe)
#t)
(lambda ()

View File

@ -1387,6 +1387,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-jedi-sort-project-test.patch \
%D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-testtools.patch \

View File

@ -790,7 +790,7 @@ connection alive.")
(define-public isc-dhcp
(let* ((bind-major-version "9")
(bind-minor-version "11")
(bind-patch-version "14")
(bind-patch-version "18")
(bind-release-type "") ; for patch release, use "-P"
(bind-release-version "") ; for patch release, e.g. "6"
(bind-version (string-append bind-major-version
@ -927,7 +927,7 @@ connection alive.")
"/bind-" bind-version ".tar.gz"))
(sha256
(base32
"1pv3bvm9dzyz2kqjkw15sgh0hd5fzsv274v5z6jp9c4nb5130fyr"))))
"0vws0zzb39mkphj4hhjrgfj9dzw951lc4pfa6pqg5ll5ma51mbsr"))))
;; When cross-compiling, we need the cross Coreutils and sed.
;; Otherwise just use those from %FINAL-INPUTS.

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darringon <jmd@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
@ -157,39 +157,34 @@ Python as well as GUI widgets for GTK and Qt.")
(license license:lgpl2.1+)))
(define-public qrcodegen-cpp
;; Currently this project's installation mechanism only exists as a GitHub
;; pull request, so we build from a recent commit that the proposed patch
;; applies to.
(let ((commit "6ea933f1596d818bd21e9a6b8d2e851fb8b4bcf1")
(revision "0"))
(package
(name "qrcodegen-cpp")
(version (git-version "1.5.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nayuki/QR-Code-generator.git")
(commit commit)))
(file-name (git-file-name name version))
(patches (search-patches "qrcodegen-cpp-make-install.patch"))
(sha256
(base32
"19fcwqmfk2n9p2n01dv2j4x2y2mqip0j1wbmfbxjp34rqkjwcwxm"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; No ./configure script
;; Only build the C++ variant.
(add-after 'unpack 'chdir
(lambda _
(chdir "cpp")
#t)))))
(synopsis "QR Code generator library")
(description "qrcodegen-cpp is a QR code generator library in C++. The
(package
(name "qrcodegen-cpp")
(version "1.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nayuki/QR-Code-generator.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(patches (search-patches "qrcodegen-cpp-make-install.patch"))
(sha256
(base32
"0iq9sv9na0vg996aqrxrjn9rrbiyy7sc9vslw945p3ky22pw3lql"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; No ./configure script
;; Only build the C++ variant.
(add-after 'unpack 'chdir
(lambda _
(chdir "cpp")
#t)))))
(synopsis "QR Code generator library")
(description "qrcodegen-cpp is a QR code generator library in C++. The
project also offers Java, Javascript, Python, C, and Rust implementations.")
(home-page "https://www.nayuki.io/page/qr-code-generator-library")
(license license:expat))))
(home-page "https://www.nayuki.io/page/qr-code-generator-library")
(license license:expat)))

View File

@ -2,6 +2,7 @@
;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -32,23 +33,23 @@
(define-public augeas
(package
(name "augeas")
(version "1.11.0")
(version "1.12.0")
(source (origin
(method url-fetch)
(uri (string-append "http://download.augeas.net/augeas-"
version ".tar.gz"))
(sha256
(base32
"1c507qj6dfn2dnsl27w94zs9r45xrgm07y8bqba9ry2s0psfhg1r"))))
"11ybhb13wkkilsn7b416a1dn61m1xrq0lbdpkhp5w61jrk4l469j"))))
(build-system gnu-build-system)
;; Marked as "required" in augeas.pc
;; Marked as "required" in augeas.pc.
(propagated-inputs
`(("libxml2" ,libxml2)))
(inputs
`(("readline" ,readline)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://augeas.net/")
(home-page "https://augeas.net")
(synopsis "Edit configuration files programmatically")
(description
"Augeas is a library and command line tool for programmatically editing

View File

@ -92,6 +92,7 @@
("par2cmdline" ,par2cmdline)
("python-pexpect" ,python2-pexpect)
("python-fasteners" ,python2-fasteners)
("tzdata" ,tzdata-for-tests)
("mock" ,python2-mock)))
(propagated-inputs
`(("lockfile" ,python2-lockfile)
@ -100,8 +101,7 @@
`(("librsync" ,librsync-0.9)
("lftp" ,lftp)
("gnupg" ,gnupg) ; gpg executable needed
("util-linux" ,util-linux) ; for setsid
("tzdata" ,tzdata)))
("util-linux" ,util-linux))) ; for setsid
(arguments
`(#:python ,python-2 ; setup assumes Python 2
#:test-target "test"

View File

@ -2313,6 +2313,8 @@ possible, parallelization is achieved using the BiocParallel framework.")
("r-tidyr" ,r-tidyr)
("r-tidyselect" ,r-tidyselect)
("r-vim" ,r-vim)))
(native-inputs
`(("r-nbconvertr" ,r-nbconvertr))) ; for vignettes
(home-page "https://bioconductor.org/packages/destiny/")
(synopsis "Create and plot diffusion maps")
(description "This package provides tools to create and plot diffusion
@ -3529,6 +3531,8 @@ to multiple hypothesis correction.")
("r-qvalue" ,r-qvalue)
("r-reshape2" ,r-reshape2)
("r-s4vectors" ,r-s4vectors)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://guangchuangyu.github.io/software/DOSE/")
(synopsis "Disease ontology semantic and enrichment analysis")
(description
@ -3899,6 +3903,8 @@ further downstream analysis on its output.")
`(("r-biocparallel" ,r-biocparallel)
("r-ellipse" ,r-ellipse)
("r-ggplot2" ,r-ggplot2)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/bacon/")
(synopsis "Controlling bias and inflation in association studies")
(description
@ -6733,6 +6739,8 @@ using whole genome sequencing data.")
`(("r-data-table" ,r-data-table)
("r-ggplot2" ,r-ggplot2)
("r-metap" ,r-metap)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://cran.r-project.org/web/packages/ActivePathways/")
(synopsis "Multivariate pathway enrichment analysis")
(description
@ -7105,6 +7113,8 @@ structures.")
("r-rjson" ,r-rjson)
("r-rsqlite" ,r-rsqlite)
("r-xml" ,r-xml)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/TylerBackman/bioassayR")
(synopsis "Cross-target analysis of small molecule bioactivity")
(description

View File

@ -2399,13 +2399,13 @@ files.")
(define-public python-pybigwig
(package
(name "python-pybigwig")
(version "0.3.12")
(version "0.3.17")
(source (origin
(method url-fetch)
(uri (pypi-uri "pyBigWig" version))
(sha256
(base32
"00w4kfnm2c5l7wdwr2nj1z5djv8kzgf7h1zhsgv6njff1rwr26g0"))
"157x6v48y299zm382krf1dw08fdxg95im8lnabhp5vc94s04zxj1"))
(modules '((guix build utils)))
(snippet
'(begin
@ -13642,32 +13642,34 @@ fasta subsequences.")
(define-public python-cooler
(package
(name "python-cooler")
(version "0.7.11")
(version "0.8.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cooler" version))
(sha256
(base32
"08k5nxnxa6qsbk15z5z0q01n28042k87wi4905hh95rzqib15mhx"))))
"01g6gqix9ba27sappz6nfyiwabzrlf8i5fn8kwcz8ra356cq9crp"))))
(build-system python-build-system)
(propagated-inputs
`(("python-biopython" ,python-biopython)
`(("python-asciitree" ,python-asciitree)
("python-biopython" ,python-biopython)
("python-click" ,python-click)
("python-cytoolz" ,python-cytoolz)
("python-dask" ,python-dask)
("python-h5py" ,python-h5py)
("python-multiprocess" ,python-multiprocess)
("python-numpy" ,python-numpy)
("python-pandas" ,python-pandas)
("python-pyfaidx" ,python-pyfaidx)
("python-pypairix" ,python-pypairix)
("python-pysam" ,python-pysam)
("python-scipy" ,python-scipy)))
("python-pyyaml" ,python-pyyaml)
("python-scipy" ,python-scipy)
("python-simplejson" ,python-simplejson)))
(native-inputs
`(("python-mock" ,python-mock)
("python-nose" ,python-nose)
("python-numpydoc" ,python-numpydoc)
("python-sphinx" ,python-sphinx)))
("python-pytest" ,python-pytest)))
(home-page "https://github.com/mirnylab/cooler")
(synopsis "Sparse binary format for genomic interaction matrices")
(description
@ -13676,6 +13678,46 @@ storage format, called @code{cool}, used to store genomic interaction data,
such as Hi-C contact matrices.")
(license license:bsd-3)))
(define-public python-hicmatrix
(package
(name "python-hicmatrix")
(version "12")
(source
(origin
;; Version 12 is not available on pypi.
(method git-fetch)
(uri (git-reference
(url "https://github.com/deeptools/HiCMatrix.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1xhdyx16f3brgxgxybixdi64ki8nbbkq5vk4h9ahi11pzpjfn1pj"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* '("requirements.txt"
"setup.py")
(("cooler *=+ *0.8.5")
"cooler==0.8.*"))
#t)))))
(propagated-inputs
`(("python-cooler" ,python-cooler)
("python-intervaltree" ,python-intervaltree)
("python-numpy" ,python-numpy)
("python-pandas" ,python-pandas)
("python-scipy" ,python-scipy)
("python-tables" ,python-tables)))
(home-page "https://github.com/deeptools/HiCMatrix/")
(synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
(description
"This helper package implements the @code{HiCMatrix} class for
the HiCExplorer and pyGenomeTracks packages.")
(license license:gpl3+)))
(define-public python-hicexplorer
(package
(name "python-hicexplorer")
@ -13732,23 +13774,35 @@ genomic scores), long range contacts and the visualization of viewpoints.")
(define-public python-pygenometracks
(package
(name "python-pygenometracks")
(version "2.0")
(version "3.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyGenomeTracks" version))
(sha256
(base32
"1fws6bqsyy9kj3qiabhkqx4wd4i775gsxnhszqd3zg7w67sc1ic5"))))
"16laa0wnf4qn9fb9ych4w1vqhqwjss70v0y0f6wp4gwqfrlgac0f"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; there are none
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
(("matplotlib ==3.1.1")
"matplotlib >=3.1.1"))
#t)))))
(propagated-inputs
`(("python-configparser" ,python-configparser)
("python-future" ,python-future)
("python-hicexplorer" ,python-hicexplorer)
`(("python-future" ,python-future)
("python-gffutils" ,python-gffutils)
("python-hicmatrix" ,python-hicmatrix)
("python-intervaltree" ,python-intervaltree)
("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)
("python-pybigwig" ,python-pybigwig)))
("python-pybigwig" ,python-pybigwig)
("python-pysam" ,python-pysam)
("python-tqdm" ,python-tqdm)))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://pygenometracks.readthedocs.io")

View File

@ -186,7 +186,17 @@ data units.")
(uri (pypi-uri "khal" version))
(sha256
(base32
"1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))))
"1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))
(patches
(list
(origin
(method url-fetch)
;; This patch fixes an issue with python-urwid-2.1.0
(uri "https://github.com/pimutils/khal/commit/2c5990c2de2015b251ba23617faa40ee11b8c22a.patch")
(file-name "khal-compat-urwid-2.1.0.patch")
(sha256
(base32
"11nd8hkjz68imwqqn0p54zmb53z2pfxmzchaviy7jc1ky5s9l663")))))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -219,9 +229,8 @@ data units.")
("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
("python-sphinx" ,python-sphinx)))
(inputs
`(("sqlite" ,sqlite)))
(propagated-inputs
`(("python-configobj" ,python-configobj)
`(("sqlite" ,sqlite)
("python-configobj" ,python-configobj)
("python-dateutil" ,python-dateutil)
("python-icalendar" ,python-icalendar)
("python-tzlocal" ,python-tzlocal)

View File

@ -248,7 +248,7 @@ from forcing GEXP-PROMISE."
#:system system
#:guile-for-build guile)))
(define %chromium-version "81.0.4044.92")
(define %chromium-version "81.0.4044.113")
(define %ungoogled-revision "b484ad4c0bdb696c86d941798ae6b0e2bd0db35d")
(define %debian-revision "debian/81.0.4044.92-1")
(define package-revision "0")
@ -264,7 +264,7 @@ from forcing GEXP-PROMISE."
%chromium-version ".tar.xz"))
(sha256
(base32
"0i0szd749ihb08rxnsmsbxq75b6x952wpk94jwc0ncv6gb83zkx2"))))
"0hsxxw7fm1p8g53msqb644v8vr4cpvjmpln444c2268rm43yik17"))))
(define %ungoogled-origin
(origin

View File

@ -3,7 +3,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
@ -47,20 +47,20 @@
#:use-module (guix build-system gnu))
(define-public cuirass
(let ((commit "b9031db946ff89a39e1507b430f64402b0e9572a")
(revision "28"))
(let ((commit "27af1d34646f4e3fca09283cb52caa8b89cbb2b1")
(revision "29"))
(package
(name "cuirass")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
(version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/guix/guix-cuirass.git")
(commit commit)))
(file-name (string-append name "-" version))
(file-name (git-file-name name version))
(sha256
(base32
"103smfbdpgaw17xw3vc9cb3nfisrx64k71rpzn8g35f3jz7bxdcf"))))
"199fzv4d18qslcggl7lj42ib600nckp0c40x7ahnb4rgnjw8ppyi"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)

View File

@ -503,7 +503,7 @@ than gzip and 15 % smaller output than bzip2.")
"/share/zoneinfo"))
#t)))))
(native-inputs
`(("tzdata" ,tzdata)))
`(("tzdata" ,tzdata-for-tests)))
(home-page "https://fragglet.github.com/lhasa/")
(synopsis "LHA archive decompressor")
(description "Lhasa is a replacement for the Unix LHA tool, for

View File

@ -12306,6 +12306,8 @@ select colors to use in your R code.")
("r-scales" ,r-scales)
("r-shiny" ,r-shiny)
("r-shinyjs" ,r-shinyjs)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/daattali/ggExtra")
(synopsis "Marginal histograms for ggplot2 and other enhancements")
(description
@ -18006,6 +18008,8 @@ allowed.")
("r-rsolnp" ,r-rsolnp)
("r-shiny" ,r-shiny)
("r-shinydashboard" ,r-shinydashboard)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/Wenchao-Ma/GDINA")
(synopsis "Generalized DINA model framework")
(description
@ -20620,7 +20624,7 @@ techniques to average Bayesian predictive distributions.")
"/share/zoneinfo"))
#t)))))
(native-inputs
`(("tzdata" ,tzdata)
`(("tzdata" ,tzdata-for-tests)
("pandoc" ,ghc-pandoc)))
(propagated-inputs
`(("r-bh" ,r-bh)
@ -21102,3 +21106,28 @@ client).")
designs with and without early outcomes for treatment selection and
subpopulation type designs.")
(license license:gpl3)))
(define-public r-nbconvertr
(package
(name "r-nbconvertr")
(version "1.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "nbconvertR" version))
(sha256
(base32
"0yhmz177r1miain65vspclahhz8cg7638ldbpsw8ylgf7a60l0sg"))))
(properties `((upstream-name . "nbconvertR")))
(build-system r-build-system)
(inputs
`(("jupyter" ,python-nbconvert)
("pandoc" ,ghc-pandoc)))
(home-page "https://cran.r-project.org/web/packages/nbconvertR/")
(synopsis "Vignette engine wrapping Jupyter notebooks")
(description
"This package calls the Jupyter script @code{nbconvert} to create
vignettes from notebooks. Those notebooks (@code{.ipynb} files) are files
containing rich text, code, and its output. Code cells can be edited and
evaluated interactively.")
(license license:gpl3)))

View File

@ -508,7 +508,7 @@ replacement for the code@{python-memcached} library.")
("python" ,python-2)
("python2-pymongo" ,python2-pymongo)
("python2-pyyaml" ,python2-pyyaml)
("tzdata" ,tzdata)))
("tzdata" ,tzdata-for-tests)))
(arguments
`(#:scons ,scons-python2
#:phases

View File

@ -45,6 +45,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages mono)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages package-management)
@ -68,7 +69,7 @@
#:use-module (ice-9 match))
(define-public diffoscope
(let ((version "139"))
(let ((version "141"))
(package
(name "diffoscope")
(version version)
@ -80,7 +81,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"1k4yjyvmn5nfdapkwgkr9gzpn18kr4c58n0f32pfkx4yakfqkk4i"))))
"0pls2jryx394ysaz0g8h959lhrsdqak9bkxjd5r6sdckgiikplkj"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -91,6 +92,12 @@
(lambda _
(substitute* "setup.py"
(("'python-magic',") ""))))
;; Patch in support for known tools
(add-after 'unpack 'add-known-tools
(lambda _
(substitute* "diffoscope/external_tools.py"
(("'debian': 'hdf5-tools'")
"'debian': 'hdf5-tools', 'guix': 'hdf5'"))))
;; This test is broken because our `file` package has a
;; bug in berkeley-db file type detection.
(add-after 'unpack 'remove-berkeley-test
@ -189,6 +196,7 @@
("giflib:bin" ,giflib "bin")
("gnumeric" ,gnumeric)
("gnupg" ,gnupg)
("hdf5" ,hdf5)
("imagemagick" ,imagemagick)
("libarchive" ,libarchive)
("llvm" ,llvm)

View File

@ -115,7 +115,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind
(package
(name "bind")
(version "9.16.1")
(version "9.16.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -123,7 +123,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.xz"))
(sha256
(base32
"14ayswxnyaqwb935iqdi1w9ih3zs0a0va59j4cyi5f9mh7kxf4x9"))))
"0gwr4p14zy5jqq050n762rfc33km51qwipcwy6bsvk55ziybgrfr"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs

View File

@ -6,6 +6,7 @@
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -31,6 +32,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages flex)
#:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages game-development)
@ -43,12 +45,14 @@
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
#:use-module (gnu packages mp3)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
@ -935,3 +939,40 @@ TuxMath also includes Factoroids, a game that gives practice in
factoring numbers and simplifying fractions, as well as zapping rocks
floating through space.")
(license license:gpl3+)))
(define-public mdk
(package
(name "mdk")
(version "1.2.10")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/mdk/v1.2.10/mdk-"
version ".tar.gz"))
(sha256
(base32
"1rwcq2b5vvv7318j92nxc5dayj27dpfhzc4rjiv4ccvsc0x35x5h"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-gui=yes" "-with-readline=yes")))
(native-inputs
`(("flex" ,flex)
("pkg-config" ,pkg-config)
("intltool" ,intltool)
("ncurses" ,ncurses)))
(inputs
`(("readline" ,readline)
("glib" ,glib)
("gtk+" ,gtk+)
("pango" ,pango)
("libglade" ,libglade)))
(home-page "https://www.gnu.org/software/mdk/")
(synopsis "Virtual development environment for Knuth's MIX")
(description
"GNU MDK is the Mix Development Kit, an emulation of the pedagogical
computer MIX and its assembly language MIXAL. MIX has a virtual CPU with
standard features such as registers, memory cells, an overflow toggle,
comparison flags, input-output devices, and a set of binary instructions.
The package includes a compiler, a virtual machine, a GUI for the virtual
machine, and more.")
(license license:gpl3+)))

View File

@ -4975,7 +4975,7 @@ number.")
(define-public emacs-org-superstar
(package
(name "emacs-org-superstar")
(version "1.1.0")
(version "1.2.1")
(source
(origin
(method git-fetch)
@ -4984,7 +4984,7 @@ number.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "14aafqw8rnbmiy3kcw1a58vjxdyamrbmlldnlw018wgk0qqv0xpx"))))
(base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-org" ,emacs-org)))

View File

@ -249,7 +249,7 @@ from the jfsutils package. It is meant to be used in initrds.")
(define-public disorderfs
(package
(name "disorderfs")
(version "0.5.8")
(version "0.5.9")
(source
(origin
(method git-fetch)
@ -259,7 +259,7 @@ from the jfsutils package. It is meant to be used in initrds.")
(file-name (git-file-name name version))
(sha256
(base32
"0pk9i0dycjq0wl6dp37r2hbadgpgmzbmjk2xpbjl36x4yrm4jns8"))))
"0irgr9hkm9icx1s44m9382484yx8hddzjxbsz621ip9c946pif0g"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -13,7 +13,7 @@
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
@ -41,6 +41,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system emacs)
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
@ -241,11 +242,11 @@ and dynamically with report tools based on filtering and graphical charts.")
("libedit" ,libedit)
("mpfr" ,mpfr)
("python" ,python-2)
("tzdata" ,tzdata)
("utfcpp" ,utfcpp)))
(native-inputs
`(("groff" ,groff)
("texinfo" ,texinfo)))
("texinfo" ,texinfo)
("tzdata" ,tzdata-for-tests)))
(home-page "https://ledger-cli.org/")
(synopsis "Command-line double-entry accounting program")
(description
@ -1165,10 +1166,37 @@ information.")
(home-page "https://grisbi.org")
(license license:gpl2+)))
(define-public trezord-udev-rules
(let ((commit "bff7fdfe436c727982cc553bdfb29a9021b423b0")
(revision "0"))
(package
(name "trezord-udev-rules")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/trezor/trezor-common.git")
(commit commit)))
(sha256
(base32
"14mrirrn68if7ja6qdk9qlxs1hv0f21vrxy5ncnms0gx9iwakp2l"))
(file-name (git-file-name name version))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("./udev/51-trezor.rules" "lib/udev/rules.d/"))))
(home-page "https://github.com/trezor/trezor-common")
(synopsis "Udev rules for trezord")
(description
"This contains the udev rules for trezord. This will let a user run
trezord as a regular user instead of needing to it run as root.")
(license license:lgpl3+))))
(define-public trezord
(package
(name "trezord")
(version "2.0.17")
(version "2.0.29")
(source
(origin
(method git-fetch)
@ -1177,7 +1205,7 @@ information.")
(commit (string-append "v" version))))
(sha256
(base32
"0nqzpq0i3crh0i4r1cppja5sn3rwi1fv9afxzwzv63096x5l30a7"))
"1ks1fa0027s3xp0z6qp0dxmayvrb4dwwscfhbx7da0khp153f2cp"))
(file-name (git-file-name name version))))
(build-system go-build-system)
(arguments
@ -1405,14 +1433,14 @@ a Qt GUI.")
(define-public fulcrum
(package
(name "fulcrum")
(version "1.0.5b")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://gitlab.com/FloweeTheHub/fulcrum/-/archive/v"
version "/fulcrum-v" version ".tar.gz"))
(sha256
(base32 "1c1hkik8avill8ha33g76rk4b03j5ac8wiml69q4jav7a63ywgfy"))))
(base32 "1xywwgsdhkiblv6la0pfhvn2s9q8vnz6pjg35647rlwzi6ybf0ak"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -1440,6 +1468,71 @@ walets in a fast and small server. The full data is stored in a full node,
like Flowee the Hub, which Fulcrum connects to over RPC.")
(license license:gpl3+)))
(define-public flowee
(package
(name "flowee")
(version "2020.03.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://gitlab.com/FloweeTheHub/thehub/-/archive/"
version "/thehub-" version ".tar.gz"))
(sha256
(base32 "1ajd5axv9zyhh6njrvamm11zn52j1q4j3mwn2nfv7cjd4lhnhlsr"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-Dbuild_tests=ON" "-Denable_gui=OFF")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'make-qt-deterministic
(lambda _
;; Make Qt deterministic.
(setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
#t))
(add-before 'configure 'disable-black-box
;; the black-box testing runs full hubs and lets them interact.
;; this is more fragile and a slow machine, or low memory machine, may
;; make the tests timeout and fail. We just disable them here.
(lambda _
(substitute* "testing/CMakeLists.txt"
(("test_api") ""))
#t))
(add-after 'configure 'set-build-info
;; Their genbuild.sh to generate a build.h fails in guix (no .git dir) .
;; Its purpose is to write the tag name in the build.h file. We do that
;; here instead.
(lambda _
(with-output-to-file "include/build.h"
(lambda _
(display
(string-append "#define BUILD_DESC " "\"", version "\""))))))
(add-before 'check 'set-home
(lambda _
(setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
#t))
(replace 'check
(lambda _
(invoke "make" "check" "-C" "testing"))))))
(inputs
`(("boost" ,boost)
("gmp" ,gmp)
("libevent" ,libevent)
("miniupnpc" ,miniupnpc)
("openssl" ,openssl)
("qtbase" ,qtbase)))
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)
("util-linux" ,util-linux))) ; provides the hexdump command for tests
(home-page "https://flowee.org")
(synopsis "Flowee infrastructure tools and services")
(description
"Flowee packages all tier-1 applications and services from the Flowee group.
This includes components like The Hub and Indexer which and various others
that allows you to run services and through them access the Bitcoin Cash networks.")
(license license:gpl3+)))
(define-public beancount
(package
(name "beancount")

View File

@ -19,7 +19,7 @@
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
;;; 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.")
(define-public chess
(package
(name "chess")
(version "6.2.5")
(version "6.2.6")
(source
(origin
(method url-fetch)
@ -1963,13 +1963,15 @@ asynchronously and at a user-defined speed.")
".tar.gz"))
(sha256
(base32
"00j8s0npgfdi41a0mr5w9qbdxagdk2v41lcr42rwl1jp6miyk6cs"))))
"0kxhdv01ia91v2y0cmzbll391ns2vbmn65jjrv37h4s1srszh5yn"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/chess/")
(synopsis "Full chess implementation")
(description "GNU Chess is a chess engine. It allows you to compete
against the computer in a game of chess, either through the default terminal
interface or via an external visual interface such as GNU XBoard.")
(properties '((upstream-name . "gnuchess")
(ftp-directory . "/chess")))
(license license:gpl3+)))
(define freedink-engine

View File

@ -250,6 +250,34 @@ Desktop. It is designed to be as simple as possible and has some unique
features to enable users to create their discs easily and quickly.")
(license license:gpl2+)))
(define-public notification-daemon
(package
(name "notification-daemon")
(version "3.20.0")
(source
(origin
(method url-fetch)
(uri
(string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("gtk+" ,gtk+)
("x11" ,libx11)))
(synopsis "Notification Daemon for GNOME Desktop")
(description "Notification-Daemon is the server implementation of the
freedesktop.org desktop notification specification.")
(home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
(license license:gpl2+)))
(define-public mm-common
(package
(name "mm-common")

View File

@ -38,7 +38,7 @@
(define-public gpodder
(package
(name "gpodder")
(version "3.10.13")
(version "3.10.15")
(source
(origin
(method git-fetch)
@ -47,11 +47,13 @@
(commit version)))
(sha256
(base32
"1h542syaxsx1hslfzlk3fx1nbp190zjw35kigw7a1kx1jwvfwapg"))
"0ghbanj142n0hgydzfjmnkdgri2kswsjal3mn10c723kih4ir4yr"))
(file-name (git-file-name name version))))
(build-system python-build-system)
(native-inputs
`(("intltool" ,intltool)))
`(("intltool" ,intltool)
("python-coverage" ,python-coverage)
("python-minimock" ,python-minimock)))
(inputs
`(("gtk+" ,gtk+)
("python-pygobject" ,python-pygobject)
@ -72,6 +74,12 @@
(substitute* "src/gpodder/util.py"
(("xdg-open") (string-append xdg-utils "/bin/xdg-open")))
#t)))
(replace 'check
(lambda _
; The `unittest' target overrides the PYTHONPATH variable.
(substitute* "makefile"
(("PYTHONPATH=src/") "PYTHONPATH=${PYTHONPATH}:src/"))
(invoke "make" "unittest")))
;; 'msgmerge' introduces non-determinism by resetting the
;; POT-Creation-Date in .po files.
(add-before 'install 'do-not-run-msgmerge
@ -176,7 +184,13 @@ downloading episode status changes.")
(sha256
(base32 "0k62ppg20i41gcc5x8ddjn7zbpy47hqpxzrq9257g2c71m4qw07b"))))
(native-inputs
`(("python-nose" ,python-nose)))
`(("python-coverage" ,python-coverage)
("python-nose" ,python-nose)))
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _ (invoke "nosetests"))))))
(build-system python-build-system)
(home-page "http://gpodder.org/podcastparser")
(synopsis "Simplified and fast RSS parser Python library")

View File

@ -1056,7 +1056,7 @@ format.")
(define-public guile-newt
(package
(name "guile-newt")
(version "0.0.1")
(version "0.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1065,20 +1065,7 @@ format.")
(file-name (git-file-name name version))
(sha256
(base32
"1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695"))
(modules '((guix build utils)))
(snippet
'(begin
;; Allow builds with Guile 3.0.
(substitute* "configure.ac"
(("^GUILE_PKG.*")
"GUILE_PKG([3.0 2.2 2.0])\n"))
;; Remove "guile.m4" since it contains an obsolete version
;; of 'GUILE_PKG' that doesn't work with development
;; versions such as 2.9.
(delete-file "m4/guile.m4")
#t))))
"1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags

View File

@ -1972,7 +1972,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
(define-public libavif
(package
(name "libavif")
(version "0.6.3")
(version "0.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1981,7 +1981,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
(file-name (git-file-name name version))
(sha256
(base32
"0fn2mcpvzw6h9sv8h0icbz10i8ihzzf5d5mx3fc4pvhicyz4syq8"))))
"1xybjbbprvfsrwgysrn7grg6yp7v6ch5vci7zvdcdzcgyrbph172"))))
(build-system cmake-build-system)
(arguments
`(#: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.")
"-DAVIF_BUILD_TESTS=ON")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "./aviftest" "../source/tests/data")))
(add-after 'install 'install-readme
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/libavif-"
,version)))
(install-file "../source/README.md" doc)))))
;; The test suite runs tests for all supported codecs and fails because we don't
;; have rav1e yet.
;; (replace 'check
;; (lambda _
;; (invoke "./aviftest" "../source/tests/data"))))
#:tests? #f))
(doc (string-append out "/share/doc/libavif-" ,version)))
(install-file "../source/README.md" doc)
#t))))))
(inputs
`(("libaom" ,libaom)
("dav1d" ,dav1d)))

View File

@ -3537,7 +3537,7 @@ workspace.")
("shared-mime-info" ,shared-mime-info)
("kjobwidgets" ,kjobwidgets) ;; required for running the tests
("strace" ,strace)
("tzdata" ,tzdata)))
("tzdata" ,tzdata-for-tests)))
(propagated-inputs
;; These are required to be installed along with this package, see
;; lib64/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake

View File

@ -369,26 +369,26 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(sha256 hash)))
(define-public linux-libre-5.6-version "5.6.4")
(define-public linux-libre-5.6-version "5.6.5")
(define-public linux-libre-5.6-pristine-source
(let ((version linux-libre-5.6-version)
(hash (base32 "14cxbc9xi4s3xwx4yb1yd4z0kidsk3d443skf5sgmdhcalg79wax")))
(hash (base32 "1rjjkcmzsj9azggh960qnk2x44ns475b8nbd4nxazrz1rgdx76zp")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.6)))
(define-public linux-libre-5.4-version "5.4.32")
(define-public linux-libre-5.4-version "5.4.33")
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
(hash (base32 "1czjjnln1cqrnjxw0md6mpw9haw9abdyvmxnjds56ym4nzx9jb8r")))
(hash (base32 "0q9q48ij6vppfcrdf7fr24pvpwsd13pxjkdni6rnjq9a60hrcmxm")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.115")
(define-public linux-libre-4.19-version "4.19.116")
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
(hash (base32 "1hh170z3mv181l6cc6qqc12wif5jsmxbh2qxbq6b9km5irydkchi")))
(hash (base32 "0r3vdc3npl1bn06w9v6wsq7d5mm7bnhm9wsz36pb9ar3xhimvrlf")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))

View File

@ -24,7 +24,7 @@
;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
@ -89,6 +89,7 @@
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages lsof)
#:use-module (gnu packages lua)
@ -1432,6 +1433,11 @@ facilities for checking incoming mail.")
(inputs
`(("bzip2" ,bzip2)
("libsodium" ,libsodium) ; extra password algorithms
;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
;; backtrace_symbol() function so fallback to using libunwind.
,@(if (target-arm?)
`(("libunwind" ,libunwind))
'())
("linux-pam" ,linux-pam)
("lz4" ,lz4)
("openssl" ,openssl)
@ -1955,26 +1961,26 @@ maintained.")
(define-public khard
(package
(name "khard")
(version "0.15.1")
(version "0.16.1")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
"18ba2xgfq8sw0bg6xmlfjpizid1hkzgswcfcc54gl21y2dwfda2w"))))
"0fg4qh5gzki5wg958wlpc8a2icnk74gzg33lqxjm755cfnjng7qd"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'install-doc
(add-after 'install 'install-completions
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/khard")))
(copy-recursively "misc/khard" doc)
(zsh (string-append out "/share/zsh/site-functions")))
(copy-recursively "misc/zsh" zsh)
#t))))))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(propagated-inputs
(inputs
`(("python-atomicwrites" ,python-atomicwrites)
("python-configobj" ,python-configobj)
("python-pyyaml" ,python-pyyaml)

View File

@ -29,13 +29,13 @@
(define-public toot
(package
(name "toot")
(version "0.25.2")
(version "0.26.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "toot" version))
(sha256
(base32 "16akld7zfr52rqrbgf6hmsca9qsrfdbbbd9bji8d26zggxmqq4vq"))))
(base32 "0h0lqm1q7i32i9n6yx5q2j563vc92h2sjh1ih4n2rxf98p6c5d1b"))))
(build-system python-build-system)
(arguments
'(#:phases

View File

@ -608,14 +608,14 @@ of the same name.")
(define-public wireshark
(package
(name "wireshark")
(version "3.2.2")
(version "3.2.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.wireshark.org/download/src/wireshark-"
version ".tar.xz"))
(sha256
(base32 "0ygdxpz0i4jxp55fg9x4xcan093wycjb66yas073gviz9kpj6naz"))))
(base32 "1fpsfjrap7j84sy728yhcr2gad9nq3n5gq03mwrmxnc6ijwf81zh"))))
(build-system cmake-build-system)
(arguments
`(#:phases

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -244,3 +245,26 @@ protocol used in @code{node-lynx}.")
(description "This package provides the Node.js @code{util.deprecate()}
function with browser support.")
(license license:expat)))
(define-public node-semver
(package
(name "node-semver")
(version "7.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/npm/node-semver.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p"))))
(build-system node-build-system)
(arguments
`(#:tests? #f)) ;; FIXME: Tests depend on node-tap
(home-page "https://github.com/npm/node-semver")
(synopsis "Parses semantic versions strings")
(description
"@code{node-semver} is a JavaScript implementation of the
@uref{https://semver.org/, SemVer.org} specification.")
(license license:isc)))

View File

@ -0,0 +1,18 @@
Sort the result of file system traversal to avoid test failure on different
file systems.
Taken from upstream:
https://github.com/davidhalter/jedi/commit/7ff76bb7d0d94514e17cd1647f4ffaf533dd55f5
diff --git a/test/test_api/test_project.py b/test/test_api/test_project.py
--- a/test/test_api/test_project.py
+++ b/test/test_api/test_project.py
@@ -135,7 +135,7 @@ def test_search(string, full_names, kwargs, skip_pre_python36):
defs = project.complete_search(string, **kwargs)
else:
defs = project.search(string, **kwargs)
- assert [('stub:' if d.is_stub() else '') + d.full_name for d in defs] == full_names
+ assert sorted([('stub:' if d.is_stub() else '') + d.full_name for d in defs]) == full_names
@pytest.mark.parametrize(

View File

@ -822,7 +822,7 @@ using a stylus.")
(define-public xournalpp
(package
(name "xournalpp")
(version "1.0.17")
(version "1.0.18")
(source
(origin
(method git-fetch)
@ -831,7 +831,7 @@ using a stylus.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0xw2mcgnm4sa9hrhfgp669lfypw97drxjmz5w8i5whaprpvmkxzw"))))
(base32 "0a9ygbmd4dwgck3k8wsrm2grynqa0adb12wwspzmzvpisbadffjy"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DENABLE_CPPUNIT=ON") ;enable tests
@ -844,11 +844,6 @@ using a stylus.")
(modify-phases %standard-phases
(add-after 'unpack 'fix-permissions-on-po-files
(lambda _
;; Always generate translations. A recent upstream patch
;; disabled it.
(substitute* "po/CMakeLists.txt"
(("gettext_create_translations \\(\"\\$\\{potfile\\}\"\\)")
"gettext_create_translations (\"${potfile}\" ALL)"))
;; Make sure 'msgmerge' can modify the PO files.
(for-each (lambda (po) (chmod po #o666))
(find-files "." "\\.po$"))
@ -857,7 +852,6 @@ using a stylus.")
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(native-inputs
`(("cppunit" ,cppunit)
("gcc" ,gcc-8) ;requires gcc 8+
("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(inputs

View File

@ -1699,14 +1699,14 @@ Python 3.3+.")
(define-public python-pyicu
(package
(name "python-pyicu")
(version "2.3.1")
(version "2.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PyICU" version))
(sha256
(base32
"1x4w8m7ifki9z2a187pgjr33z6z0rp2fii9b73djak1vhm9v9cnx"))))
"075bw66b3w0nw6mc5k32fwmrhyrmq3d7da3q2mw212qfmm0pgjn0"))))
(build-system python-build-system)
(inputs
`(("icu4c" ,icu4c)))
@ -1717,24 +1717,10 @@ Python 3.3+.")
(synopsis "Python extension wrapping the ICU C++ API")
(description
"PyICU is a python extension wrapping the ICU C++ API.")
(properties `((python2-variant . ,(delay python2-pyicu))))
(license license:x11)))
(define-public python2-pyicu
(let ((base (package-with-python2
(strip-python2-variant python-pyicu))))
(package
(inherit base)
(arguments
`(,@(package-arguments base)
#:phases
(modify-phases %standard-phases
(add-before 'check 'delete-failing-test
(λ _
;; XXX: This fails due to Unicode issues unique to Python 2,
;; it seems: <https://github.com/ovalhub/pyicu/issues/61>.
(delete-file "test/test_Script.py")
#t))))))))
(package-with-python2 python-pyicu))
(define-public python2-dogtail
;; 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.")
(define-public python-cython
(package
(name "python-cython")
(version "0.29.15")
(version "0.29.16")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Cython" version))
(sha256
(base32
"0c5cjyxfvba6c0vih1fvhywp8bpz30vwvbjqdm1q1k55xzhmkn30"))))
"01gs10myw0rw4jsikvqs0859fg7gficxhv508cxvnb4l9wl5a9r3"))))
(build-system python-build-system)
;; we need the full python package and not just the python-wrapper
;; because we need libpython3.3m.so
@ -6499,14 +6485,14 @@ computing.")
(define-public python-urwid
(package
(name "python-urwid")
(version "2.0.1")
(version "2.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "urwid" version))
(sha256
(base32
"1g6cpicybvbananpjikmjk8npmjk4xvak1wjzji62wc600wkwkb4"))))
"11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8"))))
(build-system python-build-system)
(home-page "http://urwid.org")
(synopsis "Console user interface library for Python")
@ -8037,14 +8023,14 @@ printing of sub-tables by specifying a row range.")
(define-public python-tables
(package
(name "python-tables")
(version "3.4.4")
(version "3.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tables" version))
(sha256
(base32
"0affz7k8babh8wdmsgrz5jxrd569by2w8ffimcxs9wiaf5rw1idx"))
"0j8vnxh2m5n0cyk9z3ndcj5n1zj5rdxgc1gb78bqlyn2lyw75aa9"))
(modules '((guix build utils)))
(snippet
'(begin
@ -8062,9 +8048,11 @@ printing of sub-tables by specifying a row range.")
(add-after 'unpack 'use-gcc
(lambda _
(substitute* "setup.py"
(("compiler = new_compiler\\(\\)" line)
(("^( +)compiler = new_compiler\\(\\)" line indent)
(string-append line
"\ncompiler.set_executables(compiler='gcc',"
"\n"
indent
"compiler.set_executables(compiler='gcc',"
"compiler_so='gcc',"
"linker_exe='gcc',"
"linker_so='gcc -shared')")))
@ -9421,13 +9409,13 @@ minimal and fast API targeting the following uses:
(define-public python-icalendar
(package
(name "python-icalendar")
(version "4.0.4")
(version "4.0.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "icalendar" version))
(sha256
(base32
"16gjvqv0n05jrb9g228pdjgzd3amz2pdhvcgsn1jypszjg5m2w9l"))))
"14ynjj65kfmlcvpb7k097w789wvxncd3cr3xz5m1jz9yl9v6vv5q"))))
(build-system python-build-system)
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
@ -9516,20 +9504,20 @@ with a new public API, and RPython support.")
(define-public python-hy
(package
(name "python-hy")
(version "0.17.0")
(version "0.18.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "hy" version))
(sha256
(base32
"1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi"))))
"04dfwm336gw61fmgwikvh0cnxk682p19b4w555wl5d7mlym4rwj2"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'install 'set-HOME
(lambda _
(setenv "HOME" "/tmp")))
(add-before 'install 'set-HOME
(lambda _
(setenv "HOME" "/tmp") #t))
(replace 'check
(lambda _
;; Tests require write access to HOME.
@ -9540,10 +9528,8 @@ with a new public API, and RPython support.")
("python-nose" ,python-nose)))
(propagated-inputs
`(("python-astor" ,python-astor)
("python-clint" ,python-clint)
("python-colorama" ,python-colorama)
("python-rply" ,python-rply)
("python-fastentrypoints"
,python-fastentrypoints)
("python-funcparserlib"
,python-funcparserlib)))
(home-page "http://hylang.org/")
@ -9554,9 +9540,6 @@ its Lisp code into the Python Abstract Syntax Tree, you have the whole world of
Python at your fingertips, in Lisp form.")
(license license:expat)))
(define-public python2-hy
(package-with-python2 python-hy))
(define-public python2-functools32
(package
(name "python2-functools32")
@ -10357,13 +10340,13 @@ programmatically interfacing with your system's $EDITOR.")
(define-public python-vobject
(package
(name "python-vobject")
(version "0.9.5")
(version "0.9.6.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "vobject" version))
(sha256
(base32
"0hqjgf3ay1m5w1c0k00g5yfpdz1zni5qnr5rh9b8fg9hjvhwlmhg"))))
"0081g4gngw28j7vw8101jk600wz4gzfrhf5myrqvn2mrfkn2llcn"))))
(build-system python-build-system)
(arguments
'(;; The test suite relies on some non-portable Windows interfaces.
@ -10374,7 +10357,7 @@ programmatically interfacing with your system's $EDITOR.")
(synopsis "Parse and generate vCard and vCalendar files")
(description "Vobject is intended to be a full featured Python package for
parsing and generating vCard and vCalendar files. Currently, iCalendar files
are supported and well tested. vCard 3.0 files are supported, and all data
are supported and well tested. vCard 3.0 files are supported, and all data
should be imported, but only a few components are understood in a sophisticated
way.")
(home-page "https://eventable.github.io/vobject/")
@ -11997,6 +11980,7 @@ characters, mouse support, and auto suggestions.")
(origin
(method url-fetch)
(uri (pypi-uri "jedi" version))
(patches (search-patches "python-jedi-sort-project-test.patch"))
(sha256
(base32
"0c1h9x3a9klvk2g288wl328x8xgzw7136k6vs9hkd56b85vcjh6z"))))
@ -12007,7 +11991,7 @@ characters, mouse support, and auto suggestions.")
(replace 'check
(lambda _
(setenv "HOME" "/tmp")
(invoke "python" "-m" "pytest"))))))
(invoke "python" "-m" "pytest" "-vv"))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-docopt" ,python-docopt)))

View File

@ -35,6 +35,7 @@
#:use-module (gnu packages check)
#:use-module (gnu packages documentation)
#:use-module (gnu packages engineering)
#:use-module (gnu packages fltk)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
#:use-module (gnu packages gstreamer)
@ -525,3 +526,121 @@ to the fix block above.
using GNU Radio and the Qt GUI toolkit.")
(home-page "https://gqrx.dk/")
(license license:gpl3+)))
(define-public fldigi
(package
(name "fldigi")
(version "4.1.11")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.w1hkj.com/files/fldigi/fldigi-"
version ".tar.gz"))
(sha256
(base32 "1y62xn1pim38ibaf2mbl8b7aq20jdaac6lgggb9r402w9bj5b196"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("alsa-lib" ,alsa-lib)
("fltk" ,fltk)
("libpng" ,libpng)
("libsamplerate" ,libsamplerate)
("libx11" ,libx11)
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxft" ,libxft)
("portaudio" ,portaudio)
("pulseaudio" ,pulseaudio)))
(synopsis "Software modem for amateur radio use")
(description
"Fldigi is a software modem for amateur radio use. It is a sound card
based program that is used for both transmitting and receiving data by
connecting the microphone and headphone connections of a computer to some radio
hardware.")
(home-page "http://www.w1hkj.com/")
(license license:gpl3+)))
(define-public flrig
(package
(name "flrig")
(version "1.3.50")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.w1hkj.com/files/flrig/flrig-"
version ".tar.gz"))
(sha256
(base32 "0fzrknzzi8kmzmrcfpc8rxr7v4a4ny6z6z5q5qwh95sp2kn2qzp9"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("fltk" ,fltk)
("libx11" ,libx11)
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxft" ,libxft)))
(synopsis "Radio transceiver control program")
(description
"Flrig is a transceiver control program for amateur radio use.
It provides computer aided control of various radios using a serial
or USB connection.")
(home-page "http://www.w1hkj.com/")
(license license:gpl3+)))
(define-public flamp
(package
(name "flamp")
(version "2.2.05")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.w1hkj.com/files/flamp/flamp-"
version ".tar.gz"))
(sha256
(base32 "19z1kghhdf7bq6hi2j0mzlsn2nhpn3gl1a623x3inmsk80yw3ck4"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("fltk" ,fltk)
("libx11" ,libx11)
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxft" ,libxft)))
(synopsis "Tool for AMP file transfer")
(description
"FLAMP is a program for transfering files by radio waves using AMP
(Amateur Multicast Protocol).")
(home-page "http://www.w1hkj.com/")
(license license:gpl3+)))
(define-public flwrap
(package
(name "flwrap")
(version "1.3.5")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.w1hkj.com/files/flwrap/flwrap-"
version ".tar.gz"))
(sha256
(base32 "0qqivqkkravcg7j45740xfky2q3k7czqpkj6y364qff424q2pppg"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("fltk" ,fltk)
("libx11" ,libx11)
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxft" ,libxft)))
(synopsis "File encapsulation program")
(description
"Flwrap is a software utility for amateur radio use. Its purpose is to
encapsulate both text and binary files in a way that allows them to be
transmitted over any of several digital modes and verified at the receipt end
for correctness.")
(home-page "http://www.w1hkj.com/")
(license license:gpl3+)))

View File

@ -851,7 +851,7 @@ through its msgpack-rpc API.")
(define-public vim-asyncrun
(package
(name "vim-asyncrun")
(version "2.7.1")
(version "2.7.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -860,7 +860,7 @@ through its msgpack-rpc API.")
(file-name (git-file-name name version))
(sha256
(base32
"0f7slvz28772qsbrb8xfwrkprfm90wc9i36xhn797lacxcxgwqpw"))))
"02fiqf4rcrxbcgvj02mpd78wkxsrnbi54aciwh9fv5mnz5ka249m"))))
(build-system copy-build-system)
(arguments
'(#:install-plan

View File

@ -711,15 +711,15 @@ and import the new pictures from your camera.")
(define-public xfwm4
(package
(name "xfwm4")
(version "4.14.0")
(version "4.14.1")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
name "/" (version-major+minor version) "/"
name "-" version ".tar.bz2"))
"xfwm4/" (version-major+minor version) "/"
"xfwm4-" version ".tar.bz2"))
(sha256
(base32
"05dn4a1i0nm6wm3nyj7qli5bvfalxghcl7x543qr5l33vkw2n65l"))))
"0a0la57jh618qfl7czsn7mspcraqczkm1m616j7jwxkhh2hq21qh"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -741,15 +741,15 @@ on the screen.")
(define-public xfdesktop
(package
(name "xfdesktop")
(version "4.14.1")
(version "4.14.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
name "/" (version-major+minor version) "/"
name "-" version ".tar.bz2"))
"xfdesktop/" (version-major+minor version) "/"
"xfdesktop-" version ".tar.bz2"))
(sha256
(base32
"10pqxgpj7b57wpcsh2k98sj4aavcgxbs1lc8qsq4mibf4hba01gp"))
"0x1yx9sd5aanrlr1qnbwd2nsmcg09g4132k0kyb7z47a3x3381d3"))
(modules '((guix build utils)))
(snippet
#~(begin
@ -781,6 +781,7 @@ on the screen.")
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)
;; For our own prepare-background-image phase.
("inkscape" ,inkscape)
("imagemagick" ,imagemagick)))
(inputs
@ -949,15 +950,15 @@ the desktop wallpaper.")
(define-public xfce4-taskmanager
(package
(name "xfce4-taskmanager")
(version "1.2.2")
(version "1.2.3")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/"
name "/" (version-major+minor version) "/"
name "-" version ".tar.bz2"))
"xfce4-taskmanager/" (version-major+minor version) "/"
"xfce4-taskmanager-" version ".tar.bz2"))
(sha256
(base32
"04qflazmdrj4ys4r54yg4s5pqcjgk02idrjsls395zd4374636p4"))))
"1i63bnvpjpblnd0d3l1v065x9q1cz74cvlab5hzd0q8zgkd49z6w"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)

View File

@ -14,7 +14,7 @@
;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
@ -6004,7 +6004,7 @@ to answer a question. Xmessage can also exit after a specified time.")
(define-public xterm
(package
(name "xterm")
(version "351")
(version "353")
(source (origin
(method url-fetch)
(uri (list
@ -6014,7 +6014,7 @@ to answer a question. Xmessage can also exit after a specified time.")
"xterm-" version ".tgz")))
(sha256
(base32
"05kf586my4irrzz2bxgmwjdvynyrg9ybhvfqmx29g70w4888l2kn"))))
"0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"

View File

@ -61,11 +61,11 @@
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:re-export (user-processes-service-type) ;backwards compatibility
#:export (fstab-service-type
root-file-system-service
file-system-service-type
swap-service
user-processes-service-type
host-name-service
console-keymap-service
%default-console-font
@ -185,128 +185,6 @@
;;; Code:
;;;
;;; User processes.
;;;
(define %do-not-kill-file
;; Name of the file listing PIDs of processes that must survive when halting
;; the system. Typical example is user-space file systems.
"/etc/shepherd/do-not-kill")
(define (user-processes-shepherd-service requirements)
"Return the 'user-processes' Shepherd service with dependencies on
REQUIREMENTS (a list of service names).
This is a synchronization point used to make sure user processes and daemons
get started only after crucial initial services have been started---file
system mounts, etc. This is similar to the 'sysvinit' target in systemd."
(define grace-delay
;; Delay after sending SIGTERM and before sending SIGKILL.
4)
(list (shepherd-service
(documentation "When stopped, terminate all user processes.")
(provision '(user-processes))
(requirement requirements)
(start #~(const #t))
(stop #~(lambda _
(define (kill-except omit signal)
;; Kill all the processes with SIGNAL except those listed
;; in OMIT and the current process.
(let ((omit (cons (getpid) omit)))
(for-each (lambda (pid)
(unless (memv pid omit)
(false-if-exception
(kill pid signal))))
(processes))))
(define omitted-pids
;; List of PIDs that must not be killed.
(if (file-exists? #$%do-not-kill-file)
(map string->number
(call-with-input-file #$%do-not-kill-file
(compose string-tokenize
(@ (ice-9 rdelim) read-string))))
'()))
(define (now)
(car (gettimeofday)))
(define (sleep* n)
;; Really sleep N seconds.
;; Work around <http://bugs.gnu.org/19581>.
(define start (now))
(let loop ((elapsed 0))
(when (> n elapsed)
(sleep (- n elapsed))
(loop (- (now) start)))))
(define lset= (@ (srfi srfi-1) lset=))
(display "sending all processes the TERM signal\n")
(if (null? omitted-pids)
(begin
;; Easy: terminate all of them.
(kill -1 SIGTERM)
(sleep* #$grace-delay)
(kill -1 SIGKILL))
(begin
;; Kill them all except OMITTED-PIDS. XXX: We would
;; like to (kill -1 SIGSTOP) to get a fixed list of
;; processes, like 'killall5' does, but that seems
;; unreliable.
(kill-except omitted-pids SIGTERM)
(sleep* #$grace-delay)
(kill-except omitted-pids SIGKILL)
(delete-file #$%do-not-kill-file)))
(let wait ()
;; Reap children, if any, so that we don't end up with
;; zombies and enter an infinite loop.
(let reap-children ()
(define result
(false-if-exception
(waitpid WAIT_ANY (if (null? omitted-pids)
0
WNOHANG))))
(when (and (pair? result)
(not (zero? (car result))))
(reap-children)))
(let ((pids (processes)))
(unless (lset= = pids (cons 1 omitted-pids))
(format #t "waiting for process termination\
(processes left: ~s)~%"
pids)
(sleep* 2)
(wait))))
(display "all processes have been terminated\n")
#f))
(respawn? #f))))
(define user-processes-service-type
(service-type
(name 'user-processes)
(extensions (list (service-extension shepherd-root-service-type
user-processes-shepherd-service)))
(compose concatenate)
(extend append)
;; The value is the list of Shepherd services 'user-processes' depends on.
;; Extensions can add new services to this list.
(default-value '())
(description "The @code{user-processes} service is responsible for
terminating all the processes so that the root file system can be re-mounted
read-only, just before rebooting/halting. Processes still running after a few
seconds after @code{SIGTERM} has been sent are terminated with
@code{SIGKILL}.")))
;;;
;;; File systems.

View File

@ -170,7 +170,7 @@ Relogin=" (if (sddm-configuration-relogin? config)
(list (shepherd-service
(documentation "SDDM display manager.")
(requirement '(user-processes))
(provision '(display-manager))
(provision '(xorg-server display-manager))
(start #~(make-forkexec-constructor #$sddm-command))
(stop #~(make-kill-destructor)))))

View File

@ -63,7 +63,9 @@
shepherd-service-lookup-procedure
shepherd-service-back-edges
shepherd-service-upgrade))
shepherd-service-upgrade
user-processes-service-type))
;;; Commentary:
;;;
@ -415,4 +417,126 @@ need to be restarted to complete their upgrade."
(values to-unload to-restart))
;;;
;;; User processes.
;;;
(define %do-not-kill-file
;; Name of the file listing PIDs of processes that must survive when halting
;; the system. Typical example is user-space file systems.
"/etc/shepherd/do-not-kill")
(define (user-processes-shepherd-service requirements)
"Return the 'user-processes' Shepherd service with dependencies on
REQUIREMENTS (a list of service names).
This is a synchronization point used to make sure user processes and daemons
get started only after crucial initial services have been started---file
system mounts, etc. This is similar to the 'sysvinit' target in systemd."
(define grace-delay
;; Delay after sending SIGTERM and before sending SIGKILL.
4)
(list (shepherd-service
(documentation "When stopped, terminate all user processes.")
(provision '(user-processes))
(requirement requirements)
(start #~(const #t))
(stop #~(lambda _
(define (kill-except omit signal)
;; Kill all the processes with SIGNAL except those listed
;; in OMIT and the current process.
(let ((omit (cons (getpid) omit)))
(for-each (lambda (pid)
(unless (memv pid omit)
(false-if-exception
(kill pid signal))))
(processes))))
(define omitted-pids
;; List of PIDs that must not be killed.
(if (file-exists? #$%do-not-kill-file)
(map string->number
(call-with-input-file #$%do-not-kill-file
(compose string-tokenize
(@ (ice-9 rdelim) read-string))))
'()))
(define (now)
(car (gettimeofday)))
(define (sleep* n)
;; Really sleep N seconds.
;; Work around <http://bugs.gnu.org/19581>.
(define start (now))
(let loop ((elapsed 0))
(when (> n elapsed)
(sleep (- n elapsed))
(loop (- (now) start)))))
(define lset= (@ (srfi srfi-1) lset=))
(display "sending all processes the TERM signal\n")
(if (null? omitted-pids)
(begin
;; Easy: terminate all of them.
(kill -1 SIGTERM)
(sleep* #$grace-delay)
(kill -1 SIGKILL))
(begin
;; Kill them all except OMITTED-PIDS. XXX: We would
;; like to (kill -1 SIGSTOP) to get a fixed list of
;; processes, like 'killall5' does, but that seems
;; unreliable.
(kill-except omitted-pids SIGTERM)
(sleep* #$grace-delay)
(kill-except omitted-pids SIGKILL)
(delete-file #$%do-not-kill-file)))
(let wait ()
;; Reap children, if any, so that we don't end up with
;; zombies and enter an infinite loop.
(let reap-children ()
(define result
(false-if-exception
(waitpid WAIT_ANY (if (null? omitted-pids)
0
WNOHANG))))
(when (and (pair? result)
(not (zero? (car result))))
(reap-children)))
(let ((pids (processes)))
(unless (lset= = pids (cons 1 omitted-pids))
(format #t "waiting for process termination\
(processes left: ~s)~%"
pids)
(sleep* 2)
(wait))))
(display "all processes have been terminated\n")
#f))
(respawn? #f))))
(define user-processes-service-type
(service-type
(name 'user-processes)
(extensions (list (service-extension shepherd-root-service-type
user-processes-shepherd-service)))
(compose concatenate)
(extend append)
;; The value is the list of Shepherd services 'user-processes' depends on.
;; Extensions can add new services to this list.
(default-value '())
(description "The @code{user-processes} service is responsible for
terminating all the processes so that the root file system can be re-mounted
read-only, just before rebooting/halting. Processes still running after a few
seconds after @code{SIGTERM} has been sent are terminated with
@code{SIGKILL}.")))
;;; shepherd.scm ends here

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@ -314,9 +314,7 @@ accounts among ACCOUNTS+GROUPS."
;;
;; XXX: We arrange for this service to stop right after it's done its job so
;; that 'guix system reconfigure' knows that it can reload it fearlessly
;; (and thus create new home directories). The cost of this hack is that
;; there's a small window during which first-time logins could happen before
;; the home directory has been created.
;; (and thus create new home directories).
(list (shepherd-service
(requirement '(file-systems))
(provision '(user-homes))
@ -374,6 +372,11 @@ the /etc/skel directory for those."
account-activation)
(service-extension shepherd-root-service-type
account-shepherd-service)
;; Have 'user-processes' depend on 'user-homes' so that
;; daemons start after their home directory has been
;; created.
(service-extension user-processes-service-type
(const '(user-homes)))
(service-extension etc-service-type
etc-files)))))

View File

@ -22,7 +22,6 @@
(define-module (guix build syscalls)
#:use-module (system foreign)
#:use-module (system base target) ;for cross-compilation support
#:use-module (rnrs bytevectors)
#:autoload (ice-9 binary-ports) (get-bytevector-n)
#:use-module (srfi srfi-1)
@ -892,36 +891,6 @@ system to PUT-OLD."
(namelen uint8)
(name uint8))
(define-syntax define-generic-identifier
(syntax-rules (gnu/linux gnu/hurd =>)
"Define a generic identifier that adjust to the current GNU variant."
((_ id (gnu/linux => linux) (gnu/hurd => hurd))
(define-syntax id
(lambda (s)
(syntax-case s ()
((_ args (... ...))
(if (string-contains (or (target-type) %host-type)
"linux")
#'(linux args (... ...))
#'(hurd args (... ...))))
(_
(if (string-contains (or (target-type) %host-type)
"linux")
#'linux
#'hurd))))))))
(define-generic-identifier read-dirent-header
(gnu/linux => read-dirent-header/linux)
(gnu/hurd => read-dirent-header/hurd))
(define-generic-identifier %struct-dirent-header
(gnu/linux => %struct-dirent-header/linux)
(gnu/hurd => %struct-dirent-header/hurd))
(define-generic-identifier sizeof-dirent-header
(gnu/linux => sizeof-dirent-header/linux)
(gnu/hurd => sizeof-dirent-header/hurd))
;; Constants for the 'type' field, from <dirent.h>.
(define DT_UNKNOWN 0)
(define DT_FIFO 1)
@ -960,19 +929,30 @@ system to PUT-OLD."
"closedir: ~A" (list (strerror err))
(list err)))))))
(define readdir*
(define (readdir-procedure name-field-offset sizeof-dirent-header
read-dirent-header)
(let ((proc (syscall->procedure '* "readdir64" '(*))))
(lambda* (directory #:optional (pointer->string pointer->string/utf-8))
(let ((ptr (proc directory)))
(and (not (null-pointer? ptr))
(cons (pointer->string
(make-pointer (+ (pointer-address ptr)
(c-struct-field-offset
%struct-dirent-header name)))
(make-pointer (+ (pointer-address ptr) name-field-offset))
-1)
(read-dirent-header
(pointer->bytevector ptr sizeof-dirent-header))))))))
(define readdir*
;; Decide at run time which one must be used.
(if (string-suffix? "linux-gnu" %host-type)
(readdir-procedure (c-struct-field-offset %struct-dirent-header/linux
name)
sizeof-dirent-header/linux
read-dirent-header/linux)
(readdir-procedure (c-struct-field-offset %struct-dirent-header/hurd
name)
sizeof-dirent-header/hurd
read-dirent-header/hurd)))
(define* (scandir* name #:optional
(select? (const #t))
(entry<? (lambda (entry1 entry2)

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2010, 2011, 2013, 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -71,6 +72,8 @@
"^\\[GNUPG:\\] VALIDSIG ([[:xdigit:]]+) ([[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}) ([[:digit:]]+) .*$"))
(define expkeysig-rx ; good signature, but expired key
(make-regexp "^\\[GNUPG:\\] EXPKEYSIG ([[:xdigit:]]+) (.*)$"))
(define revkeysig-rx ; good signature, but revoked key
(make-regexp "^\\[GNUPG:\\] REVKEYSIG ([[:xdigit:]]+) (.*)$"))
(define errsig-rx
;; Note: The fingeprint part (the last element of the line) appeared in
;; 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."
(lambda (match)
`(expired-key-signature ,(match:substring match 1) ; fingerprint
,(match:substring match 2)))) ; user name
((regexp-exec revkeysig-rx line)
=>
(lambda (match)
`(revoked-key-signature ,(match:substring match 1) ; fingerprint
,(match:substring match 2)))) ; user name
((regexp-exec errsig-rx line)
=>
(lambda (match)
@ -157,7 +165,8 @@ a fingerprint/user pair; return #f otherwise."
(match (assq 'valid-signature status)
(('valid-signature fingerprint date timestamp)
(match (or (assq 'good-signature status)
(assq 'expired-key-signature status))
(assq 'expired-key-signature status)
(assq 'revoked-key-signature status))
((_ key-id user) (cons fingerprint user))
(_ #f)))
(_

View File

@ -2,6 +2,7 @@
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,8 +23,16 @@
#:use-module (json)
#:use-module (guix http-client)
#:use-module (guix import utils)
#:use-module (guix import print)
#:use-module (ice-9 match)
#:use-module (ice-9 rdelim)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:export (json-fetch))
#:export (json-fetch
json->code
json->scheme-file))
(define* (json-fetch url
;; Note: many websites returns 403 if we omit a
@ -42,3 +51,53 @@ the query."
(result (json->scm port)))
(close-port port)
result)))
(define (json->code file-name)
"Read FILE-NAME containing one ore more JSON package definitions and return
a list of S-expressions, or return #F when the JSON is invalid."
(catch 'json-invalid
(lambda ()
(let ((json (json-string->scm
(with-input-from-file file-name read-string))))
(match json
(#(packages ...)
;; To allow definitions to refer to one another, collect references
;; to local definitions and tell alist->package to ignore them.
(second
(memq #:result
(fold
(lambda (pkg names+result)
(match names+result
((#:names names #:result result)
(list #:names
(cons (assoc-ref pkg "name") names)
#:result
(append result
(list
(package->code (alist->package pkg names))
(string->symbol (assoc-ref pkg "name"))))))))
(list #:names '()
#:result '())
packages))))
(package
(list (package->code (alist->package json))
(string->symbol (assoc-ref json "name")))))))
(const #f)))
(define (json->scheme-file file)
"Convert the FILE containing a JSON package definition to a Scheme
representation and return the new file name (or #F on error)."
(and-let* ((sexprs (json->code file))
(file* (let* ((tempdir (or (getenv "TMPDIR") "/tmp"))
(template (string-append tempdir "/guix-XXXXXX"))
(port (mkstemp! template)))
(close-port port)
template)))
(call-with-output-file file*
(lambda (port)
(write '(use-modules (gnu)
(guix)
((guix licenses) #:prefix license:))
port)
(for-each (cut write <> port) sexprs)))
file*))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -57,7 +57,7 @@ when evaluated."
;; Print either license variable name or the code for a license object
(define (license->code lic)
(let ((var (variable-name lic '(guix licenses))))
(or var
(or (symbol-append 'license: var)
`(license
(name ,(license-name lic))
(uri ,(license-uri lic))
@ -79,7 +79,9 @@ when evaluated."
(patches (origin-patches source)))
`(origin
(method ,(procedure-name method))
(uri (string-append ,@(factorize-uri uri version)))
(uri (string-append ,@(match (factorize-uri uri version)
((? string? uri) (list uri))
(factorized factorized))))
(sha256
(base32
,(format #f "~a" (bytevector->nix-base32-string sha256))))
@ -92,6 +94,8 @@ when evaluated."
(define (package-lists->code lsts)
(list 'quasiquote
(map (match-lambda
((? symbol? s)
(list (symbol->string s) (list 'unquote s)))
((label pkg . out)
(let ((mod (package-module-name pkg)))
(cons* label
@ -121,45 +125,47 @@ when evaluated."
(home-page (package-home-page package))
(supported-systems (package-supported-systems package))
(properties (package-properties package)))
`(package
(name ,name)
(version ,version)
(source ,(source->code source version))
,@(match properties
(() '())
(_ `((properties ,properties))))
,@(if replacement
`((replacement ,replacement))
'())
(build-system ,(symbol-append (build-system-name build-system)
'-build-system))
,@(match arguments
(() '())
(args `((arguments ,(list 'quasiquote args)))))
,@(match outputs
(("out") '())
(outs `((outputs (list ,@outs)))))
,@(match native-inputs
(() '())
(pkgs `((native-inputs ,(package-lists->code pkgs)))))
,@(match inputs
(() '())
(pkgs `((inputs ,(package-lists->code pkgs)))))
,@(match propagated-inputs
(() '())
(pkgs `((propagated-inputs ,(package-lists->code pkgs)))))
,@(if (lset= string=? supported-systems %supported-systems)
'()
`((supported-systems (list ,@supported-systems))))
,@(match (map search-path-specification->code native-search-paths)
(() '())
(paths `((native-search-paths (list ,@paths)))))
,@(match (map search-path-specification->code search-paths)
(() '())
(paths `((search-paths (list ,@paths)))))
(home-page ,home-page)
(synopsis ,synopsis)
(description ,description)
(license ,(if (list? license)
`(list ,@(map license->code license))
(license->code license))))))
`(define-public ,(string->symbol name)
(package
(name ,name)
(version ,version)
(source ,(source->code source version))
,@(match properties
(() '())
(_ `((properties ,properties))))
,@(if replacement
`((replacement ,replacement))
'())
(build-system (@ (guix build-system ,(build-system-name build-system))
,(symbol-append (build-system-name build-system)
'-build-system)))
,@(match arguments
(() '())
(args `((arguments ,(list 'quasiquote args)))))
,@(match outputs
(("out") '())
(outs `((outputs (list ,@outs)))))
,@(match native-inputs
(() '())
(pkgs `((native-inputs ,(package-lists->code pkgs)))))
,@(match inputs
(() '())
(pkgs `((inputs ,(package-lists->code pkgs)))))
,@(match propagated-inputs
(() '())
(pkgs `((propagated-inputs ,(package-lists->code pkgs)))))
,@(if (lset= string=? supported-systems %supported-systems)
'()
`((supported-systems (list ,@supported-systems))))
,@(match (map search-path-specification->code native-search-paths)
(() '())
(paths `((native-search-paths (list ,@paths)))))
,@(match (map search-path-specification->code search-paths)
(() '())
(paths `((search-paths (list ,@paths)))))
(home-page ,home-page)
(synopsis ,synopsis)
(description ,description)
(license ,(if (list? license)
`(list ,@(map license->code license))
(license->code license)))))))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;;
@ -310,7 +310,23 @@ the expected fields of an <origin> object."
(uri (assoc-ref orig "uri"))
(sha256 sha))))))
(define (alist->package meta)
(define* (alist->package meta #:optional (known-inputs '()))
"Return a package value generated from the alist META. If the list of
strings KNOWN-INPUTS is provided, do not treat the mentioned inputs as
specifications to look up and replace them with plain symbols instead."
(define (process-inputs which)
(let-values (((regular known)
(lset-diff+intersection
string=?
(vector->list (or (assoc-ref meta which) #()))
known-inputs)))
(append (specs->package-lists regular)
(map string->symbol known))))
(define (process-arguments arguments)
(append-map (match-lambda
((key . value)
(list (symbol->keyword (string->symbol key)) value)))
arguments))
(package
(name (assoc-ref meta "name"))
(version (assoc-ref meta "version"))
@ -318,15 +334,13 @@ the expected fields of an <origin> object."
(build-system
(lookup-build-system-by-name
(string->symbol (assoc-ref meta "build-system"))))
(native-inputs
(specs->package-lists
(vector->list (or (assoc-ref meta "native-inputs") '#()))))
(inputs
(specs->package-lists
(vector->list (or (assoc-ref meta "inputs") '#()))))
(propagated-inputs
(specs->package-lists
(vector->list (or (assoc-ref meta "propagated-inputs") '#()))))
(arguments
(or (and=> (assoc-ref meta "arguments")
process-arguments)
'()))
(native-inputs (process-inputs "native-inputs"))
(inputs (process-inputs "inputs"))
(propagated-inputs (process-inputs "propagated-inputs"))
(home-page
(assoc-ref meta "home-page"))
(synopsis

View File

@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -21,6 +22,7 @@
(define-module (guix scripts build)
#:use-module (guix ui)
#:use-module (guix scripts)
#:use-module (guix import json)
#:use-module (guix store)
#:use-module (guix derivations)
#:use-module (guix packages)
@ -834,7 +836,10 @@ build---packages, gexps, derivations, and so on."
(else
(list (specification->package spec)))))
(('file . file)
(ensure-list (load* file (make-user-module '()))))
(let ((file (or (and (string-suffix? ".json" file)
(json->scheme-file file))
file)))
(ensure-list (load* file (make-user-module '())))))
(('manifest . manifest)
(map manifest-entry-item
(manifest-entries

View File

@ -23,7 +23,7 @@
#:use-module (guix utils)
#:use-module (guix scripts)
#:use-module (guix import utils)
#:use-module (guix import print)
#:use-module (guix import json)
#:use-module (guix scripts import)
#:use-module (guix packages)
#:use-module (srfi srfi-1)
@ -88,14 +88,8 @@ Import and convert the JSON package definition in PACKAGE-FILE.\n"))
(reverse opts))))
(match args
((file-name)
(catch 'json-invalid
(lambda ()
(let ((json (json-string->scm
(with-input-from-file file-name read-string))))
;; TODO: also print define-module boilerplate
(package->code (alist->package json))))
(lambda _
(leave (G_ "invalid JSON in file '~a'~%") file-name))))
(or (json->code file-name)
(leave (G_ "invalid JSON in file '~a'~%") file-name)))
(()
(leave (G_ "too few arguments~%")))
((many ...)

View File

@ -7,6 +7,7 @@
;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -33,6 +34,7 @@
#:use-module (guix packages)
#:use-module (guix profiles)
#:use-module (guix search-paths)
#:use-module (guix import json)
#:use-module (guix monads)
#:use-module (guix utils)
#:use-module (guix config)
@ -416,7 +418,10 @@ Install, remove, or upgrade packages in a single transaction.\n"))
(option '(#\f "install-from-file") #t #f
(lambda (opt name arg result arg-handler)
(values (alist-cons 'install
(load* arg (make-user-module '()))
(let ((file (or (and (string-suffix? ".json" arg)
(json->scheme-file arg))
arg)))
(load* file (make-user-module '())))
result)
#f)))
(option '(#\r "remove") #f #t

View File

@ -472,8 +472,8 @@ addition to build events."
(let ((count (match (assq-ref properties 'graft)
(#f 0)
(lst (or (assq-ref lst 'count) 0)))))
(format port (info (N_ "applying ~a graft for ~a..."
"applying ~a grafts for ~a..."
(format port (info (N_ "applying ~a graft for ~a ..."
"applying ~a grafts for ~a ..."
count))
count drv)))
('profile
@ -525,7 +525,7 @@ addition to build events."
(newline port)))
(('download-started item uri _ ...)
(erase-current-line*)
(format port (info (G_ "downloading from ~a...")) uri)
(format port (info (G_ "downloading from ~a ...")) uri)
(newline port))
(('download-progress item uri
(= string->number size)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -30,6 +30,24 @@
(define git-command
(make-parameter "git"))
(define (call-with-environment-variables variables thunk)
"Call THUNK with the environment VARIABLES set."
(let ((environment (environ)))
(dynamic-wind
(lambda ()
(for-each (match-lambda
((variable value)
(setenv variable value)))
variables))
thunk
(lambda ()
(environ environment)))))
(define-syntax-rule (with-environment-variables variables exp ...)
"Evaluate EXP with the given environment VARIABLES set."
(call-with-environment-variables variables
(lambda () exp ...)))
(define (populate-git-repository directory directives)
"Initialize a new Git checkout and repository in DIRECTORY and apply
DIRECTIVES. Each element of DIRECTIVES is an sexp like:
@ -41,8 +59,21 @@ Return DIRECTORY on success."
;; Note: As of version 0.2.0, Guile-Git lacks the necessary bindings to do
;; all this, so resort to the "git" command.
(define (git command . args)
(apply invoke (git-command) "-C" directory
command args))
;; Make sure Git doesn't rely on the user's config.
(call-with-temporary-directory
(lambda (home)
(call-with-output-file (string-append home "/.gitconfig")
(lambda (port)
(display "[user]
email = charlie@example.org\n name = Charlie Guix\n"
port)))
(with-environment-variables
`(("GIT_CONFIG_NOSYSTEM" "1")
("GIT_ATTR_NOSYSTEM" "1")
("HOME" ,home))
(apply invoke (git-command) "-C" directory
command args)))))
(mkdir-p directory)
(git "init")

View File

@ -234,8 +234,8 @@ information, or #f if it could not be found."
;; Give 'load' an absolute file name so that it doesn't try to
;; search for FILE in %LOAD-PATH. Note: use 'load', not
;; 'primitive-load', so that FILE is compiled, which then allows us
;; to provide better error reporting with source line numbers.
;; 'primitive-load', so that FILE is compiled, which then allows
;; us to provide better error reporting with source line numbers.
(load (canonicalize-path file)))
(const #f))))))
(lambda _
@ -796,7 +796,7 @@ directories:~{ ~a~}~%")
(apply format #f format-string format-args))))))
(define-syntax-rule (leave-on-EPIPE exp ...)
"Run EXP... in a context when EPIPE errors are caught and lead to 'exit'
"Run EXP... in a context where EPIPE errors are caught and lead to 'exit'
with successful exit code. This is useful when writing to the standard output
may lead to EPIPE, because the standard output is piped through 'head' or
similar."
@ -925,7 +925,7 @@ download."
drv))
(define substitutable-info
;; Call 'substitutation-oracle' upfront so we don't end up launching the
;; Call 'substitution-oracle' upfront so we don't end up launching the
;; substituter many times. This makes a big difference, especially when
;; DRV is a long list as is the case with 'guix environment'.
(if use-substitutes?
@ -1251,7 +1251,7 @@ separator between subsequent columns."
(define* (indented-string str indent
#:key (initial-indent? #t))
"Return STR with each newline preceded by IDENT spaces. When
"Return STR with each newline preceded by INDENT spaces. When
INITIAL-INDENT? is true, the first line is also indented."
(define indent-string
(make-list indent #\space))
@ -1534,7 +1534,7 @@ score, the more relevant OBJ is to REGEXPS."
(,(lambda (package)
(filter (lambda (output)
(not (member output
;; Some common outpus shared by many packages.
;; Some common outputs shared by many packages.
'("out" "doc" "debug" "lib" "include" "bin"))))
(package-outputs package)))
. 1)
@ -1942,7 +1942,7 @@ found."
(define (run-guix . args)
"Run the 'guix' command defined by command line ARGS.
Unlike 'guix-main', this procedure assumes that locale, i18n support,
and signal handling has already been set up."
and signal handling have already been set up."
(define option? (cut string-prefix? "-" <>))
;; The default %LOAD-EXTENSIONS includes the empty string, which doubles the