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 @@ (define %committers
("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 @@ (define (installer-steps)
((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 @@ (define installer-builder
(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 @@ (define (run-connection-sequence pipe)
(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 @@ (define-public 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 @@ (define-public isc-dhcp
"/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 @@ (define-public zbar
(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-module (gnu packages augeas)
(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 @@ (define-public duplicity
("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 @@ (define-public duplicity
`(("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 @@ (define-public r-destiny
("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 @@ (define-public r-dose
("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 @@ (define-public r-bacon
`(("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 @@ (define-public r-activepathways
`(("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 @@ (define-public r-bioassayr
("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 @@ (define-public libbigwig
(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 @@ (define-public python2-pyfaidx
(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 @@ (define-public python-cooler
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 @@ (define-public python-hicexplorer
(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 @@ (define-public khal
(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 @@ (define-public khal
("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 @@ (define* (computed-origin-method gexp-promise hash-algo hash
#: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 @@ (define %chromium-origin
%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 @@ (define-module (gnu packages ci)
#: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 @@ (define-public lhasa
"/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 @@ (define-public r-ggextra
("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 @@ (define-public r-gdina
("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 @@ (define-public r-rstan
"/share/zoneinfo"))
#t)))))
(native-inputs
`(("tzdata" ,tzdata)
`(("tzdata" ,tzdata-for-tests)
("pandoc" ,ghc-pandoc)))
(propagated-inputs
`(("r-bh" ,r-bh)
@ -21102,3 +21106,28 @@ (define-public r-asd
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 @@ (define-public mongodb
("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 @@ (define-module (gnu packages diffoscope)
#: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 @@ (define-module (gnu packages diffoscope)
#:use-module (ice-9 match))
(define-public diffoscope
(let ((version "139"))
(let ((version "141"))
(package
(name "diffoscope")
(version version)
@ -80,7 +81,7 @@ (define-public diffoscope
(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 @@ (define-public diffoscope
(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 @@ (define-public diffoscope
("giflib:bin" ,giflib "bin")
("gnumeric" ,gnumeric)
("gnupg" ,gnupg)
("hdf5" ,hdf5)
("imagemagick" ,imagemagick)
("libarchive" ,libarchive)
("llvm" ,llvm)

View file

@ -115,7 +115,7 @@ (define-public dnsmasq
(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 @@ (define-public isc-bind
"/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 @@ (define-module (gnu packages education)
#: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 @@ (define-module (gnu packages education)
#: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 @@ (define-public tuxmath
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 @@ (define-public emacs-org-bullets
(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 @@ (define-public emacs-org-superstar
(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 @@ (define-public jfs_fsck/static
(define-public disorderfs
(package
(name "disorderfs")
(version "0.5.8")
(version "0.5.9")
(source
(origin
(method git-fetch)
@ -259,7 +259,7 @@ (define-public disorderfs
(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 @@ (define-module (gnu packages finance)
#: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 @@ (define-public ledger
("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 @@ (define-public grisbi
(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 @@ (define-public trezord
(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 @@ (define-public bitcoin-unlimited
(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 @@ (define-public fulcrum
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 @@ (define-public cmatrix
(define-public chess
(package
(name "chess")
(version "6.2.5")
(version "6.2.6")
(source
(origin
(method url-fetch)
@ -1963,13 +1963,15 @@ (define-public chess
".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 @@ (define-public brasero
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-module (gnu packages gpodder)
(define-public gpodder
(package
(name "gpodder")
(version "3.10.13")
(version "3.10.15")
(source
(origin
(method git-fetch)
@ -47,11 +47,13 @@ (define-public gpodder
(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 @@ (define-public gpodder
(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 @@ (define-public python-podcastparser
(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 @@ (define-public guile3.0-email
(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 @@ (define-public guile-newt
(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 @@ (define-public icoutils
(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 @@ (define-public libavif
(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 @@ (define-public libavif
"-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 @@ (define-public kdelibs4support
("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 @@ (define (%upstream-linux-source version hash)
(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 @@ (define-module (gnu packages mail)
#: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 @@ (define-public dovecot
(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 @@ (define-public procmail
(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-module (gnu packages mastodon)
(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 @@ (define-public whois
(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 @@ (define-public node-util-deprecate
(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 @@ (define-public xournal
(define-public xournalpp
(package
(name "xournalpp")
(version "1.0.17")
(version "1.0.18")
(source
(origin
(method git-fetch)
@ -831,7 +831,7 @@ (define-public xournalpp
(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 @@ (define-public xournalpp
(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 @@ (define-public xournalpp
(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 @@ (define-public python2-simplejson
(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 @@ (define-public python-pyicu
(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 @@ (define-public mallard-ducktype
(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 @@ (define-public python-ipython-documentation
(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 @@ (define-public python2-prettytable
(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 @@ (define-public python-tables
(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 @@ (define-public python2-execnet
(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 @@ (define-public python2-rply
(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 @@ (define-public python-hy
("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 @@ (define-public python-hy
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 @@ (define-public python2-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 @@ (define-public python-vobject
(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 @@ (define-public python-jedi
(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 @@ (define-public python-jedi
(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 @@ (define-module (gnu packages radio)
#: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 @@ (define-public gqrx
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 @@ (define-public vim-guix-vim
(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 @@ (define-public vim-asyncrun
(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 @@ (define-public thunar-volman
(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 @@ (define-public xfwm4
(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 @@ (define-public xfdesktop
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)
;; For our own prepare-background-image phase.
("inkscape" ,inkscape)
("imagemagick" ,imagemagick)))
(inputs
@ -949,15 +950,15 @@ (define-public ristretto
(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 @@ (define-public xmessage
(define-public xterm
(package
(name "xterm")
(version "351")
(version "353")
(source (origin
(method url-fetch)
(uri (list
@ -6014,7 +6014,7 @@ (define-public xterm
"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 @@ (define-module (gnu services base)
#: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 @@ (define-module (gnu services base)
;;; 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 @@ (define sddm-command
(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 @@ (define-module (gnu services shepherd)
shepherd-service-lookup-procedure
shepherd-service-back-edges
shepherd-service-upgrade))
shepherd-service-upgrade
user-processes-service-type))
;;; Commentary:
;;;
@ -415,4 +417,126 @@ (define to-unload
(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 @@ (define accounts
;;
;; 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 @@ (define account-service-type
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 @@ (define-c-struct %struct-dirent-header/hurd
(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 @@ (define closedir*
"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 @@ (define validsig-rx
"^\\[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 @@ (define (status-line->sexp line)
(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 @@ (define (gnupg-status-good-signature? status)
(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 @@ (define-module (guix import json)
#: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 @@ (define* (json-fetch url
(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 @@ (define (variable-name val mod)
;; 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 @@ (define (source->code source version)
(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 @@ (define (source->code source version)
(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 @@ (define (package-lists->code lsts)
(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 @@ (define (source-spec->object source)
(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 @@ (define (alist->package meta)
(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 @@ (define (ensure-list x)
(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 @@ (define-module (guix scripts import json)
#: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 @@ (define (parse-options)
(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 @@ (define-module (guix scripts package)
#: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 @@ (define %options
(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 @@ (define erase-current-line*
(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 @@ (define erase-current-line*
(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-module (guix tests git)
(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 @@ (define (populate-git-repository directory directives)
;; 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 @@ (define tag
;; 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 @@ (define (manifest-entry-output* entry)
(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 @@ (define inputs
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 @@ (define-syntax with-error-handling
(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 @@ (define %package-metrics
(,(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 @@ (define module
(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