Merge branch 'master' into core-updates
commit
7abe35febe
|
@ -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 \
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -147,11 +148,11 @@
|
|||
("mthl"
|
||||
"F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37")
|
||||
("nckx"
|
||||
;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
|
||||
"7E8F AED0 0944 78EF 72E6 4D16 D889 B0F0 18C5 493C")
|
||||
("nckx (2nd)"
|
||||
;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
|
||||
"F5DA 2032 4B87 3D0B 7A38 7672 0DB0 FF88 4F55 6D79")
|
||||
("nckx (revoked; not compromised)"
|
||||
;; primary: "F5BC 5534 C36F 0087 B39D 36EF 1C9D C4FE B9DB 7C4B"
|
||||
"7E8F AED0 0944 78EF 72E6 4D16 D889 B0F0 18C5 493C")
|
||||
("niedzejkob"
|
||||
"E576 BFB2 CF6E B13D F571 33B9 E315 A758 4613 1564")
|
||||
("ngz"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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"]
|
||||
}
|
||||
]
|
|
@ -301,25 +301,6 @@ selected keymap."
|
|||
((installer-final-page current-installer)
|
||||
result prev-steps))))))))
|
||||
|
||||
(define guile-newt
|
||||
;; Guile-Newt with 'form-watch-fd'.
|
||||
;; TODO: Remove once a new release is out.
|
||||
(let ((commit "c3cdeb0b53ac71aedabee669f57d44563c662446")
|
||||
(revision "2"))
|
||||
(package
|
||||
(inherit (@ (gnu packages guile-xyz) guile-newt))
|
||||
(name "guile-newt")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/mothacehe/guile-newt")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09")))))))
|
||||
|
||||
(define (installer-program)
|
||||
"Return a file-like object that runs the given INSTALLER."
|
||||
(define init-gettext
|
||||
|
@ -377,6 +358,7 @@ selected keymap."
|
|||
(gnu installer services)
|
||||
(gnu installer timezone)
|
||||
(gnu installer user)
|
||||
(gnu installer utils)
|
||||
(gnu installer newt)
|
||||
((gnu installer newt keymap)
|
||||
#:select (keyboard-layout->configuration))
|
||||
|
|
|
@ -393,6 +393,7 @@ interactive connmanctl process."
|
|||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(setvbuf pipe 'line)
|
||||
(run-connection-sequence pipe)
|
||||
#t)
|
||||
(lambda ()
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -790,7 +790,7 @@ connection alive.")
|
|||
(define-public isc-dhcp
|
||||
(let* ((bind-major-version "9")
|
||||
(bind-minor-version "11")
|
||||
(bind-patch-version "14")
|
||||
(bind-patch-version "18")
|
||||
(bind-release-type "") ; for patch release, use "-P"
|
||||
(bind-release-version "") ; for patch release, e.g. "6"
|
||||
(bind-version (string-append bind-major-version
|
||||
|
@ -927,7 +927,7 @@ connection alive.")
|
|||
"/bind-" bind-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pv3bvm9dzyz2kqjkw15sgh0hd5fzsv274v5z6jp9c4nb5130fyr"))))
|
||||
"0vws0zzb39mkphj4hhjrgfj9dzw951lc4pfa6pqg5ll5ma51mbsr"))))
|
||||
|
||||
;; When cross-compiling, we need the cross Coreutils and sed.
|
||||
;; Otherwise just use those from %FINAL-INPUTS.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 John Darringon <jmd@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
|
@ -157,39 +157,34 @@ Python as well as GUI widgets for GTK and Qt.")
|
|||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public qrcodegen-cpp
|
||||
;; Currently this project's installation mechanism only exists as a GitHub
|
||||
;; pull request, so we build from a recent commit that the proposed patch
|
||||
;; applies to.
|
||||
(let ((commit "6ea933f1596d818bd21e9a6b8d2e851fb8b4bcf1")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "qrcodegen-cpp")
|
||||
(version (git-version "1.5.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nayuki/QR-Code-generator.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(patches (search-patches "qrcodegen-cpp-make-install.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"19fcwqmfk2n9p2n01dv2j4x2y2mqip0j1wbmfbxjp34rqkjwcwxm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; No ./configure script
|
||||
;; Only build the C++ variant.
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "cpp")
|
||||
#t)))))
|
||||
(synopsis "QR Code generator library")
|
||||
(description "qrcodegen-cpp is a QR code generator library in C++. The
|
||||
(package
|
||||
(name "qrcodegen-cpp")
|
||||
(version "1.6.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nayuki/QR-Code-generator.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(patches (search-patches "qrcodegen-cpp-make-install.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0iq9sv9na0vg996aqrxrjn9rrbiyy7sc9vslw945p3ky22pw3lql"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; No ./configure script
|
||||
;; Only build the C++ variant.
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "cpp")
|
||||
#t)))))
|
||||
(synopsis "QR Code generator library")
|
||||
(description "qrcodegen-cpp is a QR code generator library in C++. The
|
||||
project also offers Java, Javascript, Python, C, and Rust implementations.")
|
||||
(home-page "https://www.nayuki.io/page/qr-code-generator-library")
|
||||
(license license:expat))))
|
||||
(home-page "https://www.nayuki.io/page/qr-code-generator-library")
|
||||
(license license:expat)))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -32,23 +33,23 @@
|
|||
(define-public augeas
|
||||
(package
|
||||
(name "augeas")
|
||||
(version "1.11.0")
|
||||
(version "1.12.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.augeas.net/augeas-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1c507qj6dfn2dnsl27w94zs9r45xrgm07y8bqba9ry2s0psfhg1r"))))
|
||||
"11ybhb13wkkilsn7b416a1dn61m1xrq0lbdpkhp5w61jrk4l469j"))))
|
||||
(build-system gnu-build-system)
|
||||
;; Marked as "required" in augeas.pc
|
||||
;; Marked as "required" in augeas.pc.
|
||||
(propagated-inputs
|
||||
`(("libxml2" ,libxml2)))
|
||||
(inputs
|
||||
`(("readline" ,readline)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://augeas.net/")
|
||||
(home-page "https://augeas.net")
|
||||
(synopsis "Edit configuration files programmatically")
|
||||
(description
|
||||
"Augeas is a library and command line tool for programmatically editing
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
("par2cmdline" ,par2cmdline)
|
||||
("python-pexpect" ,python2-pexpect)
|
||||
("python-fasteners" ,python2-fasteners)
|
||||
("tzdata" ,tzdata-for-tests)
|
||||
("mock" ,python2-mock)))
|
||||
(propagated-inputs
|
||||
`(("lockfile" ,python2-lockfile)
|
||||
|
@ -100,8 +101,7 @@
|
|||
`(("librsync" ,librsync-0.9)
|
||||
("lftp" ,lftp)
|
||||
("gnupg" ,gnupg) ; gpg executable needed
|
||||
("util-linux" ,util-linux) ; for setsid
|
||||
("tzdata" ,tzdata)))
|
||||
("util-linux" ,util-linux))) ; for setsid
|
||||
(arguments
|
||||
`(#:python ,python-2 ; setup assumes Python 2
|
||||
#:test-target "test"
|
||||
|
|
|
@ -2313,6 +2313,8 @@ possible, parallelization is achieved using the BiocParallel framework.")
|
|||
("r-tidyr" ,r-tidyr)
|
||||
("r-tidyselect" ,r-tidyselect)
|
||||
("r-vim" ,r-vim)))
|
||||
(native-inputs
|
||||
`(("r-nbconvertr" ,r-nbconvertr))) ; for vignettes
|
||||
(home-page "https://bioconductor.org/packages/destiny/")
|
||||
(synopsis "Create and plot diffusion maps")
|
||||
(description "This package provides tools to create and plot diffusion
|
||||
|
@ -3529,6 +3531,8 @@ to multiple hypothesis correction.")
|
|||
("r-qvalue" ,r-qvalue)
|
||||
("r-reshape2" ,r-reshape2)
|
||||
("r-s4vectors" ,r-s4vectors)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://guangchuangyu.github.io/software/DOSE/")
|
||||
(synopsis "Disease ontology semantic and enrichment analysis")
|
||||
(description
|
||||
|
@ -3899,6 +3903,8 @@ further downstream analysis on its output.")
|
|||
`(("r-biocparallel" ,r-biocparallel)
|
||||
("r-ellipse" ,r-ellipse)
|
||||
("r-ggplot2" ,r-ggplot2)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://bioconductor.org/packages/bacon/")
|
||||
(synopsis "Controlling bias and inflation in association studies")
|
||||
(description
|
||||
|
@ -6733,6 +6739,8 @@ using whole genome sequencing data.")
|
|||
`(("r-data-table" ,r-data-table)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-metap" ,r-metap)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://cran.r-project.org/web/packages/ActivePathways/")
|
||||
(synopsis "Multivariate pathway enrichment analysis")
|
||||
(description
|
||||
|
@ -7105,6 +7113,8 @@ structures.")
|
|||
("r-rjson" ,r-rjson)
|
||||
("r-rsqlite" ,r-rsqlite)
|
||||
("r-xml" ,r-xml)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/TylerBackman/bioassayR")
|
||||
(synopsis "Cross-target analysis of small molecule bioactivity")
|
||||
(description
|
||||
|
|
|
@ -2399,13 +2399,13 @@ files.")
|
|||
(define-public python-pybigwig
|
||||
(package
|
||||
(name "python-pybigwig")
|
||||
(version "0.3.12")
|
||||
(version "0.3.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyBigWig" version))
|
||||
(sha256
|
||||
(base32
|
||||
"00w4kfnm2c5l7wdwr2nj1z5djv8kzgf7h1zhsgv6njff1rwr26g0"))
|
||||
"157x6v48y299zm382krf1dw08fdxg95im8lnabhp5vc94s04zxj1"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -13642,32 +13642,34 @@ fasta subsequences.")
|
|||
(define-public python-cooler
|
||||
(package
|
||||
(name "python-cooler")
|
||||
(version "0.7.11")
|
||||
(version "0.8.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cooler" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08k5nxnxa6qsbk15z5z0q01n28042k87wi4905hh95rzqib15mhx"))))
|
||||
"01g6gqix9ba27sappz6nfyiwabzrlf8i5fn8kwcz8ra356cq9crp"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-biopython" ,python-biopython)
|
||||
`(("python-asciitree" ,python-asciitree)
|
||||
("python-biopython" ,python-biopython)
|
||||
("python-click" ,python-click)
|
||||
("python-cytoolz" ,python-cytoolz)
|
||||
("python-dask" ,python-dask)
|
||||
("python-h5py" ,python-h5py)
|
||||
("python-multiprocess" ,python-multiprocess)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-pyfaidx" ,python-pyfaidx)
|
||||
("python-pypairix" ,python-pypairix)
|
||||
("python-pysam" ,python-pysam)
|
||||
("python-scipy" ,python-scipy)))
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-scipy" ,python-scipy)
|
||||
("python-simplejson" ,python-simplejson)))
|
||||
(native-inputs
|
||||
`(("python-mock" ,python-mock)
|
||||
("python-nose" ,python-nose)
|
||||
("python-numpydoc" ,python-numpydoc)
|
||||
("python-sphinx" ,python-sphinx)))
|
||||
("python-pytest" ,python-pytest)))
|
||||
(home-page "https://github.com/mirnylab/cooler")
|
||||
(synopsis "Sparse binary format for genomic interaction matrices")
|
||||
(description
|
||||
|
@ -13676,6 +13678,46 @@ storage format, called @code{cool}, used to store genomic interaction data,
|
|||
such as Hi-C contact matrices.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-hicmatrix
|
||||
(package
|
||||
(name "python-hicmatrix")
|
||||
(version "12")
|
||||
(source
|
||||
(origin
|
||||
;; Version 12 is not available on pypi.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/deeptools/HiCMatrix.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1xhdyx16f3brgxgxybixdi64ki8nbbkq5vk4h9ahi11pzpjfn1pj"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'relax-requirements
|
||||
(lambda _
|
||||
(substitute* '("requirements.txt"
|
||||
"setup.py")
|
||||
(("cooler *=+ *0.8.5")
|
||||
"cooler==0.8.*"))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-cooler" ,python-cooler)
|
||||
("python-intervaltree" ,python-intervaltree)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-scipy" ,python-scipy)
|
||||
("python-tables" ,python-tables)))
|
||||
(home-page "https://github.com/deeptools/HiCMatrix/")
|
||||
(synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
|
||||
(description
|
||||
"This helper package implements the @code{HiCMatrix} class for
|
||||
the HiCExplorer and pyGenomeTracks packages.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public python-hicexplorer
|
||||
(package
|
||||
(name "python-hicexplorer")
|
||||
|
@ -13732,23 +13774,35 @@ genomic scores), long range contacts and the visualization of viewpoints.")
|
|||
(define-public python-pygenometracks
|
||||
(package
|
||||
(name "python-pygenometracks")
|
||||
(version "2.0")
|
||||
(version "3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyGenomeTracks" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1fws6bqsyy9kj3qiabhkqx4wd4i775gsxnhszqd3zg7w67sc1ic5"))))
|
||||
"16laa0wnf4qn9fb9ych4w1vqhqwjss70v0y0f6wp4gwqfrlgac0f"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are none
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'relax-requirements
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("matplotlib ==3.1.1")
|
||||
"matplotlib >=3.1.1"))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-configparser" ,python-configparser)
|
||||
("python-future" ,python-future)
|
||||
("python-hicexplorer" ,python-hicexplorer)
|
||||
`(("python-future" ,python-future)
|
||||
("python-gffutils" ,python-gffutils)
|
||||
("python-hicmatrix" ,python-hicmatrix)
|
||||
("python-intervaltree" ,python-intervaltree)
|
||||
("python-matplotlib" ,python-matplotlib)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pybigwig" ,python-pybigwig)))
|
||||
("python-pybigwig" ,python-pybigwig)
|
||||
("python-pysam" ,python-pysam)
|
||||
("python-tqdm" ,python-tqdm)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page "https://pygenometracks.readthedocs.io")
|
||||
|
|
|
@ -186,7 +186,17 @@ data units.")
|
|||
(uri (pypi-uri "khal" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))))
|
||||
"1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))
|
||||
(patches
|
||||
(list
|
||||
(origin
|
||||
(method url-fetch)
|
||||
;; This patch fixes an issue with python-urwid-2.1.0
|
||||
(uri "https://github.com/pimutils/khal/commit/2c5990c2de2015b251ba23617faa40ee11b8c22a.patch")
|
||||
(file-name "khal-compat-urwid-2.1.0.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"11nd8hkjz68imwqqn0p54zmb53z2pfxmzchaviy7jc1ky5s9l663")))))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
|
@ -219,9 +229,8 @@ data units.")
|
|||
("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
|
||||
("python-sphinx" ,python-sphinx)))
|
||||
(inputs
|
||||
`(("sqlite" ,sqlite)))
|
||||
(propagated-inputs
|
||||
`(("python-configobj" ,python-configobj)
|
||||
`(("sqlite" ,sqlite)
|
||||
("python-configobj" ,python-configobj)
|
||||
("python-dateutil" ,python-dateutil)
|
||||
("python-icalendar" ,python-icalendar)
|
||||
("python-tzlocal" ,python-tzlocal)
|
||||
|
|
|
@ -248,7 +248,7 @@ from forcing GEXP-PROMISE."
|
|||
#:system system
|
||||
#:guile-for-build guile)))
|
||||
|
||||
(define %chromium-version "81.0.4044.92")
|
||||
(define %chromium-version "81.0.4044.113")
|
||||
(define %ungoogled-revision "b484ad4c0bdb696c86d941798ae6b0e2bd0db35d")
|
||||
(define %debian-revision "debian/81.0.4044.92-1")
|
||||
(define package-revision "0")
|
||||
|
@ -264,7 +264,7 @@ from forcing GEXP-PROMISE."
|
|||
%chromium-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0i0szd749ihb08rxnsmsbxq75b6x952wpk94jwc0ncv6gb83zkx2"))))
|
||||
"0hsxxw7fm1p8g53msqb644v8vr4cpvjmpln444c2268rm43yik17"))))
|
||||
|
||||
(define %ungoogled-origin
|
||||
(origin
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -47,20 +47,20 @@
|
|||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "b9031db946ff89a39e1507b430f64402b0e9572a")
|
||||
(revision "28"))
|
||||
(let ((commit "27af1d34646f4e3fca09283cb52caa8b89cbb2b1")
|
||||
(revision "29"))
|
||||
(package
|
||||
(name "cuirass")
|
||||
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.savannah.gnu.org/git/guix/guix-cuirass.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"103smfbdpgaw17xw3vc9cb3nfisrx64k71rpzn8g35f3jz7bxdcf"))))
|
||||
"199fzv4d18qslcggl7lj42ib600nckp0c40x7ahnb4rgnjw8ppyi"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils)
|
||||
|
|
|
@ -503,7 +503,7 @@ than gzip and 15 % smaller output than bzip2.")
|
|||
"/share/zoneinfo"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("tzdata" ,tzdata)))
|
||||
`(("tzdata" ,tzdata-for-tests)))
|
||||
(home-page "https://fragglet.github.com/lhasa/")
|
||||
(synopsis "LHA archive decompressor")
|
||||
(description "Lhasa is a replacement for the Unix LHA tool, for
|
||||
|
|
|
@ -12306,6 +12306,8 @@ select colors to use in your R code.")
|
|||
("r-scales" ,r-scales)
|
||||
("r-shiny" ,r-shiny)
|
||||
("r-shinyjs" ,r-shinyjs)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/daattali/ggExtra")
|
||||
(synopsis "Marginal histograms for ggplot2 and other enhancements")
|
||||
(description
|
||||
|
@ -18006,6 +18008,8 @@ allowed.")
|
|||
("r-rsolnp" ,r-rsolnp)
|
||||
("r-shiny" ,r-shiny)
|
||||
("r-shinydashboard" ,r-shinydashboard)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/Wenchao-Ma/GDINA")
|
||||
(synopsis "Generalized DINA model framework")
|
||||
(description
|
||||
|
@ -20620,7 +20624,7 @@ techniques to average Bayesian predictive distributions.")
|
|||
"/share/zoneinfo"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("tzdata" ,tzdata)
|
||||
`(("tzdata" ,tzdata-for-tests)
|
||||
("pandoc" ,ghc-pandoc)))
|
||||
(propagated-inputs
|
||||
`(("r-bh" ,r-bh)
|
||||
|
@ -21102,3 +21106,28 @@ client).")
|
|||
designs with and without early outcomes for treatment selection and
|
||||
subpopulation type designs.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-nbconvertr
|
||||
(package
|
||||
(name "r-nbconvertr")
|
||||
(version "1.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "nbconvertR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0yhmz177r1miain65vspclahhz8cg7638ldbpsw8ylgf7a60l0sg"))))
|
||||
(properties `((upstream-name . "nbconvertR")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("jupyter" ,python-nbconvert)
|
||||
("pandoc" ,ghc-pandoc)))
|
||||
(home-page "https://cran.r-project.org/web/packages/nbconvertR/")
|
||||
(synopsis "Vignette engine wrapping Jupyter notebooks")
|
||||
(description
|
||||
"This package calls the Jupyter script @code{nbconvert} to create
|
||||
vignettes from notebooks. Those notebooks (@code{.ipynb} files) are files
|
||||
containing rich text, code, and its output. Code cells can be edited and
|
||||
evaluated interactively.")
|
||||
(license license:gpl3)))
|
||||
|
|
|
@ -508,7 +508,7 @@ replacement for the code@{python-memcached} library.")
|
|||
("python" ,python-2)
|
||||
("python2-pymongo" ,python2-pymongo)
|
||||
("python2-pyyaml" ,python2-pyyaml)
|
||||
("tzdata" ,tzdata)))
|
||||
("tzdata" ,tzdata-for-tests)))
|
||||
(arguments
|
||||
`(#:scons ,scons-python2
|
||||
#:phases
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mono)
|
||||
#:use-module (gnu packages ocaml)
|
||||
#:use-module (gnu packages package-management)
|
||||
|
@ -68,7 +69,7 @@
|
|||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public diffoscope
|
||||
(let ((version "139"))
|
||||
(let ((version "141"))
|
||||
(package
|
||||
(name "diffoscope")
|
||||
(version version)
|
||||
|
@ -80,7 +81,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1k4yjyvmn5nfdapkwgkr9gzpn18kr4c58n0f32pfkx4yakfqkk4i"))))
|
||||
"0pls2jryx394ysaz0g8h959lhrsdqak9bkxjd5r6sdckgiikplkj"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
|
@ -91,6 +92,12 @@
|
|||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("'python-magic',") ""))))
|
||||
;; Patch in support for known tools
|
||||
(add-after 'unpack 'add-known-tools
|
||||
(lambda _
|
||||
(substitute* "diffoscope/external_tools.py"
|
||||
(("'debian': 'hdf5-tools'")
|
||||
"'debian': 'hdf5-tools', 'guix': 'hdf5'"))))
|
||||
;; This test is broken because our `file` package has a
|
||||
;; bug in berkeley-db file type detection.
|
||||
(add-after 'unpack 'remove-berkeley-test
|
||||
|
@ -189,6 +196,7 @@
|
|||
("giflib:bin" ,giflib "bin")
|
||||
("gnumeric" ,gnumeric)
|
||||
("gnupg" ,gnupg)
|
||||
("hdf5" ,hdf5)
|
||||
("imagemagick" ,imagemagick)
|
||||
("libarchive" ,libarchive)
|
||||
("llvm" ,llvm)
|
||||
|
|
|
@ -115,7 +115,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
|||
(define-public isc-bind
|
||||
(package
|
||||
(name "bind")
|
||||
(version "9.16.1")
|
||||
(version "9.16.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -123,7 +123,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
|||
"/bind-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14ayswxnyaqwb935iqdi1w9ih3zs0a0va59j4cyi5f9mh7kxf4x9"))))
|
||||
"0gwr4p14zy5jqq050n762rfc33km51qwipcwy6bsvk55ziybgrfr"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs `("out" "utils"))
|
||||
(inputs
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
|
||||
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -31,6 +32,7 @@
|
|||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages game-development)
|
||||
|
@ -43,12 +45,14 @@
|
|||
#:use-module (gnu packages kde)
|
||||
#:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages texinfo)
|
||||
|
@ -935,3 +939,40 @@ TuxMath also includes Factoroids, a game that gives practice in
|
|||
factoring numbers and simplifying fractions, as well as zapping rocks
|
||||
floating through space.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public mdk
|
||||
(package
|
||||
(name "mdk")
|
||||
(version "1.2.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mdk/v1.2.10/mdk-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rwcq2b5vvv7318j92nxc5dayj27dpfhzc4rjiv4ccvsc0x35x5h"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--enable-gui=yes" "-with-readline=yes")))
|
||||
(native-inputs
|
||||
`(("flex" ,flex)
|
||||
("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("ncurses" ,ncurses)))
|
||||
(inputs
|
||||
`(("readline" ,readline)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("pango" ,pango)
|
||||
("libglade" ,libglade)))
|
||||
(home-page "https://www.gnu.org/software/mdk/")
|
||||
(synopsis "Virtual development environment for Knuth's MIX")
|
||||
(description
|
||||
"GNU MDK is the Mix Development Kit, an emulation of the pedagogical
|
||||
computer MIX and its assembly language MIXAL. MIX has a virtual CPU with
|
||||
standard features such as registers, memory cells, an overflow toggle,
|
||||
comparison flags, input-output devices, and a set of binary instructions.
|
||||
The package includes a compiler, a virtual machine, a GUI for the virtual
|
||||
machine, and more.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -4975,7 +4975,7 @@ number.")
|
|||
(define-public emacs-org-superstar
|
||||
(package
|
||||
(name "emacs-org-superstar")
|
||||
(version "1.1.0")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -4984,7 +4984,7 @@ number.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "14aafqw8rnbmiy3kcw1a58vjxdyamrbmlldnlw018wgk0qqv0xpx"))))
|
||||
(base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-org" ,emacs-org)))
|
||||
|
|
|
@ -249,7 +249,7 @@ from the jfsutils package. It is meant to be used in initrds.")
|
|||
(define-public disorderfs
|
||||
(package
|
||||
(name "disorderfs")
|
||||
(version "0.5.8")
|
||||
(version "0.5.9")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -259,7 +259,7 @@ from the jfsutils package. It is meant to be used in initrds.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pk9i0dycjq0wl6dp37r2hbadgpgmzbmjk2xpbjl36x4yrm4jns8"))))
|
||||
"0irgr9hkm9icx1s44m9382484yx8hddzjxbsz621ip9c946pif0g"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
|
||||
;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
|
||||
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
|
||||
;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
|
||||
;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
|
||||
|
@ -41,6 +41,7 @@
|
|||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
|
@ -241,11 +242,11 @@ and dynamically with report tools based on filtering and graphical charts.")
|
|||
("libedit" ,libedit)
|
||||
("mpfr" ,mpfr)
|
||||
("python" ,python-2)
|
||||
("tzdata" ,tzdata)
|
||||
("utfcpp" ,utfcpp)))
|
||||
(native-inputs
|
||||
`(("groff" ,groff)
|
||||
("texinfo" ,texinfo)))
|
||||
("texinfo" ,texinfo)
|
||||
("tzdata" ,tzdata-for-tests)))
|
||||
(home-page "https://ledger-cli.org/")
|
||||
(synopsis "Command-line double-entry accounting program")
|
||||
(description
|
||||
|
@ -1165,10 +1166,37 @@ information.")
|
|||
(home-page "https://grisbi.org")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public trezord-udev-rules
|
||||
(let ((commit "bff7fdfe436c727982cc553bdfb29a9021b423b0")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "trezord-udev-rules")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/trezor/trezor-common.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"14mrirrn68if7ja6qdk9qlxs1hv0f21vrxy5ncnms0gx9iwakp2l"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
'(#:install-plan
|
||||
'(("./udev/51-trezor.rules" "lib/udev/rules.d/"))))
|
||||
(home-page "https://github.com/trezor/trezor-common")
|
||||
(synopsis "Udev rules for trezord")
|
||||
(description
|
||||
"This contains the udev rules for trezord. This will let a user run
|
||||
trezord as a regular user instead of needing to it run as root.")
|
||||
(license license:lgpl3+))))
|
||||
|
||||
(define-public trezord
|
||||
(package
|
||||
(name "trezord")
|
||||
(version "2.0.17")
|
||||
(version "2.0.29")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1177,7 +1205,7 @@ information.")
|
|||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0nqzpq0i3crh0i4r1cppja5sn3rwi1fv9afxzwzv63096x5l30a7"))
|
||||
"1ks1fa0027s3xp0z6qp0dxmayvrb4dwwscfhbx7da0khp153f2cp"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
|
@ -1405,14 +1433,14 @@ a Qt GUI.")
|
|||
(define-public fulcrum
|
||||
(package
|
||||
(name "fulcrum")
|
||||
(version "1.0.5b")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://gitlab.com/FloweeTheHub/fulcrum/-/archive/v"
|
||||
version "/fulcrum-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1c1hkik8avill8ha33g76rk4b03j5ac8wiml69q4jav7a63ywgfy"))))
|
||||
(base32 "1xywwgsdhkiblv6la0pfhvn2s9q8vnz6pjg35647rlwzi6ybf0ak"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -1440,6 +1468,71 @@ walets in a fast and small server. The full data is stored in a full node,
|
|||
like Flowee the Hub, which Fulcrum connects to over RPC.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public flowee
|
||||
(package
|
||||
(name "flowee")
|
||||
(version "2020.03.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://gitlab.com/FloweeTheHub/thehub/-/archive/"
|
||||
version "/thehub-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1ajd5axv9zyhh6njrvamm11zn52j1q4j3mwn2nfv7cjd4lhnhlsr"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-Dbuild_tests=ON" "-Denable_gui=OFF")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'make-qt-deterministic
|
||||
(lambda _
|
||||
;; Make Qt deterministic.
|
||||
(setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
|
||||
#t))
|
||||
(add-before 'configure 'disable-black-box
|
||||
;; the black-box testing runs full hubs and lets them interact.
|
||||
;; this is more fragile and a slow machine, or low memory machine, may
|
||||
;; make the tests timeout and fail. We just disable them here.
|
||||
(lambda _
|
||||
(substitute* "testing/CMakeLists.txt"
|
||||
(("test_api") ""))
|
||||
#t))
|
||||
(add-after 'configure 'set-build-info
|
||||
;; Their genbuild.sh to generate a build.h fails in guix (no .git dir) .
|
||||
;; Its purpose is to write the tag name in the build.h file. We do that
|
||||
;; here instead.
|
||||
(lambda _
|
||||
(with-output-to-file "include/build.h"
|
||||
(lambda _
|
||||
(display
|
||||
(string-append "#define BUILD_DESC " "\"", version "\""))))))
|
||||
(add-before 'check 'set-home
|
||||
(lambda _
|
||||
(setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "make" "check" "-C" "testing"))))))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("gmp" ,gmp)
|
||||
("libevent" ,libevent)
|
||||
("miniupnpc" ,miniupnpc)
|
||||
("openssl" ,openssl)
|
||||
("qtbase" ,qtbase)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("qttools" ,qttools)
|
||||
("util-linux" ,util-linux))) ; provides the hexdump command for tests
|
||||
(home-page "https://flowee.org")
|
||||
(synopsis "Flowee infrastructure tools and services")
|
||||
(description
|
||||
"Flowee packages all tier-1 applications and services from the Flowee group.
|
||||
This includes components like The Hub and Indexer which and various others
|
||||
that allows you to run services and through them access the Bitcoin Cash networks.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
|
||||
(define-public beancount
|
||||
(package
|
||||
(name "beancount")
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
|
||||
;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
|
||||
|
@ -1955,7 +1955,7 @@ asynchronously and at a user-defined speed.")
|
|||
(define-public chess
|
||||
(package
|
||||
(name "chess")
|
||||
(version "6.2.5")
|
||||
(version "6.2.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1963,13 +1963,15 @@ asynchronously and at a user-defined speed.")
|
|||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00j8s0npgfdi41a0mr5w9qbdxagdk2v41lcr42rwl1jp6miyk6cs"))))
|
||||
"0kxhdv01ia91v2y0cmzbll391ns2vbmn65jjrv37h4s1srszh5yn"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.gnu.org/software/chess/")
|
||||
(synopsis "Full chess implementation")
|
||||
(description "GNU Chess is a chess engine. It allows you to compete
|
||||
against the computer in a game of chess, either through the default terminal
|
||||
interface or via an external visual interface such as GNU XBoard.")
|
||||
(properties '((upstream-name . "gnuchess")
|
||||
(ftp-directory . "/chess")))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define freedink-engine
|
||||
|
|
|
@ -250,6 +250,34 @@ Desktop. It is designed to be as simple as possible and has some unique
|
|||
features to enable users to create their discs easily and quickly.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public notification-daemon
|
||||
(package
|
||||
(name "notification-daemon")
|
||||
(version "3.20.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("x11" ,libx11)))
|
||||
(synopsis "Notification Daemon for GNOME Desktop")
|
||||
(description "Notification-Daemon is the server implementation of the
|
||||
freedesktop.org desktop notification specification.")
|
||||
(home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public mm-common
|
||||
(package
|
||||
(name "mm-common")
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
(define-public gpodder
|
||||
(package
|
||||
(name "gpodder")
|
||||
(version "3.10.13")
|
||||
(version "3.10.15")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -47,11 +47,13 @@
|
|||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1h542syaxsx1hslfzlk3fx1nbp190zjw35kigw7a1kx1jwvfwapg"))
|
||||
"0ghbanj142n0hgydzfjmnkdgri2kswsjal3mn10c723kih4ir4yr"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)))
|
||||
`(("intltool" ,intltool)
|
||||
("python-coverage" ,python-coverage)
|
||||
("python-minimock" ,python-minimock)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("python-pygobject" ,python-pygobject)
|
||||
|
@ -72,6 +74,12 @@
|
|||
(substitute* "src/gpodder/util.py"
|
||||
(("xdg-open") (string-append xdg-utils "/bin/xdg-open")))
|
||||
#t)))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
; The `unittest' target overrides the PYTHONPATH variable.
|
||||
(substitute* "makefile"
|
||||
(("PYTHONPATH=src/") "PYTHONPATH=${PYTHONPATH}:src/"))
|
||||
(invoke "make" "unittest")))
|
||||
;; 'msgmerge' introduces non-determinism by resetting the
|
||||
;; POT-Creation-Date in .po files.
|
||||
(add-before 'install 'do-not-run-msgmerge
|
||||
|
@ -176,7 +184,13 @@ downloading episode status changes.")
|
|||
(sha256
|
||||
(base32 "0k62ppg20i41gcc5x8ddjn7zbpy47hqpxzrq9257g2c71m4qw07b"))))
|
||||
(native-inputs
|
||||
`(("python-nose" ,python-nose)))
|
||||
`(("python-coverage" ,python-coverage)
|
||||
("python-nose" ,python-nose)))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _ (invoke "nosetests"))))))
|
||||
(build-system python-build-system)
|
||||
(home-page "http://gpodder.org/podcastparser")
|
||||
(synopsis "Simplified and fast RSS parser Python library")
|
||||
|
|
|
@ -1056,7 +1056,7 @@ format.")
|
|||
(define-public guile-newt
|
||||
(package
|
||||
(name "guile-newt")
|
||||
(version "0.0.1")
|
||||
(version "0.0.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1065,20 +1065,7 @@ format.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Allow builds with Guile 3.0.
|
||||
(substitute* "configure.ac"
|
||||
(("^GUILE_PKG.*")
|
||||
"GUILE_PKG([3.0 2.2 2.0])\n"))
|
||||
|
||||
;; Remove "guile.m4" since it contains an obsolete version
|
||||
;; of 'GUILE_PKG' that doesn't work with development
|
||||
;; versions such as 2.9.
|
||||
(delete-file "m4/guile.m4")
|
||||
#t))))
|
||||
"1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags
|
||||
|
|
|
@ -1972,7 +1972,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
|
|||
(define-public libavif
|
||||
(package
|
||||
(name "libavif")
|
||||
(version "0.6.3")
|
||||
(version "0.7.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1981,7 +1981,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fn2mcpvzw6h9sv8h0icbz10i8ihzzf5d5mx3fc4pvhicyz4syq8"))))
|
||||
"1xybjbbprvfsrwgysrn7grg6yp7v6ch5vci7zvdcdzcgyrbph172"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON"
|
||||
|
@ -1989,18 +1989,15 @@ This package can be used to create @code{favicon.ico} files for web sites.")
|
|||
"-DAVIF_BUILD_TESTS=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "./aviftest" "../source/tests/data")))
|
||||
(add-after 'install 'install-readme
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (string-append out "/share/doc/libavif-"
|
||||
,version)))
|
||||
(install-file "../source/README.md" doc)))))
|
||||
;; The test suite runs tests for all supported codecs and fails because we don't
|
||||
;; have rav1e yet.
|
||||
;; (replace 'check
|
||||
;; (lambda _
|
||||
;; (invoke "./aviftest" "../source/tests/data"))))
|
||||
#:tests? #f))
|
||||
(doc (string-append out "/share/doc/libavif-" ,version)))
|
||||
(install-file "../source/README.md" doc)
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("libaom" ,libaom)
|
||||
("dav1d" ,dav1d)))
|
||||
|
|
|
@ -3537,7 +3537,7 @@ workspace.")
|
|||
("shared-mime-info" ,shared-mime-info)
|
||||
("kjobwidgets" ,kjobwidgets) ;; required for running the tests
|
||||
("strace" ,strace)
|
||||
("tzdata" ,tzdata)))
|
||||
("tzdata" ,tzdata-for-tests)))
|
||||
(propagated-inputs
|
||||
;; These are required to be installed along with this package, see
|
||||
;; lib64/cmake/KF5KDELibs4Support/KF5KDELibs4SupportConfig.cmake
|
||||
|
|
|
@ -369,26 +369,26 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(sha256 hash)))
|
||||
|
||||
|
||||
(define-public linux-libre-5.6-version "5.6.4")
|
||||
(define-public linux-libre-5.6-version "5.6.5")
|
||||
(define-public linux-libre-5.6-pristine-source
|
||||
(let ((version linux-libre-5.6-version)
|
||||
(hash (base32 "14cxbc9xi4s3xwx4yb1yd4z0kidsk3d443skf5sgmdhcalg79wax")))
|
||||
(hash (base32 "1rjjkcmzsj9azggh960qnk2x44ns475b8nbd4nxazrz1rgdx76zp")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.6)))
|
||||
|
||||
(define-public linux-libre-5.4-version "5.4.32")
|
||||
(define-public linux-libre-5.4-version "5.4.33")
|
||||
(define-public linux-libre-5.4-pristine-source
|
||||
(let ((version linux-libre-5.4-version)
|
||||
(hash (base32 "1czjjnln1cqrnjxw0md6mpw9haw9abdyvmxnjds56ym4nzx9jb8r")))
|
||||
(hash (base32 "0q9q48ij6vppfcrdf7fr24pvpwsd13pxjkdni6rnjq9a60hrcmxm")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.4)))
|
||||
|
||||
(define-public linux-libre-4.19-version "4.19.115")
|
||||
(define-public linux-libre-4.19-version "4.19.116")
|
||||
(define-public linux-libre-4.19-pristine-source
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "1hh170z3mv181l6cc6qqc12wif5jsmxbh2qxbq6b9km5irydkchi")))
|
||||
(hash (base32 "0r3vdc3npl1bn06w9v6wsq7d5mm7bnhm9wsz36pb9ar3xhimvrlf")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.19)))
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
|
||||
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
|
||||
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
|
||||
;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -89,6 +89,7 @@
|
|||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libidn)
|
||||
#:use-module (gnu packages libunistring)
|
||||
#:use-module (gnu packages libunwind)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages lsof)
|
||||
#:use-module (gnu packages lua)
|
||||
|
@ -1432,6 +1433,11 @@ facilities for checking incoming mail.")
|
|||
(inputs
|
||||
`(("bzip2" ,bzip2)
|
||||
("libsodium" ,libsodium) ; extra password algorithms
|
||||
;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
|
||||
;; backtrace_symbol() function so fallback to using libunwind.
|
||||
,@(if (target-arm?)
|
||||
`(("libunwind" ,libunwind))
|
||||
'())
|
||||
("linux-pam" ,linux-pam)
|
||||
("lz4" ,lz4)
|
||||
("openssl" ,openssl)
|
||||
|
@ -1955,26 +1961,26 @@ maintained.")
|
|||
(define-public khard
|
||||
(package
|
||||
(name "khard")
|
||||
(version "0.15.1")
|
||||
(version "0.16.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32
|
||||
"18ba2xgfq8sw0bg6xmlfjpizid1hkzgswcfcc54gl21y2dwfda2w"))))
|
||||
"0fg4qh5gzki5wg958wlpc8a2icnk74gzg33lqxjm755cfnjng7qd"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-doc
|
||||
(add-after 'install 'install-completions
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (string-append out "/share/doc/khard")))
|
||||
(copy-recursively "misc/khard" doc)
|
||||
(zsh (string-append out "/share/zsh/site-functions")))
|
||||
(copy-recursively "misc/zsh" zsh)
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("python-setuptools-scm" ,python-setuptools-scm)))
|
||||
(propagated-inputs
|
||||
(inputs
|
||||
`(("python-atomicwrites" ,python-atomicwrites)
|
||||
("python-configobj" ,python-configobj)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
|
|
|
@ -29,13 +29,13 @@
|
|||
(define-public toot
|
||||
(package
|
||||
(name "toot")
|
||||
(version "0.25.2")
|
||||
(version "0.26.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "toot" version))
|
||||
(sha256
|
||||
(base32 "16akld7zfr52rqrbgf6hmsca9qsrfdbbbd9bji8d26zggxmqq4vq"))))
|
||||
(base32 "0h0lqm1q7i32i9n6yx5q2j563vc92h2sjh1ih4n2rxf98p6c5d1b"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -608,14 +608,14 @@ of the same name.")
|
|||
(define-public wireshark
|
||||
(package
|
||||
(name "wireshark")
|
||||
(version "3.2.2")
|
||||
(version "3.2.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.wireshark.org/download/src/wireshark-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0ygdxpz0i4jxp55fg9x4xcan093wycjb66yas073gviz9kpj6naz"))))
|
||||
(base32 "1fpsfjrap7j84sy728yhcr2gad9nq3n5gq03mwrmxnc6ijwf81zh"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -244,3 +245,26 @@ protocol used in @code{node-lynx}.")
|
|||
(description "This package provides the Node.js @code{util.deprecate()}
|
||||
function with browser support.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public node-semver
|
||||
(package
|
||||
(name "node-semver")
|
||||
(version "7.2.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/npm/node-semver.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p"))))
|
||||
(build-system node-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;; FIXME: Tests depend on node-tap
|
||||
(home-page "https://github.com/npm/node-semver")
|
||||
(synopsis "Parses semantic versions strings")
|
||||
(description
|
||||
"@code{node-semver} is a JavaScript implementation of the
|
||||
@uref{https://semver.org/, SemVer.org} specification.")
|
||||
(license license:isc)))
|
||||
|
|
|
@ -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(
|
|
@ -822,7 +822,7 @@ using a stylus.")
|
|||
(define-public xournalpp
|
||||
(package
|
||||
(name "xournalpp")
|
||||
(version "1.0.17")
|
||||
(version "1.0.18")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -831,7 +831,7 @@ using a stylus.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0xw2mcgnm4sa9hrhfgp669lfypw97drxjmz5w8i5whaprpvmkxzw"))))
|
||||
(base32 "0a9ygbmd4dwgck3k8wsrm2grynqa0adb12wwspzmzvpisbadffjy"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "-DENABLE_CPPUNIT=ON") ;enable tests
|
||||
|
@ -844,11 +844,6 @@ using a stylus.")
|
|||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-permissions-on-po-files
|
||||
(lambda _
|
||||
;; Always generate translations. A recent upstream patch
|
||||
;; disabled it.
|
||||
(substitute* "po/CMakeLists.txt"
|
||||
(("gettext_create_translations \\(\"\\$\\{potfile\\}\"\\)")
|
||||
"gettext_create_translations (\"${potfile}\" ALL)"))
|
||||
;; Make sure 'msgmerge' can modify the PO files.
|
||||
(for-each (lambda (po) (chmod po #o666))
|
||||
(find-files "." "\\.po$"))
|
||||
|
@ -857,7 +852,6 @@ using a stylus.")
|
|||
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
|
||||
(native-inputs
|
||||
`(("cppunit" ,cppunit)
|
||||
("gcc" ,gcc-8) ;requires gcc 8+
|
||||
("gettext" ,gettext-minimal)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
|
|
|
@ -1699,14 +1699,14 @@ Python 3.3+.")
|
|||
(define-public python-pyicu
|
||||
(package
|
||||
(name "python-pyicu")
|
||||
(version "2.3.1")
|
||||
(version "2.4.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyICU" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x4w8m7ifki9z2a187pgjr33z6z0rp2fii9b73djak1vhm9v9cnx"))))
|
||||
"075bw66b3w0nw6mc5k32fwmrhyrmq3d7da3q2mw212qfmm0pgjn0"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("icu4c" ,icu4c)))
|
||||
|
@ -1717,24 +1717,10 @@ Python 3.3+.")
|
|||
(synopsis "Python extension wrapping the ICU C++ API")
|
||||
(description
|
||||
"PyICU is a python extension wrapping the ICU C++ API.")
|
||||
(properties `((python2-variant . ,(delay python2-pyicu))))
|
||||
(license license:x11)))
|
||||
|
||||
(define-public python2-pyicu
|
||||
(let ((base (package-with-python2
|
||||
(strip-python2-variant python-pyicu))))
|
||||
(package
|
||||
(inherit base)
|
||||
(arguments
|
||||
`(,@(package-arguments base)
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'delete-failing-test
|
||||
(λ _
|
||||
;; XXX: This fails due to Unicode issues unique to Python 2,
|
||||
;; it seems: <https://github.com/ovalhub/pyicu/issues/61>.
|
||||
(delete-file "test/test_Script.py")
|
||||
#t))))))))
|
||||
(package-with-python2 python-pyicu))
|
||||
|
||||
(define-public python2-dogtail
|
||||
;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
|
||||
|
@ -3877,14 +3863,14 @@ provides additional functionality on the produced Mallard documents.")
|
|||
(define-public python-cython
|
||||
(package
|
||||
(name "python-cython")
|
||||
(version "0.29.15")
|
||||
(version "0.29.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Cython" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0c5cjyxfvba6c0vih1fvhywp8bpz30vwvbjqdm1q1k55xzhmkn30"))))
|
||||
"01gs10myw0rw4jsikvqs0859fg7gficxhv508cxvnb4l9wl5a9r3"))))
|
||||
(build-system python-build-system)
|
||||
;; we need the full python package and not just the python-wrapper
|
||||
;; because we need libpython3.3m.so
|
||||
|
@ -6499,14 +6485,14 @@ computing.")
|
|||
(define-public python-urwid
|
||||
(package
|
||||
(name "python-urwid")
|
||||
(version "2.0.1")
|
||||
(version "2.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "urwid" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g6cpicybvbananpjikmjk8npmjk4xvak1wjzji62wc600wkwkb4"))))
|
||||
"11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "http://urwid.org")
|
||||
(synopsis "Console user interface library for Python")
|
||||
|
@ -8037,14 +8023,14 @@ printing of sub-tables by specifying a row range.")
|
|||
(define-public python-tables
|
||||
(package
|
||||
(name "python-tables")
|
||||
(version "3.4.4")
|
||||
(version "3.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "tables" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0affz7k8babh8wdmsgrz5jxrd569by2w8ffimcxs9wiaf5rw1idx"))
|
||||
"0j8vnxh2m5n0cyk9z3ndcj5n1zj5rdxgc1gb78bqlyn2lyw75aa9"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -8062,9 +8048,11 @@ printing of sub-tables by specifying a row range.")
|
|||
(add-after 'unpack 'use-gcc
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("compiler = new_compiler\\(\\)" line)
|
||||
(("^( +)compiler = new_compiler\\(\\)" line indent)
|
||||
(string-append line
|
||||
"\ncompiler.set_executables(compiler='gcc',"
|
||||
"\n"
|
||||
indent
|
||||
"compiler.set_executables(compiler='gcc',"
|
||||
"compiler_so='gcc',"
|
||||
"linker_exe='gcc',"
|
||||
"linker_so='gcc -shared')")))
|
||||
|
@ -9421,13 +9409,13 @@ minimal and fast API targeting the following uses:
|
|||
(define-public python-icalendar
|
||||
(package
|
||||
(name "python-icalendar")
|
||||
(version "4.0.4")
|
||||
(version "4.0.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "icalendar" version))
|
||||
(sha256
|
||||
(base32
|
||||
"16gjvqv0n05jrb9g228pdjgzd3amz2pdhvcgsn1jypszjg5m2w9l"))))
|
||||
"14ynjj65kfmlcvpb7k097w789wvxncd3cr3xz5m1jz9yl9v6vv5q"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-dateutil" ,python-dateutil)
|
||||
|
@ -9516,20 +9504,20 @@ with a new public API, and RPython support.")
|
|||
(define-public python-hy
|
||||
(package
|
||||
(name "python-hy")
|
||||
(version "0.17.0")
|
||||
(version "0.18.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "hy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi"))))
|
||||
"04dfwm336gw61fmgwikvh0cnxk682p19b4w555wl5d7mlym4rwj2"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'set-HOME
|
||||
(lambda _
|
||||
(setenv "HOME" "/tmp")))
|
||||
(add-before 'install 'set-HOME
|
||||
(lambda _
|
||||
(setenv "HOME" "/tmp") #t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
;; Tests require write access to HOME.
|
||||
|
@ -9540,10 +9528,8 @@ with a new public API, and RPython support.")
|
|||
("python-nose" ,python-nose)))
|
||||
(propagated-inputs
|
||||
`(("python-astor" ,python-astor)
|
||||
("python-clint" ,python-clint)
|
||||
("python-colorama" ,python-colorama)
|
||||
("python-rply" ,python-rply)
|
||||
("python-fastentrypoints"
|
||||
,python-fastentrypoints)
|
||||
("python-funcparserlib"
|
||||
,python-funcparserlib)))
|
||||
(home-page "http://hylang.org/")
|
||||
|
@ -9554,9 +9540,6 @@ its Lisp code into the Python Abstract Syntax Tree, you have the whole world of
|
|||
Python at your fingertips, in Lisp form.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-hy
|
||||
(package-with-python2 python-hy))
|
||||
|
||||
(define-public python2-functools32
|
||||
(package
|
||||
(name "python2-functools32")
|
||||
|
@ -10357,13 +10340,13 @@ programmatically interfacing with your system's $EDITOR.")
|
|||
(define-public python-vobject
|
||||
(package
|
||||
(name "python-vobject")
|
||||
(version "0.9.5")
|
||||
(version "0.9.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "vobject" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hqjgf3ay1m5w1c0k00g5yfpdz1zni5qnr5rh9b8fg9hjvhwlmhg"))))
|
||||
"0081g4gngw28j7vw8101jk600wz4gzfrhf5myrqvn2mrfkn2llcn"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(;; The test suite relies on some non-portable Windows interfaces.
|
||||
|
@ -10374,7 +10357,7 @@ programmatically interfacing with your system's $EDITOR.")
|
|||
(synopsis "Parse and generate vCard and vCalendar files")
|
||||
(description "Vobject is intended to be a full featured Python package for
|
||||
parsing and generating vCard and vCalendar files. Currently, iCalendar files
|
||||
are supported and well tested. vCard 3.0 files are supported, and all data
|
||||
are supported and well tested. vCard 3.0 files are supported, and all data
|
||||
should be imported, but only a few components are understood in a sophisticated
|
||||
way.")
|
||||
(home-page "https://eventable.github.io/vobject/")
|
||||
|
@ -11997,6 +11980,7 @@ characters, mouse support, and auto suggestions.")
|
|||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "jedi" version))
|
||||
(patches (search-patches "python-jedi-sort-project-test.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0c1h9x3a9klvk2g288wl328x8xgzw7136k6vs9hkd56b85vcjh6z"))))
|
||||
|
@ -12007,7 +11991,7 @@ characters, mouse support, and auto suggestions.")
|
|||
(replace 'check
|
||||
(lambda _
|
||||
(setenv "HOME" "/tmp")
|
||||
(invoke "python" "-m" "pytest"))))))
|
||||
(invoke "python" "-m" "pytest" "-vv"))))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-docopt" ,python-docopt)))
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages engineering)
|
||||
#:use-module (gnu packages fltk)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gstreamer)
|
||||
|
@ -525,3 +526,121 @@ to the fix block above.
|
|||
using GNU Radio and the Qt GUI toolkit.")
|
||||
(home-page "https://gqrx.dk/")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public fldigi
|
||||
(package
|
||||
(name "fldigi")
|
||||
(version "4.1.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.w1hkj.com/files/fldigi/fldigi-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1y62xn1pim38ibaf2mbl8b7aq20jdaac6lgggb9r402w9bj5b196"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("fltk" ,fltk)
|
||||
("libpng" ,libpng)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxft" ,libxft)
|
||||
("portaudio" ,portaudio)
|
||||
("pulseaudio" ,pulseaudio)))
|
||||
(synopsis "Software modem for amateur radio use")
|
||||
(description
|
||||
"Fldigi is a software modem for amateur radio use. It is a sound card
|
||||
based program that is used for both transmitting and receiving data by
|
||||
connecting the microphone and headphone connections of a computer to some radio
|
||||
hardware.")
|
||||
(home-page "http://www.w1hkj.com/")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public flrig
|
||||
(package
|
||||
(name "flrig")
|
||||
(version "1.3.50")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.w1hkj.com/files/flrig/flrig-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0fzrknzzi8kmzmrcfpc8rxr7v4a4ny6z6z5q5qwh95sp2kn2qzp9"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("fltk" ,fltk)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxft" ,libxft)))
|
||||
(synopsis "Radio transceiver control program")
|
||||
(description
|
||||
"Flrig is a transceiver control program for amateur radio use.
|
||||
It provides computer aided control of various radios using a serial
|
||||
or USB connection.")
|
||||
(home-page "http://www.w1hkj.com/")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public flamp
|
||||
(package
|
||||
(name "flamp")
|
||||
(version "2.2.05")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.w1hkj.com/files/flamp/flamp-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "19z1kghhdf7bq6hi2j0mzlsn2nhpn3gl1a623x3inmsk80yw3ck4"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("fltk" ,fltk)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxft" ,libxft)))
|
||||
(synopsis "Tool for AMP file transfer")
|
||||
(description
|
||||
"FLAMP is a program for transfering files by radio waves using AMP
|
||||
(Amateur Multicast Protocol).")
|
||||
(home-page "http://www.w1hkj.com/")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public flwrap
|
||||
(package
|
||||
(name "flwrap")
|
||||
(version "1.3.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.w1hkj.com/files/flwrap/flwrap-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0qqivqkkravcg7j45740xfky2q3k7czqpkj6y364qff424q2pppg"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("fltk" ,fltk)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxft" ,libxft)))
|
||||
(synopsis "File encapsulation program")
|
||||
(description
|
||||
"Flwrap is a software utility for amateur radio use. Its purpose is to
|
||||
encapsulate both text and binary files in a way that allows them to be
|
||||
transmitted over any of several digital modes and verified at the receipt end
|
||||
for correctness.")
|
||||
(home-page "http://www.w1hkj.com/")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -851,7 +851,7 @@ through its msgpack-rpc API.")
|
|||
(define-public vim-asyncrun
|
||||
(package
|
||||
(name "vim-asyncrun")
|
||||
(version "2.7.1")
|
||||
(version "2.7.5")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -860,7 +860,7 @@ through its msgpack-rpc API.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0f7slvz28772qsbrb8xfwrkprfm90wc9i36xhn797lacxcxgwqpw"))))
|
||||
"02fiqf4rcrxbcgvj02mpd78wkxsrnbi54aciwh9fv5mnz5ka249m"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
'(#:install-plan
|
||||
|
|
|
@ -711,15 +711,15 @@ and import the new pictures from your camera.")
|
|||
(define-public xfwm4
|
||||
(package
|
||||
(name "xfwm4")
|
||||
(version "4.14.0")
|
||||
(version "4.14.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.xfce.org/src/xfce/"
|
||||
name "/" (version-major+minor version) "/"
|
||||
name "-" version ".tar.bz2"))
|
||||
"xfwm4/" (version-major+minor version) "/"
|
||||
"xfwm4-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"05dn4a1i0nm6wm3nyj7qli5bvfalxghcl7x543qr5l33vkw2n65l"))))
|
||||
"0a0la57jh618qfl7czsn7mspcraqczkm1m616j7jwxkhh2hq21qh"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -741,15 +741,15 @@ on the screen.")
|
|||
(define-public xfdesktop
|
||||
(package
|
||||
(name "xfdesktop")
|
||||
(version "4.14.1")
|
||||
(version "4.14.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.xfce.org/src/xfce/"
|
||||
name "/" (version-major+minor version) "/"
|
||||
name "-" version ".tar.bz2"))
|
||||
"xfdesktop/" (version-major+minor version) "/"
|
||||
"xfdesktop-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"10pqxgpj7b57wpcsh2k98sj4aavcgxbs1lc8qsq4mibf4hba01gp"))
|
||||
"0x1yx9sd5aanrlr1qnbwd2nsmcg09g4132k0kyb7z47a3x3381d3"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
|
@ -781,6 +781,7 @@ on the screen.")
|
|||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
|
||||
;; For our own ‘prepare-background-image’ phase.
|
||||
("inkscape" ,inkscape)
|
||||
("imagemagick" ,imagemagick)))
|
||||
(inputs
|
||||
|
@ -949,15 +950,15 @@ the desktop wallpaper.")
|
|||
(define-public xfce4-taskmanager
|
||||
(package
|
||||
(name "xfce4-taskmanager")
|
||||
(version "1.2.2")
|
||||
(version "1.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.xfce.org/src/apps/"
|
||||
name "/" (version-major+minor version) "/"
|
||||
name "-" version ".tar.bz2"))
|
||||
"xfce4-taskmanager/" (version-major+minor version) "/"
|
||||
"xfce4-taskmanager-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"04qflazmdrj4ys4r54yg4s5pqcjgk02idrjsls395zd4374636p4"))))
|
||||
"1i63bnvpjpblnd0d3l1v065x9q1cz74cvlab5hzd0q8zgkd49z6w"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
|
||||
|
@ -6004,7 +6004,7 @@ to answer a question. Xmessage can also exit after a specified time.")
|
|||
(define-public xterm
|
||||
(package
|
||||
(name "xterm")
|
||||
(version "351")
|
||||
(version "353")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list
|
||||
|
@ -6014,7 +6014,7 @@ to answer a question. Xmessage can also exit after a specified time.")
|
|||
"xterm-" version ".tgz")))
|
||||
(sha256
|
||||
(base32
|
||||
"05kf586my4irrzz2bxgmwjdvynyrg9ybhvfqmx29g70w4888l2kn"))))
|
||||
"0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
|
||||
|
|
|
@ -61,11 +61,11 @@
|
|||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 format)
|
||||
#:re-export (user-processes-service-type) ;backwards compatibility
|
||||
#:export (fstab-service-type
|
||||
root-file-system-service
|
||||
file-system-service-type
|
||||
swap-service
|
||||
user-processes-service-type
|
||||
host-name-service
|
||||
console-keymap-service
|
||||
%default-console-font
|
||||
|
@ -185,128 +185,6 @@
|
|||
;;; Code:
|
||||
|
||||
|
||||
|
||||
;;;
|
||||
;;; User processes.
|
||||
;;;
|
||||
|
||||
(define %do-not-kill-file
|
||||
;; Name of the file listing PIDs of processes that must survive when halting
|
||||
;; the system. Typical example is user-space file systems.
|
||||
"/etc/shepherd/do-not-kill")
|
||||
|
||||
(define (user-processes-shepherd-service requirements)
|
||||
"Return the 'user-processes' Shepherd service with dependencies on
|
||||
REQUIREMENTS (a list of service names).
|
||||
|
||||
This is a synchronization point used to make sure user processes and daemons
|
||||
get started only after crucial initial services have been started---file
|
||||
system mounts, etc. This is similar to the 'sysvinit' target in systemd."
|
||||
(define grace-delay
|
||||
;; Delay after sending SIGTERM and before sending SIGKILL.
|
||||
4)
|
||||
|
||||
(list (shepherd-service
|
||||
(documentation "When stopped, terminate all user processes.")
|
||||
(provision '(user-processes))
|
||||
(requirement requirements)
|
||||
(start #~(const #t))
|
||||
(stop #~(lambda _
|
||||
(define (kill-except omit signal)
|
||||
;; Kill all the processes with SIGNAL except those listed
|
||||
;; in OMIT and the current process.
|
||||
(let ((omit (cons (getpid) omit)))
|
||||
(for-each (lambda (pid)
|
||||
(unless (memv pid omit)
|
||||
(false-if-exception
|
||||
(kill pid signal))))
|
||||
(processes))))
|
||||
|
||||
(define omitted-pids
|
||||
;; List of PIDs that must not be killed.
|
||||
(if (file-exists? #$%do-not-kill-file)
|
||||
(map string->number
|
||||
(call-with-input-file #$%do-not-kill-file
|
||||
(compose string-tokenize
|
||||
(@ (ice-9 rdelim) read-string))))
|
||||
'()))
|
||||
|
||||
(define (now)
|
||||
(car (gettimeofday)))
|
||||
|
||||
(define (sleep* n)
|
||||
;; Really sleep N seconds.
|
||||
;; Work around <http://bugs.gnu.org/19581>.
|
||||
(define start (now))
|
||||
(let loop ((elapsed 0))
|
||||
(when (> n elapsed)
|
||||
(sleep (- n elapsed))
|
||||
(loop (- (now) start)))))
|
||||
|
||||
(define lset= (@ (srfi srfi-1) lset=))
|
||||
|
||||
(display "sending all processes the TERM signal\n")
|
||||
|
||||
(if (null? omitted-pids)
|
||||
(begin
|
||||
;; Easy: terminate all of them.
|
||||
(kill -1 SIGTERM)
|
||||
(sleep* #$grace-delay)
|
||||
(kill -1 SIGKILL))
|
||||
(begin
|
||||
;; Kill them all except OMITTED-PIDS. XXX: We would
|
||||
;; like to (kill -1 SIGSTOP) to get a fixed list of
|
||||
;; processes, like 'killall5' does, but that seems
|
||||
;; unreliable.
|
||||
(kill-except omitted-pids SIGTERM)
|
||||
(sleep* #$grace-delay)
|
||||
(kill-except omitted-pids SIGKILL)
|
||||
(delete-file #$%do-not-kill-file)))
|
||||
|
||||
(let wait ()
|
||||
;; Reap children, if any, so that we don't end up with
|
||||
;; zombies and enter an infinite loop.
|
||||
(let reap-children ()
|
||||
(define result
|
||||
(false-if-exception
|
||||
(waitpid WAIT_ANY (if (null? omitted-pids)
|
||||
0
|
||||
WNOHANG))))
|
||||
|
||||
(when (and (pair? result)
|
||||
(not (zero? (car result))))
|
||||
(reap-children)))
|
||||
|
||||
(let ((pids (processes)))
|
||||
(unless (lset= = pids (cons 1 omitted-pids))
|
||||
(format #t "waiting for process termination\
|
||||
(processes left: ~s)~%"
|
||||
pids)
|
||||
(sleep* 2)
|
||||
(wait))))
|
||||
|
||||
(display "all processes have been terminated\n")
|
||||
#f))
|
||||
(respawn? #f))))
|
||||
|
||||
(define user-processes-service-type
|
||||
(service-type
|
||||
(name 'user-processes)
|
||||
(extensions (list (service-extension shepherd-root-service-type
|
||||
user-processes-shepherd-service)))
|
||||
(compose concatenate)
|
||||
(extend append)
|
||||
|
||||
;; The value is the list of Shepherd services 'user-processes' depends on.
|
||||
;; Extensions can add new services to this list.
|
||||
(default-value '())
|
||||
|
||||
(description "The @code{user-processes} service is responsible for
|
||||
terminating all the processes so that the root file system can be re-mounted
|
||||
read-only, just before rebooting/halting. Processes still running after a few
|
||||
seconds after @code{SIGTERM} has been sent are terminated with
|
||||
@code{SIGKILL}.")))
|
||||
|
||||
|
||||
;;;
|
||||
;;; File systems.
|
||||
|
|
|
@ -170,7 +170,7 @@ Relogin=" (if (sddm-configuration-relogin? config)
|
|||
(list (shepherd-service
|
||||
(documentation "SDDM display manager.")
|
||||
(requirement '(user-processes))
|
||||
(provision '(display-manager))
|
||||
(provision '(xorg-server display-manager))
|
||||
(start #~(make-forkexec-constructor #$sddm-command))
|
||||
(stop #~(make-kill-destructor)))))
|
||||
|
||||
|
|
|
@ -63,7 +63,9 @@
|
|||
|
||||
shepherd-service-lookup-procedure
|
||||
shepherd-service-back-edges
|
||||
shepherd-service-upgrade))
|
||||
shepherd-service-upgrade
|
||||
|
||||
user-processes-service-type))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -415,4 +417,126 @@ need to be restarted to complete their upgrade."
|
|||
|
||||
(values to-unload to-restart))
|
||||
|
||||
|
||||
;;;
|
||||
;;; User processes.
|
||||
;;;
|
||||
|
||||
(define %do-not-kill-file
|
||||
;; Name of the file listing PIDs of processes that must survive when halting
|
||||
;; the system. Typical example is user-space file systems.
|
||||
"/etc/shepherd/do-not-kill")
|
||||
|
||||
(define (user-processes-shepherd-service requirements)
|
||||
"Return the 'user-processes' Shepherd service with dependencies on
|
||||
REQUIREMENTS (a list of service names).
|
||||
|
||||
This is a synchronization point used to make sure user processes and daemons
|
||||
get started only after crucial initial services have been started---file
|
||||
system mounts, etc. This is similar to the 'sysvinit' target in systemd."
|
||||
(define grace-delay
|
||||
;; Delay after sending SIGTERM and before sending SIGKILL.
|
||||
4)
|
||||
|
||||
(list (shepherd-service
|
||||
(documentation "When stopped, terminate all user processes.")
|
||||
(provision '(user-processes))
|
||||
(requirement requirements)
|
||||
(start #~(const #t))
|
||||
(stop #~(lambda _
|
||||
(define (kill-except omit signal)
|
||||
;; Kill all the processes with SIGNAL except those listed
|
||||
;; in OMIT and the current process.
|
||||
(let ((omit (cons (getpid) omit)))
|
||||
(for-each (lambda (pid)
|
||||
(unless (memv pid omit)
|
||||
(false-if-exception
|
||||
(kill pid signal))))
|
||||
(processes))))
|
||||
|
||||
(define omitted-pids
|
||||
;; List of PIDs that must not be killed.
|
||||
(if (file-exists? #$%do-not-kill-file)
|
||||
(map string->number
|
||||
(call-with-input-file #$%do-not-kill-file
|
||||
(compose string-tokenize
|
||||
(@ (ice-9 rdelim) read-string))))
|
||||
'()))
|
||||
|
||||
(define (now)
|
||||
(car (gettimeofday)))
|
||||
|
||||
(define (sleep* n)
|
||||
;; Really sleep N seconds.
|
||||
;; Work around <http://bugs.gnu.org/19581>.
|
||||
(define start (now))
|
||||
(let loop ((elapsed 0))
|
||||
(when (> n elapsed)
|
||||
(sleep (- n elapsed))
|
||||
(loop (- (now) start)))))
|
||||
|
||||
(define lset= (@ (srfi srfi-1) lset=))
|
||||
|
||||
(display "sending all processes the TERM signal\n")
|
||||
|
||||
(if (null? omitted-pids)
|
||||
(begin
|
||||
;; Easy: terminate all of them.
|
||||
(kill -1 SIGTERM)
|
||||
(sleep* #$grace-delay)
|
||||
(kill -1 SIGKILL))
|
||||
(begin
|
||||
;; Kill them all except OMITTED-PIDS. XXX: We would
|
||||
;; like to (kill -1 SIGSTOP) to get a fixed list of
|
||||
;; processes, like 'killall5' does, but that seems
|
||||
;; unreliable.
|
||||
(kill-except omitted-pids SIGTERM)
|
||||
(sleep* #$grace-delay)
|
||||
(kill-except omitted-pids SIGKILL)
|
||||
(delete-file #$%do-not-kill-file)))
|
||||
|
||||
(let wait ()
|
||||
;; Reap children, if any, so that we don't end up with
|
||||
;; zombies and enter an infinite loop.
|
||||
(let reap-children ()
|
||||
(define result
|
||||
(false-if-exception
|
||||
(waitpid WAIT_ANY (if (null? omitted-pids)
|
||||
0
|
||||
WNOHANG))))
|
||||
|
||||
(when (and (pair? result)
|
||||
(not (zero? (car result))))
|
||||
(reap-children)))
|
||||
|
||||
(let ((pids (processes)))
|
||||
(unless (lset= = pids (cons 1 omitted-pids))
|
||||
(format #t "waiting for process termination\
|
||||
(processes left: ~s)~%"
|
||||
pids)
|
||||
(sleep* 2)
|
||||
(wait))))
|
||||
|
||||
(display "all processes have been terminated\n")
|
||||
#f))
|
||||
(respawn? #f))))
|
||||
|
||||
(define user-processes-service-type
|
||||
(service-type
|
||||
(name 'user-processes)
|
||||
(extensions (list (service-extension shepherd-root-service-type
|
||||
user-processes-shepherd-service)))
|
||||
(compose concatenate)
|
||||
(extend append)
|
||||
|
||||
;; The value is the list of Shepherd services 'user-processes' depends on.
|
||||
;; Extensions can add new services to this list.
|
||||
(default-value '())
|
||||
|
||||
(description "The @code{user-processes} service is responsible for
|
||||
terminating all the processes so that the root file system can be re-mounted
|
||||
read-only, just before rebooting/halting. Processes still running after a few
|
||||
seconds after @code{SIGTERM} has been sent are terminated with
|
||||
@code{SIGKILL}.")))
|
||||
|
||||
;;; shepherd.scm ends here
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
|
@ -314,9 +314,7 @@ accounts among ACCOUNTS+GROUPS."
|
|||
;;
|
||||
;; XXX: We arrange for this service to stop right after it's done its job so
|
||||
;; that 'guix system reconfigure' knows that it can reload it fearlessly
|
||||
;; (and thus create new home directories). The cost of this hack is that
|
||||
;; there's a small window during which first-time logins could happen before
|
||||
;; the home directory has been created.
|
||||
;; (and thus create new home directories).
|
||||
(list (shepherd-service
|
||||
(requirement '(file-systems))
|
||||
(provision '(user-homes))
|
||||
|
@ -374,6 +372,11 @@ the /etc/skel directory for those."
|
|||
account-activation)
|
||||
(service-extension shepherd-root-service-type
|
||||
account-shepherd-service)
|
||||
;; Have 'user-processes' depend on 'user-homes' so that
|
||||
;; daemons start after their home directory has been
|
||||
;; created.
|
||||
(service-extension user-processes-service-type
|
||||
(const '(user-homes)))
|
||||
(service-extension etc-service-type
|
||||
etc-files)))))
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
(define-module (guix build syscalls)
|
||||
#:use-module (system foreign)
|
||||
#:use-module (system base target) ;for cross-compilation support
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:autoload (ice-9 binary-ports) (get-bytevector-n)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -892,36 +891,6 @@ system to PUT-OLD."
|
|||
(namelen uint8)
|
||||
(name uint8))
|
||||
|
||||
(define-syntax define-generic-identifier
|
||||
(syntax-rules (gnu/linux gnu/hurd =>)
|
||||
"Define a generic identifier that adjust to the current GNU variant."
|
||||
((_ id (gnu/linux => linux) (gnu/hurd => hurd))
|
||||
(define-syntax id
|
||||
(lambda (s)
|
||||
(syntax-case s ()
|
||||
((_ args (... ...))
|
||||
(if (string-contains (or (target-type) %host-type)
|
||||
"linux")
|
||||
#'(linux args (... ...))
|
||||
#'(hurd args (... ...))))
|
||||
(_
|
||||
(if (string-contains (or (target-type) %host-type)
|
||||
"linux")
|
||||
#'linux
|
||||
#'hurd))))))))
|
||||
|
||||
(define-generic-identifier read-dirent-header
|
||||
(gnu/linux => read-dirent-header/linux)
|
||||
(gnu/hurd => read-dirent-header/hurd))
|
||||
|
||||
(define-generic-identifier %struct-dirent-header
|
||||
(gnu/linux => %struct-dirent-header/linux)
|
||||
(gnu/hurd => %struct-dirent-header/hurd))
|
||||
|
||||
(define-generic-identifier sizeof-dirent-header
|
||||
(gnu/linux => sizeof-dirent-header/linux)
|
||||
(gnu/hurd => sizeof-dirent-header/hurd))
|
||||
|
||||
;; Constants for the 'type' field, from <dirent.h>.
|
||||
(define DT_UNKNOWN 0)
|
||||
(define DT_FIFO 1)
|
||||
|
@ -960,19 +929,30 @@ system to PUT-OLD."
|
|||
"closedir: ~A" (list (strerror err))
|
||||
(list err)))))))
|
||||
|
||||
(define readdir*
|
||||
(define (readdir-procedure name-field-offset sizeof-dirent-header
|
||||
read-dirent-header)
|
||||
(let ((proc (syscall->procedure '* "readdir64" '(*))))
|
||||
(lambda* (directory #:optional (pointer->string pointer->string/utf-8))
|
||||
(let ((ptr (proc directory)))
|
||||
(and (not (null-pointer? ptr))
|
||||
(cons (pointer->string
|
||||
(make-pointer (+ (pointer-address ptr)
|
||||
(c-struct-field-offset
|
||||
%struct-dirent-header name)))
|
||||
(make-pointer (+ (pointer-address ptr) name-field-offset))
|
||||
-1)
|
||||
(read-dirent-header
|
||||
(pointer->bytevector ptr sizeof-dirent-header))))))))
|
||||
|
||||
(define readdir*
|
||||
;; Decide at run time which one must be used.
|
||||
(if (string-suffix? "linux-gnu" %host-type)
|
||||
(readdir-procedure (c-struct-field-offset %struct-dirent-header/linux
|
||||
name)
|
||||
sizeof-dirent-header/linux
|
||||
read-dirent-header/linux)
|
||||
(readdir-procedure (c-struct-field-offset %struct-dirent-header/hurd
|
||||
name)
|
||||
sizeof-dirent-header/hurd
|
||||
read-dirent-header/hurd)))
|
||||
|
||||
(define* (scandir* name #:optional
|
||||
(select? (const #t))
|
||||
(entry<? (lambda (entry1 entry2)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2010, 2011, 2013, 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -71,6 +72,8 @@
|
|||
"^\\[GNUPG:\\] VALIDSIG ([[:xdigit:]]+) ([[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}) ([[:digit:]]+) .*$"))
|
||||
(define expkeysig-rx ; good signature, but expired key
|
||||
(make-regexp "^\\[GNUPG:\\] EXPKEYSIG ([[:xdigit:]]+) (.*)$"))
|
||||
(define revkeysig-rx ; good signature, but revoked key
|
||||
(make-regexp "^\\[GNUPG:\\] REVKEYSIG ([[:xdigit:]]+) (.*)$"))
|
||||
(define errsig-rx
|
||||
;; Note: The fingeprint part (the last element of the line) appeared in
|
||||
;; GnuPG 2.2.7 according to 'doc/DETAILS', and it may be missing.
|
||||
|
@ -114,6 +117,11 @@ revoked. Return a status s-exp if GnuPG failed."
|
|||
(lambda (match)
|
||||
`(expired-key-signature ,(match:substring match 1) ; fingerprint
|
||||
,(match:substring match 2)))) ; user name
|
||||
((regexp-exec revkeysig-rx line)
|
||||
=>
|
||||
(lambda (match)
|
||||
`(revoked-key-signature ,(match:substring match 1) ; fingerprint
|
||||
,(match:substring match 2)))) ; user name
|
||||
((regexp-exec errsig-rx line)
|
||||
=>
|
||||
(lambda (match)
|
||||
|
@ -157,7 +165,8 @@ a fingerprint/user pair; return #f otherwise."
|
|||
(match (assq 'valid-signature status)
|
||||
(('valid-signature fingerprint date timestamp)
|
||||
(match (or (assq 'good-signature status)
|
||||
(assq 'expired-key-signature status))
|
||||
(assq 'expired-key-signature status)
|
||||
(assq 'revoked-key-signature status))
|
||||
((_ key-id user) (cons fingerprint user))
|
||||
(_ #f)))
|
||||
(_
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -22,8 +23,16 @@
|
|||
#:use-module (json)
|
||||
#:use-module (guix http-client)
|
||||
#:use-module (guix import utils)
|
||||
#:use-module (guix import print)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-2)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:export (json-fetch))
|
||||
#:export (json-fetch
|
||||
json->code
|
||||
json->scheme-file))
|
||||
|
||||
(define* (json-fetch url
|
||||
;; Note: many websites returns 403 if we omit a
|
||||
|
@ -42,3 +51,53 @@ the query."
|
|||
(result (json->scm port)))
|
||||
(close-port port)
|
||||
result)))
|
||||
|
||||
(define (json->code file-name)
|
||||
"Read FILE-NAME containing one ore more JSON package definitions and return
|
||||
a list of S-expressions, or return #F when the JSON is invalid."
|
||||
(catch 'json-invalid
|
||||
(lambda ()
|
||||
(let ((json (json-string->scm
|
||||
(with-input-from-file file-name read-string))))
|
||||
(match json
|
||||
(#(packages ...)
|
||||
;; To allow definitions to refer to one another, collect references
|
||||
;; to local definitions and tell alist->package to ignore them.
|
||||
(second
|
||||
(memq #:result
|
||||
(fold
|
||||
(lambda (pkg names+result)
|
||||
(match names+result
|
||||
((#:names names #:result result)
|
||||
(list #:names
|
||||
(cons (assoc-ref pkg "name") names)
|
||||
#:result
|
||||
(append result
|
||||
(list
|
||||
(package->code (alist->package pkg names))
|
||||
(string->symbol (assoc-ref pkg "name"))))))))
|
||||
(list #:names '()
|
||||
#:result '())
|
||||
packages))))
|
||||
(package
|
||||
(list (package->code (alist->package json))
|
||||
(string->symbol (assoc-ref json "name")))))))
|
||||
(const #f)))
|
||||
|
||||
(define (json->scheme-file file)
|
||||
"Convert the FILE containing a JSON package definition to a Scheme
|
||||
representation and return the new file name (or #F on error)."
|
||||
(and-let* ((sexprs (json->code file))
|
||||
(file* (let* ((tempdir (or (getenv "TMPDIR") "/tmp"))
|
||||
(template (string-append tempdir "/guix-XXXXXX"))
|
||||
(port (mkstemp! template)))
|
||||
(close-port port)
|
||||
template)))
|
||||
(call-with-output-file file*
|
||||
(lambda (port)
|
||||
(write '(use-modules (gnu)
|
||||
(guix)
|
||||
((guix licenses) #:prefix license:))
|
||||
port)
|
||||
(for-each (cut write <> port) sexprs)))
|
||||
file*))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -57,7 +57,7 @@ when evaluated."
|
|||
;; Print either license variable name or the code for a license object
|
||||
(define (license->code lic)
|
||||
(let ((var (variable-name lic '(guix licenses))))
|
||||
(or var
|
||||
(or (symbol-append 'license: var)
|
||||
`(license
|
||||
(name ,(license-name lic))
|
||||
(uri ,(license-uri lic))
|
||||
|
@ -79,7 +79,9 @@ when evaluated."
|
|||
(patches (origin-patches source)))
|
||||
`(origin
|
||||
(method ,(procedure-name method))
|
||||
(uri (string-append ,@(factorize-uri uri version)))
|
||||
(uri (string-append ,@(match (factorize-uri uri version)
|
||||
((? string? uri) (list uri))
|
||||
(factorized factorized))))
|
||||
(sha256
|
||||
(base32
|
||||
,(format #f "~a" (bytevector->nix-base32-string sha256))))
|
||||
|
@ -92,6 +94,8 @@ when evaluated."
|
|||
(define (package-lists->code lsts)
|
||||
(list 'quasiquote
|
||||
(map (match-lambda
|
||||
((? symbol? s)
|
||||
(list (symbol->string s) (list 'unquote s)))
|
||||
((label pkg . out)
|
||||
(let ((mod (package-module-name pkg)))
|
||||
(cons* label
|
||||
|
@ -121,45 +125,47 @@ when evaluated."
|
|||
(home-page (package-home-page package))
|
||||
(supported-systems (package-supported-systems package))
|
||||
(properties (package-properties package)))
|
||||
`(package
|
||||
(name ,name)
|
||||
(version ,version)
|
||||
(source ,(source->code source version))
|
||||
,@(match properties
|
||||
(() '())
|
||||
(_ `((properties ,properties))))
|
||||
,@(if replacement
|
||||
`((replacement ,replacement))
|
||||
'())
|
||||
(build-system ,(symbol-append (build-system-name build-system)
|
||||
'-build-system))
|
||||
,@(match arguments
|
||||
(() '())
|
||||
(args `((arguments ,(list 'quasiquote args)))))
|
||||
,@(match outputs
|
||||
(("out") '())
|
||||
(outs `((outputs (list ,@outs)))))
|
||||
,@(match native-inputs
|
||||
(() '())
|
||||
(pkgs `((native-inputs ,(package-lists->code pkgs)))))
|
||||
,@(match inputs
|
||||
(() '())
|
||||
(pkgs `((inputs ,(package-lists->code pkgs)))))
|
||||
,@(match propagated-inputs
|
||||
(() '())
|
||||
(pkgs `((propagated-inputs ,(package-lists->code pkgs)))))
|
||||
,@(if (lset= string=? supported-systems %supported-systems)
|
||||
'()
|
||||
`((supported-systems (list ,@supported-systems))))
|
||||
,@(match (map search-path-specification->code native-search-paths)
|
||||
(() '())
|
||||
(paths `((native-search-paths (list ,@paths)))))
|
||||
,@(match (map search-path-specification->code search-paths)
|
||||
(() '())
|
||||
(paths `((search-paths (list ,@paths)))))
|
||||
(home-page ,home-page)
|
||||
(synopsis ,synopsis)
|
||||
(description ,description)
|
||||
(license ,(if (list? license)
|
||||
`(list ,@(map license->code license))
|
||||
(license->code license))))))
|
||||
`(define-public ,(string->symbol name)
|
||||
(package
|
||||
(name ,name)
|
||||
(version ,version)
|
||||
(source ,(source->code source version))
|
||||
,@(match properties
|
||||
(() '())
|
||||
(_ `((properties ,properties))))
|
||||
,@(if replacement
|
||||
`((replacement ,replacement))
|
||||
'())
|
||||
(build-system (@ (guix build-system ,(build-system-name build-system))
|
||||
,(symbol-append (build-system-name build-system)
|
||||
'-build-system)))
|
||||
,@(match arguments
|
||||
(() '())
|
||||
(args `((arguments ,(list 'quasiquote args)))))
|
||||
,@(match outputs
|
||||
(("out") '())
|
||||
(outs `((outputs (list ,@outs)))))
|
||||
,@(match native-inputs
|
||||
(() '())
|
||||
(pkgs `((native-inputs ,(package-lists->code pkgs)))))
|
||||
,@(match inputs
|
||||
(() '())
|
||||
(pkgs `((inputs ,(package-lists->code pkgs)))))
|
||||
,@(match propagated-inputs
|
||||
(() '())
|
||||
(pkgs `((propagated-inputs ,(package-lists->code pkgs)))))
|
||||
,@(if (lset= string=? supported-systems %supported-systems)
|
||||
'()
|
||||
`((supported-systems (list ,@supported-systems))))
|
||||
,@(match (map search-path-specification->code native-search-paths)
|
||||
(() '())
|
||||
(paths `((native-search-paths (list ,@paths)))))
|
||||
,@(match (map search-path-specification->code search-paths)
|
||||
(() '())
|
||||
(paths `((search-paths (list ,@paths)))))
|
||||
(home-page ,home-page)
|
||||
(synopsis ,synopsis)
|
||||
(description ,description)
|
||||
(license ,(if (list? license)
|
||||
`(list ,@(map license->code license))
|
||||
(license->code license)))))))
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2012, 2013, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
|
||||
;;;
|
||||
|
@ -310,7 +310,23 @@ the expected fields of an <origin> object."
|
|||
(uri (assoc-ref orig "uri"))
|
||||
(sha256 sha))))))
|
||||
|
||||
(define (alist->package meta)
|
||||
(define* (alist->package meta #:optional (known-inputs '()))
|
||||
"Return a package value generated from the alist META. If the list of
|
||||
strings KNOWN-INPUTS is provided, do not treat the mentioned inputs as
|
||||
specifications to look up and replace them with plain symbols instead."
|
||||
(define (process-inputs which)
|
||||
(let-values (((regular known)
|
||||
(lset-diff+intersection
|
||||
string=?
|
||||
(vector->list (or (assoc-ref meta which) #()))
|
||||
known-inputs)))
|
||||
(append (specs->package-lists regular)
|
||||
(map string->symbol known))))
|
||||
(define (process-arguments arguments)
|
||||
(append-map (match-lambda
|
||||
((key . value)
|
||||
(list (symbol->keyword (string->symbol key)) value)))
|
||||
arguments))
|
||||
(package
|
||||
(name (assoc-ref meta "name"))
|
||||
(version (assoc-ref meta "version"))
|
||||
|
@ -318,15 +334,13 @@ the expected fields of an <origin> object."
|
|||
(build-system
|
||||
(lookup-build-system-by-name
|
||||
(string->symbol (assoc-ref meta "build-system"))))
|
||||
(native-inputs
|
||||
(specs->package-lists
|
||||
(vector->list (or (assoc-ref meta "native-inputs") '#()))))
|
||||
(inputs
|
||||
(specs->package-lists
|
||||
(vector->list (or (assoc-ref meta "inputs") '#()))))
|
||||
(propagated-inputs
|
||||
(specs->package-lists
|
||||
(vector->list (or (assoc-ref meta "propagated-inputs") '#()))))
|
||||
(arguments
|
||||
(or (and=> (assoc-ref meta "arguments")
|
||||
process-arguments)
|
||||
'()))
|
||||
(native-inputs (process-inputs "native-inputs"))
|
||||
(inputs (process-inputs "inputs"))
|
||||
(propagated-inputs (process-inputs "propagated-inputs"))
|
||||
(home-page
|
||||
(assoc-ref meta "home-page"))
|
||||
(synopsis
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,6 +22,7 @@
|
|||
(define-module (guix scripts build)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix import json)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix packages)
|
||||
|
@ -834,7 +836,10 @@ build---packages, gexps, derivations, and so on."
|
|||
(else
|
||||
(list (specification->package spec)))))
|
||||
(('file . file)
|
||||
(ensure-list (load* file (make-user-module '()))))
|
||||
(let ((file (or (and (string-suffix? ".json" file)
|
||||
(json->scheme-file file))
|
||||
file)))
|
||||
(ensure-list (load* file (make-user-module '())))))
|
||||
(('manifest . manifest)
|
||||
(map manifest-entry-item
|
||||
(manifest-entries
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix import utils)
|
||||
#:use-module (guix import print)
|
||||
#:use-module (guix import json)
|
||||
#:use-module (guix scripts import)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -88,14 +88,8 @@ Import and convert the JSON package definition in PACKAGE-FILE.\n"))
|
|||
(reverse opts))))
|
||||
(match args
|
||||
((file-name)
|
||||
(catch 'json-invalid
|
||||
(lambda ()
|
||||
(let ((json (json-string->scm
|
||||
(with-input-from-file file-name read-string))))
|
||||
;; TODO: also print define-module boilerplate
|
||||
(package->code (alist->package json))))
|
||||
(lambda _
|
||||
(leave (G_ "invalid JSON in file '~a'~%") file-name))))
|
||||
(or (json->code file-name)
|
||||
(leave (G_ "invalid JSON in file '~a'~%") file-name)))
|
||||
(()
|
||||
(leave (G_ "too few arguments~%")))
|
||||
((many ...)
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
|
||||
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -33,6 +34,7 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix profiles)
|
||||
#:use-module (guix search-paths)
|
||||
#:use-module (guix import json)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix config)
|
||||
|
@ -416,7 +418,10 @@ Install, remove, or upgrade packages in a single transaction.\n"))
|
|||
(option '(#\f "install-from-file") #t #f
|
||||
(lambda (opt name arg result arg-handler)
|
||||
(values (alist-cons 'install
|
||||
(load* arg (make-user-module '()))
|
||||
(let ((file (or (and (string-suffix? ".json" arg)
|
||||
(json->scheme-file arg))
|
||||
arg)))
|
||||
(load* file (make-user-module '())))
|
||||
result)
|
||||
#f)))
|
||||
(option '(#\r "remove") #f #t
|
||||
|
|
|
@ -472,8 +472,8 @@ addition to build events."
|
|||
(let ((count (match (assq-ref properties 'graft)
|
||||
(#f 0)
|
||||
(lst (or (assq-ref lst 'count) 0)))))
|
||||
(format port (info (N_ "applying ~a graft for ~a..."
|
||||
"applying ~a grafts for ~a..."
|
||||
(format port (info (N_ "applying ~a graft for ~a ..."
|
||||
"applying ~a grafts for ~a ..."
|
||||
count))
|
||||
count drv)))
|
||||
('profile
|
||||
|
@ -525,7 +525,7 @@ addition to build events."
|
|||
(newline port)))
|
||||
(('download-started item uri _ ...)
|
||||
(erase-current-line*)
|
||||
(format port (info (G_ "downloading from ~a...")) uri)
|
||||
(format port (info (G_ "downloading from ~a ...")) uri)
|
||||
(newline port))
|
||||
(('download-progress item uri
|
||||
(= string->number size)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,6 +30,24 @@
|
|||
(define git-command
|
||||
(make-parameter "git"))
|
||||
|
||||
(define (call-with-environment-variables variables thunk)
|
||||
"Call THUNK with the environment VARIABLES set."
|
||||
(let ((environment (environ)))
|
||||
(dynamic-wind
|
||||
(lambda ()
|
||||
(for-each (match-lambda
|
||||
((variable value)
|
||||
(setenv variable value)))
|
||||
variables))
|
||||
thunk
|
||||
(lambda ()
|
||||
(environ environment)))))
|
||||
|
||||
(define-syntax-rule (with-environment-variables variables exp ...)
|
||||
"Evaluate EXP with the given environment VARIABLES set."
|
||||
(call-with-environment-variables variables
|
||||
(lambda () exp ...)))
|
||||
|
||||
(define (populate-git-repository directory directives)
|
||||
"Initialize a new Git checkout and repository in DIRECTORY and apply
|
||||
DIRECTIVES. Each element of DIRECTIVES is an sexp like:
|
||||
|
@ -41,8 +59,21 @@ Return DIRECTORY on success."
|
|||
;; Note: As of version 0.2.0, Guile-Git lacks the necessary bindings to do
|
||||
;; all this, so resort to the "git" command.
|
||||
(define (git command . args)
|
||||
(apply invoke (git-command) "-C" directory
|
||||
command args))
|
||||
;; Make sure Git doesn't rely on the user's config.
|
||||
(call-with-temporary-directory
|
||||
(lambda (home)
|
||||
(call-with-output-file (string-append home "/.gitconfig")
|
||||
(lambda (port)
|
||||
(display "[user]
|
||||
email = charlie@example.org\n name = Charlie Guix\n"
|
||||
port)))
|
||||
|
||||
(with-environment-variables
|
||||
`(("GIT_CONFIG_NOSYSTEM" "1")
|
||||
("GIT_ATTR_NOSYSTEM" "1")
|
||||
("HOME" ,home))
|
||||
(apply invoke (git-command) "-C" directory
|
||||
command args)))))
|
||||
|
||||
(mkdir-p directory)
|
||||
(git "init")
|
||||
|
|
14
guix/ui.scm
14
guix/ui.scm
|
@ -234,8 +234,8 @@ information, or #f if it could not be found."
|
|||
|
||||
;; Give 'load' an absolute file name so that it doesn't try to
|
||||
;; search for FILE in %LOAD-PATH. Note: use 'load', not
|
||||
;; 'primitive-load', so that FILE is compiled, which then allows us
|
||||
;; to provide better error reporting with source line numbers.
|
||||
;; 'primitive-load', so that FILE is compiled, which then allows
|
||||
;; us to provide better error reporting with source line numbers.
|
||||
(load (canonicalize-path file)))
|
||||
(const #f))))))
|
||||
(lambda _
|
||||
|
@ -796,7 +796,7 @@ directories:~{ ~a~}~%")
|
|||
(apply format #f format-string format-args))))))
|
||||
|
||||
(define-syntax-rule (leave-on-EPIPE exp ...)
|
||||
"Run EXP... in a context when EPIPE errors are caught and lead to 'exit'
|
||||
"Run EXP... in a context where EPIPE errors are caught and lead to 'exit'
|
||||
with successful exit code. This is useful when writing to the standard output
|
||||
may lead to EPIPE, because the standard output is piped through 'head' or
|
||||
similar."
|
||||
|
@ -925,7 +925,7 @@ download."
|
|||
drv))
|
||||
|
||||
(define substitutable-info
|
||||
;; Call 'substitutation-oracle' upfront so we don't end up launching the
|
||||
;; Call 'substitution-oracle' upfront so we don't end up launching the
|
||||
;; substituter many times. This makes a big difference, especially when
|
||||
;; DRV is a long list as is the case with 'guix environment'.
|
||||
(if use-substitutes?
|
||||
|
@ -1251,7 +1251,7 @@ separator between subsequent columns."
|
|||
|
||||
(define* (indented-string str indent
|
||||
#:key (initial-indent? #t))
|
||||
"Return STR with each newline preceded by IDENT spaces. When
|
||||
"Return STR with each newline preceded by INDENT spaces. When
|
||||
INITIAL-INDENT? is true, the first line is also indented."
|
||||
(define indent-string
|
||||
(make-list indent #\space))
|
||||
|
@ -1534,7 +1534,7 @@ score, the more relevant OBJ is to REGEXPS."
|
|||
(,(lambda (package)
|
||||
(filter (lambda (output)
|
||||
(not (member output
|
||||
;; Some common outpus shared by many packages.
|
||||
;; Some common outputs shared by many packages.
|
||||
'("out" "doc" "debug" "lib" "include" "bin"))))
|
||||
(package-outputs package)))
|
||||
. 1)
|
||||
|
@ -1942,7 +1942,7 @@ found."
|
|||
(define (run-guix . args)
|
||||
"Run the 'guix' command defined by command line ARGS.
|
||||
Unlike 'guix-main', this procedure assumes that locale, i18n support,
|
||||
and signal handling has already been set up."
|
||||
and signal handling have already been set up."
|
||||
(define option? (cut string-prefix? "-" <>))
|
||||
|
||||
;; The default %LOAD-EXTENSIONS includes the empty string, which doubles the
|
||||
|
|
Reference in New Issue