Merge branch 'master' into core-updates
This commit is contained in:
commit
afe9f40949
32
Makefile.am
32
Makefile.am
|
@ -164,11 +164,6 @@ endif BUILD_DAEMON_OFFLOAD
|
||||||
# Internal module with test suite support.
|
# Internal module with test suite support.
|
||||||
dist_noinst_DATA = guix/tests.scm
|
dist_noinst_DATA = guix/tests.scm
|
||||||
|
|
||||||
# Because of the autoload hack in (guix build download), we must build it
|
|
||||||
# first to avoid errors on systems where (gnutls) is unavailable.
|
|
||||||
guix/scripts/download.go: guix/build/download.go
|
|
||||||
guix/download.go: guix/build/download.go
|
|
||||||
|
|
||||||
# Linux-Libre configurations.
|
# Linux-Libre configurations.
|
||||||
KCONFIGS = \
|
KCONFIGS = \
|
||||||
gnu/packages/linux-libre-i686.conf \
|
gnu/packages/linux-libre-i686.conf \
|
||||||
|
@ -325,6 +320,7 @@ EXTRA_DIST = \
|
||||||
CODE-OF-CONDUCT \
|
CODE-OF-CONDUCT \
|
||||||
.dir-locals.el \
|
.dir-locals.el \
|
||||||
build-aux/build-self.scm \
|
build-aux/build-self.scm \
|
||||||
|
build-aux/compile-all.scm \
|
||||||
build-aux/hydra/gnu-system.scm \
|
build-aux/hydra/gnu-system.scm \
|
||||||
build-aux/hydra/demo-os.scm \
|
build-aux/hydra/demo-os.scm \
|
||||||
build-aux/hydra/guix.scm \
|
build-aux/hydra/guix.scm \
|
||||||
|
@ -364,31 +360,21 @@ CLEANFILES = \
|
||||||
$(GOBJECTS) \
|
$(GOBJECTS) \
|
||||||
$(SCM_TESTS:tests/%.scm=%.log)
|
$(SCM_TESTS:tests/%.scm=%.log)
|
||||||
|
|
||||||
AM_V_GUILEC = $(AM_V_GUILEC_$(V))
|
|
||||||
AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
|
|
||||||
AM_V_GUILEC_0 = @echo " GUILEC" $@;
|
|
||||||
|
|
||||||
# Flags passed to 'guild compile'.
|
|
||||||
GUILD_COMPILE_FLAGS = \
|
|
||||||
-Wformat -Wunbound-variable -Warity-mismatch
|
|
||||||
|
|
||||||
# Unset 'GUILE_LOAD_COMPILED_PATH' altogether while compiling. Otherwise, if
|
# Unset 'GUILE_LOAD_COMPILED_PATH' altogether while compiling. Otherwise, if
|
||||||
# $GUILE_LOAD_COMPILED_PATH contains $(moduledir), we may find .go files in
|
# $GUILE_LOAD_COMPILED_PATH contains $(moduledir), we may find .go files in
|
||||||
# there that are newer than the local .scm files (for instance because the
|
# there that are newer than the local .scm files (for instance because the
|
||||||
# user ran 'make install' recently). When that happens, we end up loading
|
# user ran 'make install' recently). When that happens, we end up loading
|
||||||
# those previously-installed .go files, which may be stale, thereby breaking
|
# those previously-installed .go files, which may be stale, thereby breaking
|
||||||
# the whole thing.
|
# the whole thing.
|
||||||
#
|
%.go: make-go ; @:
|
||||||
# XXX: Use the C locale for when Guile lacks
|
make-go: $(MODULES) guix/config.scm guix/tests.scm
|
||||||
# <http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=e2c6bf3866d1186c60bacfbd4fe5037087ee5e3f>.
|
$(AM_V_at)echo "Compiling Scheme modules..." ; \
|
||||||
.scm.go:
|
|
||||||
$(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ; \
|
|
||||||
unset GUILE_LOAD_COMPILED_PATH ; \
|
unset GUILE_LOAD_COMPILED_PATH ; \
|
||||||
LC_ALL=C \
|
host=$(host) srcdir="$(top_srcdir)" \
|
||||||
$(top_builddir)/pre-inst-env \
|
$(top_builddir)/pre-inst-env \
|
||||||
$(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \
|
$(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)" \
|
||||||
$(GUILD_COMPILE_FLAGS) --target="$(host)" \
|
--no-auto-compile \
|
||||||
-o "$@" "$<"
|
-s "$(top_srcdir)"/build-aux/compile-all.scm $^
|
||||||
|
|
||||||
SUFFIXES = .go
|
SUFFIXES = .go
|
||||||
|
|
||||||
|
@ -480,6 +466,6 @@ assert-final-inputs-self-contained:
|
||||||
$(top_builddir)/pre-inst-env "$(GUILE)" \
|
$(top_builddir)/pre-inst-env "$(GUILE)" \
|
||||||
"$(top_srcdir)/build-aux/check-final-inputs-self-contained.scm"
|
"$(top_srcdir)/build-aux/check-final-inputs-self-contained.scm"
|
||||||
|
|
||||||
.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go
|
.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go make-go
|
||||||
.PHONY: assert-no-store-file-names assert-binaries-available
|
.PHONY: assert-no-store-file-names assert-binaries-available
|
||||||
.PHONY: assert-final-inputs-self-contained
|
.PHONY: assert-final-inputs-self-contained
|
||||||
|
|
1
NEWS
1
NEWS
|
@ -14,6 +14,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
|
||||||
|
|
||||||
** Package management
|
** Package management
|
||||||
|
|
||||||
|
*** Emacs interface for system generations
|
||||||
*** Emacs interface for hydra.gnu.org
|
*** Emacs interface for hydra.gnu.org
|
||||||
*** Changes in Emacs interface variables
|
*** Changes in Emacs interface variables
|
||||||
In the following names, BUFFER-TYPE means "info" or "list";
|
In the following names, BUFFER-TYPE means "info" or "list";
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(use-modules (system base target)
|
||||||
|
(ice-9 match)
|
||||||
|
(ice-9 threads)
|
||||||
|
(guix build utils))
|
||||||
|
|
||||||
|
(define compile-options '(format unbound-variable arity-mismatch))
|
||||||
|
|
||||||
|
(define host (getenv "host"))
|
||||||
|
|
||||||
|
(define srcdir (getenv "srcdir"))
|
||||||
|
|
||||||
|
(define (relative-file file)
|
||||||
|
(if (string-prefix? (string-append srcdir "/") file)
|
||||||
|
(string-drop file (+ 1 (string-length srcdir)))
|
||||||
|
file))
|
||||||
|
|
||||||
|
(define (file-mtime<? f1 f2)
|
||||||
|
(< (stat:mtime (stat f1))
|
||||||
|
(stat:mtime (stat f2))))
|
||||||
|
|
||||||
|
(define (scm->go file)
|
||||||
|
(let* ((relative (relative-file file))
|
||||||
|
(without-extension (string-drop-right relative 4)))
|
||||||
|
(string-append without-extension ".go")))
|
||||||
|
|
||||||
|
(define (file-needs-compilation? file)
|
||||||
|
(let ((go (scm->go file)))
|
||||||
|
(or (not (file-exists? go))
|
||||||
|
(file-mtime<? go file))))
|
||||||
|
|
||||||
|
(define (file->module file)
|
||||||
|
(let* ((relative (relative-file file))
|
||||||
|
(module-path (string-drop-right relative 4)))
|
||||||
|
(map string->symbol
|
||||||
|
(string-split module-path #\/))))
|
||||||
|
|
||||||
|
;;; To work around <http://bugs.gnu.org/15602> (FIXME), we want to load all
|
||||||
|
;;; files to be compiled first. We do this via resolve-interface so that the
|
||||||
|
;;; top-level of each file (module) is only executed once.
|
||||||
|
(define (load-module-file file)
|
||||||
|
(let ((module (file->module file)))
|
||||||
|
(format #t " LOAD ~a~%" module)
|
||||||
|
(resolve-interface module)))
|
||||||
|
|
||||||
|
(define (compile-file* file output-mutex)
|
||||||
|
(let ((go (scm->go file)))
|
||||||
|
(with-mutex output-mutex
|
||||||
|
(format #t " GUILEC ~a~%" go)
|
||||||
|
(force-output))
|
||||||
|
(mkdir-p (dirname go))
|
||||||
|
(with-target host
|
||||||
|
(lambda ()
|
||||||
|
(compile-file file
|
||||||
|
#:output-file go
|
||||||
|
#:opts compile-options)))))
|
||||||
|
|
||||||
|
(match (command-line)
|
||||||
|
((_ . files)
|
||||||
|
(let ((files (filter file-needs-compilation? files)))
|
||||||
|
(for-each load-module-file files)
|
||||||
|
(let ((mutex (make-mutex)))
|
||||||
|
(par-for-each (lambda (file)
|
||||||
|
(compile-file* file mutex))
|
||||||
|
files)))))
|
|
@ -155,7 +155,7 @@ Display all installed packages.
|
||||||
Display obsolete packages (the packages that are installed in a profile
|
Display obsolete packages (the packages that are installed in a profile
|
||||||
but cannot be found among available packages).
|
but cannot be found among available packages).
|
||||||
|
|
||||||
@item M-x guix-search-by-name
|
@item M-x guix-packages-by-name
|
||||||
Display package(s) with the specified name.
|
Display package(s) with the specified name.
|
||||||
|
|
||||||
@item M-x guix-search-by-regexp
|
@item M-x guix-search-by-regexp
|
||||||
|
@ -163,6 +163,11 @@ Search for packages by a specified regexp. By default ``name'',
|
||||||
``synopsis'' and ``description'' of the packages will be searched. This
|
``synopsis'' and ``description'' of the packages will be searched. This
|
||||||
can be changed by modifying @code{guix-package-search-params} variable.
|
can be changed by modifying @code{guix-package-search-params} variable.
|
||||||
|
|
||||||
|
@item M-x guix-search-by-name
|
||||||
|
Search for packages with names matching a specified regexp. This
|
||||||
|
command is the same as @code{guix-search-by-regexp}, except only a
|
||||||
|
package ``name'' is searched.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
By default, these commands display each output on a separate line. If
|
By default, these commands display each output on a separate line. If
|
||||||
|
@ -191,6 +196,14 @@ date/time prompt,,, org, The Org Manual}).
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
Analogously on GuixSD you can also display system generations:
|
||||||
|
|
||||||
|
@table @kbd
|
||||||
|
@item M-x guix-system-generations
|
||||||
|
@item M-x guix-last-system-generations
|
||||||
|
@item M-x guix-system-generations-by-time
|
||||||
|
@end table
|
||||||
|
|
||||||
You can also invoke the @command{guix pull} command (@pxref{Invoking
|
You can also invoke the @command{guix pull} command (@pxref{Invoking
|
||||||
guix pull}) from Emacs using:
|
guix pull}) from Emacs using:
|
||||||
|
|
||||||
|
|
|
@ -502,6 +502,13 @@ on a recent machine; subsequent runs will be faster because the store
|
||||||
that is created for test purposes will already have various things in
|
that is created for test purposes will already have various things in
|
||||||
cache.
|
cache.
|
||||||
|
|
||||||
|
It is also possible to run a subset of the tests by defining the
|
||||||
|
@code{TESTS} makefile variable as in this example:
|
||||||
|
|
||||||
|
@example
|
||||||
|
make check TESTS="tests/store.scm tests/cpio.scm"
|
||||||
|
@end example
|
||||||
|
|
||||||
Upon failure, please email @email{bug-guix@@gnu.org} and attach the
|
Upon failure, please email @email{bug-guix@@gnu.org} and attach the
|
||||||
@file{test-suite.log} file. When @file{tests/@var{something}.scm}
|
@file{test-suite.log} file. When @file{tests/@var{something}.scm}
|
||||||
fails, please also attach the @file{@var{something}.log} file available
|
fails, please also attach the @file{@var{something}.log} file available
|
||||||
|
@ -627,6 +634,11 @@ This way, the value of @code{TMPDIR} does not leak inside build
|
||||||
environments, which avoids discrepancies in cases where build processes
|
environments, which avoids discrepancies in cases where build processes
|
||||||
capture the name of their build tree.
|
capture the name of their build tree.
|
||||||
|
|
||||||
|
@vindex http_proxy
|
||||||
|
The daemon also honors the @code{http_proxy} environment variable for
|
||||||
|
HTTP downloads it performs, be it for fixed-output derivations
|
||||||
|
(@pxref{Derivations}) or for substitutes (@pxref{Substitutes}).
|
||||||
|
|
||||||
If you are installing Guix as an unprivileged user, it is still possible
|
If you are installing Guix as an unprivileged user, it is still possible
|
||||||
to run @command{guix-daemon} provided you pass @code{--disable-chroot}.
|
to run @command{guix-daemon} provided you pass @code{--disable-chroot}.
|
||||||
However, build processes will not be isolated from one another, and not
|
However, build processes will not be isolated from one another, and not
|
||||||
|
@ -1678,6 +1690,14 @@ Guix ignores substitutes that are not signed, or that are not signed by
|
||||||
one of the keys listed in the ACL. It also detects and raises an error
|
one of the keys listed in the ACL. It also detects and raises an error
|
||||||
when attempting to use a substitute that has been tampered with.
|
when attempting to use a substitute that has been tampered with.
|
||||||
|
|
||||||
|
@vindex http_proxy
|
||||||
|
Substitutes are downloaded over HTTP. The @code{http_proxy} environment
|
||||||
|
variable can be set in the environment of @command{guix-daemon} and is
|
||||||
|
honored for downloads of substitutes. Note that the value of
|
||||||
|
@code{http_proxy} in the environment where @command{guix build},
|
||||||
|
@command{guix package}, and other client commands are run has
|
||||||
|
@emph{absolutely no effect}.
|
||||||
|
|
||||||
The substitute mechanism can be disabled globally by running
|
The substitute mechanism can be disabled globally by running
|
||||||
@code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking
|
@code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking
|
||||||
guix-daemon}). It can also be disabled temporarily by passing the
|
guix-daemon}). It can also be disabled temporarily by passing the
|
||||||
|
@ -8842,6 +8862,50 @@ The @code{base-initrd} procedure also handles common use cases that
|
||||||
involves using the system as a QEMU guest, or as a ``live'' system whose
|
involves using the system as a QEMU guest, or as a ``live'' system whose
|
||||||
root file system is volatile.
|
root file system is volatile.
|
||||||
|
|
||||||
|
The initial RAM disk produced by @code{base-initrd} honors several
|
||||||
|
options passed on the Linux kernel command line (that is, arguments
|
||||||
|
passed @i{via} GRUB's @code{linux} command, or with QEMU's
|
||||||
|
@code{-append} option), notably:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item --load=@var{boot}
|
||||||
|
Tell the initial RAM disk to load @var{boot}, a file containing a Scheme
|
||||||
|
program, once it has mounted the root file system.
|
||||||
|
|
||||||
|
GuixSD uses this option to yield control to a boot program that runs the
|
||||||
|
service activation programs and then spawns GNU@tie{}dmd, the
|
||||||
|
initialization system.
|
||||||
|
|
||||||
|
@item --root=@var{root}
|
||||||
|
Mount @var{root} as the root file system. @var{root} can be a device
|
||||||
|
device name like @code{/dev/sda1}, a partition label, or a partition
|
||||||
|
UUID.
|
||||||
|
|
||||||
|
@item --system=@var{system}
|
||||||
|
Have @file{/run/booted-system} and @file{/run/current-system} point to
|
||||||
|
@var{system}.
|
||||||
|
|
||||||
|
@item modprobe.blacklist=@var{modules}@dots{}
|
||||||
|
@cindex module, black-listing
|
||||||
|
@cindex black list, of kernel modules
|
||||||
|
Instruct the initial RAM disk as well as the @command{modprobe} command
|
||||||
|
(from the kmod package) to refuse to load @var{modules}. @var{modules}
|
||||||
|
must be a comma-separated list of module names---e.g.,
|
||||||
|
@code{usbkbd,9pnet}.
|
||||||
|
|
||||||
|
@item --repl
|
||||||
|
Start a read-eval-print loop (REPL) from the initial RAM disk before it
|
||||||
|
tries to load kernel modules and to mount the root file system. Our
|
||||||
|
marketing team calls it @dfn{boot-to-Guile}. The Schemer in you will
|
||||||
|
love it. @xref{Using Guile Interactively,,, guile, GNU Guile Reference
|
||||||
|
Manual}, for more information on Guile's REPL.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Now that you know all the features that initial RAM disks produced by
|
||||||
|
@code{base-initrd} provide, here is how to use it and customize it
|
||||||
|
further.
|
||||||
|
|
||||||
@deffn {Monadic Procedure} base-initrd @var{file-systems} @
|
@deffn {Monadic Procedure} base-initrd @var{file-systems} @
|
||||||
[#:qemu-networking? #f] [#:virtio? #f] [#:volatile-root? #f] @
|
[#:qemu-networking? #f] [#:virtio? #f] [#:volatile-root? #f] @
|
||||||
[#:extra-modules '()] [#:mapped-devices '()]
|
[#:extra-modules '()] [#:mapped-devices '()]
|
||||||
|
|
1
emacs.am
1
emacs.am
|
@ -47,6 +47,7 @@ ELFILES = \
|
||||||
emacs/guix-ui.el \
|
emacs/guix-ui.el \
|
||||||
emacs/guix-ui-package.el \
|
emacs/guix-ui-package.el \
|
||||||
emacs/guix-ui-generation.el \
|
emacs/guix-ui-generation.el \
|
||||||
|
emacs/guix-ui-system-generation.el \
|
||||||
emacs/guix-utils.el
|
emacs/guix-utils.el
|
||||||
|
|
||||||
if HAVE_EMACS
|
if HAVE_EMACS
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; guix-base.el --- Common definitions -*- lexical-binding: t -*-
|
;;; guix-base.el --- Common definitions -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
|
|
||||||
;; This file is part of GNU Guix.
|
;; This file is part of GNU Guix.
|
||||||
|
|
||||||
|
@ -91,14 +91,25 @@ For the meaning of location, see `guix-find-location'."
|
||||||
"Return the file name of a PROFILE's GENERATION."
|
"Return the file name of a PROFILE's GENERATION."
|
||||||
(format "%s-%s-link" profile generation))
|
(format "%s-%s-link" profile generation))
|
||||||
|
|
||||||
(defun guix-manifest-file (profile &optional generation)
|
(defun guix-packages-profile (profile &optional generation system?)
|
||||||
|
"Return a directory where packages are installed for the
|
||||||
|
PROFILE's GENERATION.
|
||||||
|
|
||||||
|
If SYSTEM? is non-nil, then PROFILE is considered to be a system
|
||||||
|
profile. Unlike usual profiles, for a system profile, packages
|
||||||
|
are placed in 'profile' subdirectory."
|
||||||
|
(let ((profile (if generation
|
||||||
|
(guix-generation-file profile generation)
|
||||||
|
profile)))
|
||||||
|
(if system?
|
||||||
|
(expand-file-name "profile" profile)
|
||||||
|
profile)))
|
||||||
|
|
||||||
|
(defun guix-manifest-file (profile &optional generation system?)
|
||||||
"Return the file name of a PROFILE's manifest.
|
"Return the file name of a PROFILE's manifest.
|
||||||
If GENERATION number is specified, return manifest file name for
|
See `guix-packages-profile'."
|
||||||
this generation."
|
|
||||||
(expand-file-name "manifest"
|
(expand-file-name "manifest"
|
||||||
(if generation
|
(guix-packages-profile profile generation system?)))
|
||||||
(guix-generation-file profile generation)
|
|
||||||
profile)))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun guix-edit (id-or-name)
|
(defun guix-edit (id-or-name)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -61,7 +61,8 @@
|
||||||
(guix scripts lint)
|
(guix scripts lint)
|
||||||
(guix scripts package)
|
(guix scripts package)
|
||||||
(guix scripts pull)
|
(guix scripts pull)
|
||||||
(gnu packages))
|
(gnu packages)
|
||||||
|
(gnu system))
|
||||||
|
|
||||||
(define-syntax-rule (first-or-false lst)
|
(define-syntax-rule (first-or-false lst)
|
||||||
(and (not (null? lst))
|
(and (not (null? lst))
|
||||||
|
@ -137,28 +138,26 @@ return two values: name and version. For example, for SPEC
|
||||||
(define (manifest-entries->package-specifications entries)
|
(define (manifest-entries->package-specifications entries)
|
||||||
(map manifest-entry->package-specification entries))
|
(map manifest-entry->package-specification entries))
|
||||||
|
|
||||||
(define (generation-package-specifications profile number)
|
(define (profile-package-specifications profile)
|
||||||
"Return a list of package specifications for generation NUMBER."
|
"Return a list of package specifications for PROFILE."
|
||||||
(let ((manifest (profile-manifest
|
(let ((manifest (profile-manifest profile)))
|
||||||
(generation-file-name profile number))))
|
|
||||||
(manifest-entries->package-specifications
|
(manifest-entries->package-specifications
|
||||||
(manifest-entries manifest))))
|
(manifest-entries manifest))))
|
||||||
|
|
||||||
(define (generation-package-specifications+paths profile number)
|
(define (profile->specifications+paths profile)
|
||||||
"Return a list of package specifications and paths for generation NUMBER.
|
"Return a list of package specifications and paths for PROFILE.
|
||||||
Each element of the list is a list of the package specification and its path."
|
Each element of the list is a list of the package specification and its path."
|
||||||
(let ((manifest (profile-manifest
|
(let ((manifest (profile-manifest profile)))
|
||||||
(generation-file-name profile number))))
|
|
||||||
(map (lambda (entry)
|
(map (lambda (entry)
|
||||||
(list (manifest-entry->package-specification entry)
|
(list (manifest-entry->package-specification entry)
|
||||||
(manifest-entry-item entry)))
|
(manifest-entry-item entry)))
|
||||||
(manifest-entries manifest))))
|
(manifest-entries manifest))))
|
||||||
|
|
||||||
(define (generation-difference profile number1 number2)
|
(define (profile-difference profile1 profile2)
|
||||||
"Return a list of package specifications for outputs installed in generation
|
"Return a list of package specifications for outputs installed in PROFILE1
|
||||||
NUMBER1 and not installed in generation NUMBER2."
|
and not installed in PROFILE2."
|
||||||
(let ((specs1 (generation-package-specifications profile number1))
|
(let ((specs1 (profile-package-specifications profile1))
|
||||||
(specs2 (generation-package-specifications profile number2)))
|
(specs2 (profile-package-specifications profile2)))
|
||||||
(lset-difference string=? specs1 specs2)))
|
(lset-difference string=? specs1 specs2)))
|
||||||
|
|
||||||
(define (manifest-entries->hash-table entries)
|
(define (manifest-entries->hash-table entries)
|
||||||
|
@ -670,7 +669,6 @@ ENTRIES is a list of installed manifest entries."
|
||||||
(id . ,(apply-to-rest ids->package-patterns))
|
(id . ,(apply-to-rest ids->package-patterns))
|
||||||
(name . ,(apply-to-rest specifications->package-patterns))
|
(name . ,(apply-to-rest specifications->package-patterns))
|
||||||
(installed . ,manifest-package-proc)
|
(installed . ,manifest-package-proc)
|
||||||
(generation . ,manifest-package-proc)
|
|
||||||
(obsolete . ,(apply-to-first obsolete-package-patterns))
|
(obsolete . ,(apply-to-first obsolete-package-patterns))
|
||||||
(regexp . ,regexp-proc)
|
(regexp . ,regexp-proc)
|
||||||
(all-available . ,all-proc)
|
(all-available . ,all-proc)
|
||||||
|
@ -679,7 +677,6 @@ ENTRIES is a list of installed manifest entries."
|
||||||
(id . ,(apply-to-rest ids->output-patterns))
|
(id . ,(apply-to-rest ids->output-patterns))
|
||||||
(name . ,(apply-to-rest specifications->output-patterns))
|
(name . ,(apply-to-rest specifications->output-patterns))
|
||||||
(installed . ,manifest-output-proc)
|
(installed . ,manifest-output-proc)
|
||||||
(generation . ,manifest-output-proc)
|
|
||||||
(obsolete . ,(apply-to-first obsolete-output-patterns))
|
(obsolete . ,(apply-to-first obsolete-output-patterns))
|
||||||
(regexp . ,regexp-proc)
|
(regexp . ,regexp-proc)
|
||||||
(all-available . ,all-proc)
|
(all-available . ,all-proc)
|
||||||
|
@ -694,16 +691,13 @@ ENTRIES is a list of installed manifest entries."
|
||||||
search-type search-vals)
|
search-type search-vals)
|
||||||
"Return information about packages or package outputs.
|
"Return information about packages or package outputs.
|
||||||
See 'entry-sexps' for details."
|
See 'entry-sexps' for details."
|
||||||
(let* ((profile (if (eq? search-type 'generation)
|
(let* ((manifest (profile-manifest profile))
|
||||||
(generation-file-name profile (car search-vals))
|
|
||||||
profile))
|
|
||||||
(manifest (profile-manifest profile))
|
|
||||||
(patterns (if (and (eq? entry-type 'output)
|
(patterns (if (and (eq? entry-type 'output)
|
||||||
(eq? search-type 'generation-diff))
|
(eq? search-type 'profile-diff))
|
||||||
(match search-vals
|
(match search-vals
|
||||||
((g1 g2)
|
((p1 p2)
|
||||||
(map specification->output-pattern
|
(map specification->output-pattern
|
||||||
(generation-difference profile g1 g2)))
|
(profile-difference p1 p2)))
|
||||||
(_ '()))
|
(_ '()))
|
||||||
(apply (patterns-maker entry-type search-type)
|
(apply (patterns-maker entry-type search-type)
|
||||||
manifest search-vals)))
|
manifest search-vals)))
|
||||||
|
@ -765,6 +759,38 @@ See 'entry-sexps' for details."
|
||||||
params)))
|
params)))
|
||||||
(map ->sexp generations)))
|
(map ->sexp generations)))
|
||||||
|
|
||||||
|
(define system-generation-boot-parameters
|
||||||
|
(memoize
|
||||||
|
(lambda (profile generation)
|
||||||
|
"Return boot parameters for PROFILE's system GENERATION."
|
||||||
|
(let* ((gen-file (generation-file-name profile generation))
|
||||||
|
(param-file (string-append gen-file "/parameters")))
|
||||||
|
(call-with-input-file param-file read-boot-parameters)))))
|
||||||
|
|
||||||
|
(define (system-generation-param-alist profile)
|
||||||
|
"Return an alist of system generation parameters and procedures for
|
||||||
|
PROFILE."
|
||||||
|
(append (generation-param-alist profile)
|
||||||
|
`((label . ,(lambda (gen)
|
||||||
|
(boot-parameters-label
|
||||||
|
(system-generation-boot-parameters
|
||||||
|
profile gen))))
|
||||||
|
(root-device . ,(lambda (gen)
|
||||||
|
(boot-parameters-root-device
|
||||||
|
(system-generation-boot-parameters
|
||||||
|
profile gen))))
|
||||||
|
(kernel . ,(lambda (gen)
|
||||||
|
(boot-parameters-kernel
|
||||||
|
(system-generation-boot-parameters
|
||||||
|
profile gen)))))))
|
||||||
|
|
||||||
|
(define (system-generation-sexps profile params search-type search-vals)
|
||||||
|
"Return an alist with information about system generations."
|
||||||
|
(let ((generations (find-generations profile search-type search-vals))
|
||||||
|
(->sexp (object-transformer (system-generation-param-alist profile)
|
||||||
|
params)))
|
||||||
|
(map ->sexp generations)))
|
||||||
|
|
||||||
|
|
||||||
;;; Getting package/output/generation entries (alists).
|
;;; Getting package/output/generation entries (alists).
|
||||||
|
|
||||||
|
@ -809,6 +835,9 @@ parameter/value pairs."
|
||||||
((generation)
|
((generation)
|
||||||
(generation-sexps profile params
|
(generation-sexps profile params
|
||||||
search-type search-vals))
|
search-type search-vals))
|
||||||
|
((system-generation)
|
||||||
|
(system-generation-sexps profile params
|
||||||
|
search-type search-vals))
|
||||||
(else (entry-type-error entry-type))))
|
(else (entry-type-error entry-type))))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,14 +55,7 @@
|
||||||
(obsolete
|
(obsolete
|
||||||
(0 "No obsolete packages in profile '%s'." profile)
|
(0 "No obsolete packages in profile '%s'." profile)
|
||||||
(1 "A single obsolete package in profile '%s'." profile)
|
(1 "A single obsolete package in profile '%s'." profile)
|
||||||
(many "%d obsolete packages in profile '%s'." count profile))
|
(many "%d obsolete packages in profile '%s'." count profile)))
|
||||||
(generation
|
|
||||||
(0 "No packages installed in generation %d of profile '%s'."
|
|
||||||
val profile)
|
|
||||||
(1 "A single package installed in generation %d of profile '%s'."
|
|
||||||
val profile)
|
|
||||||
(many "%d packages installed in generation %d of profile '%s'."
|
|
||||||
count val profile)))
|
|
||||||
|
|
||||||
(output
|
(output
|
||||||
(id
|
(id
|
||||||
|
@ -91,14 +84,7 @@
|
||||||
(0 "No obsolete package outputs in profile '%s'." profile)
|
(0 "No obsolete package outputs in profile '%s'." profile)
|
||||||
(1 "A single obsolete package output in profile '%s'." profile)
|
(1 "A single obsolete package output in profile '%s'." profile)
|
||||||
(many "%d obsolete package outputs in profile '%s'." count profile))
|
(many "%d obsolete package outputs in profile '%s'." count profile))
|
||||||
(generation
|
(profile-diff
|
||||||
(0 "No package outputs installed in generation %d of profile '%s'."
|
|
||||||
val profile)
|
|
||||||
(1 "A single package output installed in generation %d of profile '%s'."
|
|
||||||
val profile)
|
|
||||||
(many "%d package outputs installed in generation %d of profile '%s'."
|
|
||||||
count val profile))
|
|
||||||
(generation-diff
|
|
||||||
guix-message-outputs-by-diff))
|
guix-message-outputs-by-diff))
|
||||||
|
|
||||||
(generation
|
(generation
|
||||||
|
@ -183,25 +169,27 @@ Try \"M-x guix-search-by-name\"."
|
||||||
"matching time period '%s' - '%s'.")
|
"matching time period '%s' - '%s'.")
|
||||||
str-beg profile time-beg time-end)))
|
str-beg profile time-beg time-end)))
|
||||||
|
|
||||||
(defun guix-message-outputs-by-diff (profile entries generations)
|
(defun guix-message-outputs-by-diff (_ entries profiles)
|
||||||
"Display a message for outputs searched by GENERATIONS difference."
|
"Display a message for outputs searched by PROFILES difference."
|
||||||
(let* ((count (length entries))
|
(let* ((count (length entries))
|
||||||
(str-beg (guix-message-string-entries count 'output))
|
(str-beg (guix-message-string-entries count 'output))
|
||||||
(gen1 (car generations))
|
(profile1 (car profiles))
|
||||||
(gen2 (cadr generations)))
|
(profile2 (cadr profiles)))
|
||||||
(cl-multiple-value-bind (new old str-action)
|
(cl-multiple-value-bind (new old str-action)
|
||||||
(if (> gen1 gen2)
|
(if (string-lessp profile2 profile1)
|
||||||
(list gen1 gen2 "added to")
|
(list profile1 profile2 "added to")
|
||||||
(list gen2 gen1 "removed from"))
|
(list profile2 profile1 "removed from"))
|
||||||
(message (concat "%s %s generation %d comparing with "
|
(message "%s %s profile '%s' comparing with profile '%s'."
|
||||||
"generation %d of profile '%s'.")
|
str-beg str-action new old))))
|
||||||
str-beg str-action new old profile))))
|
|
||||||
|
|
||||||
(defun guix-result-message (profile entries entry-type
|
(defun guix-result-message (profile entries entry-type
|
||||||
search-type search-vals)
|
search-type search-vals)
|
||||||
"Display an appropriate message after displaying ENTRIES."
|
"Display an appropriate message after displaying ENTRIES."
|
||||||
(let* ((type-spec (guix-assq-value guix-messages
|
(let* ((type-spec (guix-assq-value guix-messages
|
||||||
entry-type search-type))
|
(if (eq entry-type 'system-generation)
|
||||||
|
'generation
|
||||||
|
entry-type)
|
||||||
|
search-type))
|
||||||
(fun-or-count-spec (car type-spec)))
|
(fun-or-count-spec (car type-spec)))
|
||||||
(if (functionp fun-or-count-spec)
|
(if (functionp fun-or-count-spec)
|
||||||
(funcall fun-or-count-spec profile entries search-vals)
|
(funcall fun-or-count-spec profile entries search-vals)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
;;; guix-profiles.el --- Guix profiles
|
;;; guix-profiles.el --- Guix profiles
|
||||||
|
|
||||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
|
;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
|
||||||
|
|
||||||
;; This file is part of GNU Guix.
|
;; This file is part of GNU Guix.
|
||||||
|
|
||||||
|
@ -25,6 +26,10 @@
|
||||||
(expand-file-name "~/.guix-profile")
|
(expand-file-name "~/.guix-profile")
|
||||||
"User profile.")
|
"User profile.")
|
||||||
|
|
||||||
|
(defvar guix-system-profile
|
||||||
|
(concat guix-config-state-directory "/profiles/system")
|
||||||
|
"System profile.")
|
||||||
|
|
||||||
(defvar guix-default-profile
|
(defvar guix-default-profile
|
||||||
(concat guix-config-state-directory
|
(concat guix-config-state-directory
|
||||||
"/profiles/per-user/"
|
"/profiles/per-user/"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; guix-ui-generation.el --- Interface for displaying generations -*- lexical-binding: t -*-
|
;;; guix-ui-generation.el --- Interface for displaying generations -*- lexical-binding: t -*-
|
||||||
|
|
||||||
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
|
|
||||||
;; This file is part of GNU Guix.
|
;; This file is part of GNU Guix.
|
||||||
|
|
||||||
|
@ -78,6 +78,18 @@ Each element from GENERATIONS is a generation number."
|
||||||
'switch-to-generation* profile generation)
|
'switch-to-generation* profile generation)
|
||||||
operation-buffer)))
|
operation-buffer)))
|
||||||
|
|
||||||
|
(defun guix-system-generation? ()
|
||||||
|
"Return non-nil, if current generation is a system one."
|
||||||
|
(eq (guix-buffer-current-entry-type)
|
||||||
|
'system-generation))
|
||||||
|
|
||||||
|
(defun guix-generation-current-packages-profile (&optional generation)
|
||||||
|
"Return a directory where packages are installed for the
|
||||||
|
current profile's GENERATION."
|
||||||
|
(guix-packages-profile (guix-ui-current-profile)
|
||||||
|
generation
|
||||||
|
(guix-system-generation?)))
|
||||||
|
|
||||||
|
|
||||||
;;; Generation 'info'
|
;;; Generation 'info'
|
||||||
|
|
||||||
|
@ -115,8 +127,9 @@ Each element from GENERATIONS is a generation number."
|
||||||
(lambda (btn)
|
(lambda (btn)
|
||||||
(guix-buffer-get-display-entries
|
(guix-buffer-get-display-entries
|
||||||
'list guix-package-list-type
|
'list guix-package-list-type
|
||||||
(list (guix-ui-current-profile)
|
(list (guix-generation-current-packages-profile
|
||||||
'generation (button-get btn 'number))
|
(button-get btn 'number))
|
||||||
|
'installed)
|
||||||
'add))
|
'add))
|
||||||
"Show installed packages for this generation"
|
"Show installed packages for this generation"
|
||||||
'number number)
|
'number number)
|
||||||
|
@ -190,8 +203,8 @@ VAL is a boolean value."
|
||||||
"List installed packages for the generation at point."
|
"List installed packages for the generation at point."
|
||||||
(interactive)
|
(interactive)
|
||||||
(guix-package-get-display
|
(guix-package-get-display
|
||||||
(guix-ui-current-profile)
|
(guix-generation-current-packages-profile (guix-list-current-id))
|
||||||
'generation (guix-list-current-id)))
|
'installed))
|
||||||
|
|
||||||
(defun guix-generation-list-generations-to-compare ()
|
(defun guix-generation-list-generations-to-compare ()
|
||||||
"Return a sorted list of 2 marked generations for comparing."
|
"Return a sorted list of 2 marked generations for comparing."
|
||||||
|
@ -200,6 +213,11 @@ VAL is a boolean value."
|
||||||
(user-error "2 generations should be marked for comparing")
|
(user-error "2 generations should be marked for comparing")
|
||||||
(sort numbers #'<))))
|
(sort numbers #'<))))
|
||||||
|
|
||||||
|
(defun guix-generation-list-profiles-to-compare ()
|
||||||
|
"Return a sorted list of 2 marked generation profiles for comparing."
|
||||||
|
(mapcar #'guix-generation-current-packages-profile
|
||||||
|
(guix-generation-list-generations-to-compare)))
|
||||||
|
|
||||||
(defun guix-generation-list-show-added-packages ()
|
(defun guix-generation-list-show-added-packages ()
|
||||||
"List package outputs added to the latest marked generation.
|
"List package outputs added to the latest marked generation.
|
||||||
If 2 generations are marked with \\[guix-list-mark], display
|
If 2 generations are marked with \\[guix-list-mark], display
|
||||||
|
@ -209,8 +227,8 @@ installed in the other one."
|
||||||
(guix-buffer-get-display-entries
|
(guix-buffer-get-display-entries
|
||||||
'list 'output
|
'list 'output
|
||||||
(cl-list* (guix-ui-current-profile)
|
(cl-list* (guix-ui-current-profile)
|
||||||
'generation-diff
|
'profile-diff
|
||||||
(reverse (guix-generation-list-generations-to-compare)))
|
(reverse (guix-generation-list-profiles-to-compare)))
|
||||||
'add))
|
'add))
|
||||||
|
|
||||||
(defun guix-generation-list-show-removed-packages ()
|
(defun guix-generation-list-show-removed-packages ()
|
||||||
|
@ -222,8 +240,8 @@ installed in the other one."
|
||||||
(guix-buffer-get-display-entries
|
(guix-buffer-get-display-entries
|
||||||
'list 'output
|
'list 'output
|
||||||
(cl-list* (guix-ui-current-profile)
|
(cl-list* (guix-ui-current-profile)
|
||||||
'generation-diff
|
'profile-diff
|
||||||
(guix-generation-list-generations-to-compare))
|
(guix-generation-list-profiles-to-compare))
|
||||||
'add))
|
'add))
|
||||||
|
|
||||||
(defun guix-generation-list-compare (diff-fun gen-fun)
|
(defun guix-generation-list-compare (diff-fun gen-fun)
|
||||||
|
@ -324,14 +342,13 @@ performance."
|
||||||
"Width of an output name \"column\".
|
"Width of an output name \"column\".
|
||||||
This variable is used in auxiliary buffers for comparing generations.")
|
This variable is used in auxiliary buffers for comparing generations.")
|
||||||
|
|
||||||
(defun guix-generation-packages (profile generation)
|
(defun guix-generation-packages (profile)
|
||||||
"Return a list of sorted packages installed in PROFILE's GENERATION.
|
"Return a list of sorted packages installed in PROFILE.
|
||||||
Each element of the list is a list of the package specification
|
Each element of the list is a list of the package specification
|
||||||
and its store path."
|
and its store path."
|
||||||
(let ((names+paths (guix-eval-read
|
(let ((names+paths (guix-eval-read
|
||||||
(guix-make-guile-expression
|
(guix-make-guile-expression
|
||||||
'generation-package-specifications+paths
|
'profile->specifications+paths profile))))
|
||||||
profile generation))))
|
|
||||||
(sort names+paths
|
(sort names+paths
|
||||||
(lambda (a b)
|
(lambda (a b)
|
||||||
(string< (car a) (car b))))))
|
(string< (car a) (car b))))))
|
||||||
|
@ -360,8 +377,8 @@ Use the full PROFILE file name."
|
||||||
(indent-to guix-generation-output-name-width 2)
|
(indent-to guix-generation-output-name-width 2)
|
||||||
(insert path "\n"))
|
(insert path "\n"))
|
||||||
|
|
||||||
(defun guix-generation-insert-packages (buffer profile generation)
|
(defun guix-generation-insert-packages (buffer profile)
|
||||||
"Insert package outputs installed in PROFILE's GENERATION in BUFFER."
|
"Insert package outputs installed in PROFILE in BUFFER."
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
(setq buffer-read-only nil
|
(setq buffer-read-only nil
|
||||||
indent-tabs-mode nil)
|
indent-tabs-mode nil)
|
||||||
|
@ -369,9 +386,9 @@ Use the full PROFILE file name."
|
||||||
(mapc (lambda (name+path)
|
(mapc (lambda (name+path)
|
||||||
(guix-generation-insert-package
|
(guix-generation-insert-package
|
||||||
(car name+path) (cadr name+path)))
|
(car name+path) (cadr name+path)))
|
||||||
(guix-generation-packages profile generation))))
|
(guix-generation-packages profile))))
|
||||||
|
|
||||||
(defun guix-generation-packages-buffer (profile generation)
|
(defun guix-generation-packages-buffer (profile generation &optional system?)
|
||||||
"Return buffer with package outputs installed in PROFILE's GENERATION.
|
"Return buffer with package outputs installed in PROFILE's GENERATION.
|
||||||
Create the buffer if needed."
|
Create the buffer if needed."
|
||||||
(let ((buf-name (guix-generation-packages-buffer-name
|
(let ((buf-name (guix-generation-packages-buffer-name
|
||||||
|
@ -379,19 +396,24 @@ Create the buffer if needed."
|
||||||
(or (and (null guix-generation-packages-update-buffer)
|
(or (and (null guix-generation-packages-update-buffer)
|
||||||
(get-buffer buf-name))
|
(get-buffer buf-name))
|
||||||
(let ((buf (get-buffer-create buf-name)))
|
(let ((buf (get-buffer-create buf-name)))
|
||||||
(guix-generation-insert-packages buf profile generation)
|
(guix-generation-insert-packages
|
||||||
|
buf
|
||||||
|
(guix-packages-profile profile generation system?))
|
||||||
buf))))
|
buf))))
|
||||||
|
|
||||||
(defun guix-profile-generation-manifest-file (generation)
|
(defun guix-profile-generation-manifest-file (generation)
|
||||||
"Return the file name of a GENERATION's manifest.
|
"Return the file name of a GENERATION's manifest.
|
||||||
GENERATION is a generation number of the current profile."
|
GENERATION is a generation number of the current profile."
|
||||||
(guix-manifest-file (guix-ui-current-profile) generation))
|
(guix-manifest-file (guix-ui-current-profile)
|
||||||
|
generation
|
||||||
|
(guix-system-generation?)))
|
||||||
|
|
||||||
(defun guix-profile-generation-packages-buffer (generation)
|
(defun guix-profile-generation-packages-buffer (generation)
|
||||||
"Insert GENERATION's package outputs in a buffer and return it.
|
"Insert GENERATION's package outputs in a buffer and return it.
|
||||||
GENERATION is a generation number of the current profile."
|
GENERATION is a generation number of the current profile."
|
||||||
(guix-generation-packages-buffer (guix-ui-current-profile)
|
(guix-generation-packages-buffer (guix-ui-current-profile)
|
||||||
generation))
|
generation
|
||||||
|
(guix-system-generation?)))
|
||||||
|
|
||||||
|
|
||||||
;;; Interactive commands
|
;;; Interactive commands
|
||||||
|
|
|
@ -349,6 +349,10 @@ formatted with this string, an action button is inserted.")
|
||||||
'name (button-label btn))
|
'name (button-label btn))
|
||||||
'add)))
|
'add)))
|
||||||
|
|
||||||
|
(define-button-type 'guix-package-heading
|
||||||
|
:supertype 'guix-package-name
|
||||||
|
'face 'guix-package-info-heading)
|
||||||
|
|
||||||
(define-button-type 'guix-package-source
|
(define-button-type 'guix-package-source
|
||||||
:supertype 'guix
|
:supertype 'guix
|
||||||
'face 'guix-package-info-source
|
'face 'guix-package-info-source
|
||||||
|
@ -362,8 +366,7 @@ formatted with this string, an action button is inserted.")
|
||||||
"Insert package ENTRY heading (name specification) at point."
|
"Insert package ENTRY heading (name specification) at point."
|
||||||
(guix-insert-button
|
(guix-insert-button
|
||||||
(guix-package-entry->name-specification entry)
|
(guix-package-entry->name-specification entry)
|
||||||
'guix-package-name
|
'guix-package-heading))
|
||||||
'face 'guix-package-info-heading))
|
|
||||||
|
|
||||||
(defun guix-package-info-insert-systems (systems entry)
|
(defun guix-package-info-insert-systems (systems entry)
|
||||||
"Insert supported package SYSTEMS at point."
|
"Insert supported package SYSTEMS at point."
|
||||||
|
@ -909,15 +912,15 @@ See `guix-package-info-type'."
|
||||||
"A history of minibuffer prompts.")
|
"A history of minibuffer prompts.")
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun guix-search-by-name (name &optional profile)
|
(defun guix-packages-by-name (name &optional profile)
|
||||||
"Search for Guix packages by NAME.
|
"Display Guix packages with NAME.
|
||||||
NAME is a string with name specification. It may optionally contain
|
NAME is a string with name specification. It may optionally contain
|
||||||
a version number. Examples: \"guile\", \"guile-2.0.11\".
|
a version number. Examples: \"guile\", \"guile-2.0.11\".
|
||||||
|
|
||||||
If PROFILE is nil, use `guix-current-profile'.
|
If PROFILE is nil, use `guix-current-profile'.
|
||||||
Interactively with prefix, prompt for PROFILE."
|
Interactively with prefix, prompt for PROFILE."
|
||||||
(interactive
|
(interactive
|
||||||
(list (read-string "Package name: " nil 'guix-package-search-history)
|
(list (guix-read-package-name)
|
||||||
(guix-ui-read-profile)))
|
(guix-ui-read-profile)))
|
||||||
(guix-package-get-display profile 'name name))
|
(guix-package-get-display profile 'name name))
|
||||||
|
|
||||||
|
@ -935,6 +938,17 @@ Interactively with prefix, prompt for PROFILE."
|
||||||
(guix-package-get-display profile 'regexp regexp
|
(guix-package-get-display profile 'regexp regexp
|
||||||
(or params guix-package-search-params)))
|
(or params guix-package-search-params)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun guix-search-by-name (regexp &optional profile)
|
||||||
|
"Search for Guix packages matching REGEXP in a package name.
|
||||||
|
If PROFILE is nil, use `guix-current-profile'.
|
||||||
|
Interactively with prefix, prompt for PROFILE."
|
||||||
|
(interactive
|
||||||
|
(list (read-string "Package name by regexp: "
|
||||||
|
nil 'guix-package-search-history)
|
||||||
|
(guix-ui-read-profile)))
|
||||||
|
(guix-search-by-regexp regexp '(name) profile))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun guix-installed-packages (&optional profile)
|
(defun guix-installed-packages (&optional profile)
|
||||||
"Display information about installed Guix packages.
|
"Display information about installed Guix packages.
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
;;; guix-ui-system-generation.el --- Interface for displaying system generations -*- lexical-binding: t -*-
|
||||||
|
|
||||||
|
;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||||
|
|
||||||
|
;; This file is part of GNU Guix.
|
||||||
|
|
||||||
|
;; GNU Guix is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; GNU Guix is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;; This file provides an interface for displaying system generations
|
||||||
|
;; in 'list' and 'info' buffers, and commands for working with them.
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'cl-lib)
|
||||||
|
(require 'guix-list)
|
||||||
|
(require 'guix-ui)
|
||||||
|
(require 'guix-ui-generation)
|
||||||
|
(require 'guix-profiles)
|
||||||
|
|
||||||
|
(guix-ui-define-entry-type system-generation)
|
||||||
|
|
||||||
|
(defun guix-system-generation-get-display (search-type &rest search-values)
|
||||||
|
"Search for system generations and show results.
|
||||||
|
See `guix-ui-get-entries' for the meaning of SEARCH-TYPE and
|
||||||
|
SEARCH-VALUES."
|
||||||
|
(apply #'guix-list-get-display-entries
|
||||||
|
'system-generation
|
||||||
|
guix-system-profile
|
||||||
|
search-type search-values))
|
||||||
|
|
||||||
|
|
||||||
|
;;; System generation 'info'
|
||||||
|
|
||||||
|
(guix-ui-info-define-interface system-generation
|
||||||
|
:buffer-name "*Guix Generation Info*"
|
||||||
|
:format '((number format guix-generation-info-insert-number)
|
||||||
|
(label format (format))
|
||||||
|
(prev-number format (format))
|
||||||
|
(current format guix-generation-info-insert-current)
|
||||||
|
(path format (format guix-file))
|
||||||
|
(time format (time))
|
||||||
|
(root-device format (format))
|
||||||
|
(kernel format (format guix-file)))
|
||||||
|
:titles guix-generation-info-titles)
|
||||||
|
|
||||||
|
|
||||||
|
;;; System generation 'list'
|
||||||
|
|
||||||
|
;; FIXME It is better to make `guix-generation-list-shared-map' with
|
||||||
|
;; common keys for both usual and system generations.
|
||||||
|
(defvar guix-system-generation-list-mode-map
|
||||||
|
(copy-keymap guix-generation-list-mode-map)
|
||||||
|
"Keymap for `guix-system-generation-list-mode' buffers.")
|
||||||
|
|
||||||
|
(guix-ui-list-define-interface system-generation
|
||||||
|
:buffer-name "*Guix Generation List*"
|
||||||
|
:format '((number nil 5 guix-list-sort-numerically-0 :right-align t)
|
||||||
|
(current guix-generation-list-get-current 10 t)
|
||||||
|
(label nil 40 t)
|
||||||
|
(time guix-list-get-time 20 t)
|
||||||
|
(path guix-list-get-file-path 30 t))
|
||||||
|
:titles guix-generation-list-titles
|
||||||
|
:sort-key '(number . t)
|
||||||
|
:marks '((delete . ?D)))
|
||||||
|
|
||||||
|
|
||||||
|
;;; Interactive commands
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun guix-system-generations ()
|
||||||
|
"Display information about system generations."
|
||||||
|
(interactive)
|
||||||
|
(guix-system-generation-get-display 'all))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun guix-last-system-generations (number)
|
||||||
|
"Display information about last NUMBER of system generations."
|
||||||
|
(interactive "nThe number of last generations: ")
|
||||||
|
(guix-system-generation-get-display 'last number))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun guix-system-generations-by-time (from to)
|
||||||
|
"Display information about system generations created between FROM and TO."
|
||||||
|
(interactive
|
||||||
|
(list (guix-read-date "Find generations (from): ")
|
||||||
|
(guix-read-date "Find generations (to): ")))
|
||||||
|
(guix-system-generation-get-display
|
||||||
|
'time (float-time from) (float-time to)))
|
||||||
|
|
||||||
|
(provide 'guix-ui-system-generation)
|
||||||
|
|
||||||
|
;;; guix-ui-system-generation.el ends here
|
|
@ -80,6 +80,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
gnu/packages/databases.scm \
|
gnu/packages/databases.scm \
|
||||||
gnu/packages/datamash.scm \
|
gnu/packages/datamash.scm \
|
||||||
gnu/packages/datastructures.scm \
|
gnu/packages/datastructures.scm \
|
||||||
|
gnu/packages/dav.scm \
|
||||||
gnu/packages/dc.scm \
|
gnu/packages/dc.scm \
|
||||||
gnu/packages/debug.scm \
|
gnu/packages/debug.scm \
|
||||||
gnu/packages/dejagnu.scm \
|
gnu/packages/dejagnu.scm \
|
||||||
|
@ -89,6 +90,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
gnu/packages/djvu.scm \
|
gnu/packages/djvu.scm \
|
||||||
gnu/packages/dns.scm \
|
gnu/packages/dns.scm \
|
||||||
gnu/packages/docbook.scm \
|
gnu/packages/docbook.scm \
|
||||||
|
gnu/packages/docker.scm \
|
||||||
gnu/packages/doxygen.scm \
|
gnu/packages/doxygen.scm \
|
||||||
gnu/packages/dunst.scm \
|
gnu/packages/dunst.scm \
|
||||||
gnu/packages/dvtm.scm \
|
gnu/packages/dvtm.scm \
|
||||||
|
@ -417,7 +419,6 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/avidemux-install-to-lib.patch \
|
gnu/packages/patches/avidemux-install-to-lib.patch \
|
||||||
gnu/packages/patches/avrdude-fix-libusb.patch \
|
gnu/packages/patches/avrdude-fix-libusb.patch \
|
||||||
gnu/packages/patches/bash-completion-directories.patch \
|
gnu/packages/patches/bash-completion-directories.patch \
|
||||||
gnu/packages/patches/bowtie-fix-makefile.patch \
|
|
||||||
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
||||||
gnu/packages/patches/binutils-ld-new-dtags.patch \
|
gnu/packages/patches/binutils-ld-new-dtags.patch \
|
||||||
gnu/packages/patches/binutils-loongson-workaround.patch \
|
gnu/packages/patches/binutils-loongson-workaround.patch \
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2014, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -96,6 +96,11 @@ contains module names, not actual file names."
|
||||||
name
|
name
|
||||||
(dot-ko name)))
|
(dot-ko name)))
|
||||||
|
|
||||||
|
(define (file-name->module-name file)
|
||||||
|
"Return the module name corresponding to FILE, stripping the trailing '.ko',
|
||||||
|
etc."
|
||||||
|
(basename file ".ko"))
|
||||||
|
|
||||||
(define* (recursive-module-dependencies files
|
(define* (recursive-module-dependencies files
|
||||||
#:key (lookup-module dot-ko))
|
#:key (lookup-module dot-ko))
|
||||||
"Return the topologically-sorted list of file names of the modules depended
|
"Return the topologically-sorted list of file names of the modules depended
|
||||||
|
@ -130,6 +135,22 @@ LOOKUP-MODULE to the module name."
|
||||||
(((modules . _) ...)
|
(((modules . _) ...)
|
||||||
modules))))
|
modules))))
|
||||||
|
|
||||||
|
(define (module-black-list)
|
||||||
|
"Return the black list of modules that must not be loaded. This black list
|
||||||
|
is specified using 'modprobe.blacklist=MODULE1,MODULE2,...' on the kernel
|
||||||
|
command line; it is honored by libkmod."
|
||||||
|
(define parameter
|
||||||
|
"modprobe.blacklist=")
|
||||||
|
|
||||||
|
(let ((command (call-with-input-file "/proc/cmdline"
|
||||||
|
get-string-all)))
|
||||||
|
(append-map (lambda (arg)
|
||||||
|
(if (string-prefix? parameter arg)
|
||||||
|
(string-tokenize (string-drop arg (string-length parameter))
|
||||||
|
%not-comma)
|
||||||
|
'()))
|
||||||
|
(string-tokenize command))))
|
||||||
|
|
||||||
(define (module-loaded? module)
|
(define (module-loaded? module)
|
||||||
"Return #t if MODULE is already loaded. MODULE must be a Linux module name,
|
"Return #t if MODULE is already loaded. MODULE must be a Linux module name,
|
||||||
not a file name."
|
not a file name."
|
||||||
|
@ -138,29 +159,44 @@ not a file name."
|
||||||
(define* (load-linux-module* file
|
(define* (load-linux-module* file
|
||||||
#:key
|
#:key
|
||||||
(recursive? #t)
|
(recursive? #t)
|
||||||
(lookup-module dot-ko))
|
(lookup-module dot-ko)
|
||||||
"Load Linux module from FILE, the name of a `.ko' file. When RECURSIVE? is
|
(black-list (module-black-list)))
|
||||||
true, load its dependencies first (à la 'modprobe'.) The actual files
|
"Load Linux module from FILE, the name of a '.ko' file; return true on
|
||||||
containing modules depended on are obtained by calling LOOKUP-MODULE with the
|
success, false otherwise. When RECURSIVE? is true, load its dependencies
|
||||||
module name."
|
first (à la 'modprobe'.) The actual files containing modules depended on are
|
||||||
|
obtained by calling LOOKUP-MODULE with the module name. Modules whose name
|
||||||
|
appears in BLACK-LIST are not loaded."
|
||||||
(define (slurp module)
|
(define (slurp module)
|
||||||
;; TODO: Use 'finit_module' to reduce memory usage.
|
;; TODO: Use 'finit_module' to reduce memory usage.
|
||||||
(call-with-input-file file get-bytevector-all))
|
(call-with-input-file file get-bytevector-all))
|
||||||
|
|
||||||
(when recursive?
|
(define (black-listed? module)
|
||||||
(for-each (cut load-linux-module* <> #:lookup-module lookup-module)
|
(let ((result (member module black-list)))
|
||||||
(map lookup-module (module-dependencies file))))
|
(when result
|
||||||
|
(format (current-module-debugging-port)
|
||||||
|
"not loading module '~a' because it's black-listed~%"
|
||||||
|
module))
|
||||||
|
result))
|
||||||
|
|
||||||
(format (current-module-debugging-port)
|
(define (load-dependencies file)
|
||||||
"loading Linux module from '~a'...~%" file)
|
(let ((dependencies (module-dependencies file)))
|
||||||
|
(every (cut load-linux-module* <> #:lookup-module lookup-module)
|
||||||
|
(map lookup-module dependencies))))
|
||||||
|
|
||||||
(catch 'system-error
|
(and (not (black-listed? (file-name->module-name file)))
|
||||||
(lambda ()
|
(or (not recursive?)
|
||||||
(load-linux-module (slurp file)))
|
(load-dependencies file))
|
||||||
(lambda args
|
(begin
|
||||||
;; If this module was already loaded and we're in modprobe style, ignore
|
(format (current-module-debugging-port)
|
||||||
;; the error.
|
"loading Linux module from '~a'...~%" file)
|
||||||
(unless (and recursive? (= EEXIST (system-error-errno args)))
|
|
||||||
(apply throw args)))))
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(load-linux-module (slurp file)))
|
||||||
|
(lambda args
|
||||||
|
;; If this module was already loaded and we're in modprobe style, ignore
|
||||||
|
;; the error.
|
||||||
|
(or (and recursive? (= EEXIST (system-error-errno args)))
|
||||||
|
(apply throw args)))))))
|
||||||
|
|
||||||
;;; linux-modules.scm ends here
|
;;; linux-modules.scm ends here
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||||
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
|
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
|
||||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||||
|
@ -1318,3 +1318,62 @@ able to adapt itself dynamically to the overall system load. Children
|
||||||
processes and threads of the specified process may optionally share the same
|
processes and threads of the specified process may optionally share the same
|
||||||
limits.")
|
limits.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public autojump
|
||||||
|
(package
|
||||||
|
(name "autojump")
|
||||||
|
(version "22.2.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/wting/autojump/archive/"
|
||||||
|
"release-v" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0xglj7nb8xczaqy2dhn78drqdwqj64rqpymxhqmmwwqzfaqassw1"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs ;for tests
|
||||||
|
`(("python-mock" ,python-mock)
|
||||||
|
("python-pytest" ,python-pytest)))
|
||||||
|
(inputs
|
||||||
|
`(("python" ,python-wrapper)))
|
||||||
|
(arguments
|
||||||
|
`(#:phases (modify-phases %standard-phases
|
||||||
|
(delete 'configure)
|
||||||
|
(delete 'build)
|
||||||
|
(replace 'check
|
||||||
|
(lambda _
|
||||||
|
(zero?
|
||||||
|
(system* "python" "tests/autojump_utils_test.py"))))
|
||||||
|
(replace 'install
|
||||||
|
;; The install.py script doesn't allow system installation
|
||||||
|
;; into an arbitrary prefix, so do our own install.
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(bin (string-append out "/bin"))
|
||||||
|
(share (string-append out "/share/autojump"))
|
||||||
|
(py (string-append out "/lib/python"
|
||||||
|
,(version-major+minor
|
||||||
|
(package-version python-wrapper))
|
||||||
|
"/site-packages"))
|
||||||
|
(man (string-append out "/share/man/man1")))
|
||||||
|
(install-file "bin/autojump" bin)
|
||||||
|
(for-each (λ (f) (install-file f py))
|
||||||
|
(find-files "bin" "\\.py$"))
|
||||||
|
(for-each (λ (f) (install-file f share))
|
||||||
|
(find-files "bin" "autojump\\..*$"))
|
||||||
|
(substitute* (string-append share "/autojump.sh")
|
||||||
|
(("/usr/local") out))
|
||||||
|
(install-file "docs/autojump.1" man)
|
||||||
|
(wrap-program (string-append bin "/autojump")
|
||||||
|
`("PYTHONPATH" ":" prefix (,py)))
|
||||||
|
#t))))))
|
||||||
|
(home-page "https://github.com/wting/autojump")
|
||||||
|
(synopsis "Shell extension for filesystem navigation")
|
||||||
|
(description
|
||||||
|
"Autojump provides a faster way to navigate your filesystem, with a \"cd
|
||||||
|
command that learns\". It works by maintaining a database of the directories
|
||||||
|
you use the most from the command line and allows you to \"jump\" to
|
||||||
|
frequently used directories by typing only a small pattern.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2015 Pjotr Prins <pjotr.guix@thebird.nl>
|
;;; Copyright © 2015 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||||
|
@ -603,7 +603,7 @@ errors at the end of reads.")
|
||||||
(define-public bowtie
|
(define-public bowtie
|
||||||
(package
|
(package
|
||||||
(name "bowtie")
|
(name "bowtie")
|
||||||
(version "2.2.4")
|
(version "2.2.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/BenLangmead/bowtie2/archive/v"
|
(uri (string-append "https://github.com/BenLangmead/bowtie2/archive/v"
|
||||||
|
@ -611,42 +611,36 @@ errors at the end of reads.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"15dnbqippwvhyh9zqjhaxkabk7lm1xbh1nvar1x4b5kwm117zijn"))
|
"1ssfvymxfrap6f9pf86s9bvsbqdgka4abr2r7j3mgr4w1l289m86"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(substitute* "Makefile"
|
'(substitute* "Makefile"
|
||||||
(("^CC = .*$") "CC = gcc")
|
|
||||||
(("^CPP = .*$") "CPP = g++")
|
|
||||||
;; replace BUILD_HOST and BUILD_TIME for deterministic build
|
;; replace BUILD_HOST and BUILD_TIME for deterministic build
|
||||||
(("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
|
(("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
|
||||||
(("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))
|
(("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))))
|
||||||
(patches (list (search-patch "bowtie-fix-makefile.patch")))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("perl" ,perl)
|
(inputs `(("perl" ,perl)
|
||||||
("perl-clone" ,perl-clone)
|
("perl-clone" ,perl-clone)
|
||||||
("perl-test-deep" ,perl-test-deep)
|
("perl-test-deep" ,perl-test-deep)
|
||||||
("perl-test-simple" ,perl-test-simple)
|
("perl-test-simple" ,perl-test-simple)
|
||||||
("python" ,python-2)))
|
("python" ,python-2)
|
||||||
|
("tbb" ,tbb)))
|
||||||
(arguments
|
(arguments
|
||||||
'(#:make-flags '("allall")
|
'(#:make-flags
|
||||||
|
(list "allall"
|
||||||
|
"WITH_TBB=1"
|
||||||
|
(string-append "prefix=" (assoc-ref %outputs "out")))
|
||||||
#:phases
|
#:phases
|
||||||
(alist-delete
|
(alist-delete
|
||||||
'configure
|
'configure
|
||||||
(alist-replace
|
(alist-replace
|
||||||
'install
|
'check
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
|
(system* "perl"
|
||||||
(for-each (lambda (file)
|
"scripts/test/simple_tests.pl"
|
||||||
(install-file file bin))
|
"--bowtie2=./bowtie2"
|
||||||
(find-files "." "bowtie2.*"))))
|
"--bowtie2-build=./bowtie2-build"))
|
||||||
(alist-replace
|
%standard-phases))))
|
||||||
'check
|
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(system* "perl"
|
|
||||||
"scripts/test/simple_tests.pl"
|
|
||||||
"--bowtie2=./bowtie2"
|
|
||||||
"--bowtie2-build=./bowtie2-build"))
|
|
||||||
%standard-phases)))))
|
|
||||||
(home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
|
(home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
|
||||||
(synopsis "Fast and sensitive nucleotide sequence read aligner")
|
(synopsis "Fast and sensitive nucleotide sequence read aligner")
|
||||||
(description
|
(description
|
||||||
|
@ -2079,7 +2073,7 @@ that a read originated from a particular isoform.")
|
||||||
(define-public orfm
|
(define-public orfm
|
||||||
(package
|
(package
|
||||||
(name "orfm")
|
(name "orfm")
|
||||||
(version "0.4.1")
|
(version "0.5.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -2087,12 +2081,16 @@ that a read originated from a particular isoform.")
|
||||||
version "/orfm-" version ".tar.gz"))
|
version "/orfm-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"05fmw145snk646ly076zby0fjav0k7ysbclck5d4s9pmgcfpijc2"))))
|
"0vb6d771gl4mix8bwx919x5ayy9pkj44n7ki336nz3rz2rx4c7gk"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("zlib" ,zlib)))
|
(inputs `(("zlib" ,zlib)))
|
||||||
|
(native-inputs
|
||||||
|
`(("ruby-bio-commandeer" ,ruby-bio-commandeer)
|
||||||
|
("ruby-rspec" ,ruby-rspec)
|
||||||
|
("ruby" ,ruby)))
|
||||||
(synopsis "Simple and not slow open reading frame (ORF) caller")
|
(synopsis "Simple and not slow open reading frame (ORF) caller")
|
||||||
(description
|
(description
|
||||||
"An ORF caller finds stretches of DNA that when translated are not
|
"An ORF caller finds stretches of DNA that, when translated, are not
|
||||||
interrupted by stop codons. OrfM finds and prints these ORFs.")
|
interrupted by stop codons. OrfM finds and prints these ORFs.")
|
||||||
(home-page "https://github.com/wwood/OrfM")
|
(home-page "https://github.com/wwood/OrfM")
|
||||||
(license license:lgpl3+)))
|
(license license:lgpl3+)))
|
||||||
|
@ -2458,18 +2456,21 @@ viewer.")
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h"))))
|
(base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments samtools)
|
`(#:tests? #f ;no "check" target
|
||||||
((#:tests? tests) #f) ;no "check" target
|
,@(substitute-keyword-arguments (package-arguments samtools)
|
||||||
((#:phases phases)
|
((#:make-flags flags)
|
||||||
`(modify-phases ,phases
|
`(cons "LIBCURSES=-lncurses" ,flags))
|
||||||
(replace 'install
|
((#:phases phases)
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
`(modify-phases ,phases
|
||||||
(let ((bin (string-append
|
(replace 'install
|
||||||
(assoc-ref outputs "out") "/bin")))
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(mkdir-p bin)
|
(let ((bin (string-append
|
||||||
(copy-file "samtools"
|
(assoc-ref outputs "out") "/bin")))
|
||||||
(string-append bin "/samtools")))))
|
(mkdir-p bin)
|
||||||
(delete 'patch-tests)))))))
|
(copy-file "samtools"
|
||||||
|
(string-append bin "/samtools")))))
|
||||||
|
(delete 'patch-tests)
|
||||||
|
(delete 'configure))))))))
|
||||||
|
|
||||||
(define-public mosaik
|
(define-public mosaik
|
||||||
(let ((commit "5c25216d"))
|
(let ((commit "5c25216d"))
|
||||||
|
@ -3841,6 +3842,8 @@ extracting the desired features in a convenient format.")
|
||||||
(properties
|
(properties
|
||||||
`((upstream-name . "GO.db")))
|
`((upstream-name . "GO.db")))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-annotationdbi" ,r-annotationdbi)))
|
||||||
(home-page "http://bioconductor.org/packages/GO.db")
|
(home-page "http://bioconductor.org/packages/GO.db")
|
||||||
(synopsis "Annotation maps describing the entire Gene Ontology")
|
(synopsis "Annotation maps describing the entire Gene Ontology")
|
||||||
(description
|
(description
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||||
|
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -21,9 +22,16 @@
|
||||||
#:use-module (guix licenses)
|
#:use-module (guix licenses)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix build utils)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
|
#:use-module (guix build-system python)
|
||||||
|
#:use-module (gnu packages base)
|
||||||
|
#:use-module (gnu packages databases)
|
||||||
|
#:use-module (gnu packages dav)
|
||||||
|
#:use-module (gnu packages freedesktop)
|
||||||
#:use-module (gnu packages icu4c)
|
#:use-module (gnu packages icu4c)
|
||||||
#:use-module (gnu packages perl))
|
#:use-module (gnu packages perl)
|
||||||
|
#:use-module (gnu packages python))
|
||||||
|
|
||||||
(define-public libical
|
(define-public libical
|
||||||
(package
|
(package
|
||||||
|
@ -50,3 +58,70 @@
|
||||||
"Libical is an implementation of the iCalendar protocols and protocol
|
"Libical is an implementation of the iCalendar protocols and protocol
|
||||||
data units.")
|
data units.")
|
||||||
(license lgpl2.1)))
|
(license lgpl2.1)))
|
||||||
|
|
||||||
|
(define-public khal
|
||||||
|
(package
|
||||||
|
(name "khal")
|
||||||
|
(version "0.7.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "khal" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"00llxj7cv31mjsx0j6zxmyi9s1q20yvfkn025xcy8cv1ylfwic66"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
;; Patch broken path in 'doc' Makefile.
|
||||||
|
;; Patch sent upstream: https://github.com/geier/khal/pull/307
|
||||||
|
(snippet
|
||||||
|
'(substitute* "doc/source/Makefile"
|
||||||
|
(("../../../khal/khal/settings/khal.spec")
|
||||||
|
"../../khal/settings/khal.spec" )))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases (modify-phases %standard-phases
|
||||||
|
;; Bug reported: https://github.com/geier/khal/issues/309
|
||||||
|
(add-after 'unpack 'disable-test
|
||||||
|
(lambda _
|
||||||
|
(substitute* "tests/khalendar_test.py"
|
||||||
|
(("test_only_update_old_event")
|
||||||
|
"disabled_only_update_old_event"))))
|
||||||
|
;; Building the manpage requires khal to be installed.
|
||||||
|
(add-after 'install 'manpage
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(setenv "PYTHONPATH"
|
||||||
|
(string-append
|
||||||
|
(getenv "PYTHONPATH") ":" (assoc-ref outputs "out")))
|
||||||
|
(zero? (system* "make" "--directory=doc/" "man"))
|
||||||
|
(install-file
|
||||||
|
"doc/build/man/khal.1"
|
||||||
|
(string-append (assoc-ref outputs "out") "/share/man/man1"))))
|
||||||
|
;; The tests require us to choose a timezone.
|
||||||
|
(replace 'check
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(setenv "TZ"
|
||||||
|
(string-append (assoc-ref inputs "tzdata")
|
||||||
|
"/share/zoneinfo/Zulu"))
|
||||||
|
(zero? (system* "py.test" "tests")))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)
|
||||||
|
;; Required for tests
|
||||||
|
("tzdata" ,tzdata)
|
||||||
|
;; Required to build manpage
|
||||||
|
("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
|
||||||
|
("python-sphinx" ,python-sphinx)))
|
||||||
|
(inputs
|
||||||
|
`(("sqlite" ,sqlite)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-configobj" ,python-configobj)
|
||||||
|
("python-dateutil-2" ,python-dateutil-2)
|
||||||
|
("python-icalendar" ,python-icalendar)
|
||||||
|
("python-tzlocal" ,python-tzlocal)
|
||||||
|
("python-urwid" ,python-urwid)
|
||||||
|
("python-pyxdg" ,python-pyxdg)
|
||||||
|
("vdirsyncer" ,vdirsyncer)))
|
||||||
|
(synopsis "Console calendar program")
|
||||||
|
(description "Khal is a standards based console calendar program,
|
||||||
|
able to synchronize with CalDAV servers through vdirsyncer.")
|
||||||
|
(home-page "http://lostpackets.de/khal/")
|
||||||
|
(license expat)))
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
;;; Copyright © 2012, 2014, 2015 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2012, 2014, 2015 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||||
|
@ -205,7 +205,7 @@ Language.")
|
||||||
(define-public mariadb
|
(define-public mariadb
|
||||||
(package
|
(package
|
||||||
(name "mariadb")
|
(name "mariadb")
|
||||||
(version "10.0.20")
|
(version "10.0.23")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://downloads.mariadb.org/f/"
|
(uri (string-append "https://downloads.mariadb.org/f/"
|
||||||
|
@ -213,7 +213,7 @@ Language.")
|
||||||
name "-" version ".tar.gz"))
|
name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ywb730l68mxvmpik1x2ndbdaaks6dmc17pxspspm5wlqxinjkrs"))))
|
"0x52gfxk7zr84al83x62s4gh7mbngahy1svafdkbwd18i5lysvhm"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags
|
'(#:configure-flags
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||||
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -27,7 +28,7 @@
|
||||||
(define-public datamash
|
(define-public datamash
|
||||||
(package
|
(package
|
||||||
(name "datamash")
|
(name "datamash")
|
||||||
(version "1.0.7")
|
(version "1.1.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -35,7 +36,7 @@
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0y49zaadzirghy4xfajvsv1f5x805cjp61z212ggipx5243302qs"))))
|
"1c2bj0jrm4fxkf0ykxkzgyk1l9s0idqm8rbzmk3n9pgldb4arrd9"))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("which" ,which) ;for tests
|
`(("which" ,which) ;for tests
|
||||||
("perl" ,perl))) ;for help2man
|
("perl" ,perl))) ;for help2man
|
||||||
|
|
|
@ -0,0 +1,108 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (gnu packages dav)
|
||||||
|
#:use-module (guix build-system python)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix licenses)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (gnu packages python))
|
||||||
|
|
||||||
|
(define-public radicale
|
||||||
|
(package
|
||||||
|
(name "radicale")
|
||||||
|
(version "1.1.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "Radicale" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1c5lv8qca21mndkx350wxv34qypqh6gb4rhzms4anr642clq3jg2"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
;; TODO: Add python-pam
|
||||||
|
`(("python-requests" ,python-requests)))
|
||||||
|
(synopsis "Basic CalDAV and CardDAV server")
|
||||||
|
(description "Radicale is a CalDAV and CardDAV server for UNIX-like
|
||||||
|
platforms. Calendars and address books are available for both local and remote
|
||||||
|
access, possibly limited through authentication policies. They can be viewed
|
||||||
|
and edited by calendar and contact clients on mobile phones or computers.
|
||||||
|
|
||||||
|
Radicale intentionally does not fully comply with the CalDAV and CardDAV RFCs.
|
||||||
|
Instead, it supports the CalDAV and CardDAV implementations of popular
|
||||||
|
clients.")
|
||||||
|
(home-page "http://radicale.org/")
|
||||||
|
(license gpl3+)))
|
||||||
|
|
||||||
|
(define-public vdirsyncer
|
||||||
|
(package
|
||||||
|
(name "vdirsyncer")
|
||||||
|
(version "0.7.5")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "vdirsyncer" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0dvar4k95n689fgw5gy19mb7ggaw32c8j2gbglr33wn7pbxc2l9z"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases (modify-phases %standard-phases
|
||||||
|
(replace 'check
|
||||||
|
(lambda _
|
||||||
|
(setenv "DAV_SERVER" "radicale")
|
||||||
|
(setenv "REMOTESTORAGE_SERVER" "skip")
|
||||||
|
(zero? (system* "py.test"))))
|
||||||
|
;; vdirsyncer requires itself to be installed in order to build
|
||||||
|
;; the manpage.
|
||||||
|
(add-after 'install 'manpage
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(setenv "PYTHONPATH"
|
||||||
|
(string-append
|
||||||
|
(getenv "PYTHONPATH")
|
||||||
|
":" (assoc-ref outputs "out")))
|
||||||
|
(zero? (system* "make" "--directory=docs/" "man"))
|
||||||
|
(install-file
|
||||||
|
"docs/_build/man/vdirsyncer.1"
|
||||||
|
(string-append
|
||||||
|
(assoc-ref outputs "out")
|
||||||
|
"/share/man/man1")))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-oauthlib" ,python-oauthlib)
|
||||||
|
("python-setuptools-scm" ,python-setuptools-scm)
|
||||||
|
("python-sphinx" ,python-sphinx)
|
||||||
|
;; Required for testing
|
||||||
|
("python-pytest" ,python-pytest)
|
||||||
|
("python-pytest-localserver" ,python-pytest-localserver)
|
||||||
|
("python-pytest-xprocess" ,python-pytest-xprocess)
|
||||||
|
("python-wsgi-intercept" ,python-wsgi-intercept)
|
||||||
|
("radicale" ,radicale)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-atomicwrites" ,python-atomicwrites)
|
||||||
|
("python-click" ,python-click)
|
||||||
|
("python-click-log" ,python-click-log)
|
||||||
|
("python-click-threading" ,python-click-threading)
|
||||||
|
("python-lxml" ,python-lxml) ; which one?
|
||||||
|
("python-requests-toolbelt" ,python-requests-toolbelt)))
|
||||||
|
(synopsis "Synchronize calendars and contacts")
|
||||||
|
(description "Vdirsyncer synchronizes your calendars and addressbooks
|
||||||
|
between two storage locations. The most popular purpose is to
|
||||||
|
synchronize a CalDAV or CardDAV server with a local folder or file. The
|
||||||
|
local data can then be accessed via a variety of programs, none of which
|
||||||
|
have to know or worry about syncing to a server.")
|
||||||
|
(home-page "https://github.com/untitaker/vdirsyncer")
|
||||||
|
(license expat)))
|
|
@ -0,0 +1,107 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (gnu packages docker)
|
||||||
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
|
#:use-module (guix build-system python)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:use-module (gnu packages python))
|
||||||
|
|
||||||
|
(define-public python-docker-py
|
||||||
|
(package
|
||||||
|
(name "python-docker-py")
|
||||||
|
(version "1.6.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "docker-py" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"16ba4xyd46hkj9nkfpz15r8kskl7ljx1afjzchyrhdsrklvzgzim"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
;; TODO: Tests require a running Docker daemon.
|
||||||
|
(arguments '(#:tests? #f))
|
||||||
|
(inputs
|
||||||
|
`(("python-requests" ,python-requests)
|
||||||
|
("python-setuptools" ,python-setuptools)
|
||||||
|
("python-six" ,python-six)
|
||||||
|
("python-websocket-client" ,python-websocket-client)))
|
||||||
|
(home-page "https://github.com/docker/docker-py/")
|
||||||
|
(synopsis "Python client for Docker")
|
||||||
|
(description "Docker-Py is a Python client for the Docker container
|
||||||
|
management tool.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public python-dockerpty
|
||||||
|
(package
|
||||||
|
(name "python-dockerpty")
|
||||||
|
(version "0.3.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "dockerpty" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0za6rr349641wv76ww9l3zcic2xyxrirlxpnzl4296h897648455"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-six" ,python-six)))
|
||||||
|
(home-page "https://github.com/d11wtq/dockerpty")
|
||||||
|
(synopsis "Python library to use the pseudo-TTY of a Docker container")
|
||||||
|
(description "Docker PTY provides the functionality needed to operate the
|
||||||
|
pseudo-terminal (PTY) allocated to a Docker container using the Python
|
||||||
|
client.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public docker-compose
|
||||||
|
(package
|
||||||
|
(name "docker-compose")
|
||||||
|
(version "1.5.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "docker-compose" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0ksg7hm2yvc977968dixxisrhcmvskzpcx3pz0v1kazrdqp7xakr"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
;; TODO: Tests require running Docker daemon.
|
||||||
|
(arguments '(#:tests? #f))
|
||||||
|
(inputs
|
||||||
|
`(("python-docker-py" ,python-docker-py)
|
||||||
|
("python-dockerpty" ,python-dockerpty)
|
||||||
|
("python-docopt" ,python-docopt)
|
||||||
|
("python-enum34" ,python-enum34)
|
||||||
|
("python-jsonschema" ,python-jsonschema)
|
||||||
|
("python-pyyaml" ,python-pyyaml)
|
||||||
|
("python-requests" ,python-requests-2.7)
|
||||||
|
("python-setuptools" ,python-setuptools)
|
||||||
|
("python-six" ,python-six)
|
||||||
|
("python-texttable" ,python-texttable)
|
||||||
|
("python-websocket-client" ,python-websocket-client)))
|
||||||
|
(home-page "https://www.docker.com/")
|
||||||
|
(synopsis "Multi-container orchestration for Docker")
|
||||||
|
(description "Docker Compose is a tool for defining and running
|
||||||
|
multi-container Docker applications. A Compose file is used to configure an
|
||||||
|
application’s services. Then, using a single command, the containers are
|
||||||
|
created and all the services are started as specified in the configuration.")
|
||||||
|
(license license:asl2.0)))
|
|
@ -2,7 +2,7 @@
|
||||||
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;;
|
;;;
|
||||||
|
@ -324,7 +324,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
||||||
(define-public magit
|
(define-public magit
|
||||||
(package
|
(package
|
||||||
(name "magit")
|
(name "magit")
|
||||||
(version "2.3.1")
|
(version "2.4.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -332,7 +332,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
||||||
version "/" name "-" version ".tar.gz"))
|
version "/" name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1wnx034adkwhbsydd10il2099hpzz351kp39sri8s1yd43f795gf"))))
|
"1wbam4l36061mj79qlgzrv4xbzhk2dk6gnv45610zwfnf24ikdsp"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs `(("texinfo" ,texinfo)
|
(native-inputs `(("texinfo" ,texinfo)
|
||||||
("emacs" ,emacs-no-x)))
|
("emacs" ,emacs-no-x)))
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
||||||
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
|
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
|
@ -1180,7 +1180,7 @@ is programmed in Haskell.")
|
||||||
(define-public manaplus
|
(define-public manaplus
|
||||||
(package
|
(package
|
||||||
(name "manaplus")
|
(name "manaplus")
|
||||||
(version "1.5.12.5")
|
(version "1.6.1.16")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -1188,7 +1188,7 @@ is programmed in Haskell.")
|
||||||
version "/manaplus-" version ".tar.xz"))
|
version "/manaplus-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0kmd743q40v82221wj8b09n30lqiwl7096v3m7ki3ynsgszkm326"))))
|
"1vrsjvdbdzbnqmr8sp110b2d93kp5yfnifsn6zjm60kdvvbphdir"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags
|
'(#:configure-flags
|
||||||
|
|
|
@ -751,22 +751,39 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
|
||||||
(define-public glade3
|
(define-public glade3
|
||||||
(package
|
(package
|
||||||
(name "glade")
|
(name "glade")
|
||||||
(version "3.8.5")
|
(version "3.18.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
(version-major+minor version) "/"
|
(version-major+minor version) "/"
|
||||||
name "3-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0d97df5pfkrh5670a98r3d3w8zlbh1jcax6cvq6j6a20vzjgd9aq"))))
|
"0lk4nvd5s8px9i0pbq7bncikgn2lpx7vjh787d3cvzpvwx3cxnzc"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; needs X, GL, and software rendering
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'fix-docbook
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "man/Makefile.in"
|
||||||
|
(("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
|
||||||
|
(string-append (assoc-ref inputs "docbook-xsl")
|
||||||
|
"/xml/xsl/docbook-xsl-"
|
||||||
|
,(package-version docbook-xsl)
|
||||||
|
"/manpages/docbook.xsl")))
|
||||||
|
#t)))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("gtk+" ,gtk+-2)
|
`(("gtk+" ,gtk+)
|
||||||
("libxml2" ,libxml2)))
|
("libxml2" ,libxml2)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("intltool" ,intltool)
|
`(("intltool" ,intltool)
|
||||||
("python" ,python)
|
("itstool" ,itstool)
|
||||||
|
("libxslt" ,libxslt) ;for xsltproc
|
||||||
|
("docbook-xml" ,docbook-xml-4.2)
|
||||||
|
("docbook-xsl" ,docbook-xsl)
|
||||||
|
("python" ,python-2)
|
||||||
("pkg-config" ,pkg-config)))
|
("pkg-config" ,pkg-config)))
|
||||||
(home-page "https://glade.gnome.org")
|
(home-page "https://glade.gnome.org")
|
||||||
(synopsis "GTK+ rapid application development tool")
|
(synopsis "GTK+ rapid application development tool")
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages databases)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
|
@ -218,8 +219,9 @@ compatible to GNU Pth.")
|
||||||
("libksba" ,libksba)
|
("libksba" ,libksba)
|
||||||
("npth" ,npth)
|
("npth" ,npth)
|
||||||
("openldap" ,openldap)
|
("openldap" ,openldap)
|
||||||
("zlib" ,zlib)
|
("readline" ,readline)
|
||||||
("readline" ,readline)))
|
("sqlite" ,sqlite)
|
||||||
|
("zlib" ,zlib)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
(alist-cons-before
|
(alist-cons-before
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||||
|
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -317,6 +318,22 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
(license license:gpl2)
|
(license license:gpl2)
|
||||||
(home-page "http://www.gnu.org/software/linux-libre/"))))
|
(home-page "http://www.gnu.org/software/linux-libre/"))))
|
||||||
|
|
||||||
|
;; This older version of linux-libre is being added because it was found
|
||||||
|
;; that newer versions (or at least 4.3.3) of linux-libre were not reading
|
||||||
|
;; the hardware clock on (at least Libreboot-enabled) Thinkpad x200
|
||||||
|
;; machines. See <http://bugs.gnu.org/22274>.
|
||||||
|
|
||||||
|
(define-public linux-libre-4.2.5
|
||||||
|
(package
|
||||||
|
(inherit linux-libre)
|
||||||
|
(version "4.2.5")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (linux-libre-urls version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"13ar9sghm2g5w2km9x2d07q3lh81rz286d6slklv56qanm24chzx"))))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Pluggable authentication modules (PAM).
|
;;; Pluggable authentication modules (PAM).
|
||||||
|
|
|
@ -462,11 +462,7 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
|
||||||
("pygtk" ,python2-pygtk)
|
("pygtk" ,python2-pygtk)
|
||||||
("gettext" ,gnu-gettext)
|
("gettext" ,gnu-gettext)
|
||||||
("gtk" ,gtk+)
|
("gtk" ,gtk+)
|
||||||
;; TODO: Lilypond is optional. Produces errors at build time:
|
("lilypond" ,lilypond)
|
||||||
;; Drawing systems...Error: /undefinedresult in --glyphshow--
|
|
||||||
;; Fontconfig is needed to fix one of the errors, but other similar
|
|
||||||
;; errors remain.
|
|
||||||
;;("lilypond" ,lilypond)
|
|
||||||
("librsvg" ,librsvg) ; needed at runtime for icons
|
("librsvg" ,librsvg) ; needed at runtime for icons
|
||||||
("libpng" ,libpng) ; needed at runtime for icons
|
("libpng" ,libpng) ; needed at runtime for icons
|
||||||
;; players needed at runtime
|
;; players needed at runtime
|
||||||
|
@ -480,8 +476,6 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
|
||||||
("txt2man" ,txt2man)
|
("txt2man" ,txt2man)
|
||||||
("libxml2" ,libxml2) ; for tests
|
("libxml2" ,libxml2) ; for tests
|
||||||
("ghostscript" ,ghostscript)
|
("ghostscript" ,ghostscript)
|
||||||
;;("fontconfig" ,fontconfig) ; only needed with lilypond
|
|
||||||
;;("freetype" ,freetype) ; only needed with lilypond
|
|
||||||
("texinfo" ,texinfo)))
|
("texinfo" ,texinfo)))
|
||||||
(home-page "https://www.gnu.org/software/solfege/")
|
(home-page "https://www.gnu.org/software/solfege/")
|
||||||
(synopsis "Ear training")
|
(synopsis "Ear training")
|
||||||
|
@ -659,6 +653,16 @@ Laurens Hammond and Don Leslie.")
|
||||||
(base32
|
(base32
|
||||||
"1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx"))))
|
"1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'remove-sse-flags
|
||||||
|
(lambda* (#:key system #:allow-other-keys)
|
||||||
|
(when (not (or (string-prefix? "x86_64" system)
|
||||||
|
(string-prefix? "i686" system)))
|
||||||
|
(substitute* "bristol/Makefile.in"
|
||||||
|
(("-msse -mfpmath=sse") "")))
|
||||||
|
#t)))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("alsa-lib" ,alsa-lib)
|
`(("alsa-lib" ,alsa-lib)
|
||||||
("jack" ,jack-1)
|
("jack" ,jack-1)
|
||||||
|
@ -818,14 +822,14 @@ browser.")
|
||||||
(define-public drumstick
|
(define-public drumstick
|
||||||
(package
|
(package
|
||||||
(name "drumstick")
|
(name "drumstick")
|
||||||
(version "1.0.1")
|
(version "1.0.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/drumstick/"
|
(uri (string-append "mirror://sourceforge/drumstick/"
|
||||||
version "/drumstick-" version ".tar.bz2"))
|
version "/drumstick-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0mxgix85b2qqs859z91cxik5x0s60dykqiflbj62px9akvf91qdv"))))
|
"0l47gy9yywrc860db5g3wdqg8yc8qdb2lqq6wvw1dfim5j0vbail"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no test target
|
`(#:tests? #f ; no test target
|
||||||
|
@ -864,14 +868,15 @@ backends, including ALSA, OSS, Network and FluidSynth.")
|
||||||
(define-public vmpk
|
(define-public vmpk
|
||||||
(package
|
(package
|
||||||
(name "vmpk")
|
(name "vmpk")
|
||||||
(version "0.6.1")
|
(version "0.6.2a")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/vmpk/vmpk/"
|
(uri (string-append "mirror://sourceforge/vmpk/vmpk/"
|
||||||
version "/vmpk-" version ".tar.bz2"))
|
(string-drop-right version 1)
|
||||||
|
"/vmpk-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ranldd033bd31m9d2vkbkn9zp1k46xbaysllai2i95rf1nhirqc"))))
|
"0259iikvxnfdiifrh02g8xgcxikrkca4nhd3an8xzx0bd6bk8ifi"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no test target
|
`(#:tests? #f ; no test target
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
||||||
|
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -23,6 +24,7 @@
|
||||||
#:use-module ((guix licenses) #:hide (zlib))
|
#:use-module ((guix licenses) #:hide (zlib))
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix svn-download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
@ -36,6 +38,8 @@
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (gnu packages texlive)
|
#:use-module (gnu packages texlive)
|
||||||
|
#:use-module (gnu packages ghostscript)
|
||||||
|
#:use-module (gnu packages lynx)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
|
@ -282,14 +286,14 @@ concrete syntax of the language (Quotations, Syntax Extensions).")
|
||||||
(define-public hevea
|
(define-public hevea
|
||||||
(package
|
(package
|
||||||
(name "hevea")
|
(name "hevea")
|
||||||
(version "2.23")
|
(version "2.28")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://hevea.inria.fr/old/"
|
(uri (string-append "http://hevea.inria.fr/old/"
|
||||||
name "-" version ".tar.gz"))
|
name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1f9pj48518ixhjxbviv2zx27v4anp92zgg3x704g1s5cki2w33nv"))))
|
"14fns13wlnpiv9i05841kvi3cq4b9v2sw5x3ff6ziws28q701qnd"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("ocaml" ,ocaml)))
|
`(("ocaml" ,ocaml)))
|
||||||
|
@ -297,7 +301,12 @@ concrete syntax of the language (Quotations, Syntax Extensions).")
|
||||||
`(#:tests? #f ; no test suite
|
`(#:tests? #f ; no test suite
|
||||||
#:make-flags (list (string-append "PREFIX=" %output))
|
#:make-flags (list (string-append "PREFIX=" %output))
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
(delete 'configure))))
|
(delete 'configure)
|
||||||
|
(add-before 'build 'patch-/bin/sh
|
||||||
|
(lambda _
|
||||||
|
(substitute* "_tags"
|
||||||
|
(("/bin/sh") (which "sh")))
|
||||||
|
#t)))))
|
||||||
(home-page "http://hevea.inria.fr/")
|
(home-page "http://hevea.inria.fr/")
|
||||||
(synopsis "LaTeX to HTML translator")
|
(synopsis "LaTeX to HTML translator")
|
||||||
(description
|
(description
|
||||||
|
@ -496,16 +505,65 @@ libpanel, librsvg and quartz.")
|
||||||
(version "2.48.3")
|
(version "2.48.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method svn-fetch)
|
||||||
(uri (string-append "https://www.seas.upenn.edu/~bcpierce/unison/"
|
(uri (svn-reference
|
||||||
"download/releases/stable/unison-" version
|
(url (string-append "https://webdav.seas.upenn.edu/svn/"
|
||||||
".tar.gz"))
|
"unison/branches/"
|
||||||
(sha256
|
(version-major+minor version)))
|
||||||
(base32
|
(revision 535)))
|
||||||
"10sln52rnnsj213jy3166m0q97qpwnrwl6mm529xfy10x3xkq3gl"))))
|
(file-name (string-append name "-" version "-checkout"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0486s53wyayicj9f2raj2dvwvk4xyzar219rccc1iczdwixm4x05"))
|
||||||
|
(modules '((guix build utils)
|
||||||
|
(ice-9 rdelim)
|
||||||
|
(ice-9 regex)
|
||||||
|
(srfi srfi-1)))
|
||||||
|
(snippet
|
||||||
|
`(begin
|
||||||
|
;; The svn revision in the release tarball appears to be
|
||||||
|
;; artificially manipulated in order to set the desired point
|
||||||
|
;; version number. Because the point version is calculated during
|
||||||
|
;; the build, we can offset pointVersionOrigin by the desired
|
||||||
|
;; point version and write that into "Rev: %d". We do this rather
|
||||||
|
;; than hardcoding the necessary revision number, for
|
||||||
|
;; maintainability.
|
||||||
|
(with-atomic-file-replacement "src/mkProjectInfo.ml"
|
||||||
|
(lambda (in out)
|
||||||
|
(let ((pt-ver (string->number (third (string-split ,version #\.))))
|
||||||
|
(pt-rx (make-regexp "^let pointVersionOrigin = ([0-9]+)"))
|
||||||
|
(rev-rx (make-regexp "Rev: [0-9]+")))
|
||||||
|
(let loop ((pt-origin #f))
|
||||||
|
(let ((line (read-line in 'concat)))
|
||||||
|
(cond
|
||||||
|
((regexp-exec pt-rx line)
|
||||||
|
=> (lambda (m)
|
||||||
|
(display line out)
|
||||||
|
(loop (string->number (match:substring m 1)))))
|
||||||
|
((regexp-exec rev-rx line)
|
||||||
|
=> (lambda (m)
|
||||||
|
(format out "~aRev: ~d~a"
|
||||||
|
(match:prefix m)
|
||||||
|
(+ pt-origin pt-ver)
|
||||||
|
(match:suffix m))
|
||||||
|
(dump-port in out))) ;done
|
||||||
|
(else
|
||||||
|
(display line out)
|
||||||
|
(loop pt-origin))))))))
|
||||||
|
;; Without the '-fix' argument, the html file produced does not
|
||||||
|
;; have functioning internal hyperlinks.
|
||||||
|
(substitute* "doc/Makefile"
|
||||||
|
(("hevea unison") "hevea -fix unison"))))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
(outputs '("out"
|
||||||
|
"doc")) ; 1.9 MiB of documentation
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("ocaml" ,ocaml)))
|
`(("ocaml" ,ocaml)
|
||||||
|
;; For documentation
|
||||||
|
("ghostscript" ,ghostscript)
|
||||||
|
("texlive" ,texlive)
|
||||||
|
("hevea" ,hevea)
|
||||||
|
("lynx" ,lynx)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:parallel-build? #f
|
`(#:parallel-build? #f
|
||||||
#:parallel-tests? #f
|
#:parallel-tests? #f
|
||||||
|
@ -522,7 +580,30 @@ libpanel, librsvg and quartz.")
|
||||||
(bin (string-append out "/bin")))
|
(bin (string-append out "/bin")))
|
||||||
(mkdir-p bin)
|
(mkdir-p bin)
|
||||||
(setenv "HOME" out) ; forces correct INSTALLDIR in Makefile
|
(setenv "HOME" out) ; forces correct INSTALLDIR in Makefile
|
||||||
#t))))))
|
#t)))
|
||||||
|
(add-after 'install 'install-doc
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((doc (string-append (assoc-ref outputs "doc")
|
||||||
|
"/share/doc/unison")))
|
||||||
|
(mkdir-p doc)
|
||||||
|
;; This file needs write-permissions, because it's
|
||||||
|
;; overwritten by 'docs' during documentation generation.
|
||||||
|
(chmod "src/strings.ml" #o600)
|
||||||
|
(and (zero? (system* "make" "docs"
|
||||||
|
"TEXDIRECTIVES=\\\\draftfalse"))
|
||||||
|
(begin
|
||||||
|
(for-each (lambda (f)
|
||||||
|
(install-file f doc))
|
||||||
|
(map (lambda (ext)
|
||||||
|
(string-append
|
||||||
|
"doc/unison-manual." ext))
|
||||||
|
;; Install only html documentation,
|
||||||
|
;; since the build is currently
|
||||||
|
;; non-reproducible with the ps, pdf,
|
||||||
|
;; and dvi docs.
|
||||||
|
'(;;"ps" "pdf" "dvi"
|
||||||
|
"html")))
|
||||||
|
#t))))))))
|
||||||
(home-page "https://www.cis.upenn.edu/~bcpierce/unison/")
|
(home-page "https://www.cis.upenn.edu/~bcpierce/unison/")
|
||||||
(synopsis "File synchronizer")
|
(synopsis "File synchronizer")
|
||||||
(description
|
(description
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
|
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -19,12 +19,14 @@
|
||||||
|
|
||||||
(define-module (gnu packages openstack)
|
(define-module (gnu packages openstack)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages version-control)
|
#:use-module (gnu packages version-control)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module ((guix licenses)
|
#:use-module ((guix licenses)
|
||||||
#:select (asl2.0))
|
#:select (asl2.0))
|
||||||
#:use-module (guix packages))
|
#:use-module (guix packages)
|
||||||
|
#:use-module (srfi srfi-1))
|
||||||
|
|
||||||
(define-public python-bandit
|
(define-public python-bandit
|
||||||
(package
|
(package
|
||||||
|
@ -302,7 +304,12 @@ portions of your testing code.")
|
||||||
(license asl2.0)))
|
(license asl2.0)))
|
||||||
|
|
||||||
(define-public python2-requests-mock
|
(define-public python2-requests-mock
|
||||||
(package-with-python2 python-requests-mock))
|
(let ((requests-mock (package-with-python2 python-requests-mock)))
|
||||||
|
(package (inherit requests-mock)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python2-requests" ,python2-requests)
|
||||||
|
,@(alist-delete "python-requests"
|
||||||
|
(package-propagated-inputs requests-mock)))))))
|
||||||
|
|
||||||
(define-public python-stevedore
|
(define-public python-stevedore
|
||||||
(package
|
(package
|
||||||
|
@ -385,7 +392,12 @@ common features used in Tempest.")
|
||||||
(license asl2.0)))
|
(license asl2.0)))
|
||||||
|
|
||||||
(define-public python2-tempest-lib
|
(define-public python2-tempest-lib
|
||||||
(package-with-python2 python-tempest-lib))
|
(let ((tempest-lib (package-with-python2 python-tempest-lib)))
|
||||||
|
(package (inherit tempest-lib)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python2-jsonschema", python2-jsonschema)
|
||||||
|
,@(alist-delete "python-jsonschema"
|
||||||
|
(package-propagated-inputs tempest-lib)))))))
|
||||||
|
|
||||||
;; Packages from the Oslo library
|
;; Packages from the Oslo library
|
||||||
(define-public python-oslo.config
|
(define-public python-oslo.config
|
||||||
|
@ -594,7 +606,9 @@ from the OpenStack project.")
|
||||||
(license asl2.0)))
|
(license asl2.0)))
|
||||||
|
|
||||||
(define-public python2-oslosphinx
|
(define-public python2-oslosphinx
|
||||||
(package-with-python2 python-oslosphinx))
|
(let ((oslosphinx (package-with-python2 python-oslosphinx)))
|
||||||
|
(package (inherit oslosphinx)
|
||||||
|
(propagated-inputs `(("python2-requests" ,python2-requests))))))
|
||||||
|
|
||||||
(define-public python-oslotest
|
(define-public python-oslotest
|
||||||
(package
|
(package
|
||||||
|
@ -679,3 +693,134 @@ handling.")
|
||||||
|
|
||||||
(define-public python2-oslo.utils
|
(define-public python2-oslo.utils
|
||||||
(package-with-python2 python-oslo.utils))
|
(package-with-python2 python-oslo.utils))
|
||||||
|
|
||||||
|
(define-public python-keystoneclient
|
||||||
|
(package
|
||||||
|
(name "python-keystoneclient")
|
||||||
|
(version "1.8.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "python-keystoneclient" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)
|
||||||
|
("python-sphinx" ,python-sphinx)
|
||||||
|
;; and some packages for the tests
|
||||||
|
("openssl" ,openssl)
|
||||||
|
("python-coverage" ,python-coverage)
|
||||||
|
("python-discover" ,python-discover)
|
||||||
|
("python-fixtures" ,python-fixtures)
|
||||||
|
("python-hacking" ,python-hacking)
|
||||||
|
("python-keyring" ,python-keyring)
|
||||||
|
("python-lxml" ,python-lxml)
|
||||||
|
("python-mock" ,python-mock)
|
||||||
|
("python-mox3" ,python-mox3)
|
||||||
|
("python-oauthlib" ,python-oauthlib)
|
||||||
|
("python-oslosphinx" ,python-oslosphinx)
|
||||||
|
("python-oslotest" ,python-oslotest)
|
||||||
|
("python-pycrypto" ,python-pycrypto)
|
||||||
|
("python-requests-mock" ,python-requests-mock)
|
||||||
|
("python-temptest-lib" ,python-tempest-lib)
|
||||||
|
("python-testrepository" ,python-testrepository)
|
||||||
|
("python-testresources" ,python-testresources)
|
||||||
|
("python-testtools" ,python-testtools)
|
||||||
|
("python-webob" ,python-webob)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-babel" ,python-babel)
|
||||||
|
("python-debtcollector" ,python-debtcollector)
|
||||||
|
("python-iso8601" ,python-iso8601)
|
||||||
|
("python-netaddr" ,python-netaddr)
|
||||||
|
("python-oslo.config" ,python-oslo.config)
|
||||||
|
("python-oslo.i18n" ,python-oslo.i18n)
|
||||||
|
("python-oslo.serialization" ,python-oslo.serialization)
|
||||||
|
("python-oslo.utils" ,python-oslo.utils)
|
||||||
|
("python-pbr" ,python-pbr)
|
||||||
|
("python-prettytable" ,python-prettytable)
|
||||||
|
("python-requests" ,python-requests)
|
||||||
|
("python-six" ,python-six)
|
||||||
|
("python-stevedore" ,python-stevedore)))
|
||||||
|
(home-page "http://www.openstack.org/")
|
||||||
|
(synopsis "Client Library for OpenStack Identity")
|
||||||
|
(description
|
||||||
|
"Python-keystoneclient is the identity service used by OpenStack for
|
||||||
|
authentication (authN) and high-level authorization (authZ). It currently
|
||||||
|
supports token-based authN with user/service authZ, and is scalable to support
|
||||||
|
OAuth, SAML, and OpenID in future versions. Out of the box, Keystone uses
|
||||||
|
SQLite for its identity store database, with the option to connect to external
|
||||||
|
LDAP.")
|
||||||
|
(license asl2.0)))
|
||||||
|
|
||||||
|
(define-public python2-keystoneclient
|
||||||
|
(let ((keystoneclient (package-with-python2 python-keystoneclient)))
|
||||||
|
(package (inherit keystoneclient)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python2-requests" ,python2-requests)
|
||||||
|
,@(alist-delete "python-requests"
|
||||||
|
(package-propagated-inputs keystoneclient))))
|
||||||
|
(native-inputs
|
||||||
|
`(("python2-oauthlib" ,python2-oauthlib)
|
||||||
|
("python2-oslosphinx" ,python2-oslosphinx)
|
||||||
|
("python2-requests-mock" ,python2-requests-mock)
|
||||||
|
("python2-tempest-lib" ,python2-tempest-lib)
|
||||||
|
,@(fold alist-delete (package-native-inputs keystoneclient)
|
||||||
|
'("python-oauthlib" "python-oslosphinx" "python-requests-mock" "python-tempest-lib")))))))
|
||||||
|
|
||||||
|
(define-public python-swiftclient
|
||||||
|
(package
|
||||||
|
(name "python-swiftclient")
|
||||||
|
(version "2.6.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "python-swiftclient" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-pbr", python-pbr)
|
||||||
|
("python-setuptools" ,python-setuptools)
|
||||||
|
("python-sphinx" ,python-sphinx)
|
||||||
|
;; The folloing packages are needed for the tests.
|
||||||
|
("python-coverage" ,python-coverage)
|
||||||
|
("python-discover" ,python-discover)
|
||||||
|
("python-hacking" ,python-hacking)
|
||||||
|
("python-mock" ,python-mock)
|
||||||
|
("python-oslosphinx" ,python-oslosphinx)
|
||||||
|
("python-keystoneclient" ,python-keystoneclient)
|
||||||
|
("python-testrepository" ,python-testrepository)
|
||||||
|
("python-testtools" ,python-testtools)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-requests" ,python-requests)
|
||||||
|
("python-six" ,python-six)))
|
||||||
|
(home-page "http://www.openstack.org/")
|
||||||
|
(synopsis "OpenStack Object Storage API Client Library")
|
||||||
|
(description
|
||||||
|
"OpenStack Object Storage (code-named Swift) creates redundant, scalable
|
||||||
|
object storage using clusters of standardized servers to store petabytes of
|
||||||
|
accessible data. It is not a file system or real-time data storage system, but
|
||||||
|
rather a long-term storage system for a more permanent type of static data that
|
||||||
|
can be retrieved, leveraged, and then updated if necessary. Primary examples of
|
||||||
|
data that best fit this type of storage model are virtual machine images, photo
|
||||||
|
storage, email storage and backup archiving. Having no central \"brain\" or
|
||||||
|
master point of control provides greater scalability, redundancy and
|
||||||
|
permanence.")
|
||||||
|
(license asl2.0)))
|
||||||
|
|
||||||
|
(define-public python2-swiftclient
|
||||||
|
(let ((swiftclient (package-with-python2 python-swiftclient)))
|
||||||
|
(package (inherit swiftclient)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python2-futures" ,python2-futures)
|
||||||
|
("python2-requests" ,python2-requests)
|
||||||
|
,@(alist-delete "python-requests"
|
||||||
|
(package-propagated-inputs swiftclient))))
|
||||||
|
(native-inputs
|
||||||
|
`(("python2-keystoneclient" ,python2-keystoneclient)
|
||||||
|
("python2-oslosphinx" ,python2-oslosphinx)
|
||||||
|
,@(fold alist-delete (package-native-inputs swiftclient)
|
||||||
|
'("python-keystoneclient" "python-oslosphinx")))))))
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
From 4a99b0023bdfbbe486b9649489a32ea184c18c9a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Valentin Antonescu <valentin@jhu.edu>
|
|
||||||
Date: Tue, 2 Dec 2014 11:19:13 -0500
|
|
||||||
Subject: [PATCH] Make sure the Mavericks test happens only under Darwin.
|
|
||||||
|
|
||||||
---
|
|
||||||
Makefile | 11 +++++------
|
|
||||||
1 file changed, 5 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
|
||||||
index d74f7c8..a4cdfa7 100644
|
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -54,12 +54,11 @@ endif
|
|
||||||
MACOS = 0
|
|
||||||
ifneq (,$(findstring Darwin,$(shell uname)))
|
|
||||||
MACOS = 1
|
|
||||||
-endif
|
|
||||||
-
|
|
||||||
-ifneq (,$(findstring 13,$(shell uname -r)))
|
|
||||||
- CPP = clang++
|
|
||||||
- CC = clang
|
|
||||||
- EXTRA_FLAGS += -stdlib=libstdc++
|
|
||||||
+ ifneq (,$(findstring 13,$(shell uname -r)))
|
|
||||||
+ CPP = clang++
|
|
||||||
+ CC = clang
|
|
||||||
+ EXTRA_FLAGS += -stdlib=libstdc++
|
|
||||||
+ endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
POPCNT_CAPABILITY ?= 1
|
|
|
@ -14,7 +14,7 @@
|
||||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
|
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
|
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
|
||||||
;;; Copyright © 2015 Chris Marusich <cmmarusich@gmail.com>
|
;;; Copyright © 2015 Chris Marusich <cmmarusich@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
|
@ -1016,31 +1016,16 @@ doing practical, real world data analysis in Python.")
|
||||||
(define-public python-tzlocal
|
(define-public python-tzlocal
|
||||||
(package
|
(package
|
||||||
(name "python-tzlocal")
|
(name "python-tzlocal")
|
||||||
(version "1.1.1")
|
(version "1.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://pypi.python.org/packages/source/t/"
|
(uri (pypi-uri "tzlocal" version))
|
||||||
"tzlocal/tzlocal-" version ".zip"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1m3y918c3chf41fwg2bx4w42bqsjzn3dyvvcmwwy13c8gj6zssv9"))))
|
"12wsw2fl3adrqrwghasld57bhqdrzn0crblqrci1p5acd0ni53s3"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(propagated-inputs `(("python-pytz" ,python-pytz)))
|
||||||
`(("unzip" ,unzip)
|
|
||||||
("python-setuptools" ,python-setuptools)))
|
|
||||||
(inputs `(("python-pytz" ,python-pytz)))
|
|
||||||
(arguments
|
|
||||||
`(#:phases
|
|
||||||
(alist-replace
|
|
||||||
'unpack
|
|
||||||
(lambda _
|
|
||||||
(let ((unzip (string-append (assoc-ref %build-inputs "unzip")
|
|
||||||
"/bin/unzip"))
|
|
||||||
(source (assoc-ref %build-inputs "source")))
|
|
||||||
(and (zero? (system* unzip source))
|
|
||||||
(chdir (string-append "tzlocal-" ,version)))))
|
|
||||||
%standard-phases)))
|
|
||||||
(home-page "https://github.com/regebro/tzlocal")
|
(home-page "https://github.com/regebro/tzlocal")
|
||||||
(synopsis
|
(synopsis
|
||||||
"Local timezone information for Python")
|
"Local timezone information for Python")
|
||||||
|
@ -1627,18 +1612,18 @@ and many external plugins.")
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92"))))
|
"1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-coverage" ,python-coverage)
|
`(("python-coverage" ,python-coverage)
|
||||||
("python-pytest" ,python-pytest)))
|
("python-pytest" ,python-pytest)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-setuptools" ,python-setuptools)))
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
(home-page "https://github.com/pytest-dev/pytest-cov")
|
(home-page "https://github.com/pytest-dev/pytest-cov")
|
||||||
(synopsis "Pytest plugin for measuring coverage")
|
(synopsis "Pytest plugin for measuring coverage")
|
||||||
(description
|
(description
|
||||||
"Pytest-cov produces coverage reports. It supports centralised testing and
|
"Pytest-cov produces coverage reports. It supports centralised testing and
|
||||||
distributed testing in both load and each modes. It also supports coverage
|
distributed testing in both @code{load} and @code{each} modes. It also
|
||||||
of subprocesses.")
|
supports coverage of subprocesses.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public python2-pytest-cov
|
(define-public python2-pytest-cov
|
||||||
|
@ -2136,28 +2121,38 @@ with sensible defaults out of the box.")
|
||||||
(package
|
(package
|
||||||
(name "python-wheel")
|
(name "python-wheel")
|
||||||
(version "0.26.0")
|
(version "0.26.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "wheel" version))
|
(uri (pypi-uri "wheel" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga"))))
|
"032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-setuptools" ,python-setuptools)
|
`(("python-setuptools" ,python-setuptools)
|
||||||
("python-jsonschema" ,python-jsonschema)
|
("python-jsonschema" ,python-jsonschema)
|
||||||
("python-pytest-cov" ,python-pytest-cov)))
|
("python-pytest-cov" ,python-pytest-cov)))
|
||||||
(home-page "https://bitbucket.org/pypa/wheel/")
|
(home-page "https://bitbucket.org/pypa/wheel/")
|
||||||
(synopsis "Built-package format for Python")
|
(synopsis "Format for built Python packages")
|
||||||
(description
|
(description
|
||||||
"A wheel is a ZIP-format archive with a specially formatted filename and the
|
"A wheel is a ZIP-format archive with a specially formatted filename and
|
||||||
.whl extension. It is designed to contain all the files for a PEP 376
|
the @code{.whl} extension. It is designed to contain all the files for a PEP
|
||||||
compatible install in a way that is very close to the on-disk format.")
|
376 compatible install in a way that is very close to the on-disk format. Many
|
||||||
(license license:expat)))
|
packages will be properly installed with only the @code{Unpack} step and the
|
||||||
|
unpacked archive preserves enough information to @code{Spread} (copy data and
|
||||||
|
scripts to their final locations) at any later time. Wheel files can be
|
||||||
|
installed with a newer @code{pip} or with wheel's own command line utility.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public python2-wheel
|
(define-public python2-wheel
|
||||||
(package-with-python2 python-wheel))
|
(let ((wheel (package-with-python2 python-wheel)))
|
||||||
|
(package (inherit wheel)
|
||||||
|
(native-inputs
|
||||||
|
`(("python2-functools32" ,python2-functools32)
|
||||||
|
("python2-jsonschema" ,python2-jsonschema)
|
||||||
|
,@(alist-delete "python-jsonschema"
|
||||||
|
(package-native-inputs wheel)))))))
|
||||||
|
|
||||||
(define-public python-requests
|
(define-public python-requests
|
||||||
(package
|
(package
|
||||||
|
@ -2184,13 +2179,54 @@ compatible install in a way that is very close to the on-disk format.")
|
||||||
than Python’s urllib2 library.")
|
than Python’s urllib2 library.")
|
||||||
(license asl2.0)))
|
(license asl2.0)))
|
||||||
|
|
||||||
|
;; Some software requires an older version of Requests, notably Docker
|
||||||
|
;; Compose.
|
||||||
|
(define-public python-requests-2.7
|
||||||
|
(package (inherit python-requests)
|
||||||
|
(version "2.7.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "requests" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))))))
|
||||||
|
|
||||||
(define-public python2-requests
|
(define-public python2-requests
|
||||||
(package-with-python2 python-requests))
|
(let ((requests (package-with-python2 python-requests)))
|
||||||
|
(package (inherit requests)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python2-wheel" ,python2-wheel)
|
||||||
|
,@(alist-delete "python-wheel"
|
||||||
|
(package-propagated-inputs requests)))))))
|
||||||
|
|
||||||
|
(define-public python-vcversioner
|
||||||
|
(package
|
||||||
|
(name "python-vcversioner")
|
||||||
|
(version "2.14.0.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "vcversioner" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
(synopsis "Python library for version number discovery")
|
||||||
|
(description "Vcversioner is a Python library that inspects tagging
|
||||||
|
information in a variety of version control systems in order to discover
|
||||||
|
version numbers.")
|
||||||
|
(home-page "https://github.com/habnabit/vcversioner")
|
||||||
|
(license isc)))
|
||||||
|
|
||||||
|
(define-public python2-vcversioner
|
||||||
|
(package-with-python2 python-vcversioner))
|
||||||
|
|
||||||
(define-public python-jsonschema
|
(define-public python-jsonschema
|
||||||
(package
|
(package
|
||||||
(name "python-jsonschema")
|
(name "python-jsonschema")
|
||||||
(version "2.4.0")
|
(version "2.5.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
|
@ -2199,10 +2235,11 @@ than Python’s urllib2 library.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1yik3031ziygvq66rj3mzfqdgxj29sg1bkfc46wsgi7lnbqs560j"))))
|
"0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("python-setuptools" ,python-setuptools)))
|
`(("python-setuptools" ,python-setuptools)
|
||||||
|
("python-vcversioner" ,python-vcversioner)))
|
||||||
(home-page "http://github.com/Julian/jsonschema")
|
(home-page "http://github.com/Julian/jsonschema")
|
||||||
(synopsis "Implementation of JSON Schema for Python")
|
(synopsis "Implementation of JSON Schema for Python")
|
||||||
(description
|
(description
|
||||||
|
@ -2210,7 +2247,11 @@ than Python’s urllib2 library.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public python2-jsonschema
|
(define-public python2-jsonschema
|
||||||
(package-with-python2 python-jsonschema))
|
(let ((jsonschema (package-with-python2 python-jsonschema)))
|
||||||
|
(package (inherit jsonschema)
|
||||||
|
(inputs
|
||||||
|
`(("python2-functools32" ,python2-functools32)
|
||||||
|
,@(package-inputs jsonschema))))))
|
||||||
|
|
||||||
(define-public python-unidecode
|
(define-public python-unidecode
|
||||||
(package
|
(package
|
||||||
|
@ -4266,11 +4307,13 @@ computing.")
|
||||||
,@(alist-delete "python-terminado"
|
,@(alist-delete "python-terminado"
|
||||||
(package-propagated-inputs ipython))))
|
(package-propagated-inputs ipython))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("python2-mock" ,python2-mock)
|
`(("python2-jsonschema" ,python2-jsonschema)
|
||||||
|
("python2-mock" ,python2-mock)
|
||||||
("python2-matplotlib" ,python2-matplotlib)
|
("python2-matplotlib" ,python2-matplotlib)
|
||||||
("python2-numpy" ,python2-numpy)
|
("python2-numpy" ,python2-numpy)
|
||||||
|
("python2-requests" ,python2-requests)
|
||||||
,@(fold alist-delete (package-inputs ipython)
|
,@(fold alist-delete (package-inputs ipython)
|
||||||
'("python-matplotlib" "python-numpy")))))))
|
'("python-jsonschema" "python-matplotlib" "python-numpy" "python-requests")))))))
|
||||||
|
|
||||||
(define-public python-isodate
|
(define-public python-isodate
|
||||||
(package
|
(package
|
||||||
|
@ -4341,13 +4384,22 @@ and written in Python.")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (pypi-uri "urwid" version))
|
||||||
"https://pypi.python.org/packages/source/u/urwid/urwid-"
|
|
||||||
version ".tar.gz"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"18mb0yy94sjc434rd61m2sfnw27sa0nyrszpj5a9r9zh7fnlzw19"))))
|
"18mb0yy94sjc434rd61m2sfnw27sa0nyrszpj5a9r9zh7fnlzw19"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; Disable failing test. Bug filed upstream:
|
||||||
|
;; https://github.com/wardi/urwid/issues/164
|
||||||
|
;; TODO: check again for python-urwid > 1.3.0 or python > 3.4.3.
|
||||||
|
(add-after 'unpack 'disable-failing-test
|
||||||
|
(lambda _
|
||||||
|
(substitute* "urwid/tests/test_event_loops.py"
|
||||||
|
(("test_remove_watch_file")
|
||||||
|
"disable_remove_watch_file")))))))
|
||||||
(native-inputs `(("python-setuptools" ,python-setuptools)))
|
(native-inputs `(("python-setuptools" ,python-setuptools)))
|
||||||
(home-page "http://urwid.org")
|
(home-page "http://urwid.org")
|
||||||
(synopsis "Console user interface library for Python")
|
(synopsis "Console user interface library for Python")
|
||||||
|
@ -5613,6 +5665,32 @@ suitable for a wide range of protocols based on the ASN.1 specification.")
|
||||||
(define-public python2-pyasn1
|
(define-public python2-pyasn1
|
||||||
(package-with-python2 python-pyasn1))
|
(package-with-python2 python-pyasn1))
|
||||||
|
|
||||||
|
(define-public python-pyasn1-modules
|
||||||
|
(package
|
||||||
|
(name "python-pyasn1-modules")
|
||||||
|
(version "0.0.8")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "pyasn1-modules" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-pyasn1" ,python-pyasn1)))
|
||||||
|
(home-page "http://sourceforge.net/projects/pyasn1/")
|
||||||
|
(synopsis "ASN.1 codec implementations")
|
||||||
|
(description
|
||||||
|
"Pyasn1-modules is a collection of Python modules providing ASN.1 types and
|
||||||
|
implementations of ASN.1-based codecs and protocols.")
|
||||||
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public python2-pyasn1-modules
|
||||||
|
(package-with-python2 python-pyasn1-modules))
|
||||||
|
|
||||||
(define-public python2-ipaddress
|
(define-public python2-ipaddress
|
||||||
(package
|
(package
|
||||||
(name "python2-ipaddress")
|
(name "python2-ipaddress")
|
||||||
|
@ -6622,3 +6700,557 @@ the standard library.")
|
||||||
|
|
||||||
(define-public python2-contextlib2
|
(define-public python2-contextlib2
|
||||||
(package-with-python2 python-contextlib2))
|
(package-with-python2 python-contextlib2))
|
||||||
|
|
||||||
|
(define-public python-texttable
|
||||||
|
(package
|
||||||
|
(name "python-texttable")
|
||||||
|
(version "0.8.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "texttable" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments '(#:tests? #f)) ; no tests
|
||||||
|
(home-page "https://github.com/foutaise/texttable/")
|
||||||
|
(synopsis "Python module for creating simple ASCII tables")
|
||||||
|
(description "Texttable is a Python module for creating simple ASCII
|
||||||
|
tables.")
|
||||||
|
(license lgpl2.1+)))
|
||||||
|
|
||||||
|
(define-public python2-texttable
|
||||||
|
(package-with-python2 python-texttable))
|
||||||
|
|
||||||
|
(define-public python-websocket-client
|
||||||
|
(package
|
||||||
|
(name "python-websocket-client")
|
||||||
|
(version "0.34.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://pypi.python.org/packages/source/w"
|
||||||
|
"/websocket-client/websocket_client-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1prdx6d49f1cff17kzj15bnz09palfdgc1m5dkq9jd4mr90n4ak8"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-six" ,python-six))) ; for tests
|
||||||
|
(inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "https://github.com/liris/websocket-client")
|
||||||
|
(synopsis "WebSocket client for Python")
|
||||||
|
(description "The Websocket-client module provides the low level APIs for
|
||||||
|
WebSocket usage in Python programs.")
|
||||||
|
(license lgpl2.1+)))
|
||||||
|
|
||||||
|
(define-public python2-websocket-client
|
||||||
|
(package-with-python2 python-websocket-client))
|
||||||
|
|
||||||
|
(define-public python-atomicwrites
|
||||||
|
(package
|
||||||
|
(name "python-atomicwrites")
|
||||||
|
(version "0.1.8")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "atomicwrites" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"13nwk0gw0yb61pnf5vxs3fvhav6q3zrf08x9ggc93bnk5fsssx1j"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(synopsis "Atomic file writes in Python")
|
||||||
|
(description "Library for atomic file writes using platform dependent tools
|
||||||
|
for atomic filesystem operations.")
|
||||||
|
(home-page "https://github.com/untitaker/python-atomicwrites")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-requests-toolbelt
|
||||||
|
(package
|
||||||
|
(name "python-requests-toolbelt")
|
||||||
|
(version "0.5.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "requests-toolbelt" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1kbms1s52dhb98vbpaprr15b0ijdbqp500lpfsyjccpd8cjkyngk"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-requests" ,python-requests)))
|
||||||
|
(synopsis "Extensions to python-requests")
|
||||||
|
(description "This is a toolbelt of useful classes and functions to be used
|
||||||
|
with python-requests.")
|
||||||
|
(home-page "https://github.com/sigmavirus24/requests-toolbelt")
|
||||||
|
(license asl2.0)))
|
||||||
|
|
||||||
|
(define-public python-click-threading
|
||||||
|
(package
|
||||||
|
(name "python-click-threading")
|
||||||
|
(version "0.1.2")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "click-threading" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0jmrv4334lfxa2ss53c06dafdwqbk1pb3ihd26izn5igw1bm8145"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-click" ,python-click)))
|
||||||
|
(synopsis "Utilities for multithreading in Click")
|
||||||
|
(description "This package provides utilities for multithreading in Click
|
||||||
|
applications.")
|
||||||
|
(home-page "https://github.com/click-contrib/click-threading")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-click-log
|
||||||
|
(package
|
||||||
|
(name "python-click-log")
|
||||||
|
(version "0.1.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "click-log" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1z3jdwjmwax159zrnyx830xa968rfqrpkm04ad5xqyh0269ydiqb"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-click" ,python-click)))
|
||||||
|
(synopsis "Logging for click applications")
|
||||||
|
(description "This package provides a Python library for logging Click
|
||||||
|
applications.")
|
||||||
|
(home-page "https://github.com/click-contrib/click-log")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-apipkg
|
||||||
|
(package
|
||||||
|
(name "python-apipkg")
|
||||||
|
(version "1.4")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "apipkg" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("unzip" ,unzip)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)))
|
||||||
|
(synopsis "Namespace control and lazy-import mechanism")
|
||||||
|
(description "With apipkg you can control the exported namespace of a Python
|
||||||
|
package and greatly reduce the number of imports for your users. It is a small
|
||||||
|
pure Python module that works on virtually all Python versions.")
|
||||||
|
(home-page "https://bitbucket.org/hpk42/apipkg")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-execnet
|
||||||
|
(package
|
||||||
|
(name "python-execnet")
|
||||||
|
(version "1.4.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "execnet" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools-scm" ,python-setuptools-scm)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-apipkg" ,python-apipkg)))
|
||||||
|
(synopsis "Rapid multi-Python deployment")
|
||||||
|
(description "Execnet provides a share-nothing model with
|
||||||
|
channel-send/receive communication for distributing execution across many
|
||||||
|
Python interpreters across version, platform and network barriers. It has a
|
||||||
|
minimal and fast API targetting the following uses:
|
||||||
|
@enumerate
|
||||||
|
@item distribute tasks to (many) local or remote CPUs
|
||||||
|
@item write and deploy hybrid multi-process applications
|
||||||
|
@item write scripts to administer multiple environments
|
||||||
|
@end enumerate")
|
||||||
|
(home-page "http://codespeak.net/execnet/")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
;;; The software provided by this package was integrated into pytest 2.8.
|
||||||
|
(define-public python-pytest-cache
|
||||||
|
(package
|
||||||
|
(name "python-pytest-cache")
|
||||||
|
(version "1.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "pytest-cache" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-execnet" ,python-execnet)))
|
||||||
|
(synopsis "Py.test plugin with mechanisms for caching across test runs")
|
||||||
|
(description "The pytest-cache plugin provides tools to rerun failures from
|
||||||
|
the last py.test invocation.")
|
||||||
|
(home-page "https://bitbucket.org/hpk42/pytest-cache/")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-pytest-localserver
|
||||||
|
(package
|
||||||
|
(name "python-pytest-localserver")
|
||||||
|
(version "0.3.4")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "pytest-localserver" version ".zip"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"050q505a7gnsz7vqidw0w5dvxjb2flzi7z734agpjzmsl85c2bcx"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases (modify-phases %standard-phases
|
||||||
|
(replace 'check
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "py.test" "--genscript=runtests.py"))
|
||||||
|
(zero? (system* "py.test")))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("unzip" ,unzip)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)
|
||||||
|
("python-requests" ,python-requests)
|
||||||
|
("python-six" ,python-six)
|
||||||
|
("python-werkzeug" ,python-werkzeug)))
|
||||||
|
(synopsis "Py.test plugin to test server connections locally")
|
||||||
|
(description "Pytest-localserver is a plugin for the pytest testing
|
||||||
|
framework which enables you to test server connections locally.")
|
||||||
|
(home-page "https://pypi.python.org/pypi/pytest-localserver")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-wsgi-intercept
|
||||||
|
(package
|
||||||
|
(name "python-wsgi-intercept")
|
||||||
|
(version "0.10.3")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "wsgi_intercept" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0xyfchacywb1mql84270mcidsqc5ssyspd18yacjk82x2xc68h0r"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-httplib2" ,python-httplib2)
|
||||||
|
("python-requests" ,python-requests)))
|
||||||
|
(synopsis "Puts a WSGI application in place of a real URI for testing")
|
||||||
|
(description "Wsgi_intercept installs a WSGI application in place of a real
|
||||||
|
URI for testing. Testing a WSGI application normally involves starting a
|
||||||
|
server at a local host and port, then pointing your test code to that address.
|
||||||
|
Instead, this library lets you intercept calls to any specific host/port
|
||||||
|
combination and redirect them into a WSGI application importable by your test
|
||||||
|
program. Thus, you can avoid spawning multiple processes or threads to test
|
||||||
|
your Web app.")
|
||||||
|
(home-page "https://github.com/cdent/wsgi-intercept")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-pytest-xprocess
|
||||||
|
(package
|
||||||
|
(name "python-pytest-xprocess")
|
||||||
|
(version "0.9.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "pytest-xprocess" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"17zlql1xqw3ywcgwwbqmw633aly99lab12hm02asr8awvg5603pp"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-pytest" ,python-pytest)
|
||||||
|
("python-pytest-cache" ,python-pytest-cache)
|
||||||
|
("python-psutil" ,python-psutil)))
|
||||||
|
(synopsis "Pytest plugin to manage external processes across test runs")
|
||||||
|
(description "Pytest-xprocess is an experimental py.test plugin for managing
|
||||||
|
processes across test runs.")
|
||||||
|
(home-page "https://bitbucket.org/pytest-dev/pytest-xprocess")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-icalendar
|
||||||
|
(package
|
||||||
|
(name "python-icalendar")
|
||||||
|
(version "3.9.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "icalendar" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0fhrczdj3jxy5bvswphp3vys7vwv5c9bpwg7asykqwa3z6253q6q"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-dateutil-2" ,python-dateutil-2)
|
||||||
|
("python-pytz" ,python-pytz)))
|
||||||
|
(synopsis "Python library for parsing iCalendar files")
|
||||||
|
(description "The icalendar package is a parser/generator of iCalendar
|
||||||
|
files for use with Python.")
|
||||||
|
(home-page "https://github.com/collective/icalendar")
|
||||||
|
(license bsd-2)))
|
||||||
|
|
||||||
|
(define-public python-sphinxcontrib-newsfeed
|
||||||
|
(package
|
||||||
|
(name "python-sphinxcontrib-newsfeed")
|
||||||
|
(version "0.1.4")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "sphinxcontrib-newsfeed" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-docutils" ,python-docutils)
|
||||||
|
("python-sphinx" ,python-sphinx)))
|
||||||
|
(synopsis "News Feed extension for Sphinx")
|
||||||
|
(description "Sphinxcontrib-newsfeed is an extension for adding a simple
|
||||||
|
Blog, News or Announcements section to a Sphinx website.")
|
||||||
|
(home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed")
|
||||||
|
(license bsd-2)))
|
||||||
|
|
||||||
|
(define-public python-args
|
||||||
|
(package
|
||||||
|
(name "python-args")
|
||||||
|
(version "0.1.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "args" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "https://github.com/kennethreitz/args")
|
||||||
|
(synopsis "Command-line argument parser")
|
||||||
|
(description
|
||||||
|
"This library provides a Python module to parse command-line arguments.")
|
||||||
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public python2-args
|
||||||
|
(package-with-python2 python-args))
|
||||||
|
|
||||||
|
(define-public python-clint
|
||||||
|
(package
|
||||||
|
(name "python-clint")
|
||||||
|
(version "0.5.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "clint" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("python-args" ,python-args)
|
||||||
|
("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "https://github.com/kennethreitz/clint")
|
||||||
|
(synopsis "Command-line interface tools")
|
||||||
|
(description
|
||||||
|
"Clint is a Python module filled with a set of tools for developing
|
||||||
|
command-line applications, including tools for colored and indented
|
||||||
|
output, progress bar display, and pipes.")
|
||||||
|
(license isc)))
|
||||||
|
|
||||||
|
(define-public python2-clint
|
||||||
|
(package-with-python2 python-clint))
|
||||||
|
|
||||||
|
(define-public python-astor
|
||||||
|
(package
|
||||||
|
(name "python-astor")
|
||||||
|
(version "0.5")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "astor" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "https://github.com/berkerpeksag/astor")
|
||||||
|
(synopsis "Read and write Python ASTs")
|
||||||
|
(description
|
||||||
|
"Astor is designed to allow easy manipulation of Python source via the
|
||||||
|
Abstract Syntax Tree.")
|
||||||
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public python2-astor
|
||||||
|
(package-with-python2 python-astor))
|
||||||
|
|
||||||
|
(define-public python-rply
|
||||||
|
(package
|
||||||
|
(name "python-rply")
|
||||||
|
(version "0.7.4")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "rply" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("python-appdirs" ,python-appdirs)
|
||||||
|
("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "https://github.com/alex/rply")
|
||||||
|
(synopsis "Parser generator for Python")
|
||||||
|
(description
|
||||||
|
"This package provides a pure Python based parser generator, that also
|
||||||
|
works with RPython. It is a more-or-less direct port of David Bazzley's PLY,
|
||||||
|
with a new public API, and RPython support.")
|
||||||
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public python2-rply
|
||||||
|
(package-with-python2 python-rply))
|
||||||
|
|
||||||
|
(define-public python-hy
|
||||||
|
(package
|
||||||
|
(name "python-hy")
|
||||||
|
(version "0.11.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "hy" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("python-astor" ,python-astor)
|
||||||
|
("python-clint" ,python-clint)
|
||||||
|
("python-rply" ,python-rply)
|
||||||
|
("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "http://hylang.org/")
|
||||||
|
(synopsis "Lisp frontend to Python")
|
||||||
|
(description
|
||||||
|
"Hy is a dialect of Lisp that's embedded in Python. Since Hy transforms
|
||||||
|
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 python-rauth
|
||||||
|
(package
|
||||||
|
(name "python-rauth")
|
||||||
|
(version "0.7.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "rauth" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"00pq7zw429hhza9c0qzxiqp77m653jv09z92nralnmzwdf6pzicf"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:test-target "check"))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-requests" ,python-requests)))
|
||||||
|
(home-page "https://github.com/litl/rauth")
|
||||||
|
(synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly")
|
||||||
|
(description
|
||||||
|
"Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also
|
||||||
|
provides service wrappers for convenient connection initialization and
|
||||||
|
authenticated session objects providing things like keep-alive.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python2-rauth
|
||||||
|
(let ((rauth (package-with-python2 python-rauth)))
|
||||||
|
(package (inherit rauth)
|
||||||
|
(propagated-inputs `(("python2-requests" ,python2-requests)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python2-unittest2", python2-unittest2)
|
||||||
|
,@(package-native-inputs rauth))))))
|
||||||
|
|
||||||
|
(define-public python2-functools32
|
||||||
|
(package
|
||||||
|
(name "python2-functools32")
|
||||||
|
(version "3.2.3-2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "functools32" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:python ,python-2
|
||||||
|
#:tests? #f)) ; no test target
|
||||||
|
(native-inputs
|
||||||
|
`(("python2-setuptools" ,python2-setuptools)))
|
||||||
|
(home-page "https://github.com/MiCHiLU/python-functools32")
|
||||||
|
(synopsis
|
||||||
|
"Backport of the functools module from Python 3.2.3")
|
||||||
|
(description
|
||||||
|
"This package is a backport of the @code{functools} module from Python
|
||||||
|
3.2.3 for use with older versions of Python and PyPy.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-futures
|
||||||
|
(package
|
||||||
|
(name "python-futures")
|
||||||
|
(version "3.0.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "futures" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
(home-page "https://github.com/agronholm/pythonfutures")
|
||||||
|
(synopsis
|
||||||
|
"Backport of the concurrent.futures package from Python 3.2")
|
||||||
|
(description
|
||||||
|
"The concurrent.futures module provides a high-level interface for
|
||||||
|
asynchronously executing callables. This package backports the
|
||||||
|
concurrent.futures package from Python 3.2")
|
||||||
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public python2-futures
|
||||||
|
(package-with-python2 python-futures))
|
||||||
|
|
||||||
|
(define-public python-urllib3
|
||||||
|
(package
|
||||||
|
(name "python-urllib3")
|
||||||
|
(version "1.13.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "urllib3" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"10rrbr6c6k7j5dvfsyj4b2gsgxg9gggnn708qixf6ll57xqivfkf"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments `(#:tests? #f))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)
|
||||||
|
;; some packages for tests
|
||||||
|
("python-nose" ,python-nose)
|
||||||
|
("python-mock" ,python-mock)
|
||||||
|
("python-tornado" ,python-tornado)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(;; packages for https security
|
||||||
|
("python-certifi" ,python-certifi)
|
||||||
|
("python-ndg-httpsclient" ,python-ndg-httpsclient)
|
||||||
|
("python-pyasn1" ,python-pyasn1)
|
||||||
|
("python-pyopenssl" ,python-pyopenssl)))
|
||||||
|
(home-page "http://urllib3.readthedocs.org/")
|
||||||
|
(synopsis "HTTP library with thread-safe connection pooling")
|
||||||
|
(description
|
||||||
|
"Urllib3 supports features left out of urllib and urllib2 libraries. It
|
||||||
|
can reuse the same socket connection for multiple requests, it can POST files,
|
||||||
|
supports url redirection and retries, and also gzip and deflate decoding.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python2-urllib3
|
||||||
|
(package-with-python2 python-urllib3))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr>
|
||||||
|
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
(define-public rsync
|
(define-public rsync
|
||||||
(package
|
(package
|
||||||
(name "rsync")
|
(name "rsync")
|
||||||
(version "3.1.0")
|
(version "3.1.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://rsync.samba.org/ftp/rsync/src/rsync-"
|
(uri (string-append "http://rsync.samba.org/ftp/rsync/src/rsync-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0kirw8wglqvwi1v8bwxp373g03xg857h59j5k3mmgff9gzvj7jl1"))))
|
"1hm1q04hz15509f0p9bflw4d6jzfvpm1d36dxjwihk1wzakn5ypc"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("perl" ,perl)
|
(inputs `(("perl" ,perl)
|
||||||
("acl" ,acl)))
|
("acl" ,acl)))
|
||||||
|
|
|
@ -2978,3 +2978,67 @@ methods, a @code{Mixin} module for including color methods, a @code{Logger}, a
|
||||||
device.")
|
device.")
|
||||||
(home-page "http://rubyworks.github.io/ansi")
|
(home-page "http://rubyworks.github.io/ansi")
|
||||||
(license license:bsd-2)))
|
(license license:bsd-2)))
|
||||||
|
|
||||||
|
(define-public ruby-systemu
|
||||||
|
(package
|
||||||
|
(name "ruby-systemu")
|
||||||
|
(version "2.6.5")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (rubygems-uri "systemu" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1"))))
|
||||||
|
(build-system ruby-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'check 'set-version
|
||||||
|
(lambda _
|
||||||
|
(setenv "VERSION" ,version)
|
||||||
|
#t)))))
|
||||||
|
(synopsis "Capture of stdout/stderr and handling of child processes")
|
||||||
|
(description
|
||||||
|
"Systemu can be used on any platform to return status, stdout, and stderr
|
||||||
|
of any command. Unlike other methods like @code{open3} and @code{popen4}
|
||||||
|
there is no danger of full pipes or threading issues hanging your process or
|
||||||
|
subprocess.")
|
||||||
|
(home-page "https://github.com/ahoward/systemu")
|
||||||
|
(license license:ruby)))
|
||||||
|
|
||||||
|
(define-public ruby-bio-commandeer
|
||||||
|
(package
|
||||||
|
(name "ruby-bio-commandeer")
|
||||||
|
(version "0.1.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (rubygems-uri "bio-commandeer" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"061jxa6km92qfwzl058r2gp8gfcsbyr7m643nw1pxvmjdswaf6ly"))))
|
||||||
|
(build-system ruby-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'check
|
||||||
|
;; Run test without calling 'rake' so that jeweler is
|
||||||
|
;; not required as an input.
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "rspec" "spec/bio-commandeer_spec.rb")))))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("ruby-bio-logger" ,ruby-bio-logger)
|
||||||
|
("ruby-systemu" ,ruby-systemu)))
|
||||||
|
(native-inputs
|
||||||
|
`(("bundler" ,bundler)
|
||||||
|
("ruby-rspec" ,ruby-rspec)))
|
||||||
|
(synopsis "Simplified running of shell commands from within Ruby")
|
||||||
|
(description
|
||||||
|
"Bio-commandeer provides an opinionated method of running shell commands
|
||||||
|
from within Ruby. The advantage of bio-commandeer over other methods of
|
||||||
|
running external commands is that when something goes wrong, messages printed
|
||||||
|
to the @code{STDOUT} and @code{STDERR} streams are reported, giving extra
|
||||||
|
detail to ease debugging.")
|
||||||
|
(home-page "http://github.com/wwood/bioruby-commandeer")
|
||||||
|
(license license:expat)))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -111,7 +111,7 @@ a server that supports the SSH-2 protocol.")
|
||||||
(define-public openssh
|
(define-public openssh
|
||||||
(package
|
(package
|
||||||
(name "openssh")
|
(name "openssh")
|
||||||
(version "7.1p1")
|
(version "7.1p2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (let ((tail (string-append name "-" version ".tar.gz")))
|
(uri (let ((tail (string-append name "-" version ".tar.gz")))
|
||||||
|
@ -122,7 +122,7 @@ a server that supports the SSH-2 protocol.")
|
||||||
(string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/"
|
(string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/"
|
||||||
tail))))
|
tail))))
|
||||||
(sha256 (base32
|
(sha256 (base32
|
||||||
"0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw"))))
|
"1gbbvszz74lkc7b2mqr3ccgpm65zj0k5h7a2ssh0c7pjvhjg0xfx"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("groff" ,groff)
|
(inputs `(("groff" ,groff)
|
||||||
("openssl" ,openssl)
|
("openssl" ,openssl)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2015 Vicente Vera Parra <vicentemvp@gmail.com>
|
;;; Copyright © 2015 Vicente Vera Parra <vicentemvp@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -1676,6 +1676,8 @@ worker processes and collect and return the results on the master.")
|
||||||
"0s9kab5khk7daqf6nfp1wm1qnhkssnnwnymisfwyk3kz4q5maqfz"))))
|
"0s9kab5khk7daqf6nfp1wm1qnhkssnnwnymisfwyk3kz4q5maqfz"))))
|
||||||
(properties
|
(properties
|
||||||
`((upstream-name . "SparseM")))
|
`((upstream-name . "SparseM")))
|
||||||
|
(inputs
|
||||||
|
`(("gfortran" ,gfortran)))
|
||||||
(build-system r-build-system)
|
(build-system r-build-system)
|
||||||
(home-page "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html")
|
(home-page "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html")
|
||||||
(synopsis "Sparse linear algebra")
|
(synopsis "Sparse linear algebra")
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
(define-public sxiv
|
(define-public sxiv
|
||||||
(package
|
(package
|
||||||
(name "sxiv")
|
(name "sxiv")
|
||||||
(version "1.3.1")
|
(version "1.3.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"03hxy5ff7xbs15rhlbpgx8xmvmpjlffp0m4528975hg16sqa2c4s"))))
|
"0lxnd33gaw4drhdwbkk94wzrjyhh64d57jq2ps7ffmqgizg6hlwz"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ; no check target
|
'(#:tests? #f ; no check target
|
||||||
|
|
|
@ -56,6 +56,7 @@
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages ssh)
|
#:use-module (gnu packages ssh)
|
||||||
#:use-module (gnu packages web)
|
#:use-module (gnu packages web)
|
||||||
|
#:use-module (gnu packages openstack)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
@ -1028,3 +1029,33 @@ fetching updates) over a collection of version control repositories. It
|
||||||
supports a large number of version control systems: Git, Subversion,
|
supports a large number of version control systems: Git, Subversion,
|
||||||
Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
|
Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
|
||||||
(license gpl2+)))
|
(license gpl2+)))
|
||||||
|
|
||||||
|
(define-public git-annex-remote-hubic
|
||||||
|
(package
|
||||||
|
(name "git-annex-remote-hubic")
|
||||||
|
(version "0.3.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/Schnouki/" name "/archive/v"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)
|
||||||
|
;; for the tests
|
||||||
|
("python-six" ,python-six)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-dateutil" ,python-dateutil-2)
|
||||||
|
("python-futures" ,python-futures)
|
||||||
|
("python-rauth" ,python-rauth)
|
||||||
|
("python-swiftclient" ,python-swiftclient)))
|
||||||
|
(home-page "https://github.com/Schnouki/git-annex-remote-hubic/")
|
||||||
|
(synopsis "Use hubic as a git-annex remote")
|
||||||
|
(description
|
||||||
|
"This package allows you to use your hubic account as a \"special
|
||||||
|
repository\" with git-annex.")
|
||||||
|
(license gpl3+)))
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
|
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
|
;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
|
||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2015 Alex Vong <alexvong1995@gmail.com>
|
;;; Copyright © 2015 Alex Vong <alexvong1995@gmail.com>
|
||||||
|
@ -692,7 +692,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
||||||
(define-public mpv
|
(define-public mpv
|
||||||
(package
|
(package
|
||||||
(name "mpv")
|
(name "mpv")
|
||||||
(version "0.14.0")
|
(version "0.15.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -700,14 +700,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
||||||
".tar.gz"))
|
".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0cqjwl0xyg0sv1jflipfkvqjg32y0kqfh4gc3lyhqgv0hgs3fa84"))
|
"1p0b83048g66icpz5n66v3k4ldr1z0rmg5d2rr7kcbspm1xj2cbx"))
|
||||||
(file-name (string-append name "-" version ".tar.gz"))))
|
(file-name (string-append name "-" version ".tar.gz"))))
|
||||||
(build-system waf-build-system)
|
(build-system waf-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("perl" ,perl)
|
`(("perl" ,perl)
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
("python-docutils" ,python-docutils)))
|
("python-docutils" ,python-docutils)))
|
||||||
;; Missing features: libguess, Wayland, VDPAU, V4L2
|
;; Missing features: libguess, Wayland, V4L2
|
||||||
(inputs
|
(inputs
|
||||||
`(("alsa-lib" ,alsa-lib)
|
`(("alsa-lib" ,alsa-lib)
|
||||||
("enca" ,enca)
|
("enca" ,enca)
|
||||||
|
@ -724,6 +724,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
||||||
("libdvdnav" ,libdvdnav)
|
("libdvdnav" ,libdvdnav)
|
||||||
("libjpeg" ,libjpeg)
|
("libjpeg" ,libjpeg)
|
||||||
("libva" ,libva)
|
("libva" ,libva)
|
||||||
|
("libvdpau" ,libvdpau)
|
||||||
("libx11" ,libx11)
|
("libx11" ,libx11)
|
||||||
("libxext" ,libxext)
|
("libxext" ,libxext)
|
||||||
("libxinerama" ,libxinerama)
|
("libxinerama" ,libxinerama)
|
||||||
|
@ -754,6 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(copy-file (assoc-ref inputs "waf") "waf")
|
(copy-file (assoc-ref inputs "waf") "waf")
|
||||||
(setenv "CC" "gcc"))))
|
(setenv "CC" "gcc"))))
|
||||||
|
#:configure-flags (list "--enable-gpl3" "--enable-zsh-comp")
|
||||||
;; No check function defined.
|
;; No check function defined.
|
||||||
#:tests? #f))
|
#:tests? #f))
|
||||||
(home-page "http://mpv.io/")
|
(home-page "http://mpv.io/")
|
||||||
|
@ -1299,3 +1301,53 @@ from many input sources such as webcams, X11 (for screencasting), PulseAudio,
|
||||||
and JACK.")
|
and JACK.")
|
||||||
(home-page "https://obsproject.com")
|
(home-page "https://obsproject.com")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public libvdpau
|
||||||
|
(package
|
||||||
|
(name "libvdpau")
|
||||||
|
(version "1.1.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
|
||||||
|
name "-" version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("dri2proto" ,dri2proto)
|
||||||
|
("libx11" ,libx11 "out")
|
||||||
|
("libxext" ,libxext)))
|
||||||
|
(home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
|
||||||
|
(synopsis "Video Decode and Presentation API")
|
||||||
|
(description "VDPAU is the Video Decode and Presentation API for UNIX. It
|
||||||
|
provides an interface to video decode acceleration and presentation hardware
|
||||||
|
present in modern GPUs.")
|
||||||
|
(license (license:x11-style "file://COPYING"))))
|
||||||
|
|
||||||
|
(define-public vdpauinfo
|
||||||
|
(package
|
||||||
|
(name "vdpauinfo")
|
||||||
|
(version "1.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
|
||||||
|
name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("libx11" ,libx11)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("libvdpau" ,libvdpau)))
|
||||||
|
(home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
|
||||||
|
(synopsis "Tool to query the capabilities of a VDPAU implementation")
|
||||||
|
(description "Vdpauinfo is a tool to query the capabilities of a VDPAU
|
||||||
|
implementation.")
|
||||||
|
(license (license:x11-style "file://COPYING"))))
|
||||||
|
|
|
@ -88,6 +88,14 @@
|
||||||
operating-system-locale-directory
|
operating-system-locale-directory
|
||||||
operating-system-boot-script
|
operating-system-boot-script
|
||||||
|
|
||||||
|
boot-parameters
|
||||||
|
boot-parameters?
|
||||||
|
boot-parameters-label
|
||||||
|
boot-parameters-root-device
|
||||||
|
boot-parameters-kernel
|
||||||
|
boot-parameters-kernel-arguments
|
||||||
|
read-boot-parameters
|
||||||
|
|
||||||
local-host-aliases
|
local-host-aliases
|
||||||
%setuid-programs
|
%setuid-programs
|
||||||
%base-packages
|
%base-packages
|
||||||
|
@ -709,4 +717,37 @@ this file is the reconstruction of GRUB menu entries for old configurations."
|
||||||
#$(operating-system-kernel-arguments os))
|
#$(operating-system-kernel-arguments os))
|
||||||
(initrd #$initrd)))))
|
(initrd #$initrd)))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Boot parameters
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define-record-type* <boot-parameters>
|
||||||
|
boot-parameters make-boot-parameters boot-parameters?
|
||||||
|
(label boot-parameters-label)
|
||||||
|
(root-device boot-parameters-root-device)
|
||||||
|
(kernel boot-parameters-kernel)
|
||||||
|
(kernel-arguments boot-parameters-kernel-arguments))
|
||||||
|
|
||||||
|
(define (read-boot-parameters port)
|
||||||
|
"Read boot parameters from PORT and return the corresponding
|
||||||
|
<boot-parameters> object or #f if the format is unrecognized."
|
||||||
|
(match (read port)
|
||||||
|
(('boot-parameters ('version 0)
|
||||||
|
('label label) ('root-device root)
|
||||||
|
('kernel linux)
|
||||||
|
rest ...)
|
||||||
|
(boot-parameters
|
||||||
|
(label label)
|
||||||
|
(root-device root)
|
||||||
|
(kernel linux)
|
||||||
|
(kernel-arguments
|
||||||
|
(match (assq 'kernel-arguments rest)
|
||||||
|
((_ args) args)
|
||||||
|
(#f '()))))) ;the old format
|
||||||
|
(x ;unsupported format
|
||||||
|
(warning (_ "unrecognized boot parameters for '~a'~%")
|
||||||
|
system)
|
||||||
|
#f)))
|
||||||
|
|
||||||
;;; system.scm ends here
|
;;; system.scm ends here
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -179,7 +179,7 @@ loaded at boot time in the order in which they appear."
|
||||||
;; Modules added to the initrd and loaded from the initrd.
|
;; Modules added to the initrd and loaded from the initrd.
|
||||||
`("ahci" ;for SATA controllers
|
`("ahci" ;for SATA controllers
|
||||||
"usb-storage" "uas" ;for the installation image etc.
|
"usb-storage" "uas" ;for the installation image etc.
|
||||||
"usbkbd" "usbhid" ;USB keyboards, for debugging
|
"usbhid" ;USB keyboards, for debugging
|
||||||
"dm-crypt" "xts" ;for encrypted root partitions
|
"dm-crypt" "xts" ;for encrypted root partitions
|
||||||
,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system))
|
,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system))
|
||||||
'("pata_acpi" "pata_atiixp" ;for ATA controllers
|
'("pata_acpi" "pata_atiixp" ;for ATA controllers
|
||||||
|
|
|
@ -136,17 +136,6 @@ empty list when the FIELD cannot be found."
|
||||||
(string-any char-set:whitespace item)))
|
(string-any char-set:whitespace item)))
|
||||||
(map string-trim-both items))))))
|
(map string-trim-both items))))))
|
||||||
|
|
||||||
(define (beautify-description description)
|
|
||||||
"Improve the package DESCRIPTION by turning a beginning sentence fragment
|
|
||||||
into a proper sentence and by using two spaces between sentences."
|
|
||||||
(let ((cleaned (if (string-prefix? "A " description)
|
|
||||||
(string-append "This package provides a"
|
|
||||||
(substring description 1))
|
|
||||||
description)))
|
|
||||||
;; Use double spacing between sentences
|
|
||||||
(regexp-substitute/global #f "\\. \\b"
|
|
||||||
cleaned 'pre ". " 'post)))
|
|
||||||
|
|
||||||
(define (description->package meta)
|
(define (description->package meta)
|
||||||
"Return the `package' s-expression for a CRAN package from the alist META,
|
"Return the `package' s-expression for a CRAN package from the alist META,
|
||||||
which was derived from the R package's DESCRIPTION file."
|
which was derived from the R package's DESCRIPTION file."
|
||||||
|
|
|
@ -117,7 +117,8 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES."
|
||||||
(let ((name (assoc-ref package "name"))
|
(let ((name (assoc-ref package "name"))
|
||||||
(version (assoc-ref package "version"))
|
(version (assoc-ref package "version"))
|
||||||
(hash (assoc-ref package "sha"))
|
(hash (assoc-ref package "sha"))
|
||||||
(description (assoc-ref package "info"))
|
(description (beautify-description
|
||||||
|
(assoc-ref package "info")))
|
||||||
(home-page (assoc-ref package "homepage_uri"))
|
(home-page (assoc-ref package "homepage_uri"))
|
||||||
(dependencies (map (lambda (dep)
|
(dependencies (map (lambda (dep)
|
||||||
(let ((name (assoc-ref dep "name")))
|
(let ((name (assoc-ref dep "name")))
|
||||||
|
|
|
@ -37,7 +37,8 @@
|
||||||
string->license
|
string->license
|
||||||
license->symbol
|
license->symbol
|
||||||
|
|
||||||
snake-case))
|
snake-case
|
||||||
|
beautify-description))
|
||||||
|
|
||||||
(define (factorize-uri uri version)
|
(define (factorize-uri uri version)
|
||||||
"Factorize URI, a package tarball URI as a string, such that any occurrences
|
"Factorize URI, a package tarball URI as a string, such that any occurrences
|
||||||
|
@ -136,3 +137,14 @@ to in the (guix licenses) module, or #f if there is no such known license."
|
||||||
"Return a downcased version of the string STR where underscores are replaced
|
"Return a downcased version of the string STR where underscores are replaced
|
||||||
with dashes."
|
with dashes."
|
||||||
(string-join (string-split (string-downcase str) #\_) "-"))
|
(string-join (string-split (string-downcase str) #\_) "-"))
|
||||||
|
|
||||||
|
(define (beautify-description description)
|
||||||
|
"Improve the package DESCRIPTION by turning a beginning sentence fragment
|
||||||
|
into a proper sentence and by using two spaces between sentences."
|
||||||
|
(let ((cleaned (if (string-prefix? "A " description)
|
||||||
|
(string-append "This package provides a"
|
||||||
|
(substring description 1))
|
||||||
|
description)))
|
||||||
|
;; Use double spacing between sentences
|
||||||
|
(regexp-substitute/global #f "\\. \\b"
|
||||||
|
cleaned 'pre ". " 'post)))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -189,39 +190,6 @@ the ownership of '~a' may be incorrect!~%")
|
||||||
(mwhen grub?
|
(mwhen grub?
|
||||||
(install-grub* grub.cfg device target)))))
|
(install-grub* grub.cfg device target)))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
|
||||||
;;; Boot parameters
|
|
||||||
;;;
|
|
||||||
|
|
||||||
(define-record-type* <boot-parameters>
|
|
||||||
boot-parameters make-boot-parameters boot-parameters?
|
|
||||||
(label boot-parameters-label)
|
|
||||||
(root-device boot-parameters-root-device)
|
|
||||||
(kernel boot-parameters-kernel)
|
|
||||||
(kernel-arguments boot-parameters-kernel-arguments))
|
|
||||||
|
|
||||||
(define (read-boot-parameters port)
|
|
||||||
"Read boot parameters from PORT and return the corresponding
|
|
||||||
<boot-parameters> object or #f if the format is unrecognized."
|
|
||||||
(match (read port)
|
|
||||||
(('boot-parameters ('version 0)
|
|
||||||
('label label) ('root-device root)
|
|
||||||
('kernel linux)
|
|
||||||
rest ...)
|
|
||||||
(boot-parameters
|
|
||||||
(label label)
|
|
||||||
(root-device root)
|
|
||||||
(kernel linux)
|
|
||||||
(kernel-arguments
|
|
||||||
(match (assq 'kernel-arguments rest)
|
|
||||||
((_ args) args)
|
|
||||||
(#f '()))))) ;the old format
|
|
||||||
(x ;unsupported format
|
|
||||||
(warning (_ "unrecognized boot parameters for '~a'~%")
|
|
||||||
system)
|
|
||||||
#f)))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Reconfiguration.
|
;;; Reconfiguration.
|
||||||
|
@ -285,22 +253,24 @@ it atomically, and then run OS's activation script."
|
||||||
"Return a list of 'menu-entry' for the generations of PROFILE."
|
"Return a list of 'menu-entry' for the generations of PROFILE."
|
||||||
(define (system->grub-entry system number time)
|
(define (system->grub-entry system number time)
|
||||||
(unless-file-not-found
|
(unless-file-not-found
|
||||||
(let ((file (string-append system "/parameters")))
|
(let* ((file (string-append system "/parameters"))
|
||||||
(match (call-with-input-file file read-boot-parameters)
|
(params (call-with-input-file file
|
||||||
(($ <boot-parameters> label root kernel kernel-arguments)
|
read-boot-parameters))
|
||||||
(menu-entry
|
(label (boot-parameters-label params))
|
||||||
(label (string-append label " (#"
|
(root (boot-parameters-root-device params))
|
||||||
(number->string number) ", "
|
(kernel (boot-parameters-kernel params))
|
||||||
(seconds->string time) ")"))
|
(kernel-arguments (boot-parameters-kernel-arguments params)))
|
||||||
(linux kernel)
|
(menu-entry
|
||||||
(linux-arguments
|
(label (string-append label " (#"
|
||||||
(cons* (string-append "--root=" root)
|
(number->string number) ", "
|
||||||
#~(string-append "--system=" #$system)
|
(seconds->string time) ")"))
|
||||||
#~(string-append "--load=" #$system "/boot")
|
(linux kernel)
|
||||||
kernel-arguments))
|
(linux-arguments
|
||||||
(initrd #~(string-append #$system "/initrd"))))
|
(cons* (string-append "--root=" root)
|
||||||
(#f ;invalid format
|
#~(string-append "--system=" #$system)
|
||||||
#f)))))
|
#~(string-append "--load=" #$system "/boot")
|
||||||
|
kernel-arguments))
|
||||||
|
(initrd #~(string-append #$system "/initrd"))))))
|
||||||
|
|
||||||
(let* ((numbers (generation-numbers profile))
|
(let* ((numbers (generation-numbers profile))
|
||||||
(systems (map (cut generation-file-name profile <>)
|
(systems (map (cut generation-file-name profile <>)
|
||||||
|
@ -366,18 +336,17 @@ list of services."
|
||||||
(unless (zero? number)
|
(unless (zero? number)
|
||||||
(let* ((generation (generation-file-name profile number))
|
(let* ((generation (generation-file-name profile number))
|
||||||
(param-file (string-append generation "/parameters"))
|
(param-file (string-append generation "/parameters"))
|
||||||
(params (call-with-input-file param-file read-boot-parameters)))
|
(params (call-with-input-file param-file read-boot-parameters))
|
||||||
|
(label (boot-parameters-label params))
|
||||||
|
(root (boot-parameters-root-device params))
|
||||||
|
(kernel (boot-parameters-kernel params)))
|
||||||
(display-generation profile number)
|
(display-generation profile number)
|
||||||
(format #t (_ " file name: ~a~%") generation)
|
(format #t (_ " file name: ~a~%") generation)
|
||||||
(format #t (_ " canonical file name: ~a~%") (readlink* generation))
|
(format #t (_ " canonical file name: ~a~%") (readlink* generation))
|
||||||
(match params
|
;; TRANSLATORS: Please preserve the two-space indentation.
|
||||||
(($ <boot-parameters> label root kernel)
|
(format #t (_ " label: ~a~%") label)
|
||||||
;; TRANSLATORS: Please preserve the two-space indentation.
|
(format #t (_ " root device: ~a~%") root)
|
||||||
(format #t (_ " label: ~a~%") label)
|
(format #t (_ " kernel: ~a~%") kernel))))
|
||||||
(format #t (_ " root device: ~a~%") root)
|
|
||||||
(format #t (_ " kernel: ~a~%") kernel))
|
|
||||||
(_
|
|
||||||
#f)))))
|
|
||||||
|
|
||||||
(define* (list-generations pattern #:optional (profile %system-profile))
|
(define* (list-generations pattern #:optional (profile %system-profile))
|
||||||
"Display in a human-readable format all the system generations matching
|
"Display in a human-readable format all the system generations matching
|
||||||
|
|
11
test-env.in
11
test-env.in
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# GNU Guix --- Functional package management for GNU
|
# GNU Guix --- Functional package management for GNU
|
||||||
# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Guix.
|
# This file is part of GNU Guix.
|
||||||
#
|
#
|
||||||
|
@ -31,7 +31,6 @@ unset CDPATH
|
||||||
|
|
||||||
if [ -x "@abs_top_builddir@/guix-daemon" ]
|
if [ -x "@abs_top_builddir@/guix-daemon" ]
|
||||||
then
|
then
|
||||||
NIX_SETUID_HELPER="@abs_top_builddir@/nix-setuid-helper" # normally unused
|
|
||||||
NIX_STORE_DIR="@GUIX_TEST_ROOT@/store"
|
NIX_STORE_DIR="@GUIX_TEST_ROOT@/store"
|
||||||
|
|
||||||
# Do that because store.scm calls `canonicalize-path' on it.
|
# Do that because store.scm calls `canonicalize-path' on it.
|
||||||
|
@ -87,10 +86,10 @@ then
|
||||||
# For the (guix import snix) tests.
|
# For the (guix import snix) tests.
|
||||||
NIXPKGS="@NIXPKGS@"
|
NIXPKGS="@NIXPKGS@"
|
||||||
|
|
||||||
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \
|
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \
|
||||||
NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR \
|
NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR \
|
||||||
NIX_ROOT_FINDER NIX_SETUID_HELPER GUIX_BINARY_SUBSTITUTE_URL \
|
NIX_ROOT_FINDER GUIX_BINARY_SUBSTITUTE_URL \
|
||||||
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
||||||
NIX_CONF_DIR XDG_CACHE_HOME NIXPKGS
|
NIX_CONF_DIR XDG_CACHE_HOME NIXPKGS
|
||||||
|
|
||||||
# Launch the daemon without chroot support because is may be
|
# Launch the daemon without chroot support because is may be
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -472,6 +472,22 @@
|
||||||
(build-derivations %store (list drv))
|
(build-derivations %store (list drv))
|
||||||
#f)))
|
#f)))
|
||||||
|
|
||||||
|
;; Here we should get the value of $NIX_STATE_DIR that the daemon sees, which
|
||||||
|
;; is a unique value for each test process; this value is the same as the one
|
||||||
|
;; we see in the process executing this file since it is set by 'test-env'.
|
||||||
|
(test-equal "derivation #:leaked-env-vars"
|
||||||
|
(getenv "NIX_STATE_DIR")
|
||||||
|
(let* ((value (getenv "NIX_STATE_DIR"))
|
||||||
|
(drv (derivation %store "leaked-env-vars" %bash
|
||||||
|
'("-c" "echo -n $NIX_STATE_DIR > $out")
|
||||||
|
#:hash (sha256 (string->utf8 value))
|
||||||
|
#:hash-algo 'sha256
|
||||||
|
#:inputs `((,%bash))
|
||||||
|
#:leaked-env-vars '("NIX_STATE_DIR"))))
|
||||||
|
(and (build-derivations %store (list drv))
|
||||||
|
(call-with-input-file (derivation->output-path drv)
|
||||||
|
get-string-all))))
|
||||||
|
|
||||||
|
|
||||||
(define %coreutils
|
(define %coreutils
|
||||||
(false-if-exception
|
(false-if-exception
|
||||||
|
|
Loading…
Reference in New Issue