Merge branch 'master' into core-updates
commit
afe9f40949
32
Makefile.am
32
Makefile.am
|
@ -164,11 +164,6 @@ endif BUILD_DAEMON_OFFLOAD
|
|||
# Internal module with test suite support.
|
||||
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.
|
||||
KCONFIGS = \
|
||||
gnu/packages/linux-libre-i686.conf \
|
||||
|
@ -325,6 +320,7 @@ EXTRA_DIST = \
|
|||
CODE-OF-CONDUCT \
|
||||
.dir-locals.el \
|
||||
build-aux/build-self.scm \
|
||||
build-aux/compile-all.scm \
|
||||
build-aux/hydra/gnu-system.scm \
|
||||
build-aux/hydra/demo-os.scm \
|
||||
build-aux/hydra/guix.scm \
|
||||
|
@ -364,31 +360,21 @@ CLEANFILES = \
|
|||
$(GOBJECTS) \
|
||||
$(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
|
||||
# $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
|
||||
# user ran 'make install' recently). When that happens, we end up loading
|
||||
# those previously-installed .go files, which may be stale, thereby breaking
|
||||
# the whole thing.
|
||||
#
|
||||
# XXX: Use the C locale for when Guile lacks
|
||||
# <http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=e2c6bf3866d1186c60bacfbd4fe5037087ee5e3f>.
|
||||
.scm.go:
|
||||
$(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ; \
|
||||
%.go: make-go ; @:
|
||||
make-go: $(MODULES) guix/config.scm guix/tests.scm
|
||||
$(AM_V_at)echo "Compiling Scheme modules..." ; \
|
||||
unset GUILE_LOAD_COMPILED_PATH ; \
|
||||
LC_ALL=C \
|
||||
host=$(host) srcdir="$(top_srcdir)" \
|
||||
$(top_builddir)/pre-inst-env \
|
||||
$(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \
|
||||
$(GUILD_COMPILE_FLAGS) --target="$(host)" \
|
||||
-o "$@" "$<"
|
||||
$(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)" \
|
||||
--no-auto-compile \
|
||||
-s "$(top_srcdir)"/build-aux/compile-all.scm $^
|
||||
|
||||
SUFFIXES = .go
|
||||
|
||||
|
@ -480,6 +466,6 @@ assert-final-inputs-self-contained:
|
|||
$(top_builddir)/pre-inst-env "$(GUILE)" \
|
||||
"$(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-final-inputs-self-contained
|
||||
|
|
1
NEWS
1
NEWS
|
@ -14,6 +14,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
|
|||
|
||||
** Package management
|
||||
|
||||
*** Emacs interface for system generations
|
||||
*** Emacs interface for hydra.gnu.org
|
||||
*** Changes in Emacs interface variables
|
||||
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
|
||||
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.
|
||||
|
||||
@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
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
@file{test-suite.log} file. When @file{tests/@var{something}.scm}
|
||||
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
|
||||
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
|
||||
to run @command{guix-daemon} provided you pass @code{--disable-chroot}.
|
||||
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
|
||||
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
|
||||
@code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking
|
||||
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
|
||||
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} @
|
||||
[#:qemu-networking? #f] [#:virtio? #f] [#:volatile-root? #f] @
|
||||
[#:extra-modules '()] [#:mapped-devices '()]
|
||||
|
|
1
emacs.am
1
emacs.am
|
@ -47,6 +47,7 @@ ELFILES = \
|
|||
emacs/guix-ui.el \
|
||||
emacs/guix-ui-package.el \
|
||||
emacs/guix-ui-generation.el \
|
||||
emacs/guix-ui-system-generation.el \
|
||||
emacs/guix-utils.el
|
||||
|
||||
if HAVE_EMACS
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; 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.
|
||||
|
||||
|
@ -91,14 +91,25 @@ For the meaning of location, see `guix-find-location'."
|
|||
"Return the file name of a PROFILE's 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.
|
||||
If GENERATION number is specified, return manifest file name for
|
||||
this generation."
|
||||
See `guix-packages-profile'."
|
||||
(expand-file-name "manifest"
|
||||
(if generation
|
||||
(guix-generation-file profile generation)
|
||||
profile)))
|
||||
(guix-packages-profile profile generation system?)))
|
||||
|
||||
;;;###autoload
|
||||
(defun guix-edit (id-or-name)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -61,7 +61,8 @@
|
|||
(guix scripts lint)
|
||||
(guix scripts package)
|
||||
(guix scripts pull)
|
||||
(gnu packages))
|
||||
(gnu packages)
|
||||
(gnu system))
|
||||
|
||||
(define-syntax-rule (first-or-false 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)
|
||||
(map manifest-entry->package-specification entries))
|
||||
|
||||
(define (generation-package-specifications profile number)
|
||||
"Return a list of package specifications for generation NUMBER."
|
||||
(let ((manifest (profile-manifest
|
||||
(generation-file-name profile number))))
|
||||
(define (profile-package-specifications profile)
|
||||
"Return a list of package specifications for PROFILE."
|
||||
(let ((manifest (profile-manifest profile)))
|
||||
(manifest-entries->package-specifications
|
||||
(manifest-entries manifest))))
|
||||
|
||||
(define (generation-package-specifications+paths profile number)
|
||||
"Return a list of package specifications and paths for generation NUMBER.
|
||||
(define (profile->specifications+paths profile)
|
||||
"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."
|
||||
(let ((manifest (profile-manifest
|
||||
(generation-file-name profile number))))
|
||||
(let ((manifest (profile-manifest profile)))
|
||||
(map (lambda (entry)
|
||||
(list (manifest-entry->package-specification entry)
|
||||
(manifest-entry-item entry)))
|
||||
(manifest-entries manifest))))
|
||||
|
||||
(define (generation-difference profile number1 number2)
|
||||
"Return a list of package specifications for outputs installed in generation
|
||||
NUMBER1 and not installed in generation NUMBER2."
|
||||
(let ((specs1 (generation-package-specifications profile number1))
|
||||
(specs2 (generation-package-specifications profile number2)))
|
||||
(define (profile-difference profile1 profile2)
|
||||
"Return a list of package specifications for outputs installed in PROFILE1
|
||||
and not installed in PROFILE2."
|
||||
(let ((specs1 (profile-package-specifications profile1))
|
||||
(specs2 (profile-package-specifications profile2)))
|
||||
(lset-difference string=? specs1 specs2)))
|
||||
|
||||
(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))
|
||||
(name . ,(apply-to-rest specifications->package-patterns))
|
||||
(installed . ,manifest-package-proc)
|
||||
(generation . ,manifest-package-proc)
|
||||
(obsolete . ,(apply-to-first obsolete-package-patterns))
|
||||
(regexp . ,regexp-proc)
|
||||
(all-available . ,all-proc)
|
||||
|
@ -679,7 +677,6 @@ ENTRIES is a list of installed manifest entries."
|
|||
(id . ,(apply-to-rest ids->output-patterns))
|
||||
(name . ,(apply-to-rest specifications->output-patterns))
|
||||
(installed . ,manifest-output-proc)
|
||||
(generation . ,manifest-output-proc)
|
||||
(obsolete . ,(apply-to-first obsolete-output-patterns))
|
||||
(regexp . ,regexp-proc)
|
||||
(all-available . ,all-proc)
|
||||
|
@ -694,16 +691,13 @@ ENTRIES is a list of installed manifest entries."
|
|||
search-type search-vals)
|
||||
"Return information about packages or package outputs.
|
||||
See 'entry-sexps' for details."
|
||||
(let* ((profile (if (eq? search-type 'generation)
|
||||
(generation-file-name profile (car search-vals))
|
||||
profile))
|
||||
(manifest (profile-manifest profile))
|
||||
(let* ((manifest (profile-manifest profile))
|
||||
(patterns (if (and (eq? entry-type 'output)
|
||||
(eq? search-type 'generation-diff))
|
||||
(eq? search-type 'profile-diff))
|
||||
(match search-vals
|
||||
((g1 g2)
|
||||
((p1 p2)
|
||||
(map specification->output-pattern
|
||||
(generation-difference profile g1 g2)))
|
||||
(profile-difference p1 p2)))
|
||||
(_ '()))
|
||||
(apply (patterns-maker entry-type search-type)
|
||||
manifest search-vals)))
|
||||
|
@ -765,6 +759,38 @@ See 'entry-sexps' for details."
|
|||
params)))
|
||||
(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).
|
||||
|
||||
|
@ -809,6 +835,9 @@ parameter/value pairs."
|
|||
((generation)
|
||||
(generation-sexps profile params
|
||||
search-type search-vals))
|
||||
((system-generation)
|
||||
(system-generation-sexps profile params
|
||||
search-type search-vals))
|
||||
(else (entry-type-error entry-type))))
|
||||
|
||||
|
||||
|
|
|
@ -55,14 +55,7 @@
|
|||
(obsolete
|
||||
(0 "No obsolete packages in profile '%s'." profile)
|
||||
(1 "A single obsolete package in profile '%s'." 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)))
|
||||
(many "%d obsolete packages in profile '%s'." count profile)))
|
||||
|
||||
(output
|
||||
(id
|
||||
|
@ -91,14 +84,7 @@
|
|||
(0 "No obsolete package outputs in profile '%s'." profile)
|
||||
(1 "A single obsolete package output in profile '%s'." profile)
|
||||
(many "%d obsolete package outputs in profile '%s'." count profile))
|
||||
(generation
|
||||
(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
|
||||
(profile-diff
|
||||
guix-message-outputs-by-diff))
|
||||
|
||||
(generation
|
||||
|
@ -183,25 +169,27 @@ Try \"M-x guix-search-by-name\"."
|
|||
"matching time period '%s' - '%s'.")
|
||||
str-beg profile time-beg time-end)))
|
||||
|
||||
(defun guix-message-outputs-by-diff (profile entries generations)
|
||||
"Display a message for outputs searched by GENERATIONS difference."
|
||||
(defun guix-message-outputs-by-diff (_ entries profiles)
|
||||
"Display a message for outputs searched by PROFILES difference."
|
||||
(let* ((count (length entries))
|
||||
(str-beg (guix-message-string-entries count 'output))
|
||||
(gen1 (car generations))
|
||||
(gen2 (cadr generations)))
|
||||
(profile1 (car profiles))
|
||||
(profile2 (cadr profiles)))
|
||||
(cl-multiple-value-bind (new old str-action)
|
||||
(if (> gen1 gen2)
|
||||
(list gen1 gen2 "added to")
|
||||
(list gen2 gen1 "removed from"))
|
||||
(message (concat "%s %s generation %d comparing with "
|
||||
"generation %d of profile '%s'.")
|
||||
str-beg str-action new old profile))))
|
||||
(if (string-lessp profile2 profile1)
|
||||
(list profile1 profile2 "added to")
|
||||
(list profile2 profile1 "removed from"))
|
||||
(message "%s %s profile '%s' comparing with profile '%s'."
|
||||
str-beg str-action new old))))
|
||||
|
||||
(defun guix-result-message (profile entries entry-type
|
||||
search-type search-vals)
|
||||
"Display an appropriate message after displaying ENTRIES."
|
||||
(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)))
|
||||
(if (functionp fun-or-count-spec)
|
||||
(funcall fun-or-count-spec profile entries search-vals)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; 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.
|
||||
|
||||
|
@ -25,6 +26,10 @@
|
|||
(expand-file-name "~/.guix-profile")
|
||||
"User profile.")
|
||||
|
||||
(defvar guix-system-profile
|
||||
(concat guix-config-state-directory "/profiles/system")
|
||||
"System profile.")
|
||||
|
||||
(defvar guix-default-profile
|
||||
(concat guix-config-state-directory
|
||||
"/profiles/per-user/"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; 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.
|
||||
|
||||
|
@ -78,6 +78,18 @@ Each element from GENERATIONS is a generation number."
|
|||
'switch-to-generation* profile generation)
|
||||
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'
|
||||
|
||||
|
@ -115,8 +127,9 @@ Each element from GENERATIONS is a generation number."
|
|||
(lambda (btn)
|
||||
(guix-buffer-get-display-entries
|
||||
'list guix-package-list-type
|
||||
(list (guix-ui-current-profile)
|
||||
'generation (button-get btn 'number))
|
||||
(list (guix-generation-current-packages-profile
|
||||
(button-get btn 'number))
|
||||
'installed)
|
||||
'add))
|
||||
"Show installed packages for this generation"
|
||||
'number number)
|
||||
|
@ -190,8 +203,8 @@ VAL is a boolean value."
|
|||
"List installed packages for the generation at point."
|
||||
(interactive)
|
||||
(guix-package-get-display
|
||||
(guix-ui-current-profile)
|
||||
'generation (guix-list-current-id)))
|
||||
(guix-generation-current-packages-profile (guix-list-current-id))
|
||||
'installed))
|
||||
|
||||
(defun guix-generation-list-generations-to-compare ()
|
||||
"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")
|
||||
(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 ()
|
||||
"List package outputs added to the latest marked generation.
|
||||
If 2 generations are marked with \\[guix-list-mark], display
|
||||
|
@ -209,8 +227,8 @@ installed in the other one."
|
|||
(guix-buffer-get-display-entries
|
||||
'list 'output
|
||||
(cl-list* (guix-ui-current-profile)
|
||||
'generation-diff
|
||||
(reverse (guix-generation-list-generations-to-compare)))
|
||||
'profile-diff
|
||||
(reverse (guix-generation-list-profiles-to-compare)))
|
||||
'add))
|
||||
|
||||
(defun guix-generation-list-show-removed-packages ()
|
||||
|
@ -222,8 +240,8 @@ installed in the other one."
|
|||
(guix-buffer-get-display-entries
|
||||
'list 'output
|
||||
(cl-list* (guix-ui-current-profile)
|
||||
'generation-diff
|
||||
(guix-generation-list-generations-to-compare))
|
||||
'profile-diff
|
||||
(guix-generation-list-profiles-to-compare))
|
||||
'add))
|
||||
|
||||
(defun guix-generation-list-compare (diff-fun gen-fun)
|
||||
|
@ -324,14 +342,13 @@ performance."
|
|||
"Width of an output name \"column\".
|
||||
This variable is used in auxiliary buffers for comparing generations.")
|
||||
|
||||
(defun guix-generation-packages (profile generation)
|
||||
"Return a list of sorted packages installed in PROFILE's GENERATION.
|
||||
(defun guix-generation-packages (profile)
|
||||
"Return a list of sorted packages installed in PROFILE.
|
||||
Each element of the list is a list of the package specification
|
||||
and its store path."
|
||||
(let ((names+paths (guix-eval-read
|
||||
(guix-make-guile-expression
|
||||
'generation-package-specifications+paths
|
||||
profile generation))))
|
||||
'profile->specifications+paths profile))))
|
||||
(sort names+paths
|
||||
(lambda (a b)
|
||||
(string< (car a) (car b))))))
|
||||
|
@ -360,8 +377,8 @@ Use the full PROFILE file name."
|
|||
(indent-to guix-generation-output-name-width 2)
|
||||
(insert path "\n"))
|
||||
|
||||
(defun guix-generation-insert-packages (buffer profile generation)
|
||||
"Insert package outputs installed in PROFILE's GENERATION in BUFFER."
|
||||
(defun guix-generation-insert-packages (buffer profile)
|
||||
"Insert package outputs installed in PROFILE in BUFFER."
|
||||
(with-current-buffer buffer
|
||||
(setq buffer-read-only nil
|
||||
indent-tabs-mode nil)
|
||||
|
@ -369,9 +386,9 @@ Use the full PROFILE file name."
|
|||
(mapc (lambda (name+path)
|
||||
(guix-generation-insert-package
|
||||
(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.
|
||||
Create the buffer if needed."
|
||||
(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)
|
||||
(get-buffer 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))))
|
||||
|
||||
(defun guix-profile-generation-manifest-file (generation)
|
||||
"Return the file name of a GENERATION's manifest.
|
||||
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)
|
||||
"Insert GENERATION's package outputs in a buffer and return it.
|
||||
GENERATION is a generation number of the current profile."
|
||||
(guix-generation-packages-buffer (guix-ui-current-profile)
|
||||
generation))
|
||||
generation
|
||||
(guix-system-generation?)))
|
||||
|
||||
|
||||
;;; Interactive commands
|
||||
|
|
|
@ -349,6 +349,10 @@ formatted with this string, an action button is inserted.")
|
|||
'name (button-label btn))
|
||||
'add)))
|
||||
|
||||
(define-button-type 'guix-package-heading
|
||||
:supertype 'guix-package-name
|
||||
'face 'guix-package-info-heading)
|
||||
|
||||
(define-button-type 'guix-package-source
|
||||
:supertype 'guix
|
||||
'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."
|
||||
(guix-insert-button
|
||||
(guix-package-entry->name-specification entry)
|
||||
'guix-package-name
|
||||
'face 'guix-package-info-heading))
|
||||
'guix-package-heading))
|
||||
|
||||
(defun guix-package-info-insert-systems (systems entry)
|
||||
"Insert supported package SYSTEMS at point."
|
||||
|
@ -909,15 +912,15 @@ See `guix-package-info-type'."
|
|||
"A history of minibuffer prompts.")
|
||||
|
||||
;;;###autoload
|
||||
(defun guix-search-by-name (name &optional profile)
|
||||
"Search for Guix packages by NAME.
|
||||
(defun guix-packages-by-name (name &optional profile)
|
||||
"Display Guix packages with NAME.
|
||||
NAME is a string with name specification. It may optionally contain
|
||||
a version number. Examples: \"guile\", \"guile-2.0.11\".
|
||||
|
||||
If PROFILE is nil, use `guix-current-profile'.
|
||||
Interactively with prefix, prompt for PROFILE."
|
||||
(interactive
|
||||
(list (read-string "Package name: " nil 'guix-package-search-history)
|
||||
(list (guix-read-package-name)
|
||||
(guix-ui-read-profile)))
|
||||
(guix-package-get-display profile 'name name))
|
||||
|
||||
|
@ -935,6 +938,17 @@ Interactively with prefix, prompt for PROFILE."
|
|||
(guix-package-get-display profile 'regexp regexp
|
||||
(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
|
||||
(defun guix-installed-packages (&optional profile)
|
||||
"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/datamash.scm \
|
||||
gnu/packages/datastructures.scm \
|
||||
gnu/packages/dav.scm \
|
||||
gnu/packages/dc.scm \
|
||||
gnu/packages/debug.scm \
|
||||
gnu/packages/dejagnu.scm \
|
||||
|
@ -89,6 +90,7 @@ GNU_SYSTEM_MODULES = \
|
|||
gnu/packages/djvu.scm \
|
||||
gnu/packages/dns.scm \
|
||||
gnu/packages/docbook.scm \
|
||||
gnu/packages/docker.scm \
|
||||
gnu/packages/doxygen.scm \
|
||||
gnu/packages/dunst.scm \
|
||||
gnu/packages/dvtm.scm \
|
||||
|
@ -417,7 +419,6 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/avidemux-install-to-lib.patch \
|
||||
gnu/packages/patches/avrdude-fix-libusb.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/binutils-ld-new-dtags.patch \
|
||||
gnu/packages/patches/binutils-loongson-workaround.patch \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -96,6 +96,11 @@ contains module names, not actual file names."
|
|||
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
|
||||
#:key (lookup-module dot-ko))
|
||||
"Return the topologically-sorted list of file names of the modules depended
|
||||
|
@ -130,6 +135,22 @@ LOOKUP-MODULE to the module name."
|
|||
(((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)
|
||||
"Return #t if MODULE is already loaded. MODULE must be a Linux module name,
|
||||
not a file name."
|
||||
|
@ -138,29 +159,44 @@ not a file name."
|
|||
(define* (load-linux-module* file
|
||||
#:key
|
||||
(recursive? #t)
|
||||
(lookup-module dot-ko))
|
||||
"Load Linux module from FILE, the name of a `.ko' file. When RECURSIVE? is
|
||||
true, load its dependencies first (à la 'modprobe'.) The actual files
|
||||
containing modules depended on are obtained by calling LOOKUP-MODULE with the
|
||||
module name."
|
||||
(lookup-module dot-ko)
|
||||
(black-list (module-black-list)))
|
||||
"Load Linux module from FILE, the name of a '.ko' file; return true on
|
||||
success, false otherwise. When RECURSIVE? is true, load its dependencies
|
||||
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)
|
||||
;; TODO: Use 'finit_module' to reduce memory usage.
|
||||
(call-with-input-file file get-bytevector-all))
|
||||
|
||||
(when recursive?
|
||||
(for-each (cut load-linux-module* <> #:lookup-module lookup-module)
|
||||
(map lookup-module (module-dependencies file))))
|
||||
(define (black-listed? module)
|
||||
(let ((result (member module black-list)))
|
||||
(when result
|
||||
(format (current-module-debugging-port)
|
||||
"not loading module '~a' because it's black-listed~%"
|
||||
module))
|
||||
result))
|
||||
|
||||
(format (current-module-debugging-port)
|
||||
"loading Linux module from '~a'...~%" file)
|
||||
(define (load-dependencies file)
|
||||
(let ((dependencies (module-dependencies file)))
|
||||
(every (cut load-linux-module* <> #:lookup-module lookup-module)
|
||||
(map lookup-module dependencies))))
|
||||
|
||||
(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.
|
||||
(unless (and recursive? (= EEXIST (system-error-errno args)))
|
||||
(apply throw args)))))
|
||||
(and (not (black-listed? (file-name->module-name file)))
|
||||
(or (not recursive?)
|
||||
(load-dependencies file))
|
||||
(begin
|
||||
(format (current-module-debugging-port)
|
||||
"loading Linux module from '~a'...~%" file)
|
||||
|
||||
(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
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; 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 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
|
||||
;;; 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
|
||||
limits.")
|
||||
(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
|
||||
;;; 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 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
|
@ -603,7 +603,7 @@ errors at the end of reads.")
|
|||
(define-public bowtie
|
||||
(package
|
||||
(name "bowtie")
|
||||
(version "2.2.4")
|
||||
(version "2.2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"15dnbqippwvhyh9zqjhaxkabk7lm1xbh1nvar1x4b5kwm117zijn"))
|
||||
"1ssfvymxfrap6f9pf86s9bvsbqdgka4abr2r7j3mgr4w1l289m86"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(substitute* "Makefile"
|
||||
(("^CC = .*$") "CC = gcc")
|
||||
(("^CPP = .*$") "CPP = g++")
|
||||
;; replace BUILD_HOST and BUILD_TIME for deterministic build
|
||||
(("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
|
||||
(("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))
|
||||
(patches (list (search-patch "bowtie-fix-makefile.patch")))))
|
||||
(("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)
|
||||
("perl-clone" ,perl-clone)
|
||||
("perl-test-deep" ,perl-test-deep)
|
||||
("perl-test-simple" ,perl-test-simple)
|
||||
("python" ,python-2)))
|
||||
("python" ,python-2)
|
||||
("tbb" ,tbb)))
|
||||
(arguments
|
||||
'(#:make-flags '("allall")
|
||||
'(#:make-flags
|
||||
(list "allall"
|
||||
"WITH_TBB=1"
|
||||
(string-append "prefix=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(alist-delete
|
||||
'configure
|
||||
(alist-replace
|
||||
'install
|
||||
'check
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file bin))
|
||||
(find-files "." "bowtie2.*"))))
|
||||
(alist-replace
|
||||
'check
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(system* "perl"
|
||||
"scripts/test/simple_tests.pl"
|
||||
"--bowtie2=./bowtie2"
|
||||
"--bowtie2-build=./bowtie2-build"))
|
||||
%standard-phases)))))
|
||||
(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")
|
||||
(synopsis "Fast and sensitive nucleotide sequence read aligner")
|
||||
(description
|
||||
|
@ -2079,7 +2073,7 @@ that a read originated from a particular isoform.")
|
|||
(define-public orfm
|
||||
(package
|
||||
(name "orfm")
|
||||
(version "0.4.1")
|
||||
(version "0.5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -2087,12 +2081,16 @@ that a read originated from a particular isoform.")
|
|||
version "/orfm-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05fmw145snk646ly076zby0fjav0k7ysbclck5d4s9pmgcfpijc2"))))
|
||||
"0vb6d771gl4mix8bwx919x5ayy9pkj44n7ki336nz3rz2rx4c7gk"))))
|
||||
(build-system gnu-build-system)
|
||||
(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")
|
||||
(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.")
|
||||
(home-page "https://github.com/wwood/OrfM")
|
||||
(license license:lgpl3+)))
|
||||
|
@ -2458,18 +2456,21 @@ viewer.")
|
|||
(sha256
|
||||
(base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments samtools)
|
||||
((#:tests? tests) #f) ;no "check" target
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append
|
||||
(assoc-ref outputs "out") "/bin")))
|
||||
(mkdir-p bin)
|
||||
(copy-file "samtools"
|
||||
(string-append bin "/samtools")))))
|
||||
(delete 'patch-tests)))))))
|
||||
`(#:tests? #f ;no "check" target
|
||||
,@(substitute-keyword-arguments (package-arguments samtools)
|
||||
((#:make-flags flags)
|
||||
`(cons "LIBCURSES=-lncurses" ,flags))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append
|
||||
(assoc-ref outputs "out") "/bin")))
|
||||
(mkdir-p bin)
|
||||
(copy-file "samtools"
|
||||
(string-append bin "/samtools")))))
|
||||
(delete 'patch-tests)
|
||||
(delete 'configure))))))))
|
||||
|
||||
(define-public mosaik
|
||||
(let ((commit "5c25216d"))
|
||||
|
@ -3841,6 +3842,8 @@ extracting the desired features in a convenient format.")
|
|||
(properties
|
||||
`((upstream-name . "GO.db")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-annotationdbi" ,r-annotationdbi)))
|
||||
(home-page "http://bioconductor.org/packages/GO.db")
|
||||
(synopsis "Annotation maps describing the entire Gene Ontology")
|
||||
(description
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,9 +22,16 @@
|
|||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build utils)
|
||||
#: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 perl))
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python))
|
||||
|
||||
(define-public libical
|
||||
(package
|
||||
|
@ -50,3 +58,70 @@
|
|||
"Libical is an implementation of the iCalendar protocols and protocol
|
||||
data units.")
|
||||
(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 © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; 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 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
|
@ -205,7 +205,7 @@ Language.")
|
|||
(define-public mariadb
|
||||
(package
|
||||
(name "mariadb")
|
||||
(version "10.0.20")
|
||||
(version "10.0.23")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://downloads.mariadb.org/f/"
|
||||
|
@ -213,7 +213,7 @@ Language.")
|
|||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ywb730l68mxvmpik1x2ndbdaaks6dmc17pxspspm5wlqxinjkrs"))))
|
||||
"0x52gfxk7zr84al83x62s4gh7mbngahy1svafdkbwd18i5lysvhm"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -27,7 +28,7 @@
|
|||
(define-public datamash
|
||||
(package
|
||||
(name "datamash")
|
||||
(version "1.0.7")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -35,7 +36,7 @@
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y49zaadzirghy4xfajvsv1f5x805cjp61z212ggipx5243302qs"))))
|
||||
"1c2bj0jrm4fxkf0ykxkzgyk1l9s0idqm8rbzmk3n9pgldb4arrd9"))))
|
||||
(native-inputs
|
||||
`(("which" ,which) ;for tests
|
||||
("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 © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.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 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
|
@ -324,7 +324,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
|||
(define-public magit
|
||||
(package
|
||||
(name "magit")
|
||||
(version "2.3.1")
|
||||
(version "2.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -332,7 +332,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
|||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wnx034adkwhbsydd10il2099hpzz351kp39sri8s1yd43f795gf"))))
|
||||
"1wbam4l36061mj79qlgzrv4xbzhk2dk6gnv45610zwfnf24ikdsp"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("texinfo" ,texinfo)
|
||||
("emacs" ,emacs-no-x)))
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
||||
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; 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 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;;
|
||||
|
@ -1180,7 +1180,7 @@ is programmed in Haskell.")
|
|||
(define-public manaplus
|
||||
(package
|
||||
(name "manaplus")
|
||||
(version "1.5.12.5")
|
||||
(version "1.6.1.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1188,7 +1188,7 @@ is programmed in Haskell.")
|
|||
version "/manaplus-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kmd743q40v82221wj8b09n30lqiwl7096v3m7ki3ynsgszkm326"))))
|
||||
"1vrsjvdbdzbnqmr8sp110b2d93kp5yfnifsn6zjm60kdvvbphdir"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
|
|
@ -751,22 +751,39 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
|
|||
(define-public glade3
|
||||
(package
|
||||
(name "glade")
|
||||
(version "3.8.5")
|
||||
(version "3.18.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "3-" version ".tar.xz"))
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d97df5pfkrh5670a98r3d3w8zlbh1jcax6cvq6j6a20vzjgd9aq"))))
|
||||
"0lk4nvd5s8px9i0pbq7bncikgn2lpx7vjh787d3cvzpvwx3cxnzc"))))
|
||||
(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
|
||||
`(("gtk+" ,gtk+-2)
|
||||
`(("gtk+" ,gtk+)
|
||||
("libxml2" ,libxml2)))
|
||||
(native-inputs
|
||||
`(("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)))
|
||||
(home-page "https://glade.gnome.org")
|
||||
(synopsis "GTK+ rapid application development tool")
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
|
@ -218,8 +219,9 @@ compatible to GNU Pth.")
|
|||
("libksba" ,libksba)
|
||||
("npth" ,npth)
|
||||
("openldap" ,openldap)
|
||||
("zlib" ,zlib)
|
||||
("readline" ,readline)))
|
||||
("readline" ,readline)
|
||||
("sqlite" ,sqlite)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-cons-before
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;;
|
||||
;;; 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)
|
||||
(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).
|
||||
|
|
|
@ -462,11 +462,7 @@ for path in [path for path in sys.path if 'site-packages' in path]: site.addsite
|
|||
("pygtk" ,python2-pygtk)
|
||||
("gettext" ,gnu-gettext)
|
||||
("gtk" ,gtk+)
|
||||
;; TODO: Lilypond is optional. Produces errors at build time:
|
||||
;; Drawing systems...Error: /undefinedresult in --glyphshow--
|
||||
;; Fontconfig is needed to fix one of the errors, but other similar
|
||||
;; errors remain.
|
||||
;;("lilypond" ,lilypond)
|
||||
("lilypond" ,lilypond)
|
||||
("librsvg" ,librsvg) ; needed at runtime for icons
|
||||
("libpng" ,libpng) ; needed at runtime for icons
|
||||
;; 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)
|
||||
("libxml2" ,libxml2) ; for tests
|
||||
("ghostscript" ,ghostscript)
|
||||
;;("fontconfig" ,fontconfig) ; only needed with lilypond
|
||||
;;("freetype" ,freetype) ; only needed with lilypond
|
||||
("texinfo" ,texinfo)))
|
||||
(home-page "https://www.gnu.org/software/solfege/")
|
||||
(synopsis "Ear training")
|
||||
|
@ -659,6 +653,16 @@ Laurens Hammond and Don Leslie.")
|
|||
(base32
|
||||
"1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx"))))
|
||||
(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
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("jack" ,jack-1)
|
||||
|
@ -818,14 +822,14 @@ browser.")
|
|||
(define-public drumstick
|
||||
(package
|
||||
(name "drumstick")
|
||||
(version "1.0.1")
|
||||
(version "1.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/drumstick/"
|
||||
version "/drumstick-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mxgix85b2qqs859z91cxik5x0s60dykqiflbj62px9akvf91qdv"))))
|
||||
"0l47gy9yywrc860db5g3wdqg8yc8qdb2lqq6wvw1dfim5j0vbail"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test target
|
||||
|
@ -864,14 +868,15 @@ backends, including ALSA, OSS, Network and FluidSynth.")
|
|||
(define-public vmpk
|
||||
(package
|
||||
(name "vmpk")
|
||||
(version "0.6.1")
|
||||
(version "0.6.2a")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/vmpk/vmpk/"
|
||||
version "/vmpk-" version ".tar.bz2"))
|
||||
(string-drop-right version 1)
|
||||
"/vmpk-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ranldd033bd31m9d2vkbkn9zp1k46xbaysllai2i95rf1nhirqc"))))
|
||||
"0259iikvxnfdiifrh02g8xgcxikrkca4nhd3an8xzx0bd6bk8ifi"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test target
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -23,6 +24,7 @@
|
|||
#:use-module ((guix licenses) #:hide (zlib))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix svn-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
|
@ -36,6 +38,8 @@
|
|||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages texlive)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages lynx)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages ncurses)
|
||||
|
@ -282,14 +286,14 @@ concrete syntax of the language (Quotations, Syntax Extensions).")
|
|||
(define-public hevea
|
||||
(package
|
||||
(name "hevea")
|
||||
(version "2.23")
|
||||
(version "2.28")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://hevea.inria.fr/old/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1f9pj48518ixhjxbviv2zx27v4anp92zgg3x704g1s5cki2w33nv"))))
|
||||
"14fns13wlnpiv9i05841kvi3cq4b9v2sw5x3ff6ziws28q701qnd"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("ocaml" ,ocaml)))
|
||||
|
@ -297,7 +301,12 @@ concrete syntax of the language (Quotations, Syntax Extensions).")
|
|||
`(#:tests? #f ; no test suite
|
||||
#:make-flags (list (string-append "PREFIX=" %output))
|
||||
#: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/")
|
||||
(synopsis "LaTeX to HTML translator")
|
||||
(description
|
||||
|
@ -496,16 +505,65 @@ libpanel, librsvg and quartz.")
|
|||
(version "2.48.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.seas.upenn.edu/~bcpierce/unison/"
|
||||
"download/releases/stable/unison-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10sln52rnnsj213jy3166m0q97qpwnrwl6mm529xfy10x3xkq3gl"))))
|
||||
(method svn-fetch)
|
||||
(uri (svn-reference
|
||||
(url (string-append "https://webdav.seas.upenn.edu/svn/"
|
||||
"unison/branches/"
|
||||
(version-major+minor version)))
|
||||
(revision 535)))
|
||||
(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)
|
||||
(outputs '("out"
|
||||
"doc")) ; 1.9 MiB of documentation
|
||||
(native-inputs
|
||||
`(("ocaml" ,ocaml)))
|
||||
`(("ocaml" ,ocaml)
|
||||
;; For documentation
|
||||
("ghostscript" ,ghostscript)
|
||||
("texlive" ,texlive)
|
||||
("hevea" ,hevea)
|
||||
("lynx" ,lynx)))
|
||||
(arguments
|
||||
`(#:parallel-build? #f
|
||||
#:parallel-tests? #f
|
||||
|
@ -522,7 +580,30 @@ libpanel, librsvg and quartz.")
|
|||
(bin (string-append out "/bin")))
|
||||
(mkdir-p bin)
|
||||
(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/")
|
||||
(synopsis "File synchronizer")
|
||||
(description
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -19,12 +19,14 @@
|
|||
|
||||
(define-module (gnu packages openstack)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix download)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (asl2.0))
|
||||
#:use-module (guix packages))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public python-bandit
|
||||
(package
|
||||
|
@ -302,7 +304,12 @@ portions of your testing code.")
|
|||
(license asl2.0)))
|
||||
|
||||
(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
|
||||
(package
|
||||
|
@ -385,7 +392,12 @@ common features used in Tempest.")
|
|||
(license asl2.0)))
|
||||
|
||||
(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
|
||||
(define-public python-oslo.config
|
||||
|
@ -594,7 +606,9 @@ from the OpenStack project.")
|
|||
(license asl2.0)))
|
||||
|
||||
(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
|
||||
(package
|
||||
|
@ -679,3 +693,134 @@ handling.")
|
|||
|
||||
(define-public python2-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 Ben Woodcroft <donttrustben@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 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;;
|
||||
|
@ -1016,31 +1016,16 @@ doing practical, real world data analysis in Python.")
|
|||
(define-public python-tzlocal
|
||||
(package
|
||||
(name "python-tzlocal")
|
||||
(version "1.1.1")
|
||||
(version "1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pypi.python.org/packages/source/t/"
|
||||
"tzlocal/tzlocal-" version ".zip"))
|
||||
(uri (pypi-uri "tzlocal" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1m3y918c3chf41fwg2bx4w42bqsjzn3dyvvcmwwy13c8gj6zssv9"))))
|
||||
"12wsw2fl3adrqrwghasld57bhqdrzn0crblqrci1p5acd0ni53s3"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("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)))
|
||||
(propagated-inputs `(("python-pytz" ,python-pytz)))
|
||||
(home-page "https://github.com/regebro/tzlocal")
|
||||
(synopsis
|
||||
"Local timezone information for Python")
|
||||
|
@ -1627,18 +1612,18 @@ and many external plugins.")
|
|||
(sha256
|
||||
(base32
|
||||
"1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-coverage" ,python-coverage)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)))
|
||||
(home-page "https://github.com/pytest-dev/pytest-cov")
|
||||
(synopsis "Pytest plugin for measuring coverage")
|
||||
(description
|
||||
"Pytest-cov produces coverage reports. It supports centralised testing and
|
||||
distributed testing in both load and each modes. It also supports coverage
|
||||
of subprocesses.")
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-coverage" ,python-coverage)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)))
|
||||
(home-page "https://github.com/pytest-dev/pytest-cov")
|
||||
(synopsis "Pytest plugin for measuring coverage")
|
||||
(description
|
||||
"Pytest-cov produces coverage reports. It supports centralised testing and
|
||||
distributed testing in both @code{load} and @code{each} modes. It also
|
||||
supports coverage of subprocesses.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-cov
|
||||
|
@ -2136,28 +2121,38 @@ with sensible defaults out of the box.")
|
|||
(package
|
||||
(name "python-wheel")
|
||||
(version "0.26.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "wheel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-jsonschema" ,python-jsonschema)
|
||||
("python-pytest-cov" ,python-pytest-cov)))
|
||||
(home-page "https://bitbucket.org/pypa/wheel/")
|
||||
(synopsis "Built-package format for Python")
|
||||
(description
|
||||
"A wheel is a ZIP-format archive with a specially formatted filename and the
|
||||
.whl extension. It is designed to contain all the files for a PEP 376
|
||||
compatible install in a way that is very close to the on-disk format.")
|
||||
(license license:expat)))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "wheel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-jsonschema" ,python-jsonschema)
|
||||
("python-pytest-cov" ,python-pytest-cov)))
|
||||
(home-page "https://bitbucket.org/pypa/wheel/")
|
||||
(synopsis "Format for built Python packages")
|
||||
(description
|
||||
"A wheel is a ZIP-format archive with a specially formatted filename and
|
||||
the @code{.whl} extension. It is designed to contain all the files for a PEP
|
||||
376 compatible install in a way that is very close to the on-disk format. Many
|
||||
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
|
||||
(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
|
||||
(package
|
||||
|
@ -2184,13 +2179,54 @@ compatible install in a way that is very close to the on-disk format.")
|
|||
than Python’s urllib2 library.")
|
||||
(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
|
||||
(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
|
||||
(package
|
||||
(name "python-jsonschema")
|
||||
(version "2.4.0")
|
||||
(version "2.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -2199,10 +2235,11 @@ than Python’s urllib2 library.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yik3031ziygvq66rj3mzfqdgxj29sg1bkfc46wsgi7lnbqs560j"))))
|
||||
"0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("python-setuptools" ,python-setuptools)))
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-vcversioner" ,python-vcversioner)))
|
||||
(home-page "http://github.com/Julian/jsonschema")
|
||||
(synopsis "Implementation of JSON Schema for Python")
|
||||
(description
|
||||
|
@ -2210,7 +2247,11 @@ than Python’s urllib2 library.")
|
|||
(license license:expat)))
|
||||
|
||||
(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
|
||||
(package
|
||||
|
@ -4266,11 +4307,13 @@ computing.")
|
|||
,@(alist-delete "python-terminado"
|
||||
(package-propagated-inputs ipython))))
|
||||
(inputs
|
||||
`(("python2-mock" ,python2-mock)
|
||||
`(("python2-jsonschema" ,python2-jsonschema)
|
||||
("python2-mock" ,python2-mock)
|
||||
("python2-matplotlib" ,python2-matplotlib)
|
||||
("python2-numpy" ,python2-numpy)
|
||||
("python2-requests" ,python2-requests)
|
||||
,@(fold alist-delete (package-inputs ipython)
|
||||
'("python-matplotlib" "python-numpy")))))))
|
||||
'("python-jsonschema" "python-matplotlib" "python-numpy" "python-requests")))))))
|
||||
|
||||
(define-public python-isodate
|
||||
(package
|
||||
|
@ -4341,13 +4384,22 @@ and written in Python.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/u/urwid/urwid-"
|
||||
version ".tar.gz"))
|
||||
(uri (pypi-uri "urwid" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18mb0yy94sjc434rd61m2sfnw27sa0nyrszpj5a9r9zh7fnlzw19"))))
|
||||
(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)))
|
||||
(home-page "http://urwid.org")
|
||||
(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
|
||||
(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
|
||||
(package
|
||||
(name "python2-ipaddress")
|
||||
|
@ -6622,3 +6700,557 @@ the standard library.")
|
|||
|
||||
(define-public python2-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
|
||||
;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,14 +31,14 @@
|
|||
(define-public rsync
|
||||
(package
|
||||
(name "rsync")
|
||||
(version "3.1.0")
|
||||
(version "3.1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://rsync.samba.org/ftp/rsync/src/rsync-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kirw8wglqvwi1v8bwxp373g03xg857h59j5k3mmgff9gzvj7jl1"))))
|
||||
"1hm1q04hz15509f0p9bflw4d6jzfvpm1d36dxjwihk1wzakn5ypc"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)
|
||||
("acl" ,acl)))
|
||||
|
|
|
@ -2978,3 +2978,67 @@ methods, a @code{Mixin} module for including color methods, a @code{Logger}, a
|
|||
device.")
|
||||
(home-page "http://rubyworks.github.io/ansi")
|
||||
(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
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -111,7 +111,7 @@ a server that supports the SSH-2 protocol.")
|
|||
(define-public openssh
|
||||
(package
|
||||
(name "openssh")
|
||||
(version "7.1p1")
|
||||
(version "7.1p2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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/"
|
||||
tail))))
|
||||
(sha256 (base32
|
||||
"0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw"))))
|
||||
"1gbbvszz74lkc7b2mqr3ccgpm65zj0k5h7a2ssh0c7pjvhjg0xfx"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("groff" ,groff)
|
||||
("openssl" ,openssl)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -1676,6 +1676,8 @@ worker processes and collect and return the results on the master.")
|
|||
"0s9kab5khk7daqf6nfp1wm1qnhkssnnwnymisfwyk3kz4q5maqfz"))))
|
||||
(properties
|
||||
`((upstream-name . "SparseM")))
|
||||
(inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html")
|
||||
(synopsis "Sparse linear algebra")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -28,7 +28,7 @@
|
|||
(define-public sxiv
|
||||
(package
|
||||
(name "sxiv")
|
||||
(version "1.3.1")
|
||||
(version "1.3.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -37,7 +37,7 @@
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03hxy5ff7xbs15rhlbpgx8xmvmpjlffp0m4528975hg16sqa2c4s"))))
|
||||
"0lxnd33gaw4drhdwbkk94wzrjyhh64d57jq2ps7ffmqgizg6hlwz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages openstack)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#: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,
|
||||
Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
|
||||
(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, 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; 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 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; 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
|
||||
(package
|
||||
(name "mpv")
|
||||
(version "0.14.0")
|
||||
(version "0.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -700,14 +700,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cqjwl0xyg0sv1jflipfkvqjg32y0kqfh4gc3lyhqgv0hgs3fa84"))
|
||||
"1p0b83048g66icpz5n66v3k4ldr1z0rmg5d2rr7kcbspm1xj2cbx"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system waf-build-system)
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python-docutils" ,python-docutils)))
|
||||
;; Missing features: libguess, Wayland, VDPAU, V4L2
|
||||
;; Missing features: libguess, Wayland, V4L2
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("enca" ,enca)
|
||||
|
@ -724,6 +724,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
("libdvdnav" ,libdvdnav)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libva" ,libva)
|
||||
("libvdpau" ,libvdpau)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("libxinerama" ,libxinerama)
|
||||
|
@ -754,6 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(copy-file (assoc-ref inputs "waf") "waf")
|
||||
(setenv "CC" "gcc"))))
|
||||
#:configure-flags (list "--enable-gpl3" "--enable-zsh-comp")
|
||||
;; No check function defined.
|
||||
#:tests? #f))
|
||||
(home-page "http://mpv.io/")
|
||||
|
@ -1299,3 +1301,53 @@ from many input sources such as webcams, X11 (for screencasting), PulseAudio,
|
|||
and JACK.")
|
||||
(home-page "https://obsproject.com")
|
||||
(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-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
|
||||
%setuid-programs
|
||||
%base-packages
|
||||
|
@ -709,4 +717,37 @@ this file is the reconstruction of GRUB menu entries for old configurations."
|
|||
#$(operating-system-kernel-arguments os))
|
||||
(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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -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.
|
||||
`("ahci" ;for SATA controllers
|
||||
"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
|
||||
,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system))
|
||||
'("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)))
|
||||
(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)
|
||||
"Return the `package' s-expression for a CRAN package from the alist META,
|
||||
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"))
|
||||
(version (assoc-ref package "version"))
|
||||
(hash (assoc-ref package "sha"))
|
||||
(description (assoc-ref package "info"))
|
||||
(description (beautify-description
|
||||
(assoc-ref package "info")))
|
||||
(home-page (assoc-ref package "homepage_uri"))
|
||||
(dependencies (map (lambda (dep)
|
||||
(let ((name (assoc-ref dep "name")))
|
||||
|
|
|
@ -37,7 +37,8 @@
|
|||
string->license
|
||||
license->symbol
|
||||
|
||||
snake-case))
|
||||
snake-case
|
||||
beautify-description))
|
||||
|
||||
(define (factorize-uri uri version)
|
||||
"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
|
||||
with dashes."
|
||||
(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
|
||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -189,39 +190,6 @@ the ownership of '~a' may be incorrect!~%")
|
|||
(mwhen grub?
|
||||
(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.
|
||||
|
@ -285,22 +253,24 @@ it atomically, and then run OS's activation script."
|
|||
"Return a list of 'menu-entry' for the generations of PROFILE."
|
||||
(define (system->grub-entry system number time)
|
||||
(unless-file-not-found
|
||||
(let ((file (string-append system "/parameters")))
|
||||
(match (call-with-input-file file read-boot-parameters)
|
||||
(($ <boot-parameters> label root kernel kernel-arguments)
|
||||
(menu-entry
|
||||
(label (string-append label " (#"
|
||||
(number->string number) ", "
|
||||
(seconds->string time) ")"))
|
||||
(linux kernel)
|
||||
(linux-arguments
|
||||
(cons* (string-append "--root=" root)
|
||||
#~(string-append "--system=" #$system)
|
||||
#~(string-append "--load=" #$system "/boot")
|
||||
kernel-arguments))
|
||||
(initrd #~(string-append #$system "/initrd"))))
|
||||
(#f ;invalid format
|
||||
#f)))))
|
||||
(let* ((file (string-append system "/parameters"))
|
||||
(params (call-with-input-file file
|
||||
read-boot-parameters))
|
||||
(label (boot-parameters-label params))
|
||||
(root (boot-parameters-root-device params))
|
||||
(kernel (boot-parameters-kernel params))
|
||||
(kernel-arguments (boot-parameters-kernel-arguments params)))
|
||||
(menu-entry
|
||||
(label (string-append label " (#"
|
||||
(number->string number) ", "
|
||||
(seconds->string time) ")"))
|
||||
(linux kernel)
|
||||
(linux-arguments
|
||||
(cons* (string-append "--root=" root)
|
||||
#~(string-append "--system=" #$system)
|
||||
#~(string-append "--load=" #$system "/boot")
|
||||
kernel-arguments))
|
||||
(initrd #~(string-append #$system "/initrd"))))))
|
||||
|
||||
(let* ((numbers (generation-numbers profile))
|
||||
(systems (map (cut generation-file-name profile <>)
|
||||
|
@ -366,18 +336,17 @@ list of services."
|
|||
(unless (zero? number)
|
||||
(let* ((generation (generation-file-name profile number))
|
||||
(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)
|
||||
(format #t (_ " file name: ~a~%") generation)
|
||||
(format #t (_ " canonical file name: ~a~%") (readlink* generation))
|
||||
(match params
|
||||
(($ <boot-parameters> label root kernel)
|
||||
;; TRANSLATORS: Please preserve the two-space indentation.
|
||||
(format #t (_ " label: ~a~%") label)
|
||||
(format #t (_ " root device: ~a~%") root)
|
||||
(format #t (_ " kernel: ~a~%") kernel))
|
||||
(_
|
||||
#f)))))
|
||||
;; TRANSLATORS: Please preserve the two-space indentation.
|
||||
(format #t (_ " label: ~a~%") label)
|
||||
(format #t (_ " root device: ~a~%") root)
|
||||
(format #t (_ " kernel: ~a~%") kernel))))
|
||||
|
||||
(define* (list-generations pattern #:optional (profile %system-profile))
|
||||
"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
|
||||
|
||||
# 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.
|
||||
#
|
||||
|
@ -31,7 +31,6 @@ unset CDPATH
|
|||
|
||||
if [ -x "@abs_top_builddir@/guix-daemon" ]
|
||||
then
|
||||
NIX_SETUID_HELPER="@abs_top_builddir@/nix-setuid-helper" # normally unused
|
||||
NIX_STORE_DIR="@GUIX_TEST_ROOT@/store"
|
||||
|
||||
# Do that because store.scm calls `canonicalize-path' on it.
|
||||
|
@ -87,10 +86,10 @@ then
|
|||
# For the (guix import snix) tests.
|
||||
NIXPKGS="@NIXPKGS@"
|
||||
|
||||
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \
|
||||
NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR \
|
||||
NIX_ROOT_FINDER NIX_SETUID_HELPER GUIX_BINARY_SUBSTITUTE_URL \
|
||||
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
||||
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR \
|
||||
NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR \
|
||||
NIX_ROOT_FINDER GUIX_BINARY_SUBSTITUTE_URL \
|
||||
GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES \
|
||||
NIX_CONF_DIR XDG_CACHE_HOME NIXPKGS
|
||||
|
||||
# Launch the daemon without chroot support because is may be
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -472,6 +472,22 @@
|
|||
(build-derivations %store (list drv))
|
||||
#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
|
||||
(false-if-exception
|
||||
|
|
Reference in New Issue