Merge branch 'master' into core-updates

This commit is contained in:
Mark H Weaver 2019-08-22 15:53:27 -04:00
commit 893c2df00d
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
81 changed files with 2651 additions and 464 deletions

View File

@ -25514,6 +25514,7 @@ evaluates to. As an example, @var{file} might contain a definition like this:
(environment managed-host-environment-type) (environment managed-host-environment-type)
(configuration (machine-ssh-configuration (configuration (machine-ssh-configuration
(host-name "localhost") (host-name "localhost")
(user "alice")
(identity "./id_rsa") (identity "./id_rsa")
(port 2222))))) (port 2222)))))
@end example @end example
@ -25546,6 +25547,15 @@ accepts store items it receives from the coordinator:
# guix archive --authorize < coordinator-public-key.txt # guix archive --authorize < coordinator-public-key.txt
@end example @end example
@code{user}, in this example, specifies the name of the user account to log in
as to perform the deployment. Its default value is @code{root}, but root
login over SSH may be forbidden in some cases. To work around this,
@command{guix deploy} can log in as an unprivileged user and employ
@code{sudo} to escalate privileges. This will only work if @code{sudo} is
currently installed on the remote and can be invoked non-interactively as
@code{user}. That is: the line in @code{sudoers} granting @code{user} the
ability to use @code{sudo} must contain the @code{NOPASSWD} tag.
@deftp {Data Type} machine @deftp {Data Type} machine
This is the data type representing a single machine in a heterogeneous Guix This is the data type representing a single machine in a heterogeneous Guix
deployment. deployment.
@ -25573,6 +25583,14 @@ with an @code{environment} of @code{managed-host-environment-type}.
@table @asis @table @asis
@item @code{host-name} @item @code{host-name}
@item @code{build-locally?} (default: @code{#t})
If false, system derivations will be built on the machine being deployed to.
@item @code{system}
The Nix system type describing the architecture of the machine being deployed
to. This should look something like ``x86_64-linux''.
@item @code{authorize?} (default: @code{#t})
If true, the coordinator's signing key will be added to the remote's ACL
keyring.
@item @code{port} (default: @code{22}) @item @code{port} (default: @code{22})
@item @code{user} (default: @code{"root"}) @item @code{user} (default: @code{"root"})
@item @code{identity} (default: @code{#f}) @item @code{identity} (default: @code{#f})

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -93,7 +94,7 @@ C_INCLUDE_PATH et al."
;; We're building the sans-libc cross-compiler, so nothing to do. ;; We're building the sans-libc cross-compiler, so nothing to do.
#t))) #t)))
(define* (set-cross-path/mingw #:key inputs #:allow-other-keys) (define* (set-cross-path/mingw #:key inputs target #:allow-other-keys)
"Add the cross MinGW headers to CROSS_C_*_INCLUDE_PATH, and remove them from "Add the cross MinGW headers to CROSS_C_*_INCLUDE_PATH, and remove them from
C_*INCLUDE_PATH." C_*INCLUDE_PATH."
(let ((libc (assoc-ref inputs "libc")) (let ((libc (assoc-ref inputs "libc"))
@ -110,7 +111,7 @@ C_*INCLUDE_PATH."
(if libc (if libc
(let ((cpath (string-append libc "/include" (let ((cpath (string-append libc "/include"
":" libc "/i686-w64-mingw32/include"))) ":" libc "/" target "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
%gcc-cross-include-paths)) %gcc-cross-include-paths))
@ -140,7 +141,7 @@ C_*INCLUDE_PATH."
(when libc (when libc
(setenv "CROSS_LIBRARY_PATH" (setenv "CROSS_LIBRARY_PATH"
(string-append libc "/lib" (string-append libc "/lib"
":" libc "/i686-w64-mingw32/lib"))) ":" libc "/" target "/lib")))
(setenv "CPP" (string-append gcc "/bin/cpp")) (setenv "CPP" (string-append gcc "/bin/cpp"))
(for-each (lambda (var) (for-each (lambda (var)
@ -166,8 +167,12 @@ C_*INCLUDE_PATH."
a target triplet." a target triplet."
(modify-phases phases (modify-phases phases
(add-before 'configure 'set-cross-path (add-before 'configure 'set-cross-path
(if (string-contains target "mingw") ;; This mingw32 target checking logic should match that of target-mingw?
set-cross-path/mingw ;; in (guix utils), but (guix utils) is too large too copy over to the
;; build side entirely and for now we have no way to select variables to
;; copy over. See (gnu packages cross-base) for more details.
(if (string-suffix? "-mingw32" target)
(cut set-cross-path/mingw #:target target <...>)
set-cross-path)) set-cross-path))
(add-after 'install 'make-cross-binutils-visible (add-after 'install 'make-cross-binutils-visible
(cut make-cross-binutils-visible #:target target <...>)) (cut make-cross-binutils-visible #:target target <...>))

View File

@ -471,10 +471,6 @@ upon error."
mounts) mounts)
"ext4")) "ext4"))
(define (lookup-module name)
(string-append linux-module-directory "/"
(ensure-dot-ko name)))
(display "Welcome, this is GNU's early boot Guile.\n") (display "Welcome, this is GNU's early boot Guile.\n")
(display "Use '--repl' for an initrd REPL.\n\n") (display "Use '--repl' for an initrd REPL.\n\n")
@ -489,9 +485,8 @@ upon error."
(start-repl)) (start-repl))
(display "loading kernel modules...\n") (display "loading kernel modules...\n")
(for-each (cut load-linux-module* <> (load-linux-modules-from-directory linux-modules
#:lookup-module lookup-module) linux-module-directory)
(map lookup-module linux-modules))
(when keymap-file (when keymap-file
(let ((status (system* "loadkeys" keymap-file))) (let ((status (system* "loadkeys" keymap-file)))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -30,8 +31,10 @@
#:use-module (ice-9 vlist) #:use-module (ice-9 vlist)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:autoload (ice-9 pretty-print) (pretty-print)
#:export (dot-ko #:export (dot-ko
ensure-dot-ko ensure-dot-ko
module-formal-name
module-aliases module-aliases
module-dependencies module-dependencies
module-soft-dependencies module-soft-dependencies
@ -42,13 +45,18 @@
modules-loaded modules-loaded
module-loaded? module-loaded?
load-linux-module* load-linux-module*
load-linux-modules-from-directory
current-module-debugging-port current-module-debugging-port
device-module-aliases device-module-aliases
known-module-aliases known-module-aliases
matching-modules matching-modules
missing-modules)) missing-modules
write-module-name-database
write-module-alias-database
write-module-device-database))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -95,6 +103,14 @@ key/value pairs.."
(define %not-comma (define %not-comma
(char-set-complement (char-set #\,))) (char-set-complement (char-set #\,)))
(define (module-formal-name file)
"Return the module name of FILE as it appears in its info section. Usually
the module name is the same as the base name of FILE, modulo hyphens and minus
the \".ko\" extension."
(match (assq 'name (modinfo-section-contents file))
(('name . name) name)
(#f #f)))
(define (module-dependencies file) (define (module-dependencies file)
"Return the list of modules that FILE depends on. The returned list "Return the list of modules that FILE depends on. The returned list
contains module names, not actual file names." contains module names, not actual file names."
@ -310,6 +326,18 @@ appears in BLACK-LIST are not loaded."
(or (and recursive? (= EEXIST (system-error-errno args))) (or (and recursive? (= EEXIST (system-error-errno args)))
(apply throw args))))))) (apply throw args)))))))
(define (load-linux-modules-from-directory modules directory)
"Load MODULES and their dependencies from DIRECTORY, a directory containing
the '.ko' files. The '.ko' suffix is automatically added to MODULES if
needed."
(define module-name->file-name
(module-name-lookup directory))
(for-each (lambda (module)
(load-linux-module* (module-name->file-name module)
#:lookup-module module-name->file-name))
modules))
;;; ;;;
;;; Device modules. ;;; Device modules.
@ -486,4 +514,121 @@ are required to access DEVICE."
(remove (cut member <> provided) modules)) (remove (cut member <> provided) modules))
'())) '()))
;;;
;;; Module databases.
;;;
(define (module-name->file-name/guess directory name)
"Guess the file name corresponding to NAME, a module name. That doesn't
always work because sometimes underscores in NAME map to hyphens (e.g.,
\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\")."
(string-append directory "/" (ensure-dot-ko name)))
(define (module-name-lookup directory)
"Return a one argument procedure that takes a module name (e.g.,
\"input_leds\") and returns its absolute file name (e.g.,
\"/.../input-leds.ko\")."
(catch 'system-error
(lambda ()
(define mapping
(call-with-input-file (string-append directory "/modules.name")
read))
(lambda (name)
(or (assoc-ref mapping name)
(module-name->file-name/guess directory name))))
(lambda args
(if (= ENOENT (system-error-errno args))
(cut module-name->file-name/guess directory <>)
(apply throw args)))))
(define (write-module-name-database directory)
"Write a database that maps \"module names\" as they appear in the relevant
ELF section of '.ko' files, to actual file names. This format is
Guix-specific. It aims to deal with inconsistent naming, in particular
hyphens vs. underscores."
(define mapping
(map (lambda (file)
(match (module-formal-name file)
(#f (cons (basename file ".ko") file))
(name (cons name file))))
(find-files directory "\\.ko$")))
(call-with-output-file (string-append directory "/modules.name")
(lambda (port)
(display ";; Module name to file name mapping.
;;
;; This format is Guix-specific; it is not supported by upstream Linux tools.
\n"
port)
(pretty-print mapping port))))
(define (write-module-alias-database directory)
"Traverse the '.ko' files in DIRECTORY and create the corresponding
'modules.alias' file."
(define aliases
(map (lambda (file)
(cons (file-name->module-name file) (module-aliases file)))
(find-files directory "\\.ko$")))
(call-with-output-file (string-append directory "/modules.alias")
(lambda (port)
(display "# Aliases extracted from modules themselves.\n" port)
(for-each (match-lambda
((module . aliases)
(for-each (lambda (alias)
(format port "alias ~a ~a\n" alias module))
aliases)))
aliases))))
(define (aliases->device-tuple aliases)
"Traverse ALIASES, a list of module aliases, and search for
\"char-major-M-N\", \"block-major-M-N\", or \"devname:\" aliases. When they
are found, return a tuple (DEVNAME TYPE MAJOR MINOR), otherwise return #f."
(define (char/block-major? alias)
(or (string-prefix? "char-major-" alias)
(string-prefix? "block-major-" alias)))
(define (char/block-major->tuple alias)
(match (string-tokenize alias %not-dash)
((type "major" (= string->number major) (= string->number minor))
(list (match type
("char" "c")
("block" "b"))
major minor))))
(let* ((devname (any (lambda (alias)
(and (string-prefix? "devname:" alias)
(string-drop alias 8)))
aliases))
(major/minor (match (find char/block-major? aliases)
(#f #f)
(str (char/block-major->tuple str)))))
(and devname major/minor
(cons devname major/minor))))
(define %not-dash
(char-set-complement (char-set #\-)))
(define (write-module-device-database directory)
"Traverse the '.ko' files in DIRECTORY and create the corresponding
'modules.devname' file. This file contains information about modules that can
be loaded on-demand, such as file system modules."
(define aliases
(filter-map (lambda (file)
(match (aliases->device-tuple (module-aliases file))
(#f #f)
(tuple (cons (file-name->module-name file) tuple))))
(find-files directory "\\.ko$")))
(call-with-output-file (string-append directory "/modules.devname")
(lambda (port)
(display "# Device nodes to trigger on-demand module loading.\n" port)
(for-each (match-lambda
((module devname type major minor)
(format port "~a ~a ~a~a:~a~%"
module devname type major minor)))
aliases))))
;;; linux-modules.scm ends here ;;; linux-modules.scm ends here

View File

@ -130,7 +130,8 @@ SYSTEM."
"aarch64-linux-gnu" "aarch64-linux-gnu"
"powerpc-linux-gnu" "powerpc-linux-gnu"
"i586-pc-gnu" ;aka. GNU/Hurd "i586-pc-gnu" ;aka. GNU/Hurd
"i686-w64-mingw32")) "i686-w64-mingw32"
"x86_64-w64-mingw32"))
(define %guixsd-supported-systems (define %guixsd-supported-systems
'("x86_64-linux" "i686-linux" "armhf-linux")) '("x86_64-linux" "i686-linux" "armhf-linux"))

View File

@ -161,6 +161,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/electronics.scm \ %D%/packages/electronics.scm \
%D%/packages/elf.scm \ %D%/packages/elf.scm \
%D%/packages/elixir.scm \ %D%/packages/elixir.scm \
%D%/packages/elm.scm \
%D%/packages/embedded.scm \ %D%/packages/embedded.scm \
%D%/packages/emacs.scm \ %D%/packages/emacs.scm \
%D%/packages/emacs-xyz.scm \ %D%/packages/emacs-xyz.scm \
@ -769,9 +770,12 @@ dist_patch_DATA = \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \
%D%/packages/patches/einstein-build.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-path-length.patch \ %D%/packages/patches/elixir-path-length.patch \
%D%/packages/patches/einstein-build.patch \ %D%/packages/patches/elm-compiler-disable-reactor.patch \
%D%/packages/patches/elm-compiler-fix-map-key.patch \
%D%/packages/patches/elm-compiler-relax-glsl-bound.patch \
%D%/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch \ %D%/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch \
%D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \

View File

@ -24,6 +24,7 @@
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix store) #:use-module (guix store)
#:use-module ((guix utils) #:select (source-properties->location)) #:use-module ((guix utils) #:select (source-properties->location))
#:use-module (srfi srfi-35)
#:export (environment-type #:export (environment-type
environment-type? environment-type?
environment-type-name environment-type-name
@ -40,7 +41,13 @@
machine-display-name machine-display-name
deploy-machine deploy-machine
machine-remote-eval)) roll-back-machine
machine-remote-eval
&deploy-error
deploy-error?
deploy-error-should-roll-back
deploy-error-captured-args))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -66,6 +73,7 @@
;; of the form '(machine-remote-eval machine exp)'. ;; of the form '(machine-remote-eval machine exp)'.
(machine-remote-eval environment-type-machine-remote-eval) ; procedure (machine-remote-eval environment-type-machine-remote-eval) ; procedure
(deploy-machine environment-type-deploy-machine) ; procedure (deploy-machine environment-type-deploy-machine) ; procedure
(roll-back-machine environment-type-roll-back-machine) ; procedure
;; Metadata. ;; Metadata.
(name environment-type-name) ; symbol (name environment-type-name) ; symbol
@ -105,3 +113,20 @@ are built and deployed to MACHINE beforehand."
MACHINE, activating it on MACHINE and switching MACHINE to the new generation." MACHINE, activating it on MACHINE and switching MACHINE to the new generation."
(let ((environment (machine-environment machine))) (let ((environment (machine-environment machine)))
((environment-type-deploy-machine environment) machine))) ((environment-type-deploy-machine environment) machine)))
(define (roll-back-machine machine)
"Monadic procedure rolling back to the previous system generation on
MACHINE. Return the number of the generation that was current before switching
and the new generation number."
(let ((environment (machine-environment machine)))
((environment-type-roll-back-machine environment) machine)))
;;;
;;; Error types.
;;;
(define-condition-type &deploy-error &error
deploy-error?
(should-roll-back deploy-error-should-roll-back)
(captured-args deploy-error-captured-args))

View File

@ -17,6 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu machine ssh) (define-module (gnu machine ssh)
#:use-module (gnu bootloader)
#:use-module (gnu machine) #:use-module (gnu machine)
#:autoload (gnu packages gnupg) (guile-gcrypt) #:autoload (gnu packages gnupg) (guile-gcrypt)
#:use-module (gnu system) #:use-module (gnu system)
@ -27,15 +28,20 @@
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (guix modules) #:use-module (guix modules)
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix pki)
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix remote) #:use-module (guix remote)
#:use-module (guix scripts system reconfigure) #:use-module (guix scripts system reconfigure)
#:use-module (guix ssh) #:use-module (guix ssh)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gcrypt pk-crypto)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 textual-ports)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:export (managed-host-environment-type #:export (managed-host-environment-type
@ -45,6 +51,7 @@
machine-ssh-configuration-host-name machine-ssh-configuration-host-name
machine-ssh-configuration-build-locally? machine-ssh-configuration-build-locally?
machine-ssh-configuration-authorize?
machine-ssh-configuration-port machine-ssh-configuration-port
machine-ssh-configuration-user machine-ssh-configuration-user
machine-ssh-configuration-session)) machine-ssh-configuration-session))
@ -67,16 +74,19 @@
make-machine-ssh-configuration make-machine-ssh-configuration
machine-ssh-configuration? machine-ssh-configuration?
this-machine-ssh-configuration this-machine-ssh-configuration
(host-name machine-ssh-configuration-host-name) ; string (host-name machine-ssh-configuration-host-name) ; string
(build-locally? machine-ssh-configuration-build-locally? (system machine-ssh-configuration-system) ; string
(build-locally? machine-ssh-configuration-build-locally? ; boolean
(default #t)) (default #t))
(port machine-ssh-configuration-port ; integer (authorize? machine-ssh-configuration-authorize? ; boolean
(default #t))
(port machine-ssh-configuration-port ; integer
(default 22)) (default 22))
(user machine-ssh-configuration-user ; string (user machine-ssh-configuration-user ; string
(default "root")) (default "root"))
(identity machine-ssh-configuration-identity ; path to a private key (identity machine-ssh-configuration-identity ; path to a private key
(default #f)) (default #f))
(session machine-ssh-configuration-session ; session (session machine-ssh-configuration-session ; session
(default #f))) (default #f)))
(define (machine-ssh-session machine) (define (machine-ssh-session machine)
@ -99,14 +109,26 @@ one from the configuration's parameters if one was not provided."
;;; Remote evaluation. ;;; Remote evaluation.
;;; ;;;
(define (machine-become-command machine)
"Return as a list of strings the program and arguments necessary to run a
shell command with escalated privileges for MACHINE's configuration."
(if (string= "root" (machine-ssh-configuration-user
(machine-configuration machine)))
'()
'("/run/setuid-programs/sudo" "-n" "--")))
(define (managed-host-remote-eval machine exp) (define (managed-host-remote-eval machine exp)
"Internal implementation of 'machine-remote-eval' for MACHINE instances with "Internal implementation of 'machine-remote-eval' for MACHINE instances with
an environment type of 'managed-host." an environment type of 'managed-host."
(maybe-raise-unsupported-configuration-error machine) (maybe-raise-unsupported-configuration-error machine)
(remote-eval exp (machine-ssh-session machine) (let ((config (machine-configuration machine)))
#:build-locally? (remote-eval exp (machine-ssh-session machine)
(machine-ssh-configuration-build-locally? #:build-locally?
(machine-configuration machine)))) (machine-ssh-configuration-build-locally? config)
#:system
(machine-ssh-configuration-system config)
#:become-command
(machine-become-command machine))))
;;; ;;;
@ -144,7 +166,8 @@ MACHINE's 'system' declaration do not exist on the machine."
(define (check-labeled-file-system fs) (define (check-labeled-file-system fs)
(define remote-exp (define remote-exp
(with-imported-modules '((gnu build file-systems)) (with-imported-modules (source-module-closure
'((gnu build file-systems)))
#~(begin #~(begin
(use-modules (gnu build file-systems)) (use-modules (gnu build file-systems))
(find-partition-by-label #$(file-system-label->string (find-partition-by-label #$(file-system-label->string
@ -221,7 +244,7 @@ MACHINE's 'system' declaration do not exist on the machine."
#$(uuid->string device)))) #$(uuid->string device))))
((file-system-label? device) ((file-system-label? device)
#~(find-partition-by-label #~(find-partition-by-label
(file-system-label->string #$device))))) #$(file-system-label->string device)))))
(missing-modules dev '#$(operating-system-initrd-modules (missing-modules dev '#$(operating-system-initrd-modules
(machine-operating-system machine))))))) (machine-operating-system machine)))))))
@ -240,10 +263,29 @@ MACHINE's 'system' declaration do not exist on the machine."
device) device)
(return #t))) (return #t)))
(define (machine-check-building-for-appropriate-system machine)
"Raise a '&message' error condition if MACHINE is configured to be built
locally and the 'system' field does not match the '%current-system' reported
by MACHINE."
(let ((config (machine-configuration machine))
(system (remote-system (machine-ssh-session machine))))
(when (and (machine-ssh-configuration-build-locally? config)
(not (string= system (machine-ssh-configuration-system config))))
(raise (condition
(&message
(message (format #f (G_ "incorrect target system \
('~a' was given, while the system reports that it is '~a')~%")
(machine-ssh-configuration-system config)
system)))))))
(with-monad %store-monad (return #t)))
(define (check-deployment-sanity machine) (define (check-deployment-sanity machine)
"Raise a '&message' error condition if it is clear that deploying MACHINE's "Raise a '&message' error condition if it is clear that deploying MACHINE's
'system' declaration would fail." 'system' declaration would fail."
;; Order is important here -- an incorrect value for 'system' will cause
;; invocations of 'remote-eval' to fail.
(mbegin %store-monad (mbegin %store-monad
(machine-check-building-for-appropriate-system machine)
(machine-check-file-system-availability machine) (machine-check-file-system-availability machine)
(machine-check-initrd-modules machine))) (machine-check-initrd-modules machine)))
@ -310,10 +352,36 @@ of MACHINE's system profile, ordered from most recent to oldest."
(boot-parameters-kernel-arguments params)))))))) (boot-parameters-kernel-arguments params))))))))
generations)))) generations))))
(define-syntax-rule (with-roll-back should-roll-back? mbody ...)
"Catch exceptions that arise when binding MBODY, a monadic expression in
%STORE-MONAD, and collect their arguments in a &deploy-error condition, with
the 'should-roll-back' field set to SHOULD-ROLL-BACK?"
(catch #t
(lambda ()
mbody ...)
(lambda args
(raise (condition (&deploy-error
(should-roll-back should-roll-back?)
(captured-args args)))))))
(define (deploy-managed-host machine) (define (deploy-managed-host machine)
"Internal implementation of 'deploy-machine' for MACHINE instances with an "Internal implementation of 'deploy-machine' for MACHINE instances with an
environment type of 'managed-host." environment type of 'managed-host."
(maybe-raise-unsupported-configuration-error machine) (maybe-raise-unsupported-configuration-error machine)
(when (machine-ssh-configuration-authorize?
(machine-configuration machine))
(unless (file-exists? %public-key-file)
(raise (condition
(&message
(message (format #f (G_ "no signing key '~a'. \
have you run 'guix archive --generate-key?'")
%public-key-file))))))
(remote-authorize-signing-key (call-with-input-file %public-key-file
(lambda (port)
(string->canonical-sexp
(get-string-all port))))
(machine-ssh-session machine)
(machine-become-command machine)))
(mlet %store-monad ((_ (check-deployment-sanity machine)) (mlet %store-monad ((_ (check-deployment-sanity machine))
(boot-parameters (machine-boot-parameters machine))) (boot-parameters (machine-boot-parameters machine)))
(let* ((os (machine-operating-system machine)) (let* ((os (machine-operating-system machine))
@ -322,9 +390,60 @@ environment type of 'managed-host."
(bootloader-configuration (operating-system-bootloader os)) (bootloader-configuration (operating-system-bootloader os))
(bootcfg (operating-system-bootcfg os menu-entries))) (bootcfg (operating-system-bootcfg os menu-entries)))
(mbegin %store-monad (mbegin %store-monad
(switch-to-system eval os) (with-roll-back #f
(upgrade-shepherd-services eval os) (switch-to-system eval os))
(install-bootloader eval bootloader-configuration bootcfg))))) (with-roll-back #t
(mbegin %store-monad
(upgrade-shepherd-services eval os)
(install-bootloader eval bootloader-configuration bootcfg)))))))
;;;
;;; Roll-back.
;;;
(define (roll-back-managed-host machine)
"Internal implementation of 'roll-back-machine' for MACHINE instances with
an environment type of 'managed-host."
(define remote-exp
(with-extensions (list guile-gcrypt)
(with-imported-modules (source-module-closure '((guix config)
(guix profiles)))
#~(begin
(use-modules (guix config)
(guix profiles))
(define %system-profile
(string-append %state-directory "/profiles/system"))
(define target-generation
(relative-generation %system-profile -1))
(if target-generation
(switch-to-generation %system-profile target-generation)
'error)))))
(define roll-back-failure
(condition (&message (message (G_ "could not roll-back machine")))))
(mlet* %store-monad ((boot-parameters (machine-boot-parameters machine))
(_ -> (if (< (length boot-parameters) 2)
(raise roll-back-failure)))
(entries -> (map boot-parameters->menu-entry
(list (second boot-parameters))))
(old-entries -> (map boot-parameters->menu-entry
(drop boot-parameters 2)))
(bootloader -> (operating-system-bootloader
(machine-operating-system machine)))
(bootcfg (lower-object
((bootloader-configuration-file-generator
(bootloader-configuration-bootloader
bootloader))
bootloader entries
#:old-entries old-entries)))
(remote-result (machine-remote-eval machine remote-exp)))
(when (eqv? 'error remote-result)
(raise roll-back-failure))))
;;; ;;;
@ -335,6 +454,7 @@ environment type of 'managed-host."
(environment-type (environment-type
(machine-remote-eval managed-host-remote-eval) (machine-remote-eval managed-host-remote-eval)
(deploy-machine deploy-managed-host) (deploy-machine deploy-managed-host)
(roll-back-machine roll-back-managed-host)
(name 'managed-host-environment-type) (name 'managed-host-environment-type)
(description "Provisioning for machines that are accessible over SSH (description "Provisioning for machines that are accessible over SSH
and have a known host-name. This entails little more than maintaining an SSH and have a known host-name. This entails little more than maintaining an SSH

View File

@ -684,7 +684,7 @@ connection alive.")
(define-public isc-dhcp (define-public isc-dhcp
(let* ((bind-major-version "9") (let* ((bind-major-version "9")
(bind-minor-version "11") (bind-minor-version "11")
(bind-patch-version "9") (bind-patch-version "10")
(bind-release-type "") ; for patch release, use "-P" (bind-release-type "") ; for patch release, use "-P"
(bind-release-version "") ; for patch release, e.g. "6" (bind-release-version "") ; for patch release, e.g. "6"
(bind-version (string-append bind-major-version (bind-version (string-append bind-major-version
@ -825,7 +825,7 @@ connection alive.")
"/bind-" bind-version ".tar.gz")) "/bind-" bind-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"03n57as73ygw6g3lqsmq2idkykajpbskzgixixdvi5a76m4g0fwn")))) "1hvhdaar9swh5087kzkbmav1nbn19rxh0m60x0d7gri0v8689fxj"))))
;; When cross-compiling, we need the cross Coreutils and sed. ;; When cross-compiling, we need the cross Coreutils and sed.
;; Otherwise just use those from %FINAL-INPUTS. ;; Otherwise just use those from %FINAL-INPUTS.
@ -1240,9 +1240,10 @@ commands and their arguments.")
CONFIG_READLINE=y\n" port) CONFIG_READLINE=y\n" port)
(close-port port)) (close-port port))
#t)) #t))
(add-after 'install 'install-man-pages (add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/wpa-supplicant"))
(man (string-append out "/share/man")) (man (string-append out "/share/man"))
(man5 (string-append man "/man5")) (man5 (string-append man "/man5"))
(man8 (string-append man "/man8"))) (man8 (string-append man "/man8")))
@ -1255,6 +1256,15 @@ commands and their arguments.")
(find-files "doc/docbook" "\\.5")) (find-files "doc/docbook" "\\.5"))
(for-each (copy-man-page man8) (for-each (copy-man-page man8)
(find-files "doc/docbook" "\\.8")) (find-files "doc/docbook" "\\.8"))
;; wpa_supplicant.conf(5) does not explain all configuration
;; options but refers to the example config file, so install it
;; along with READMEs.
(for-each (lambda (file)
(install-file file doc))
'("README" "README-DPP" "README-HS20"
"README-P2P" "README-WPS"
"wpa_supplicant.conf"))
#t)))) #t))))
#:make-flags (list "CC=gcc" #:make-flags (list "CC=gcc"
@ -1303,7 +1313,7 @@ command.")
CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port) CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
(close-port port)) (close-port port))
#t)) #t))
(add-after 'install-man-pages 'install-dbus-conf (add-after 'install-documentation 'install-dbus-conf
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/etc/dbus-1/system.d"))) (dir (string-append out "/etc/dbus-1/system.d")))
@ -2124,14 +2134,14 @@ done with the @code{auditctl} utility.")
(define-public nmap (define-public nmap
(package (package
(name "nmap") (name "nmap")
(version "7.70") (version "7.80")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://nmap.org/dist/nmap-" version (uri (string-append "https://nmap.org/dist/nmap-" version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"063fg8adx23l4irrh5kn57hsmi1xvjkar4vm4k6g94ppan4hcyw4")) "1aizfys6l9f9grm82bk878w56mg0zpkfns3spzj157h98875mypw"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -2744,14 +2754,14 @@ you are running, what theme or icon set you are using, etc.")
(define-public nnn (define-public nnn
(package (package
(name "nnn") (name "nnn")
(version "1.9") (version "2.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/jarun/nnn/releases/download/v" (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
version "/nnn-v" version ".tar.gz")) version "/nnn-v" version ".tar.gz"))
(sha256 (sha256
(base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp")))) (base32 "0xb6crd9vig3xgjwl8m4bmgcs4azfmfdpx3g8pdpzs28jdg7i3rr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("ncurses" ,ncurses) `(("ncurses" ,ncurses)

View File

@ -81,15 +81,15 @@ in FITS files.")
(define-public wcslib (define-public wcslib
(package (package
(name "wcslib") (name "wcslib")
(version "6.2") (version "6.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib" version "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-" version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 "01fqckazhbfqqhyr0wd9vcks1m2afmsh83l981alxg2r54jgwkdv")))) (base32 "003h23m6d5wcs29v2vbnl63f3z35k5x70lpsqlz5c9bp1bvizh8k"))))
(inputs (inputs
`(("cfitsio" ,cfitsio))) `(("cfitsio" ,cfitsio)))
(build-system gnu-build-system) (build-system gnu-build-system)

View File

@ -716,7 +716,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(define-public csound (define-public csound
(package (package
(name "csound") (name "csound")
(version "6.12.2") (version "6.13.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -725,7 +725,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2")))) "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
@ -1107,16 +1107,16 @@ follower.")
(define-public fluidsynth (define-public fluidsynth
(package (package
(name "fluidsynth") (name "fluidsynth")
(version "2.0.5") (version "2.0.6")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/FluidSynth/fluidsynth.git") (url "https://github.com/FluidSynth/fluidsynth.git")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y")))) "0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#:tests? #f ; no check target

View File

@ -5089,6 +5089,41 @@ by a sparse number of variables, this method can reduce the complexity of
data, to only emphasize the data that actually matters.") data, to only emphasize the data that actually matters.")
(license license:expat))) (license license:expat)))
(define-public r-rcistarget
(package
(name "r-rcistarget")
(version "1.4.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "RcisTarget" version))
(sha256
(base32
"133x2vr86ifbk82q08x1c8q19zsk5za7b6qrzz77dhsyf4bhcvpd"))))
(properties `((upstream-name . "RcisTarget")))
(build-system r-build-system)
(propagated-inputs
`(("r-aucell" ,r-aucell)
("r-biocgenerics" ,r-biocgenerics)
("r-data-table" ,r-data-table)
("r-feather" ,r-feather)
("r-gseabase" ,r-gseabase)
("r-r-utils" ,r-r-utils)
("r-summarizedexperiment" ,r-summarizedexperiment)))
(home-page "https://aertslab.org/#scenic")
(synopsis "Identify transcription factor binding motifs enriched on a gene list")
(description
"RcisTarget identifies @dfn{transcription factor binding motifs} (TFBS)
over-represented on a gene list. In a first step, RcisTarget selects DNA
motifs that are significantly over-represented in the surroundings of the
@dfn{transcription start site} (TSS) of the genes in the gene-set. This is
achieved by using a database that contains genome-wide cross-species rankings
for each motif. The motifs that are then annotated to TFs and those that have
a high @dfn{Normalized Enrichment Score} (NES) are retained. Finally, for
each motif and gene-set, RcisTarget predicts the candidate target genes (i.e.
genes in the gene-set that are ranked above the leading edge).")
(license license:gpl3)))
(define-public r-cicero (define-public r-cicero
(package (package
(name "r-cicero") (name "r-cicero")
@ -5151,3 +5186,47 @@ accessibility data.")
`(("r-monocle3" ,r-monocle3) `(("r-monocle3" ,r-monocle3)
,@(alist-delete "r-monocle" ,@(alist-delete "r-monocle"
(package-propagated-inputs r-cicero))))))) (package-propagated-inputs r-cicero)))))))
(define-public r-cistopic
(let ((commit "29abd8df9afb60ff27ac3f0a590930debe926950")
(revision "0"))
(package
(name "r-cistopic")
(version (git-version "0.2.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aertslab/cisTopic.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0s8irpsv5d2zcv4ihanvsf1vrpignzliscxnvs4519af3jmx78h8"))))
(build-system r-build-system)
(propagated-inputs
`(("r-aucell" ,r-aucell)
("r-data-table" ,r-data-table)
("r-dplyr" ,r-dplyr)
("r-dosnow" ,r-dosnow)
("r-dt" ,r-dt)
("r-feather" ,r-feather)
("r-fitdistrplus" ,r-fitdistrplus)
("r-genomicranges" ,r-genomicranges)
("r-ggplot2" ,r-ggplot2)
("r-lda" ,r-lda)
("r-matrix" ,r-matrix)
("r-plyr" ,r-plyr)
("r-rcistarget" ,r-rcistarget)
("r-rtracklayer" ,r-rtracklayer)
("r-s4vectors" ,r-s4vectors)))
(home-page "https://github.com/aertslab/cisTopic")
(synopsis "Modelling of cis-regulatory topics from single cell epigenomics data")
(description
"The sparse nature of single cell epigenomics data can be overruled using
probabilistic modelling methods such as @dfn{Latent Dirichlet
Allocation} (LDA). This package allows the probabilistic modelling of
cis-regulatory topics (cisTopics) from single cell epigenomics data, and
includes functionalities to identify cell states based on the contribution of
cisTopics and explore the nature and regulatory proteins driving them.")
(license license:gpl3))))

View File

@ -2740,7 +2740,7 @@ quantitative phenotypes.")
(define-public edirect (define-public edirect
(package (package
(name "edirect") (name "edirect")
(version "10.2.20181018") (version "12.1.20190819")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect" (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect"
@ -2748,7 +2748,7 @@ quantitative phenotypes.")
"/edirect-" version ".tar.gz")) "/edirect-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"091f4aigzpbqih6h82nq566gkp3y07i72yqndmqskfgar1vwgci7")))) "1i9s9mppcfqd60pfywpm8vdyz5vpnyslw22nd7dv0bhykrdnkz9g"))))
(build-system perl-build-system) (build-system perl-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -7447,13 +7447,13 @@ names in their natural, rather than lexicographic, order.")
(define-public r-edger (define-public r-edger
(package (package
(name "r-edger") (name "r-edger")
(version "3.26.6") (version "3.26.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "edgeR" version)) (uri (bioconductor-uri "edgeR" version))
(sha256 (sha256
(base32 (base32
"17vadhamjv4x0l4qqq2p2fi6j2bkllz5zd8dq761vgd5ic23zizm")))) "1xbhb8aa1ygm5crkp1bmqs2x1601ppa2kgc2xlf2zh8jj8zqapg8"))))
(properties `((upstream-name . "edgeR"))) (properties `((upstream-name . "edgeR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -10262,14 +10262,14 @@ family of feature/genome hypotheses.")
(define-public r-gviz (define-public r-gviz
(package (package
(name "r-gviz") (name "r-gviz")
(version "1.28.0") (version "1.28.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Gviz" version)) (uri (bioconductor-uri "Gviz" version))
(sha256 (sha256
(base32 (base32
"02alz27w8fnnm2ga71g3jg2b94f95ccv6r1fyszj4yb1k2g7rkxk")))) "0chsb3ijwd8zh588s1vqgfassn2rzax5rhqrhl0ini6pi4ilchp2"))))
(properties `((upstream-name . "Gviz"))) (properties `((upstream-name . "Gviz")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs

View File

@ -3,6 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -276,6 +277,7 @@ or false to signal an error."
((string=? system "avr") "no-ld.so") ((string=? system "avr") "no-ld.so")
((string=? system "propeller-elf") "no-ld.so") ((string=? system "propeller-elf") "no-ld.so")
((string=? system "i686-mingw") "no-ld.so") ((string=? system "i686-mingw") "no-ld.so")
((string=? system "x86_64-mingw") "no-ld.so")
((string=? system "vc4-elf") "no-ld.so") ((string=? system "vc4-elf") "no-ld.so")
(else (error "dynamic linker name not known for this system" (else (error "dynamic linker name not known for this system"

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -30,15 +30,14 @@
(define-public ccache (define-public ccache
(package (package
(name "ccache") (name "ccache")
(version "3.5") (version "3.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.samba.org/ftp/ccache/ccache-" (uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32 "07wv75xdcxpdkfsz9h5ffrm8pjbvr1dh6wnb02nyzz18cdbjkcd6"))))
"04n0xram2416pv98qrd7pi5lfsk0bjqyz7zgvvia41j5mrr4pm5x"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl) ; for test/run (native-inputs `(("perl" ,perl) ; for test/run
("which" ,(@ (gnu packages base) which)))) ("which" ,(@ (gnu packages base) which))))

View File

@ -47,8 +47,8 @@
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
(define-public cuirass (define-public cuirass
(let ((commit "0b40dca734468e8b12b3ff58e3e779679f17d38e") (let ((commit "858b6b8c8f2ae7b1ddaf4ae363147121be1f1fe8")
(revision "21")) (revision "22"))
(package (package
(name "cuirass") (name "cuirass")
(version (string-append "0.0.1-" revision "." (string-take commit 7))) (version (string-append "0.0.1-" revision "." (string-take commit 7)))
@ -60,7 +60,7 @@
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"1kdxs8dzdyldfs4wsz5hb64hprkbrnq5ljdll631f3bj8pbvvvc1")))) "049hg0yaakmfp27950cn0yn43r0v7bqva75xi082n8cxzi6vadgc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:modules ((guix build utils) '(#:modules ((guix build utils)
@ -121,7 +121,7 @@
`(("guile" ,guile-2.2) `(("guile" ,guile-2.2)
("guile-fibers" ,guile-fibers) ("guile-fibers" ,guile-fibers)
("guile-gcrypt" ,guile-gcrypt) ("guile-gcrypt" ,guile-gcrypt)
("guile-json" ,guile-json-1) ("guile-json" ,guile-json-3)
("guile-sqlite3" ,guile-sqlite3) ("guile-sqlite3" ,guile-sqlite3)
("guile-git" ,guile-git) ("guile-git" ,guile-git)
;; FIXME: this is propagated by "guile-git", but it needs to be among ;; FIXME: this is propagated by "guile-git", but it needs to be among

View File

@ -2002,3 +2002,49 @@ reading from and writing to ZIP archives. ")
;; Project is distributed under LGPL, but "quazip/z*" "quazip/unzip.*" are ;; Project is distributed under LGPL, but "quazip/z*" "quazip/unzip.*" are
;; distributed under zlib terms. ;; distributed under zlib terms.
(license (list license:lgpl2.1+ license:zlib)))) (license (list license:lgpl2.1+ license:zlib))))
(define-public zutils
(package
(name "zutils")
;; Check and remove the lint-hidden-cve property when updating.
(version "1.8")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/zutils/zutils-" version ".tar.lz"))
(sha256
(base32 "0dx35mv78fgqgz6sszs05ng8ipz2xy09ry9vpmka2rmy08b7x907"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--sysconfdir=/etc")
#:phases
(modify-phases %standard-phases
(replace 'install
(lambda* (#:key make-flags outputs #:allow-other-keys)
(apply invoke "make" "install"
(string-append "sysconfdir=" (assoc-ref outputs "out")
"/etc")
make-flags))))))
(native-inputs
;; Needed to extract the source tarball and run the test suite.
`(("lzip" ,lzip)))
(properties `((lint-hidden-cve . ("CVE-2018-1000637"))))
(home-page "https://www.nongnu.org/zutils/zutils.html")
(synopsis "Utilities that transparently operate on compressed files")
(description
"Zutils is a collection of utilities able to process any combination of
compressed and uncompressed files transparently. If any given file, including
standard input, is compressed, its decompressed content is used instead.
@command{zcat}, @command{zcmp}, @command{zdiff}, and @command{zgrep} are
improved replacements for the shell scripts provided by GNU gzip.
@command{ztest} tests the integrity of supported compressed files.
@command{zupdate} recompresses files with lzip, similar to gzip's
@command{znew}.
Supported compression formats are bzip2, gzip, lzip, and xz. Zutils uses
external compressors: the compressor to be used for each format is configurable
at run time, and must be installed separately.")
(license (list license:bsd-2 ; arg_parser.{cc,h}
license:gpl2+)))) ; the rest

View File

@ -2230,14 +2230,14 @@ topics for ecologists (ISBN 978-0-691-12522-0).")
(define-public r-lpsolve (define-public r-lpsolve
(package (package
(name "r-lpsolve") (name "r-lpsolve")
(version "5.6.13.2") (version "5.6.13.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "lpSolve" version)) (uri (cran-uri "lpSolve" version))
(sha256 (sha256
(base32 (base32
"0fc5m259ayc880f5hvnq59ih6nb2rlp394n756n1khmxbjpw1w3m")))) "1xazby8amb47vw5n12k13awv7x3bjci3q8vdd3vk1ms0ii16ahg6"))))
(properties `((upstream-name . "lpSolve"))) (properties `((upstream-name . "lpSolve")))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/lpSolve") (home-page "https://cran.r-project.org/web/packages/lpSolve")
@ -5851,14 +5851,14 @@ functions.")
(define-public r-rjags (define-public r-rjags
(package (package
(name "r-rjags") (name "r-rjags")
(version "4-8") (version "4-9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "rjags" version)) (uri (cran-uri "rjags" version))
(sha256 (sha256
(base32 (base32
"17xmjksj69f9wk4x71jxk4cgiqhaf2fj6bjm0mgzp4qln5x84a8m")))) "1vrmxxfnia2mkmfkp5yaq5qrlh4xg3ggab6fnj14mrp1231wb91a"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-coda" ,r-coda))) `(("r-coda" ,r-coda)))
@ -6823,13 +6823,13 @@ and coverage methods to tune the choice of threshold.")
(define-public r-ggstance (define-public r-ggstance
(package (package
(name "r-ggstance") (name "r-ggstance")
(version "0.3.2") (version "0.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ggstance" version)) (uri (cran-uri "ggstance" version))
(sha256 (sha256
(base32 "078ih9s5b0xzf582qg0vjnxvg5qad5ms1v2vdd062ckahi8zz1r8")))) (base32 "0kdksay61hyb6612b07r84chh7a9aibjyclk3qcypvr9aang8hkh"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-ggplot2" ,r-ggplot2) `(("r-ggplot2" ,r-ggplot2)
@ -14752,14 +14752,14 @@ into R and converted to @code{BibEntry} objects.")
(define-public r-citr (define-public r-citr
(package (package
(name "r-citr") (name "r-citr")
(version "0.3.1") (version "0.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "citr" version)) (uri (cran-uri "citr" version))
(sha256 (sha256
(base32 (base32
"0p2sg0fl7cppxxmr20qyqzs2469kglmgpsvykynw4qx501as57rc")))) "1qbarvafjb8jgkrnrhh6jw7mcglmjwf7dpdiibxf39jkmlhf7las"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-assertthat" ,r-assertthat) `(("r-assertthat" ,r-assertthat)
@ -14945,3 +14945,155 @@ path of values for the regularization parameter.")
library uses. It is also possible to control the number of threads in library uses. It is also possible to control the number of threads in
OpenMP.") OpenMP.")
(license license:agpl3+))) (license license:agpl3+)))
(define-public r-lda
(package
(name "r-lda")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "lda" version))
(sha256
(base32
"03r4h5kgr8mfy44p66mfj5bp4k00g8zh4a1mhn46jw14pkhs21jn"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/lda/")
(synopsis "Collapsed Gibbs sampling methods for topic models")
(description
"This package implements @dfn{latent Dirichlet allocation} (LDA) and
related models. This includes (but is not limited to) sLDA, corrLDA, and the
mixed-membership stochastic blockmodel. Inference for all of these models is
implemented via a fast collapsed Gibbs sampler written in C. Utility
functions for reading/writing data typically used in topic models, as well as
tools for examining posterior distributions are also included.")
;; Any version of the LGPL
(license license:lgpl3+)))
(define-public r-rann-l1
(package
(name "r-rann-l1")
(version "2.5.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "RANN.L1" version))
(sha256
(base32
"1hanh3my84mdr5wy6b89fawqzfc184vff1y65wy4l5ld9qza1n44"))))
(properties `((upstream-name . "RANN.L1")))
(build-system r-build-system)
(home-page "https://github.com/jefferis/RANN/tree/master-L1")
(synopsis "Fast nearest neighbour search using L1 metric")
(description
"This package provides tools to find the k nearest neighbours for every
point in a given dataset in O(N log N) time using Arya and Mount's ANN
library. There is support for approximate as well as exact searches, fixed
radius searches and @code{bd} as well as @code{kd} trees. The distance is
computed using the L1 (Manhattan, taxicab) metric.")
(license license:gpl3+)))
(define-public r-patchwork
;; There has been no public release yet.
(let ((commit "fd7958bae3e7a1e30237c751952e412a0a1d1242")
(revision "1"))
(package
(name "r-patchwork")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/thomasp85/patchwork.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"00fq520xwy1ysg4k8x48x9b0yy9wyi8y8zj6dvxjg4bwx0yyp6s4"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
("r-gtable" ,r-gtable)))
(home-page "https://github.com/thomasp85/patchwork")
(synopsis "Compose ggplot2 plots")
(description
"The @code{ggplot2} package provides a strong API for sequentially
building up a plot, but does not concern itself with composition of multiple
plots. Patchwork is a package that expands the API to allow for arbitrarily
complex composition of plots by providing mathmatical operators for combining
multiple plots.")
(license license:expat))))
(define-public r-liger
(package
(name "r-liger")
(version "0.4.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/MacoskoLab/liger.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"16dzwwcpw6n78pxlc5w3kraigki35ix7zhd2cbx5f3y60bbkhlmx"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file "inst/java/ModularityOptimizer.jar")
#t))))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'build-java-part
(lambda* (#:key inputs #:allow-other-keys)
(invoke "unzip" (assoc-ref inputs "optimizer-src"))
(for-each (lambda (file) (invoke "javac" file))
(find-files "." "\\.java$"))
(apply invoke "jar" "cf" "inst/java/ModularityOptimizer.jar"
(find-files "." "\\.class$"))
#t)))))
(propagated-inputs
`(("r-cowplot" ,r-cowplot)
("r-dosnow" ,r-dosnow)
("r-dplyr" ,r-dplyr)
("r-fnn" ,r-fnn)
("r-foreach" ,r-foreach)
("r-ggplot2" ,r-ggplot2)
("r-ggrepel" ,r-ggrepel)
("r-hmisc" ,r-hmisc)
("r-ica" ,r-ica)
("r-irlba" ,r-irlba)
("r-matrix" ,r-matrix)
("r-mclust" ,r-mclust)
("r-patchwork" ,r-patchwork)
("r-plyr" ,r-plyr)
("r-rann-l1" ,r-rann-l1)
("r-rcpp" ,r-rcpp)
("r-rcpparmadillo" ,r-rcpparmadillo)
("r-riverplot" ,r-riverplot)
("r-rtsne" ,r-rtsne)
("r-snow" ,r-snow)))
(native-inputs
`(("jdk" ,icedtea "jdk")
;; See https://github.com/MacoskoLab/liger/issues/96
;; The optimizer is released under the Expat license.
("optimizer-src"
,(origin
(method url-fetch)
(uri "http://www.ludowaltman.nl/slm/modularity_optimizer_source.zip")
(sha256
(base32
"01hmm6sapcmldvayknqx2w4cav3qv71mwwkdkwj4qgq6dss09g18"))))
("unzip" ,unzip)
("r-knitr" ,r-knitr))) ; for vignettes
(home-page "https://github.com/MacoskoLab/liger")
(synopsis "Integrate and analyze multiple single-cell datasets")
(description
"LIGER is a package for integrating and analyzing multiple single-cell
datasets, developed and maintained by the Macosko lab. It relies on
integrative non-negative matrix factorization to identify shared and
dataset-specific factors.")
(license license:gpl3)))

View File

@ -5,6 +5,7 @@
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -267,7 +268,7 @@ target that libc."
(cond (cond
((target-mingw? target) ((target-mingw? target)
(if libc (if libc
`(("libc" ,mingw-w64) `(("libc" ,libc)
,@inputs) ,@inputs)
`(("mingw-source" ,(package-source mingw-w64)) `(("mingw-source" ,(package-source mingw-w64))
,@inputs))) ,@inputs)))
@ -508,7 +509,8 @@ and the cross tool chain."
#:optional #:optional
(libc glibc)) (libc glibc))
(if (target-mingw? target) (if (target-mingw? target)
mingw-w64 (let ((machine (substring target 0 (string-index target #\-))))
(make-mingw-w64 machine))
libc)) libc))
(define* (cross-newlib? target (define* (cross-newlib? target

View File

@ -2729,13 +2729,13 @@ reasonable substitute.")
(define-public python-redis (define-public python-redis
(package (package
(name "python-redis") (name "python-redis")
(version "3.2.1") (version "3.3.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "redis" version)) (uri (pypi-uri "redis" version))
(sha256 (sha256
(base32 "0wwj8il4c3aff15xwwcjfci367zxsakq05ps1a2il6yavp91i94c")))) (base32 "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq"))))
(build-system python-build-system) (build-system python-build-system)
;; Tests require a running Redis server. ;; Tests require a running Redis server.
(arguments '(#:tests? #f)) (arguments '(#:tests? #f))

View File

@ -109,7 +109,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind (define-public isc-bind
(package (package
(name "bind") (name "bind")
(version "9.14.4") (version "9.14.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -117,7 +117,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.gz")) "/bind-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0gxqws7ml15lwkjw9mdcd759gv5kk3s9m17j3vrp9448ls1gnbii")))) "0ic0k0kpavwnbyf10rwx6yypxg66f65fprwc0dbmp61xp0n6gl0j"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs `("out" "utils")) (outputs `("out" "utils"))
(inputs (inputs
@ -303,14 +303,14 @@ asynchronous fashion.")
(define-public nsd (define-public nsd
(package (package
(name "nsd") (name "nsd")
(version "4.2.0") (version "4.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-" (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "0k57xl3ybdnqjqw9a3dmi7l6qmhkiic6wsghkz08ir809aj1rpsi")))) (base32 "1ys608jyp5scc957q4brm094c97sxlwymina7d2nvzi51aa37cw3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

81
gnu/packages/elm.scm Normal file
View File

@ -0,0 +1,81 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;;
;;; 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 elm)
#:use-module (gnu packages)
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-crypto)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages haskell-web)
#:use-module (guix build-system haskell)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
;; The full elm build calls out to itself via Template Haskell to
;; compile the elm reactor web app. elm reactor isn't required to
;; compile elm applications, so we take this part out of this
;; bootstrap package.
(define-public elm-compiler
(package
(name "elm-compiler")
(version "0.19.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://github.com/elm/compiler/")
(commit version)))
(sha256
(base32 "0s93z9vr0vp5w894ghc5s34nsq09sg1msf59zfiba87sid5vgjqy"))
(patches
(search-patches "elm-compiler-disable-reactor.patch"
"elm-compiler-relax-glsl-bound.patch"
"elm-compiler-fix-map-key.patch"))))
(build-system haskell-build-system)
(inputs
`(("ghc-ansi-terminal" ,ghc-ansi-terminal)
("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
("ghc-edit-distance" ,ghc-edit-distance)
("ghc-file-embed" ,ghc-file-embed)
("ghc-http" ,ghc-http)
("ghc-http-client" ,ghc-http-client)
("ghc-http-client-tls" ,ghc-http-client-tls)
("ghc-http-types" ,ghc-http-types)
("ghc-language-glsl" ,ghc-language-glsl)
("ghc-logict" ,ghc-logict)
("ghc-network" ,ghc-network)
("ghc-raw-strings-qq" ,ghc-raw-strings-qq)
("ghc-scientific" ,ghc-scientific)
("ghc-sha" ,ghc-sha)
("ghc-snap-core" ,ghc-snap-core)
("ghc-snap-server" ,ghc-snap-server)
("ghc-unordered-containers"
,ghc-unordered-containers)
("ghc-utf8-string" ,ghc-utf8-string)
("ghc-vector" ,ghc-vector)
("ghc-zip-archive" ,ghc-zip-archive)))
(home-page "https://elm-lang.org")
(synopsis "Programming language for Web applications")
(description
"This package provides Elm, a statically-typed functional programming
language for the browser. It includes commands for developers such as
@command{elm make} and @command{elm repl}.")
(license license:bsd-3)))

View File

@ -40,7 +40,7 @@
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com> ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de> ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net> ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io> ;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
@ -52,6 +52,7 @@
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org>
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk> ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org> ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2255,7 +2256,7 @@ display and behaviour is easily customisable.")
(define-public emacs-git-timemachine (define-public emacs-git-timemachine
(package (package
(name "emacs-git-timemachine") (name "emacs-git-timemachine")
(version "4.10") (version "4.11")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2265,7 +2266,7 @@ display and behaviour is easily customisable.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"08zsn3lsnnf01wkv5ls38jga02s5dnf0j3gigy4qd6im3j3d04m1")))) "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-transient" ,emacs-transient))) `(("emacs-transient" ,emacs-transient)))
@ -2729,6 +2730,78 @@ naming style of a symbol. It supports different naming conventions such as:
tables.") tables.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public emacs-org-rich-yank
(package
(name "emacs-org-rich-yank")
(version "0.2.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/unhammer/org-rich-yank.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
(build-system emacs-build-system)
(home-page "https://github.com/unhammer/org-rich-yank")
(synopsis "Automatically surround source code pasted into Org with
@code{#+BEGIN_SRC} blocks")
(description
"This package provides a utility function for Org buffers that makes a
@code{_SRC} block with the appropriate language annotation for code that has
been copied from an Emacs major mode.")
(license license:gpl2+)))
(define-public emacs-ob-restclient
(let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
(package
(name "emacs-ob-restclient")
(version (git-version "0.02" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alf/ob-restclient.el.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
(propagated-inputs
`(("emacs-restclient" ,emacs-restclient)))
(build-system emacs-build-system)
(home-page "https://github.com/alf/ob-restclient.el")
(synopsis "Org-babel functionality for @code{restclient-mode}")
(description
"This package integrates @code{restclient-mode} with Org.")
(license license:gpl3+))))
(define-public emacs-org-now
(let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
(package
(name "emacs-org-now")
(version (git-version "0.1-pre" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alphapapa/org-now.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
(propagated-inputs
`(("emacs-dash" ,emacs-dash)))
(build-system emacs-build-system)
(home-page "https://github.com/alphapapa/org-now")
(synopsis "Show current Org tasks in a sidebar")
(description
"This package provides commands to show Org headings in a sidebar
window while working on them. After defining one heading as the \"now\"
heading, other headings can be refiled to it with one command, and back to
their original location with another.")
(license license:gpl3+))))
(define-public emacs-rich-minority (define-public emacs-rich-minority
(package (package
(name "emacs-rich-minority") (name "emacs-rich-minority")
@ -3460,6 +3533,55 @@ completion candidate when using the Company text completion framework.")
a customizable list.") a customizable list.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-phi-search
(let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
(revision "1"))
(package
(name "emacs-phi-search")
(version (git-version "20160630" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zk-phi/phi-search.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
(build-system emacs-build-system)
(home-page "https://github.com/zk-phi/phi-search")
(synopsis "Interactive search compatible with @code{multiple-cursors}")
(description "This package can be used with @code{multiple-cursors} to
provide an incremental search that moves all fake cursors in sync.")
(license license:gpl2+))))
(define-public emacs-phi-search-mc
(let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
(revision "1"))
(package
(name "emacs-phi-search-mc")
(version (git-version "2.2.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/knu/phi-search-mc.el.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-phi-search" ,emacs-phi-search)
("emacs-multiple-cursors" ,emacs-multiple-cursors)))
(home-page "https://github.com/knu/phi-search-mc.el")
(synopsis "Extend @code{phi-search} with additional
@code{multiple-cursors} functionality")
(description "This package provides further integration between
@code{multiple-cursors} and @code{phi-search}, a package that allows for
interactive searches to move multiple fake cursors.")
(license license:bsd-2))))
(define-public emacs-multiple-cursors (define-public emacs-multiple-cursors
(package (package
(name "emacs-multiple-cursors") (name "emacs-multiple-cursors")
@ -4487,6 +4609,29 @@ regardless of @code{highlight-symbol-idle-delay}.
@code{highlight-symbol-query-replace} can be used to replace the symbol. ") @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
(license license:gpl2+)))) (license license:gpl2+))))
(define-public emacs-symbol-overlay
(let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
(revision "1"))
(package
(name "emacs-symbol-overlay")
(version (git-version "4.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wolray/symbol-overlay.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
(build-system emacs-build-system)
(home-page "https://github.com/wolray/symbol-overlay")
(synopsis "Highlight symbols and perform various search operations on them")
(description
"This package provides functions for highlighting and navigating
between symbols.")
(license license:gpl3+))))
(define-public emacs-hl-todo (define-public emacs-hl-todo
(package (package
(name "emacs-hl-todo") (name "emacs-hl-todo")
@ -6409,6 +6554,33 @@ used for reverse direction.")
end of a line and increment or decrement it.") end of a line and increment or decrement it.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-evil-owl
(let ((commit "36a5fe057f44d48e377e3ef4f04b4eb30e1af309")
(revision "1"))
(package
(name "emacs-evil-owl")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mamapanda/evil-owl")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"07a6n0gqss1qx9a50dqzqqq0gj6n7a4ykbcv1a0c9qd4fnfnm90m"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)
("emacs-posframe" ,emacs-posframe)))
(home-page "https://github.com/mamapanda/evil-owl")
(synopsis "Preview candidates when using Evil registers and marks")
(description
"This package supplements Evil's register- and mark-based commands with
a popup window for previewing candidates.")
(license license:gpl3+))))
(define-public emacs-evil-exchange (define-public emacs-evil-exchange
(let ((commit "47691537815150715e64e6f6ec79be7746c96120") (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
(version "0.41") (version "0.41")
@ -7133,6 +7305,60 @@ Additionally it can display the number of unread emails in the
mode-line.") mode-line.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-mu4e-jump-to-list
(let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
(revision "1"))
(package
(name "emacs-mu4e-jump-to-list")
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
(build-system emacs-build-system)
(propagated-inputs
`(("mu" ,mu)))
(home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
(synopsis "Select and view mailing lists in mu4e")
(description
"@code{mu4e-jump-to-list} allows you to select and view mailing lists
automatically using existing List-ID headers in your mu database. Just press
\"l\" in the headers view and any mailing list you've subscribed to will be
automatically discovered and presented in recency order.")
(license license:gpl3+))))
(define-public emacs-mu4e-patch
(let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
(revision "1"))
(package
(name "emacs-mu4e-patch")
(version (git-version "0.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/seanfarley/mu4e-patch")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
(build-system emacs-build-system)
(propagated-inputs
`(("mu" ,mu)))
(home-page "https://github.com/seanfarley/mu4e-patch")
(synopsis "Colorize patch-like emails in mu4e")
(description
"Extension for mu4e to colorize patch-like emails with diff-mode.
This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
been adapted to work with mu4e.")
(license license:gpl3+))))
(define-public emacs-pretty-mode (define-public emacs-pretty-mode
(package (package
(name "emacs-pretty-mode") (name "emacs-pretty-mode")
@ -7302,7 +7528,7 @@ above over the network.")
(define-public emacs-helm-org-rifle (define-public emacs-helm-org-rifle
(package (package
(name "emacs-helm-org-rifle") (name "emacs-helm-org-rifle")
(version "1.6.1") (version "1.7.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -7312,12 +7538,13 @@ above over the network.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1r38xhwvgbv6kn5x159phz3xgss7f1rc7icq27rnr4d8aj91wm6k")))) "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-dash" ,emacs-dash) `(("emacs-dash" ,emacs-dash)
("emacs-f" ,emacs-f) ("emacs-f" ,emacs-f)
("emacs-helm" ,emacs-helm) ("emacs-helm" ,emacs-helm)
("emacs-org" ,emacs-org)
("emacs-s" ,emacs-s))) ("emacs-s" ,emacs-s)))
(home-page "https://github.com/alphapapa/helm-org-rifle") (home-page "https://github.com/alphapapa/helm-org-rifle")
(synopsis "Rifle through Org files") (synopsis "Rifle through Org files")
@ -9633,7 +9860,7 @@ Feautures:
(define-public emacs-evil-matchit (define-public emacs-evil-matchit
(package (package
(name "emacs-evil-matchit") (name "emacs-evil-matchit")
(version "2.3.0") (version "2.3.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -9642,7 +9869,7 @@ Feautures:
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1")))) (base32 "04kllxd7vvziwqiff3vx60a0r6805wynsla73j8xkcz4yzk8q91r"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-evil" ,emacs-evil))) `(("emacs-evil" ,emacs-evil)))
@ -10051,6 +10278,61 @@ environment variables to be retrieved from the shell, so that Emacs will see
the same values you get in a terminal.") the same values you get in a terminal.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-frog-menu
(let ((commit "740bbc88b8535d31f783f3b2043a2a6683afbf31")
(revision "1"))
(package
(name "emacs-frog-menu")
(version (git-version "0.2.9" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/clemera/frog-menu")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1g77424jwq62qj06rvld44s5hp0dw8rw2pwmmag6gd536zf65xrj"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-posframe" ,emacs-posframe)
("emacs-avy" ,emacs-avy)))
(home-page "https://github.com/clemera/frog-menu")
(synopsis "Quickly pick items from ad hoc menus")
(description
"This package provides a popup offering a preview of a list of
candidates on which user-defined dispatch actions can act.")
(license license:gpl3+))))
(define-public emacs-frog-jump-buffer
(let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
(revision "1"))
(package
(name "emacs-frog-jump-buffer")
(version (git-version "0.1.4" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/waymondo/frog-jump-buffer")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-frog-menu" ,emacs-frog-menu)
("emacs-avy" ,emacs-avy)))
(home-page "https://github.com/waymondo/frog-jump-buffer")
(synopsis "Jump to any Emacs buffer with minimal keystrokes")
(description
"This package provides a preview window of buffers that can be switched
to with quicklink-style selections.")
(license license:gpl3+))))
(define-public emacs-deft (define-public emacs-deft
(package (package
(name "emacs-deft") (name "emacs-deft")
@ -10724,6 +11006,31 @@ tables of contents.")
files, allowing for actions to be performed based on search criteria.") files, allowing for actions to be performed based on search criteria.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-org-auto-expand
(let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
(revision "1"))
(package
(name "emacs-org-auto-expand")
(version (git-version "0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alphapapa/org-auto-expand")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-org" ,emacs-org)
("emacs-dash" ,emacs-dash)))
(home-page "https://github.com/alphapapa/org-auto-expand")
(synopsis "Automatically expand certain Org headings")
(description "This package allows a customizable set of headings in Org
files to be expanded upon opening them.")
(license license:gpl3+))))
(define-public emacs-parsebib (define-public emacs-parsebib
(package (package
(name "emacs-parsebib") (name "emacs-parsebib")
@ -12421,12 +12728,11 @@ perform regression test for packages that provide font-lock rules.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-racket-mode (define-public emacs-racket-mode
(let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c") (let ((commit "5300aa004f08535c3fac99f1af78462f129aca81")
(revision "2")) (revision "3"))
(package (package
(name "emacs-racket-mode") (name "emacs-racket-mode")
(version (string-append "0.0.2" "-" revision "." (version (git-version "0.0.2" revision commit))
(string-take commit 7)))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -12436,7 +12742,7 @@ perform regression test for packages that provide font-lock rules.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7")))) "1gkpm4fl1ybsm9qqgrkwyjbd9znddy438x266k27fs90lkxrfray"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:include '("\\.el$" "\\.rkt$"))) `(#:include '("\\.el$" "\\.rkt$")))
@ -14385,7 +14691,7 @@ buffers other modes on the TODO list).
(define-public emacs-magit-todos (define-public emacs-magit-todos
(package (package
(name "emacs-magit-todos") (name "emacs-magit-todos")
(version "1.3") (version "1.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -14395,7 +14701,7 @@ buffers other modes on the TODO list).
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0gfm6wn2a4v5i9lfsvvin0kwpr9n96ddm3z4yf50jd3kg2igzry1")))) "09pjb4k409gc0h51vb5az1shx02c1hx8cnvhi529n7dm4maildg5"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-async" ,emacs-async) `(("emacs-async" ,emacs-async)
@ -14771,7 +15077,7 @@ correctly.")
(define-public emacs-helm-slime (define-public emacs-helm-slime
(package (package
(name "emacs-helm-slime") (name "emacs-helm-slime")
(version "0.3.0") (version "0.4.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -14780,7 +15086,7 @@ correctly.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1qhb9446rpj17pm0hi3miy5gs5k3ld43bq29kzy0y26bf7ivfcjv")))) "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-helm" ,emacs-helm) `(("emacs-helm" ,emacs-helm)
@ -14905,7 +15211,7 @@ RPC channels with users and other software.")
(define-public emacs-sesman (define-public emacs-sesman
(package (package
(name "emacs-sesman") (name "emacs-sesman")
(version "0.3.3") (version "0.3.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -14915,10 +15221,18 @@ RPC channels with users and other software.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra")))) "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:tests? #t `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-shell
;; Setting the SHELL environment variable is required for the tests
;; to find sh.
(lambda _
(setenv "SHELL" (which "sh"))
#t)))
#:tests? #t
#:test-command '("make" "test"))) #:test-command '("make" "test")))
(home-page "https://github.com/vspinu/sesman") (home-page "https://github.com/vspinu/sesman")
(synopsis "Session manager for Emacs based IDEs") (synopsis "Session manager for Emacs based IDEs")
@ -16432,7 +16746,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
(define-public emacs-counsel-etags (define-public emacs-counsel-etags
(package (package
(name "emacs-counsel-etags") (name "emacs-counsel-etags")
(version "1.8.7") (version "1.8.9")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -16442,7 +16756,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0vjcjspfrz1csnmfi6r7p7f070a496adxkqnsxwx1gx8cpylwp1g")))) "0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-ivy" ,emacs-ivy))) `(("emacs-ivy" ,emacs-ivy)))
@ -17241,3 +17555,165 @@ federated microblogging social network.")
Emacs. It's a re-write of the Insidious Big Brother Database (BBDB) using Emacs. It's a re-write of the Insidious Big Brother Database (BBDB) using
Emacs Lisp's (relatively new) EIEIO object oriented libraries.") Emacs Lisp's (relatively new) EIEIO object oriented libraries.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-refactor
(package
(name "emacs-refactor")
(version "0.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Wilfred/emacs-refactor.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-s" ,emacs-s)
("emacs-popup" ,emacs-popup)
("emacs-list-utils" ,emacs-list-utils)
("emacs-iedit" ,emacs-iedit)))
(home-page "https://github.com/Wilfred/emacs-refactor/")
(synopsis "Language-specific refactoring in Emacs")
(description "Emacs Refactor (EMR) is a framework for providing
language-specific refactoring in Emacs. It includes refactoring commands for
a variety of languages, including elisp itself.")
(license license:gpl3+)))
(define-public emacs-flyspell-correct
(package
(name "emacs-flyspell-correct")
(version "0.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/d12frosted/flyspell-correct.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-helm" ,emacs-helm)
("emacs-ivy" ,emacs-ivy)
("emacs-popup" ,emacs-popup)))
(home-page
"https://github.com/d12frosted/flyspell-correct")
(synopsis
"Correcting words with flyspell via custom interfaces")
(description
"This package provides functionality for correcting words via custom
interfaces. Several interfaces are supported beside the classic ido: popup,
helm and ivy.")
(license license:gpl3+)))
(define-public emacs-org-emms
(let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
(revision "1"))
(package
(name "emacs-org-emms")
(version
(git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/jagrg/org-emms.git")
(commit commit)))
(file-name (git-file-name name commit))
(sha256
(base32
"1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emms" ,emacs-emms)
("emacs-org" ,emacs-org)))
(home-page "https://gitlab.com/jagrg/org-emms")
(synopsis "Play multimedia files from org-mode")
(description
"This package provides a new org link type for playing back multimedia
files from org-mode using EMMS, The Emacs Multimedia System. If the link
contains a track position, playback will start at the specified position.")
(license license:gpl3+))))
(define-public emacs-org-jira
(package
(name "emacs-org-jira")
(version "4.3.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ahungry/org-jira.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-request" ,emacs-request)
("emacs-s" ,emacs-s)
("emacs-dash" ,emacs-dash)
("emacs-org" ,emacs-org)))
(home-page "https://github.com/ahungry/org-jira")
(synopsis "Syncing between Jira and Org-mode")
(description
"This package provides an extension to org-mode for syncing issues with
JIRA issue servers.")
(license license:gpl3+)))
(define-public emacs-systemd-mode
(package
(name "emacs-systemd-mode")
(version "1.6")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/holomorph/systemd-mode.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
(build-system emacs-build-system)
(arguments '(#:include '("\\.el$" "\\.txt$")))
(home-page "https://github.com/holomorph/systemd-mode")
(synopsis
"Major mode for editing systemd units")
(description
"Major mode for editing systemd units in GNU Emacs.")
(license license:gpl3+)))
(define-public emacs-ssh-config-mode
(let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
(revision "1"))
(package
(name "emacs-ssh-config-mode")
(version (git-version "8.0" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/jhgorrell/ssh-config-mode-el.git")
(commit commit)))
(file-name (git-file-name name commit))
(sha256
(base32
"0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
(build-system emacs-build-system)
(arguments '(#:include '("\\.el$" "\\.txt$")))
(home-page
"https://github.com/jhgorrell/ssh-config-mode-el")
(synopsis
"Mode for fontification of ~/.ssh/config")
(description
"This packages fontifies the ssh config keywords and creates
keybindings for skipping from host section to host section.")
(license license:gpl3+))))

View File

@ -980,8 +980,8 @@ Z64 video plugin.")
(string-append "COREDIR=" m64p "/lib/"))) (string-append "COREDIR=" m64p "/lib/")))
;; There are no tests. ;; There are no tests.
#:tests? #f)) #:tests? #f))
(home-page "http://www.mupen64plus.org/") (home-page "https://www.mupen64plus.org/")
(synopsis "Mupen64Plus SDL input plugin") (synopsis "Mupen64Plus command line user interface")
(description (description
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
which is capable of accurately playing many games. This package contains the which is capable of accurately playing many games. This package contains the

View File

@ -448,7 +448,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
;; the system's dynamically linked library. ;; the system's dynamically linked library.
(package (package
(name "monero") (name "monero")
(version "0.14.1.0") (version "0.14.1.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -469,7 +469,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
#t)) #t))
(sha256 (sha256
(base32 (base32
"1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh")))) "00zl883c7lcd9z7g4y3vv7rxmr7ppzrxdblnhk32r9l3qzyw55r6"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("doxygen" ,doxygen) `(("doxygen" ,doxygen)
@ -511,6 +511,11 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
(("return \\(") (("return \\(")
"return ((std::string(getenv(\"HOME\"))) / ")) "return ((std::string(getenv(\"HOME\"))) / "))
#t)) #t))
(add-after 'change-log-path 'fix-file-permissions-for-tests
(lambda _
(for-each make-file-writable
(find-files "tests/data/" "wallet_9svHk1.*"))
#t))
;; Only try tests that don't need access to network or system ;; Only try tests that don't need access to network or system
(replace 'check (replace 'check
(lambda _ (lambda _
@ -525,11 +530,6 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
"DNSResolver.DNSSECSuccess" "DNSResolver.DNSSECSuccess"
"DNSResolver.DNSSECFailure" "DNSResolver.DNSSECFailure"
"DNSResolver.GetTXTRecord" "DNSResolver.GetTXTRecord"
;; TODO: Find why portability_wallet test fails
;; Maybe the Boost version used to create the test
;; wallet and the current Boost version are not
;; completely compatible?
"Serialization.portability_wallet"
"is_hdd.linux_os_root") "is_hdd.linux_os_root")
":"))) ":")))
(invoke "tests/unit_tests/unit_tests" (invoke "tests/unit_tests/unit_tests"
@ -1114,3 +1114,31 @@ information.")
(description "This allows a Trezor hardware wallet to communicate to the (description "This allows a Trezor hardware wallet to communicate to the
Trezor wallet.") Trezor wallet.")
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public bitcoin-abc
(package
(inherit bitcoin-core)
(name "bitcoin-abc")
(version "0.19.8")
(source (origin
(method url-fetch)
(uri (string-append "https://download.bitcoinabc.org/"
version "/linux/src/bitcoin-abc-"
version ".tar.gz"))
(sha256
(base32
"0ndvkxv5m8346bdhfqzgdiz1k9wyjycj05jp7daf9pml3cw79sz5"))))
(home-page "https://www.bitcoinabc.org/")
(synopsis "Bitcoin ABC peer-to-peer full node for the Bitcoin Cash protocol")
(description
"Bitcoin Cash brings sound money to the world, fulfilling the original
promise of Bitcoin as Peer-to-Peer Electronic Cash. Merchants and users are
empowered with low fees and reliable confirmations is a digital currency that
enables instant payments to anyone anywhere in the world. It uses
peer-to-peer technology to operate without central authority: managing
transactions and issuing money are carried out collectively by the network.
As a fork it implemented changes lowering the time between blocks and now
offers confimations after less than 5 seconds and have significantly lower
fees that BTC. Bitcoin ABC is the reference implementation of the Bitcoin
Cash protocol. This package provides the Bitcoin Cash command line client and
a client based on Qt. This is a fork of Bitcoin Core.")))

View File

@ -26,6 +26,7 @@
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk> ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr> ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
;;; Copyright © 2019 Alva <alva@skogen.is>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -66,7 +67,7 @@
(define-public font-ibm-plex (define-public font-ibm-plex
(package (package
(name "font-ibm-plex") (name "font-ibm-plex")
(version "1.0.1") (version "2.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -74,7 +75,7 @@
"v" version "/OpenType.zip")) "v" version "/OpenType.zip"))
(sha256 (sha256
(base32 (base32
"0nzxw9z6waixslam248yr26ci3fbk83c7jf6m90hncnaj6zxx795")))) "1lv65z3qnqgh2w36daf5wyz0ma9rg1qj9s9lzlnva8l7q3h8c9b8"))))
(build-system font-build-system) (build-system font-build-system)
(home-page "https://github.com/IBM/plex") (home-page "https://github.com/IBM/plex")
(synopsis "IBM Plex typeface") (synopsis "IBM Plex typeface")

View File

@ -28,14 +28,14 @@
(define-public freeipmi (define-public freeipmi
(package (package
(name "freeipmi") (name "freeipmi")
(version "1.6.3") (version "1.6.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/freeipmi/freeipmi-" (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1sg12ycig2g5yv9l3vx25wsjmz7ybnrsvji0vs51yjmclwsygm5a")))) "0g0s4iwx0ng4rv7hp5cc3kkx4drahsc89981gwjblf04lfavppv5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libgcrypt" ,libgcrypt))) `(("libgcrypt" ,libgcrypt)))

View File

@ -1386,7 +1386,7 @@ that beneath its ruins lay buried an ancient evil.")
(define-public angband (define-public angband
(package (package
(name "angband") (name "angband")
(version "4.1.3") (version "4.2.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1395,7 +1395,7 @@ that beneath its ruins lay buried an ancient evil.")
"/angband-" version ".tar.gz")) "/angband-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0vs0314lbdc6rzxn4jnb7zp6n1p1cdb8r53savadn7k9vbwc80ll")) "0vdm1ymm28wawp94nl1p5q3lhc0k7cnn2kkvvrkfx962gif4kqfk"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; So, some of the sounds/graphics/tilesets are under different ;; So, some of the sounds/graphics/tilesets are under different
@ -1409,7 +1409,7 @@ that beneath its ruins lay buried an ancient evil.")
(delete-file-recursively lib-subdir))) (delete-file-recursively lib-subdir)))
'("fonts" "icons" "sounds" "tiles")) '("fonts" "icons" "sounds" "tiles"))
(substitute* "lib/Makefile" (substitute* "lib/Makefile"
;; And don't try to invoke makefiles in the directories we removed ;; And don't try to invoke makefiles in the directories we removed.
(("gamedata customize help screens fonts tiles sounds icons user") (("gamedata customize help screens fonts tiles sounds icons user")
"gamedata customize help screens user")) "gamedata customize help screens user"))
#t)))) #t))))
@ -2340,15 +2340,15 @@ on the screen and keyboard to display letters.")
(define-public manaplus (define-public manaplus
(package (package
(name "manaplus") (name "manaplus")
(version "1.7.6.10") (version "1.9.3.23")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://repo.manaplus.org/manaplus/download/" "https://repo.manaplus.org/manaplus/download/"
version "/manaplus-" version ".tar.xz")) version "/manaplus-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0l7swvpzq20am4w2rsjpp6fsvbjv07il6wbfy45a7h9zsdihmqhl")))) "1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -2363,7 +2363,7 @@ on the screen and keyboard to display letters.")
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("mesa" ,mesa) ("mesa" ,mesa)
("sdl-union" ,(sdl-union)))) ("sdl-union" ,(sdl-union))))
(home-page "http://manaplus.org") (home-page "https://manaplus.org")
(synopsis "Client for 'The Mana World' and similar games") (synopsis "Client for 'The Mana World' and similar games")
(description (description
"ManaPlus is a 2D MMORPG client for game servers. It is the only "ManaPlus is a 2D MMORPG client for game servers. It is the only
@ -2828,7 +2828,7 @@ players.")
(version "2.0") (version "2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://http.debian.net/debian/pool/main/e/" (uri (string-append "mirror://debian/pool/main/e/"
"einstein/einstein_2.0.dfsg.2.orig.tar.gz")) "einstein/einstein_2.0.dfsg.2.orig.tar.gz"))
(sha256 (sha256
(base32 (base32

View File

@ -38,7 +38,7 @@
(define-public gramps (define-public gramps
(package (package
(name "gramps") (name "gramps")
(version "5.0.1") (version "5.0.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -48,7 +48,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1jz1fbjj6byndvir7qxzhd2ryirrd5h2kwndxpp53xdc05z1i8g7")))) "0wg743q8ixy5dmwricgkl4zck4109vq5ppmkyi18qjmna9m0aq7r"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)

View File

@ -5962,7 +5962,10 @@ devices using the GNOME desktop.")
(arguments (arguments
'(#:glib-or-gtk? #t '(#:glib-or-gtk? #t
#:configure-flags #:configure-flags
(list "-Dcheese=false") (list "-Dcheese=false"
(string-append "-Dgnome_session_libexecdir="
(assoc-ref %build-inputs "gnome-session")
"/libexec"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'patch-paths (add-before 'configure 'patch-paths
@ -5970,7 +5973,8 @@ devices using the GNOME desktop.")
(let ((libc (assoc-ref inputs "libc")) (let ((libc (assoc-ref inputs "libc"))
(tzdata (assoc-ref inputs "tzdata")) (tzdata (assoc-ref inputs "tzdata"))
(libgnomekbd (assoc-ref inputs "libgnomekbd")) (libgnomekbd (assoc-ref inputs "libgnomekbd"))
(nm-applet (assoc-ref inputs "network-manager-applet"))) (nm-applet (assoc-ref inputs "network-manager-applet"))
(gnome-desktop (assoc-ref inputs "gnome-desktop")))
(substitute* "panels/datetime/tz.h" (substitute* "panels/datetime/tz.h"
(("/usr/share/zoneinfo/zone.tab") (("/usr/share/zoneinfo/zone.tab")
(string-append tzdata "/share/zoneinfo/zone.tab"))) (string-append tzdata "/share/zoneinfo/zone.tab")))
@ -5990,6 +5994,10 @@ devices using the GNOME desktop.")
(substitute* '("panels/user-accounts/run-passwd.c") (substitute* '("panels/user-accounts/run-passwd.c")
(("/usr/bin/passwd") (("/usr/bin/passwd")
"/run/setuid-programs/passwd")) "/run/setuid-programs/passwd"))
(substitute* "panels/info/cc-info-overview-panel.c"
(("DATADIR \"/gnome/gnome-version.xml\"")
(string-append "\"" gnome-desktop
"/share/gnome/gnome-version.xml\"")))
#t)))))) #t))))))
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
@ -6009,6 +6017,7 @@ devices using the GNOME desktop.")
("gnome-desktop" ,gnome-desktop) ("gnome-desktop" ,gnome-desktop)
("gnome-online-accounts" ,gnome-online-accounts) ("gnome-online-accounts" ,gnome-online-accounts)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib") ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("gnome-session" ,gnome-session)
("gnome-settings-daemon" ,gnome-settings-daemon) ("gnome-settings-daemon" ,gnome-settings-daemon)
("grilo" ,grilo) ("grilo" ,grilo)
("ibus" ,ibus) ("ibus" ,ibus)
@ -8306,3 +8315,35 @@ advanced image management tool")
(description "The aim of the handy library is to help with developing user (description "The aim of the handy library is to help with developing user
intefaces for mobile devices using GTK+.") intefaces for mobile devices using GTK+.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public libgit2-glib
(package
(name "libgit2-glib")
(version "0.28.0.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
(build-system meson-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ;; For glib-mkenums
("gobject-introspection" ,gobject-introspection)
("intltool" ,intltool)
("libssh2" ,libssh2)
("pkg-config" ,pkg-config)
("python-pygobject" ,python-pygobject)
("python-wrapper" ,python-wrapper)
("vala" ,vala)))
(inputs
`(("glib" ,glib)
("libgit2" ,libgit2)))
(synopsis "GLib wrapper around the libgit2 Git access library")
(description "libgit2-glib is a GLib wrapper library around the libgit2 Git
access library. It only implements the core plumbing functions, not really the
higher level porcelain stuff.")
(home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
(license license:gpl2+)))

View File

@ -12,6 +12,7 @@
;;; Copyright © 2018 Alex Kost <alezost@gmail.com> ;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2019 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -104,6 +105,7 @@
"-DWITH_INSTALL_PORTABLE=OFF" "-DWITH_INSTALL_PORTABLE=OFF"
"-DWITH_JACK=ON" "-DWITH_JACK=ON"
"-DWITH_MOD_OCEANSIM=ON" "-DWITH_MOD_OCEANSIM=ON"
"-DWITH_OPENSUBDIV=ON"
"-DWITH_PYTHON_INSTALL=OFF" "-DWITH_PYTHON_INSTALL=OFF"
(string-append "-DPYTHON_LIBRARY=python" ,python-version "m") (string-append "-DPYTHON_LIBRARY=python" ,python-version "m")
(string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python") (string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python")
@ -139,6 +141,7 @@
("libx11" ,libx11) ("libx11" ,libx11)
("openimageio" ,openimageio) ("openimageio" ,openimageio)
("openexr" ,openexr) ("openexr" ,openexr)
("opensubdiv" ,opensubdiv)
("ilmbase" ,ilmbase) ("ilmbase" ,ilmbase)
("openjpeg" ,openjpeg) ("openjpeg" ,openjpeg)
("libjpeg" ,libjpeg) ("libjpeg" ,libjpeg)
@ -972,3 +975,47 @@ your terminal. It comes bundled with predefined styles:
look. The result can be uploaded on any web server without additional look. The result can be uploaded on any web server without additional
requirements.") requirements.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public opensubdiv
(package
(name "opensubdiv")
(version "3_4_0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/PixarAnimationStudios/OpenSubdiv")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0cippg6aqc5dlya1cmh3908pwssrg52fwgyylnvz5343yrxmgk12"))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-before 'configure 'set-glew-location
(lambda* (#:key inputs #:allow-other-keys)
(setenv "GLEW_LOCATION" (assoc-ref inputs "glew"))
#t))
(add-before 'check 'start-xorg-server
(lambda* (#:key inputs #:allow-other-keys)
;; The test suite requires a running X server.
(system (string-append (assoc-ref inputs "xorg-server")
"/bin/Xvfb :1 &"))
(setenv "DISPLAY" ":1")
#t)))))
(native-inputs
`(("xorg-server" ,xorg-server)))
(inputs
`(("glew" ,glew)
("libxrandr" ,libxrandr)
("libxcursor" ,libxcursor)
("libxinerama" ,libxinerama)
("libxi" ,libxi)
("zlib" ,zlib)
("glfw" ,glfw)))
(home-page "http://graphics.pixar.com/opensubdiv/")
(synopsis "High performance subdivision surface evaluation")
(description "OpenSubdiv is a set of libraries that implement high
performance subdivision surface (subdiv) evaluation on massively parallel CPU
and GPU architectures.")
(license license:asl2.0)))

View File

@ -916,7 +916,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
version ".tar.lz")) version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"05pm0rwdxhjdlpmvhn0kyfslph6j5m1gv76givs0hshb30nirl2x")))) "0zgvh2329zrclxfb1lh7dnqrq46jj77l0lx7j9y6y3xgbhd2d9l0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)

View File

@ -8361,7 +8361,7 @@ generated SQL and optimize it for your backend.")
(define-public shellcheck (define-public shellcheck
(package (package
(name "shellcheck") (name "shellcheck")
(version "0.5.0") (version "0.7.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -8369,12 +8369,12 @@ generated SQL and optimize it for your backend.")
"https://hackage.haskell.org/package/ShellCheck/ShellCheck-" "https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "1vx895cp5k5h0680xfwj74lk97m9y627n965x6srds0gfnbkzy9s"))
"0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system haskell-build-system) (build-system haskell-build-system)
(inputs (inputs
`(("ghc-aeson" ,ghc-aeson) `(("ghc-aeson" ,ghc-aeson)
("ghc-diff" ,ghc-diff)
("ghc-quickcheck" ,ghc-quickcheck) ("ghc-quickcheck" ,ghc-quickcheck)
("ghc-regex-tdfa" ,ghc-regex-tdfa))) ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
(home-page "https://github.com/koalaman/shellcheck") (home-page "https://github.com/koalaman/shellcheck")

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 John Darrington <jmd@gnu.org> ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
@ -36,10 +36,13 @@
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages geo)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
@ -58,13 +61,16 @@
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization) #:use-module (gnu packages serialization)
#:use-module (gnu packages tbb)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (ice-9 match)) #:use-module (ice-9 match)
#:use-module (srfi srfi-1))
(define-public dcmtk (define-public dcmtk
(package (package
@ -212,6 +218,22 @@ a suite of 3D interaction widgets, supports parallel processing, and
integrates with various databases on GUI toolkits such as Qt and Tk.") integrates with various databases on GUI toolkits such as Qt and Tk.")
(license license:bsd-3))) (license license:bsd-3)))
;; itksnap needs an older variant of VTK.
(define-public vtk-6
(package (inherit vtk)
(version "6.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://vtk.org/files/release/"
(version-major+minor version)
"/VTK-" version ".tar.gz"))
(sha256
(base32
"0pla1r5mvkgl4sl213gfdhzrypdgai0h3z5mfgm6p9jz9hsr794j"))))
(inputs
`(("jsoncpp" ,jsoncpp-for-tensorflow)
,@(alist-delete "jsoncpp" (package-inputs vtk))))))
(define-public opencv (define-public opencv
(package (package
(name "opencv") (name "opencv")
@ -517,3 +539,305 @@ the VIPS image processing library. It's a little like a spreadsheet: you
create a set of formula connecting your objects together, and on a change nip2 create a set of formula connecting your objects together, and on a change nip2
recalculates.") recalculates.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public vxl
(package
(name "vxl")
(version "2.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vxl/vxl.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0949hw57szq8943f1whwqaz591xjmb19kj803hcv74hdai2b0ycg"))
(modules '((guix build utils)))
;; TODO: vxl includes an old version of dcmtk. It won't build with
;; version 3.6.x.
(snippet
'(begin
(for-each delete-file-recursively
'("v3p/bzlib/"
"v3p/geotiff/"
"v3p/jpeg/"
"v3p/png/"
"v3p/tiff/"
"v3p/zlib/"))
(substitute* "v3p/CMakeLists.txt"
(("add_subdirectory\\((tiff|png|jpeg|zlib|bzlib|geotiff)\\)")
""))
#t))))
(build-system cmake-build-system)
(inputs
`(("libgeotiff" ,libgeotiff)
("libtiff" ,libtiff)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("zlib" ,zlib)))
(home-page "https://github.com/vxl/vxl/")
(synopsis "Collection of C++ libraries for computer vision")
(description "VXL (the Vision-something-Libraries) is a collection of C++
libraries designed for computer vision research and implementation.")
(license license:bsd-3)))
(define-public vxl-1
(package (inherit vxl)
(name "vxl")
(version "1.18.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vxl/vxl.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1g4mr2cc58jwm0vasscbd4y5380wj3ahkvq121z4gs83fhavvxgz"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
'("v3p/bzlib/"
"v3p/geotiff/"
"v3p/png/"
"v3p/tiff/"
"v3p/zlib/"))
(substitute* "v3p/CMakeLists.txt"
(("add_subdirectory\\((tiff|png|jpeg|zlib|bzlib|geotiff)\\)")
""))
#t))))
(arguments
`(#:configure-flags
;; Needed for itk-snap
(list "-DVNL_CONFIG_LEGACY_METHODS=ON")))))
(define-public insight-toolkit
(package
(name "insight-toolkit")
(version "5.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/InsightSoftwareConsortium/ITK/"
"releases/download/v" version "/InsightToolkit-"
version ".tar.xz"))
(sha256
(base32 "0bs63mk4q8jmx38f031jy5w5n9yy5ng9x8ijwinvjyvas8cichqi"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; tests require network access and external data
#:configure-flags
'("-DITK_USE_GPU=ON"
"-DITK_USE_SYSTEM_LIBRARIES=ON"
"-DITK_USE_SYSTEM_GOOGLETEST=ON"
"-DITK_BUILD_SHARED=ON"
;; This prevents "GTest::GTest" from being added to the ITK_LIBRARIES
;; variable in the installed CMake files. This is necessary as other
;; packages using insight-toolkit could not be configured otherwise.
"-DGTEST_ROOT=gtest")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-tune
(lambda _
(substitute* "CMake/ITKSetStandardCompilerFlags.cmake"
(("-mute=native") ""))
#t)))))
(inputs
`(("eigen" ,eigen)
("expat" ,expat)
("fftw" ,fftw)
("fftwf" ,fftwf)
("hdf5" ,hdf5)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libtiff" ,libtiff)
("mesa" ,mesa-opencl)
("perl" ,perl)
("python" ,python)
("tbb" ,tbb)
("vxl" ,vxl-1)
("zlib" ,zlib)))
(native-inputs
`(("googletest" ,googletest)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/InsightSoftwareConsortium/ITK/")
(synopsis "Scientific image processing, segmentation and registration")
(description "The Insight Toolkit (ITK) is a toolkit for N-dimensional
scientific image processing, segmentation, and registration. Segmentation is
the process of identifying and classifying data found in a digitally sampled
representation. Typically the sampled representation is an image acquired
from such medical instrumentation as CT or MRI scanners. Registration is the
task of aligning or developing correspondences between data. For example, in
the medical environment, a CT scan may be aligned with a MRI scan in order to
combine the information contained in both.")
(license license:asl2.0)))
(define-public insight-toolkit-4
(package (inherit insight-toolkit)
(version "4.13.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/InsightSoftwareConsortium/ITK/"
"releases/download/v" version "/InsightToolkit-"
version ".tar.xz"))
(sha256
(base32 "19cgfpd63gqrvc3m27m394gy2d7w79g5y6lvznb5qqr49lihbgns"))))
(arguments
`(#:tests? #f ; tests require network access and external data
#:configure-flags
'("-DITKV3_COMPATIBILITY=ON" ; needed for itk-snap
"-DITK_USE_GPU=ON"
"-DITK_USE_SYSTEM_LIBRARIES=ON"
"-DITK_USE_SYSTEM_GOOGLETEST=ON"
"-DITK_USE_SYSTEM_VXL=ON")))))
(define-public insight-toolkit-4.12
(package (inherit insight-toolkit-4)
(version "4.12.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/itk/itk/4.12/"
"InsightToolkit-" version ".tar.xz"))
(sha256
(base32 "1qw9mxbh083siljygahl4gdfv91xvfd8hfl7ghwii19f60xrvn2w"))))))
(define-public itk-snap
(package
(name "itk-snap")
(version "3.8.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.code.sf.net/p/itk-snap/src")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "15i5ixpryfrbf3vrrb5rici8fb585f25k0v1ljds16bp1f1msr4q"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list "-DSNAP_VERSION_GIT_SHA1=release"
"-DSNAP_VERSION_GIT_BRANCH=release"
"-DSNAP_VERSION_GIT_TIMESTAMP=0"
"-DSNAP_PACKAGE_QT_PLUGINS=OFF"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
"-DCMAKE_CXX_FLAGS=-std=gnu++11 -fpermissive")
#:phases
(modify-phases %standard-phases
;; During the installation phase all libraries provided by all
;; dependencies will be copied to the lib directory. That's insane,
;; so we disable this.
(add-after 'unpack 'do-not-copy-dependencies
(lambda _
(substitute* "CMakeLists.txt"
(("install_qt5_executable\
\\(\\$\\{SNAP_MAIN_INSTALL_DIR\\}/\\$\\{SNAP_EXE\\}\\)")
""))
#t))
(add-after 'unpack 'disable-gui-tests
(lambda _
;; The GUI tests just time out.
(substitute* "CMakeLists.txt"
((" (Workspace|DiffSpace|ProbeIntensity|RegionCompetition\
|RandomForest|RandomForestBailOut)")
""))
#t))
(add-after 'unpack 'make-reproducible
(lambda _
(substitute* "CMakeLists.txt"
(("TODAY\\(SNAP_VERSION_COMPILE_DATE\\)")
"SET(SNAP_VERSION_COMPILE_DATE \"(removed for reproducibility)\")"))
#t))
(add-after 'unpack 'prepare-submodules
(lambda* (#:key inputs #:allow-other-keys)
(rmdir "Submodules/c3d")
(copy-recursively (assoc-ref inputs "c3d-src")
"Submodules/c3d")
(substitute* '("Submodules/c3d/adapters/BiasFieldCorrectionN4.cxx"
"Submodules/c3d/adapters/ApplyMetric.cxx")
(("vcl_") "std::"))
(rmdir "Submodules/greedy")
(symlink (assoc-ref inputs "greedy-src")
"Submodules/greedy")
#t))
(add-after 'unpack 'fix-includes
(lambda _
(substitute* "GUI/Model/RegistrationModel.cxx"
(("<vnl_symmetric_eigensystem.h>")
"<vnl/algo/vnl_symmetric_eigensystem.h>"))
#t))
(add-before 'check 'prepare-tests
(lambda _
;; Needed by at least one test.
(setenv "HOME" "/tmp")
#t))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/itksnap")
`("QT_PLUGIN_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/plugins"))
'("qtbase" "qtdeclarative"))))
#t))))))
(inputs
`(("curl" ,curl)
("fftw" ,fftw)
("fftwf" ,fftwf)
("glu" ,glu)
("hdf5" ,hdf5)
("mesa" ,mesa-opencl)
;; This package does not build with either insight-toolkit 5.0.0 and
;; not with 4.13. It really needs to be 4.12.
("itk" ,insight-toolkit-4.12)
("vtk" ,vtk-6)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("qttools" ,qttools)
("vxl" ,vxl-1)
("zlib" ,zlib)))
(native-inputs
`(("googletest" ,googletest)
("pkg-config" ,pkg-config)
("c3d-src"
,(let* ((commit "f521358db26e00002c911cc47bf463b043942ad3")
(revision "1")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pyushkevich/c3d.git")
(commit commit)))
(file-name (git-file-name "c3d" version))
(sha256
(base32
"0kyv3rxrxwr8c3sa9zv01lsnhk95b27gx1s870k3yi8qp52h7bx3")))))
;; We are using an arbitrary commit from 2017 because the latest
;; version breaks the build...
("greedy-src"
,(let* ((commit "97e340f7e8e66597599144947775e6039e79a0d3")
(revision "1")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pyushkevich/greedy.git")
(commit commit)))
(file-name (git-file-name "greedy" version))
(sha256
(base32
"0k5bc9za4jrc8z9dj08z1rkcp5xf0gnd1d2jmi1w9ny4vxh2q2ab")))))))
(home-page "https://sourceforge.net/p/itk-snap/")
(synopsis "Medical image segmentation")
(description "ITK-SNAP is a tool for segmenting anatomical structures in
medical images. It provides an automatic active contour segmentation
pipeline, along with supporting a manual segmentation toolbox. ITK-SNAP has a
full-featured UI aimed at clinical researchers.")
;; This includes the submodules greedy and c3d.
(license license:gpl3+)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
@ -131,6 +131,11 @@ actions.")
`( ;; Enable support for a "map" pane using GPS data. `( ;; Enable support for a "map" pane using GPS data.
#:configure-flags '("--enable-map") #:configure-flags '("--enable-map")
;; Parallel builds fail with something like:
;; image-load.c:143:9: error: gq_marshal_VOID__INT_INT_INT_INT undeclared
;; due to unexpressed makefile dependencies.
#:parallel-build? #f
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'bootstrap 'pre-bootstrap (add-before 'bootstrap 'pre-bootstrap
@ -496,14 +501,14 @@ preloading.")
(define-public chafa (define-public chafa
(package (package
(name "chafa") (name "chafa")
(version "1.0.1") (version "1.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://hpjansson.org/chafa/releases/chafa-" (uri (string-append "https://hpjansson.org/chafa/releases/chafa-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"00cf2z52az0z6bzc3hfm4l8infipy5ck410wqmbaybd2csjr3m29")))) "1hj4vdyczby8h52ff23qxl8ng18p5jy549idngpiddwszf5s4drz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))

View File

@ -339,8 +339,8 @@ as Alfresco or Nuxeo.")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dev-www.libreoffice.org/src/" name "/" (uri (string-append "https://dev-www.libreoffice.org/src/libabw/"
name "-" version ".tar.xz")) "libabw-" version ".tar.xz"))
(sha256 (base32 (sha256 (base32
"11949iscdb99f2jplxjd39282jxcrf2fw0sqbh5dl7gqb96r8whb")))) "11949iscdb99f2jplxjd39282jxcrf2fw0sqbh5dl7gqb96r8whb"))))
(build-system gnu-build-system) (build-system gnu-build-system)

View File

@ -349,26 +349,26 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
"linux-" version ".tar.xz")) "linux-" version ".tar.xz"))
(sha256 hash))) (sha256 hash)))
(define-public linux-libre-5.2-version "5.2.8") (define-public linux-libre-5.2-version "5.2.9")
(define-public linux-libre-5.2-pristine-source (define-public linux-libre-5.2-pristine-source
(let ((version linux-libre-5.2-version) (let ((version linux-libre-5.2-version)
(hash (base32 "0dv91zfjkil29lp2l35lswkrhrqbc4kjh965ciaqwih1rh3cs9x1"))) (hash (base32 "1rnlnphw9rih4qhdld9ic5lnj5jh4vy5nqbj9lqwv9bc615jmw5n")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.2))) deblob-scripts-5.2)))
(define-public linux-libre-4.19-version "4.19.66") (define-public linux-libre-4.19-version "4.19.67")
(define-public linux-libre-4.19-pristine-source (define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version) (let ((version linux-libre-4.19-version)
(hash (base32 "0r6vzarmi77fhivd1n6f667sgcw8zd54ykmhmp6rd52bbkhsp0f9"))) (hash (base32 "00m5k0nfcvgff70686rbhn3w8c9wc3jxqvyddw40lylaqdh3s72s")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.19))) deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.138") (define-public linux-libre-4.14-version "4.14.139")
(define-public linux-libre-4.14-pristine-source (define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version) (let ((version linux-libre-4.14-version)
(hash (base32 "0yw39cqpk6g42q0xcv2aq8yyzsi0kzx9nvlfbw0iyg58wcfvsl7j"))) (hash (base32 "0hkhwcbxg6bry13w9kspx48b10274w6pgv200wh91fjd8jax8qlc")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.14))) deblob-scripts-4.14)))
@ -3928,6 +3928,49 @@ repair and easy administration.")
from the btrfs-progs package. It is meant to be used in initrds.") from the btrfs-progs package. It is meant to be used in initrds.")
(license (package-license btrfs-progs)))) (license (package-license btrfs-progs))))
(define-public compsize
(package
(name "compsize")
(version "1.3")
(home-page "https://github.com/kilobyte/compsize")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(sha256
(base32 "1c69whla844nwis30jxbj00zkpiw3ccndhkmzjii8av5358mjn43"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
`(("btrfs-progs" ,btrfs-progs)))
(arguments
`(#:tests? #f ; No tests.
#:make-flags (list "CC=gcc")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "compsize" (string-append out "/bin"))
(install-file "compsize.8" (string-append out "/share/man/man8"))))))))
(synopsis "Find compression type/ratio on Btrfs files")
(description "@command{compsize} takes a list of files (given as
arguments) on a Btrfs file system and measures used compression types and
effective compression ratio, producing a report.
A directory has no extents but has a (recursive) list of files. A non-regular
file is silently ignored.
As it makes no sense to talk about compression ratio of a partial extent,
every referenced extent is counted whole, exactly once -- no matter if you use
only a few bytes of a 1GB extent or reflink it a thousand times. Thus, the
uncompressed size will not match the number given by @command{tar} or
@command{du}. On the other hand, the space used should be accurate (although
obviously it can be shared with files outside our set).")
(license license:gpl2+)))
(define-public f2fs-tools-1.7 (define-public f2fs-tools-1.7
(package (package
(name "f2fs-tools") (name "f2fs-tools")

View File

@ -5319,7 +5319,7 @@ port within a range.")
(define-public txr (define-public txr
(package (package
(name "txr") (name "txr")
(version "216") (version "223")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5329,7 +5329,7 @@ port within a range.")
(patches (search-patches "txr-shell.patch")) (patches (search-patches "txr-shell.patch"))
(sha256 (sha256
(base32 (base32
"07cxdpc9zsqd0c2668g00dqjpd6zc4mfdn74aarr6d2hpzdhh937")))) "0109q8idqggba3kx58dpm5ccfpdrki68npkcxm18p5ga24611fcv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("cc=gcc") '(#:configure-flags '("cc=gcc")
@ -5343,7 +5343,7 @@ port within a range.")
#t)) #t))
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "make" "tests"))))))) (invoke "make" "tests"))))))
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)
("flex" ,flex))) ("flex" ,flex)))

View File

@ -1245,6 +1245,39 @@ easily publishing them on internet image hosting services.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public lxqt-archiver
(package
(name "lxqt-archiver")
(version "0.0.96")
(source
(origin
(method git-fetch)
(uri (git-reference
(url (string-append "https://github.com/lxqt/" name ".git"))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "09rw774vxj96wcpxxncz6nr9bmw7l4l0kwylmz1saq6rpa2yvn2i"))))
(build-system cmake-build-system)
(inputs
`(("glib" ,glib)
("json-glib" ,json-glib)
("libfm-qt" ,libfm-qt)
("qtbase" ,qtbase)
("qtx11extras" ,qtx11extras)))
(native-inputs
`(("pkg-config" ,pkg-config)
("lxqt-build-tools" ,lxqt-build-tools)
("qttools" ,qttools)))
(arguments
'(#:tests? #f))
(home-page "https://lxqt.org/")
(synopsis "Simple & lightweight desktop-agnostic Qt file archiver")
(description
"This package provides a Qt graphical interface to archiving programs
like @command{tar} and @command{zip}.")
(license license:gpl2+)))
;; The LXQt Desktop Environment ;; The LXQt Desktop Environment
(define-public lxqt (define-public lxqt

View File

@ -998,18 +998,17 @@ and search library.")
(define-public getmail (define-public getmail
(package (package
(name "getmail") (name "getmail")
(version "5.6") (version "5.14")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://pyropus.ca/software/getmail/old-versions/" (uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
name "-" version ".tar.gz")) "getmail-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "1hcrd9h4g12f5gvl1djsbchcjry02ghq4icdr897s8v48pkrzagk"))))
"16nmvj80szr6yvcxxgmxn2lxqpjqqj4xg5a0b66zhvck6j42q3a6"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:python ,python-2)) #:python ,python-2))
(home-page "http://pyropus.ca/software/getmail/") (home-page "http://pyropus.ca/software/getmail/")
(synopsis "Mail retriever") (synopsis "Mail retriever")
@ -2270,14 +2269,14 @@ e-mails with other systems speaking the SMTP protocol.")
(define-public opensmtpd-next (define-public opensmtpd-next
(package (package
(name "opensmtpd-next") (name "opensmtpd-next")
(version "6.4.1p2") (version "6.4.2p1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.opensmtpd.org/archives/" (uri (string-append "https://www.opensmtpd.org/archives/"
"opensmtpd-" version ".tar.gz")) "opensmtpd-" version ".tar.gz"))
(sha256 (sha256
(base32 "0cppqlx4fk6l8rbim5symh2fm1kzshf421256g596j6c9f9q96xn")))) (base32 "0pgv080ai7d98l9340jadp9wjiaqj2qvgpqhilcz0kps2mdiawbd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("bdb" ,bdb) `(("bdb" ,bdb)

View File

@ -224,6 +224,18 @@ Linux kernel and C library interfaces employed by user-space programs.")
automatically.") automatically.")
(license gpl3+))) (license gpl3+)))
(define-public help2man/latest
(package
(inherit help2man)
(version "1.47.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/help2man/help2man-"
version ".tar.xz"))
(sha256
(base32
"123vsimgx8zq1h077sbyh3bd0hbmlc3wih2231wwh133z1bv51ar"))))))
(define-public scdoc (define-public scdoc
(package (package
(name "scdoc") (name "scdoc")

View File

@ -2967,7 +2967,7 @@ point numbers.")
(define-public wxmaxima (define-public wxmaxima
(package (package
(name "wxmaxima") (name "wxmaxima")
(version "19.05.7") (version "19.08.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2977,7 +2977,7 @@ point numbers.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0zaz71fh156b9inrxf86scnix247al5pl9v18cxhjxcm0lanqxdp")))) "028g4g2081vsgslbdliskfy5q2wknvknw89lk3zp89py6wranxas"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal))) `(("gettext" ,gettext-minimal)))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -31,56 +32,56 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
(define %mingw-triplet (define-public (make-mingw-w64 machine)
"i686-w64-mingw32") (let ((triplet (string-append machine "-" "w64-mingw32")))
(package
(define-public mingw-w64 (name (string-append "mingw-w64" "-" machine))
(package (version "5.0.4")
(name "mingw-w64") (source (origin
(version "5.0.4") (method url-fetch)
(source (origin (uri (string-append
(method url-fetch) "https://sourceforge.net/projects/mingw-w64/files/mingw-w64/"
(uri (string-append "mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
"https://sourceforge.net/projects/mingw-w64/files/mingw-w64/" (sha256
"mingw-w64-release/mingw-w64-v" version ".tar.bz2")) (base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"))
(sha256 (patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch"))))
(base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm")) (native-inputs `(("xgcc-core" ,(cross-gcc triplet))
(patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch")))) ("xbinutils" ,(cross-binutils triplet))))
(native-inputs `(("xgcc-core" ,(cross-gcc %mingw-triplet)) (build-system gnu-build-system)
("xbinutils" ,(cross-binutils %mingw-triplet)))) (search-paths
(build-system gnu-build-system) (list (search-path-specification
(search-paths (variable "CROSS_C_INCLUDE_PATH")
(list (search-path-specification (files `("include" ,(string-append triplet "/include"))))
(variable "CROSS_C_INCLUDE_PATH") (search-path-specification
(files '("include" "i686-w64-mingw32/include"))) (variable "CROSS_LIBRARY_PATH")
(search-path-specification (files
(variable "CROSS_LIBRARY_PATH") `("lib" "lib64"
(files ,(string-append triplet "/lib")
'("lib" "lib64" "i686-w64-mingw32/lib" "i686-w64-mingw32/lib64"))))) ,(string-append triplet "/lib64"))))))
(arguments (arguments
`(#:configure-flags '("--host=i686-w64-mingw32") `(#:configure-flags '(,(string-append "--host=" triplet))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'setenv (add-before 'configure 'setenv
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((xgcc-core (assoc-ref inputs "xgcc-core")) (let ((xgcc-core (assoc-ref inputs "xgcc-core"))
(mingw-headers (string-append (getcwd) "/mingw-w64-headers"))) (mingw-headers (string-append (getcwd) "/mingw-w64-headers")))
(setenv "CPP" (setenv "CPP"
(string-append xgcc-core "/bin/i686-w64-mingw32-cpp")) (string-append xgcc-core ,(string-append "/bin/" triplet "-cpp")))
(setenv "CROSS_C_INCLUDE_PATH" (setenv "CROSS_C_INCLUDE_PATH"
(string-append (string-append
mingw-headers mingw-headers
":" mingw-headers "/include" ":" mingw-headers "/include"
":" mingw-headers "/crt" ":" mingw-headers "/crt"
":" mingw-headers "/defaults/include" ":" mingw-headers "/defaults/include"
":" mingw-headers "/direct-x/include")))))) ":" mingw-headers "/direct-x/include"))))))
#:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1") #:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1")
#:tests? #f ; compiles and includes glibc headers #:tests? #f ; compiles and includes glibc headers
#:strip-binaries? #f)) #:strip-binaries? #f))
(home-page "https://mingw-w64.org") (home-page "https://mingw-w64.org")
(synopsis "Minimalist GNU for Windows") (synopsis "Minimalist GNU for Windows")
(description (description
"Minimalist GNU for Windows (@dfn{MinGW}) is a complete software "Minimalist GNU for Windows (@dfn{MinGW}) is a complete software
development environment for creating native Microsoft Windows applications. development environment for creating native Microsoft Windows applications.
It includes a set of Windows-specific header files and static import libraries It includes a set of Windows-specific header files and static import libraries
@ -89,4 +90,12 @@ runtime dynamic-link libraries (@dfn{DLL}s).
Mingw-w64 is an advancement of the original mingw.org project and provides Mingw-w64 is an advancement of the original mingw.org project and provides
several new APIs such as DirectX and DDK, and 64-bit support.") several new APIs such as DirectX and DDK, and 64-bit support.")
(license license:fdl1.3+))) (license license:fdl1.3+))))
(define-public mingw-w64-i686
(make-mingw-w64 "i686"))
(define-public mingw-w64-x86_64
(make-mingw-w64 "x86_64"))
(define-public mingw-w64 mingw-w64-i686)

View File

@ -90,7 +90,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd (define-public mpd
(package (package
(name "mpd") (name "mpd")
(version "0.21.13") (version "0.21.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -99,7 +99,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz")) "/mpd-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1sjyhmq50nlccwmd8xn7m0bk8xvyixvfyr24v9dy3g86hhk0pdwm")))) "0iknnm9xvwfgk8h82hjwrmbijpk9l0dgap0794c2nyg8i66qlb0y"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'... `(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'...

View File

@ -1535,7 +1535,7 @@ reverb effects.")
(define-public setbfree (define-public setbfree
(package (package
(name "setbfree") (name "setbfree")
(version "0.8.8") (version "0.8.9")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1544,7 +1544,7 @@ reverb effects.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"15dr1nyj69wc9jnjq5z8ril90a3c0mcrii4zjyz0z3h7dhia3382")))) "1lpsa64xvwa9xbbp8zcwxy5w0daffc7fziny2pizabqh7m9xqjl2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" target `(#:tests? #f ; no "check" target
@ -1782,7 +1782,7 @@ export.")
(define-public pd (define-public pd
(package (package
(name "pd") (name "pd")
(version "0.49-0") (version "0.50-0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -1790,10 +1790,10 @@ export.")
version ".src.tar.gz")) version ".src.tar.gz"))
(sha256 (sha256
(base32 (base32
"18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j")))) "0hg4n5b55f650qsc0mjx559072dp7vfza7w0pvk6rk2l831cvsps"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" target `(#:tests? #f ; no "check" target
#:configure-flags #:configure-flags
(list (list
"--enable-jack" "--enable-jack"

View File

@ -29,6 +29,7 @@
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -549,15 +550,14 @@ and up to 1 Mbit/s downstream.")
(define-public whois (define-public whois
(package (package
(name "whois") (name "whois")
(version "5.5.0") (version "5.5.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://debian/pool/main/w/whois/" (uri (string-append "mirror://debian/pool/main/w/whois/"
name "_" version ".tar.xz")) "whois_" version ".tar.xz"))
(sha256 (sha256
(base32 (base32 "10mc7iqhdnvd1kk8gnnhihd5ga2rw3sz69n3nd6x8fb65qpq13gf"))))
"0gbg9fis05zf2fl4264jplbphy75l50k3g92cz6mkmbsklrn7v34"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no test suite `(#:tests? #f ; no test suite
@ -945,6 +945,82 @@ attacking, testing, and cracking. All tools are command-line driven, which
allows for heavy scripting.") allows for heavy scripting.")
(license (list license:gpl2+ license:bsd-3)))) (license (list license:gpl2+ license:bsd-3))))
(define-public pixiewps
(package
(name "pixiewps")
(version "1.4.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/wiire-a/pixiewps/releases/"
"download/v" version "/" name "-" version ".tar.xz"))
(sha256
(base32
"07nym6bqml0k9v29vnj003nrgnwrywgjvnljb7cdpsvnwilhbp64"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
(list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)) ; no configure script
#:tests? #f)) ; there are no tests
(home-page "https://github.com/wiire-a/pixiewps/")
(synopsis "Offline brute-force tool for Wi-Fi Protected Setup")
(description "Pixiewps implements the pixie-dust attack to brute
force the Wi-Fi Protected Setup (WPS) PIN by exploiting the low or
non-existing entropy of some access points.")
(license license:gpl3+)))
(define-public reaver
(package
(name "reaver")
(version "1.6.5")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/t6x/reaver-wps-fork-t6x/releases/"
"download/v" version "/" name "-" version ".tar.xz"))
(sha256
(base32
"0sva3g0kwgv143n9l3lg4qp5iiqz7nk76nr0hwivsnglbhk9sbil"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
;; Save session files to current directory instead of /var.
(list "--enable-savetocurrent"
"--localstatedir=/tmp/dummy") ; prevent creating /var during install
#:phases
(modify-phases %standard-phases
(add-before 'configure 'change-directory
(lambda _
(chdir "src")
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(chdir "../docs")
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name "-" ,version))
(man1 (string-append out "/share/man/man1")))
(for-each (lambda (file) (install-file file doc))
(find-files "." "README.*"))
(install-file "reaver.1" man1)
#t))))
#:tests? #f)) ; there are no tests
(inputs
`(("libpcap" ,libpcap)))
(propagated-inputs
`(("aircrack-ng" ,aircrack-ng)
("pixiewps" ,pixiewps)))
(home-page "https://github.com/t6x/reaver-wps-fork-t6x/")
(synopsis "Attack tool for Wi-Fi Protected Setup")
(description "Reaver performs a brute force attack against an access
point's Wi-Fi Protected Setup (WPS) PIN. Once the PIN is found, the WPA
passphrase can be recovered and the AP's wireless settings can be
reconfigured.")
(license license:gpl2+)))
(define-public perl-danga-socket (define-public perl-danga-socket
(package (package
(name "perl-danga-socket") (name "perl-danga-socket")
@ -2287,7 +2363,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.")
(define-public hcxtools (define-public hcxtools
(package (package
(name "hcxtools") (name "hcxtools")
(version "5.1.6") (version "5.2.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2295,7 +2371,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.")
(url "https://github.com/ZerBea/hcxtools.git") (url "https://github.com/ZerBea/hcxtools.git")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "05sjbmv2wq3nlmammrwxqc62c4sagjjgczzddr1jcqkf6kywzkl8")) (base32 "0k2qlq9hz5zc21nyc6yrnfqzga7hydn5mm0x3rpl2fhkwl81lxcn"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
@ -2329,7 +2405,7 @@ packets from wireless devices for use with hashcat or John the Ripper.")
(define-public hcxdumptool (define-public hcxdumptool
(package (package
(name "hcxdumptool") (name "hcxdumptool")
(version "5.1.5") (version "5.2.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2337,7 +2413,7 @@ packets from wireless devices for use with hashcat or John the Ripper.")
(url "https://github.com/ZerBea/hcxdumptool.git") (url "https://github.com/ZerBea/hcxdumptool.git")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "0xkzdvwpi6dq9wsrn882f2ljb7d5v2bvarq8gs6jm8znfx3y8hi2")) (base32 "0pg1pvg029gm4rj0fj5kcsjb32hixgn4cxsgiir7spkmacf1qm4q"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View File

@ -110,8 +110,8 @@
;; Note: the 'update-guix-package.scm' script expects this definition to ;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this. ;; start precisely like this.
(let ((version "1.0.1") (let ((version "1.0.1")
(commit "4a54ed774913480c0f8dad3caf0cd627e4fa8ebf") (commit "c902458863d1d341ffd74970b75e69c2bb848183")
(revision 3)) (revision 4))
(package (package
(name "guix") (name "guix")
@ -127,7 +127,7 @@
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"14m4a4bn0d5hav6mrks5d7r223knx9dpswgbsc875wgr2921na2h")) "0w93qjgy9n0qqyij12s7hm7fl4wb6h99bmfril4cqf4ynckpdvbb"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -292,7 +292,7 @@
(propagated-inputs (propagated-inputs
`(("gnutls" ,gnutls) `(("gnutls" ,gnutls)
("guile-gcrypt" ,guile-gcrypt) ("guile-gcrypt" ,guile-gcrypt)
("guile-json" ,guile-json-1) ("guile-json" ,guile-json-3)
("guile-sqlite3" ,guile-sqlite3) ("guile-sqlite3" ,guile-sqlite3)
("guile-ssh" ,guile-ssh) ("guile-ssh" ,guile-ssh)
("guile-git" ,guile-git))) ("guile-git" ,guile-git)))
@ -324,7 +324,7 @@ the Nix package manager.")
(inputs (inputs
`(("gnutls" ,gnutls) `(("gnutls" ,gnutls)
("guile-git" ,guile-git) ("guile-git" ,guile-git)
("guile-json" ,guile-json-1) ("guile-json" ,guile-json-3)
("guile-gcrypt" ,guile-gcrypt) ("guile-gcrypt" ,guile-gcrypt)
,@(fold alist-delete (package-inputs guix) ,@(fold alist-delete (package-inputs guix)
'("boot-guile" "boot-guile/i686" "util-linux")))) '("boot-guile" "boot-guile/i686" "util-linux"))))

View File

@ -0,0 +1,71 @@
commit 20d80e2323b565a36751c9455e535d8f73fa32f7
Author: Robert Vollmert <rob@vllmrt.net>
Date: Fri Jun 14 16:05:47 2019 +0200
disable reactor
diff --git a/elm.cabal b/elm.cabal
index c75f9689..ece63c46 100644
--- a/elm.cabal
+++ b/elm.cabal
@@ -45,9 +45,6 @@ Executable elm
builder/src
ui/terminal/src
- other-extensions:
- TemplateHaskell
-
Main-Is:
Main.hs
@@ -56,8 +53,6 @@ Executable elm
Develop
Develop.Generate.Help
Develop.Generate.Index
- Develop.StaticFiles
- Develop.StaticFiles.Build
Diff
Init
Install
diff --git a/ui/terminal/src/Develop.hs b/ui/terminal/src/Develop.hs
index 4b2252e1..7ed7716e 100644
--- a/ui/terminal/src/Develop.hs
+++ b/ui/terminal/src/Develop.hs
@@ -23,7 +23,6 @@ import Snap.Util.FileServe
import qualified Elm.Project as Project
import qualified Develop.Generate.Help as Generate
import qualified Develop.Generate.Index as Index
-import qualified Develop.StaticFiles as StaticFiles
import qualified Generate.Output as Output
import qualified Json.Encode as Encode
import qualified Reporting.Exit as Exit
@@ -219,16 +218,7 @@ compileToHtmlBuilder mode file =
serveAssets :: Snap ()
-serveAssets =
- do file <- getSafePath
- case StaticFiles.lookup file of
- Nothing ->
- pass
-
- Just (content, mimeType) ->
- do modifyResponse (setContentType (mimeType <> ";charset=utf-8"))
- writeBS content
-
+serveAssets = pass
-- MIME TYPES
diff --git a/ui/terminal/src/Main.hs b/terminal/src/Main.hs
index 7000f3ca..2c76965a 100644
--- a/ui/terminal/src/Main.hs
+++ b/ui/terminal/src/Main.hs
@@ -39,7 +39,6 @@ main =
complex intro outro
[ repl
, init
- , reactor
, make
, install
, bump

View File

@ -0,0 +1,38 @@
commit e3512d887df41a8162c3e361171c04beca08415b
Author: Tom Stejskal <tom.stejskal@gmail.com>
Date: Mon Nov 19 20:09:43 2018 +0100
Fix Map.!: given key is not an element in the map
diff --git a/compiler/src/Elm/Compiler/Type/Extract.hs b/compiler/src/Elm/Compiler/Type/Extract.hs
index 1aafe1d4..99763392 100644
--- a/compiler/src/Elm/Compiler/Type/Extract.hs
+++ b/compiler/src/Elm/Compiler/Type/Extract.hs
@@ -10,6 +10,7 @@ module Elm.Compiler.Type.Extract
import Data.Map ((!))
+import qualified Data.Map as Map
import qualified Data.Maybe as Maybe
import qualified Data.Set as Set
@@ -134,11 +135,15 @@ extractUnion interfaces (Opt.Global home name) =
else
let
pname = toPublicName home name
- unions = I._unions (interfaces ! home)
+ maybeUnions = I._unions <$> Map.lookup home interfaces
in
- case I.toUnionInternals (unions ! name) of
- Can.Union vars ctors _ _ ->
- T.Union pname vars <$> traverse extractCtor ctors
+ case Map.lookup name =<< maybeUnions of
+ Just union ->
+ case I.toUnionInternals union of
+ Can.Union vars ctors _ _ ->
+ T.Union pname vars <$> traverse extractCtor ctors
+ Nothing ->
+ return $ T.Union pname [] []
extractCtor :: Can.Ctor -> Extractor (N.Name, [T.Type])

View File

@ -0,0 +1,19 @@
commit 4c649a5a270aba15cc6a3913c3ad51a293047f40
Author: Rémi Lefèvre <rlefevre@gmail.com>
Date: Mon Sep 3 19:18:54 2018 +0200
update language-glsl maximum version
diff --git a/elm.cabal b/elm.cabal
index 48aa84f0..464fe9d5 100644
--- a/elm.cabal
+++ b/elm.cabal
@@ -246,7 +246,7 @@ Executable elm
http-client >= 0.5 && < 0.6,
http-client-tls >= 0.3 && < 0.4,
http-types >= 0.9 && < 1.0,
- language-glsl >= 0.0.2 && < 0.3,
+ language-glsl >= 0.0.2 && < 0.4,
logict,
mtl >= 2.2.1 && < 3,
network >= 2.4 && < 2.7,

View File

@ -24,7 +24,7 @@
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2017 Mark Meyer <mark@ofosos.org> ;;; Copyright © 2017 Mark Meyer <mark@ofosos.org>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
@ -1808,13 +1808,13 @@ Python.")
(define-public python-responses (define-public python-responses
(package (package
(name "python-responses") (name "python-responses")
(version "0.5.1") (version "0.10.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "responses" version)) (uri (pypi-uri "responses" version))
(sha256 (sha256
(base32 (base32
"1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc")))) "147pacwkkqy3qf3hr33fnl1xbzgw0zsm3qppvvy9qhq8h069qbah"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(;; Test suite is not distributed: `(;; Test suite is not distributed:
@ -3248,3 +3248,26 @@ Python.")
(description "This package provides a @command{slufigy} command and (description "This package provides a @command{slufigy} command and
library to create slugs from unicode strings while keeping it DRY.") library to create slugs from unicode strings while keeping it DRY.")
(license license:expat))) (license license:expat)))
(define-public python-branca
(package
(name "python-branca")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "branca" version))
(sha256
(base32
"0pmigd521j2228xf8x34vbx0niwvms7xl7za0lymywj0vydjqxiy"))))
(build-system python-build-system)
(propagated-inputs
`(("python-jinja2" ,python-jinja2)
("python-six" ,python-six)))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://github.com/python-visualization/branca")
(synopsis "Generate complex HTML+JS pages with Python")
(description "Generate complex HTML+JS pages with Python")
(license license:expat)))

View File

@ -16057,3 +16057,34 @@ one-off scripts.")
time-or-computationally-expensive properties quick and easy and works in Python time-or-computationally-expensive properties quick and easy and works in Python
2 or 3.") 2 or 3.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public python-folium
(package
(name "python-folium")
(version "0.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "folium" version))
(sha256
(base32
"18fzxijsgrb95r0a8anc9ba5ijyw3nlnv3rpavfbkqa5v878x84f"))))
(build-system python-build-system)
(propagated-inputs
`(("python-branca" ,python-branca)
("python-jinja2" ,python-jinja2)
("python-numpy" ,python-numpy)
("python-requests" ,python-requests)))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://github.com/python-visualization/folium")
(synopsis "Make beautiful maps with Leaflet.js & Python")
(description "@code{folium} makes it easy to visualize data thats been
manipulated in Python on an interactive leaflet map. It enables both the
binding of data to a map for @code{choropleth} visualizations as well as
passing rich vector/raster/HTML visualizations as markers on the map.
The library has a number of built-in tilesets from OpenStreetMap, Mapbox, and
Stamen, and supports custom tilesets with Mapbox or Cloudmade API keys. It
supports Image, Video, GeoJSON and TopoJSON overlays.")
(license license:expat)))

View File

@ -15,6 +15,7 @@
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -8737,3 +8738,72 @@ then check out http://127.0.0.1:1080 to see the mail.")
"This package provides a pure Ruby library for event-driven IO.") "This package provides a pure Ruby library for event-driven IO.")
(home-page "https://github.com/castwide/backport") (home-page "https://github.com/castwide/backport")
(license license:expat))) (license license:expat)))
(define-public ruby-json-schema
(package
(name "ruby-json-schema")
(version "2.8.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "json-schema" version))
(sha256
(base32
"1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5"))))
(build-system ruby-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda _
(invoke "gem" "build" ".gemspec"))))))
(propagated-inputs
`(("ruby-addressable" ,ruby-addressable)))
(synopsis "Ruby JSON Schema Validator")
(description "This library provides Ruby with an interface for validating
JSON objects against a JSON schema conforming to JSON Schema Draft 4. Legacy
support for JSON Schema Draft 3, JSON Schema Draft 2, and JSON Schema Draft 1
is also included.")
(home-page "https://github.com/ruby-json-schema/json-schema")
(license license:expat)))
(define-public swagger-diff
(package
(name "swagger-diff")
(version "1.1.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "swagger-diff" version))
(sha256
(base32
"1hxx50nga1bqn254iqjcdwkc9c72364ks9lyjyw10ajz0l0ly7sn"))))
(build-system ruby-build-system)
(arguments
`(#:test-target "spec"
#:phases
(modify-phases %standard-phases
;; Don't run or require rubocop, the code linting tool, as this is a
;; bit unnecessary.
(add-after 'unpack 'dont-run-rubocop
(lambda _
(substitute* "Rakefile"
((".*rubocop.*") "")
((".*RuboCop.*") ""))
#t)))))
(propagated-inputs
`(("ruby-json-schema" ,ruby-json-schema)))
(native-inputs
`(("bundler" ,bundler)
("ruby-rspec-core" ,ruby-rspec-core)
("ruby-rspec-expectations" ,ruby-rspec-expectations)))
(synopsis
"Compare Open API Initiative specification files")
(description
"Swagger::Diff is a utility for comparing two different Open API
Initiative (OAI) specifications (formerly known as Swagger specifications).
It is intended to determine whether a newer API specification is
backwards-compatible with an older API specification.")
(home-page "https://github.com/civisanalytics/swagger-diff")
(license license:bsd-3)))

View File

@ -183,8 +183,20 @@ their folder.
#:test-target "tests" #:test-target "tests"
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; No install target. (add-after 'unpack 'search-$PATH-for-binaries
;; lsyncd requires and hard-codes absolute file names to binaries.
;; Make it fall back to searching $PATH for relative file names.
(lambda _
(substitute* "lsyncd.c"
(("execv\\(") "execvp("))
(substitute* (list "lsyncd.lua"
"default-direct.lua"
"default-rsync.lua"
"default-rsyncssh.lua")
(("(|/usr)/bin/") ""))
#t))
(replace 'install (replace 'install
;; No install target.
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))

View File

@ -38,7 +38,7 @@
(define-public tmux (define-public tmux
(package (package
(name "tmux") (name "tmux")
(version "2.9") (version "2.9a")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -46,12 +46,12 @@
version "/tmux-" version ".tar.gz")) version "/tmux-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"10195hp5ydkwwmpcr7188fgx9daqwrslb1lylgrrkzc6yhr1541l")))) "099vn8mg2nnizbqqc87a5mxm8c46kadfhx30dgxbz9hp8mx1d7c3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libevent" ,libevent) `(("libevent" ,libevent)
("ncurses" ,ncurses))) ("ncurses" ,ncurses)))
(home-page "http://tmux.github.io/") (home-page "https://tmux.github.io/")
(synopsis "Terminal multiplexer") (synopsis "Terminal multiplexer")
(description (description
"tmux is a terminal multiplexer: it enables a number of terminals (or "tmux is a terminal multiplexer: it enables a number of terminals (or

View File

@ -4,7 +4,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
@ -39,6 +39,7 @@
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
@ -49,14 +50,14 @@
(define-public tor (define-public tor
(package (package
(name "tor") (name "tor")
(version "0.4.0.5") (version "0.4.1.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-" (uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0vk9j3ybz5dwwbmqrdj1bjcsxy76pc8frmfvflkdzwfkvkqcp8mm")))) "0984jb6hdcc10f7aq8xzl7l4jf93skp45wkv2v63z4zv0nvf0r58"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -157,7 +158,7 @@ networks.")
(define-public onionshare (define-public onionshare
(package (package
(name "onionshare") (name "onionshare")
(version "1.3.2") (version "2.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -166,7 +167,7 @@ networks.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "19zrz9kh7k4pdk4lh3cm0kv02ngdqkrggwma1xdskrrmp2rjkgz7")))) (base32 "1lx21p12888qnbhsyin4lrnn4xizb39ldk77r71y53hn8mfxi54z"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -184,20 +185,21 @@ networks.")
(("/usr") out)) (("/usr") out))
#t))) #t)))
(delete 'check) (delete 'check)
(add-before 'strip 'tests (add-before 'strip 'check
;; After all the patching we run the tests after installing. ;; After all the patching we run the tests after installing.
;; This is also a known issue:
;; https://github.com/micahflee/onionshare/issues/284
(lambda _ (lambda _
(invoke "pytest" "test") (setenv "HOME" "/tmp") ; Some tests need a writable homedir
(invoke "pytest" "tests/")
#t))))) #t)))))
(native-inputs (native-inputs
`(("python-pytest" ,python-pytest))) `(("python-pytest" ,python-pytest)))
(inputs (inputs
`(("python-flask" ,python-flask) `(("python-pycrypto" ,python-pycrypto)
("python-flask" ,python-flask)
("python-nautilus" ,python-nautilus) ("python-nautilus" ,python-nautilus)
("python-sip" ,python-sip) ("python-sip" ,python-sip)
("python-stem" ,python-stem) ("python-stem" ,python-stem)
("python-pysocks" ,python-pysocks)
("python-pyqt" ,python-pyqt))) ("python-pyqt" ,python-pyqt)))
(home-page "https://onionshare.org/") (home-page "https://onionshare.org/")
(synopsis "Securely and anonymously share files") (synopsis "Securely and anonymously share files")
@ -209,8 +211,7 @@ using a third party filesharing service. You host the file on your own computer
and use a Tor hidden service to make it temporarily accessible over the and use a Tor hidden service to make it temporarily accessible over the
internet. The other user just needs to use Tor Browser to download the file internet. The other user just needs to use Tor Browser to download the file
from you.") from you.")
(license (list license:gpl3+ (license license:gpl3+)))
license:bsd-3)))) ; onionshare/socks.py
(define-public nyx (define-public nyx
(package (package

View File

@ -146,14 +146,14 @@ as well as the classic centralized workflow.")
(name "git") (name "git")
;; XXX When updating Git, check if the special 'git-source' input to cgit ;; XXX When updating Git, check if the special 'git-source' input to cgit
;; needs to be updated as well. ;; needs to be updated as well.
(version "2.22.1") (version "2.23.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-" (uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"093qjgagha937w96izkpsjkhxf5drsa7rvk5snlyjivqnwxgkqac")))) "0rv0y45gcd3h191isppn77acih695v4pipdj031jvs9rd1ds0kr3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("native-perl" ,perl) `(("native-perl" ,perl)
@ -166,7 +166,7 @@ as well as the classic centralized workflow.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"17vpqv9g8li58njx7z5124b3c2zb2n63z4dalh5gw9iys7qb8446")))) "0sllhyl0w29v4n303hqfmcc3apafnwk4sk78anyjjhpzd0zl6n4m"))))
;; For subtree documentation. ;; For subtree documentation.
("asciidoc" ,asciidoc) ("asciidoc" ,asciidoc)
("docbook-xsl" ,docbook-xsl) ("docbook-xsl" ,docbook-xsl)

View File

@ -1052,7 +1052,7 @@ videoformats depend on the configuration flags of ffmpeg.")
(define-public vlc (define-public vlc
(package (package
(name "vlc") (name "vlc")
(version "3.0.7.1") (version "3.0.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1061,7 +1061,7 @@ videoformats depend on the configuration flags of ffmpeg.")
"/vlc-" version ".tar.xz")) "/vlc-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1xb4c8n0hkwijzfdlbwadhxnx9z8rlhmrdq4c7q74rq9f51q0m86")))) "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("flex" ,flex) `(("flex" ,flex)
@ -3378,30 +3378,32 @@ online.")
(license license:expat))) (license license:expat)))
(define-public vidstab (define-public vidstab
(package (let ((commit "aeabc8daa7904f9edf7441a11f293965a5ef53b8")
(name "vidstab") (revision "0"))
(version "1.1.0") (package
(source (origin (name "vidstab")
(method git-fetch) (version (git-version "1.1.0" revision commit))
(uri (git-reference (source (origin
(url "https://github.com/georgmartius/vid.stab.git") (method git-fetch)
(commit (string-append "v" version)))) (uri (git-reference
(file-name (git-file-name name version)) (url "https://github.com/georgmartius/vid.stab.git")
(sha256 (commit commit)))
(base32 (file-name (git-file-name name version))
"0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38")))) (sha256
(build-system cmake-build-system) (base32
(arguments "042iy0f3khwzr68djzvqgn301sy21ljvkf52rnc2c73q7ircnzzn"))))
'(#:tests? #f)) ; tests are not run as part of standard build process (build-system cmake-build-system)
(home-page "http://public.hronopik.de/vid.stab/") (arguments
(synopsis "Video stabilization library") '(#:tests? #f)) ; tests are not run as part of standard build process
(description "Vidstab is a video stabilization library which can be used (home-page "http://public.hronopik.de/vid.stab/")
(synopsis "Video stabilization library")
(description "Vidstab is a video stabilization library which can be used
with FFmpeg. A video acquired using a hand-held camera or a camera mounted on a with FFmpeg. A video acquired using a hand-held camera or a camera mounted on a
vehicle typically suffers from undesirable shakes and jitters. Activities such vehicle typically suffers from undesirable shakes and jitters. Activities such
as surfing, skiing, riding and walking while shooting videos are especially as surfing, skiing, riding and walking while shooting videos are especially
prone to erratic camera shakes. Vidstab targets these video contents to help prone to erratic camera shakes. Vidstab targets these video contents to help
create smoother and stable videos.") create smoother and stable videos.")
(license license:gpl2+))) (license license:gpl2+))))
(define-public libopenshot (define-public libopenshot
(package (package

View File

@ -133,14 +133,14 @@
(define-public httpd (define-public httpd
(package (package
(name "httpd") (name "httpd")
(version "2.4.39") (version "2.4.41")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://apache/httpd/httpd-" (uri (string-append "mirror://apache/httpd/httpd-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"18ngvsjq65qxk3biggnkhkq8jlll9dsg9n3csra9p99sfw2rvjml")))) "0h7a31yxwyh7h521frnmlppl0h7sh9icc3ka6vlmlcg5iwllhg8k"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
(inputs `(("apr" ,apr) (inputs `(("apr" ,apr)
@ -5362,14 +5362,8 @@ command-line arguments or read from stdin.")
(description "@code{ia} is a command-line tool for using (description "@code{ia} is a command-line tool for using
@url{archive.org} from the command-line. It also emplements the @url{archive.org} from the command-line. It also emplements the
internetarchive python module for programmatic access to archive.org.") internetarchive python module for programmatic access to archive.org.")
(properties
`((python2-variant . ,(delay python2-internetarchive))))
(license license:agpl3+))) (license license:agpl3+)))
(define-public python2-internetarchive
(package-with-python2
(strip-python2-variant python-internetarchive)))
(define-public python-clf (define-public python-clf
(let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7 (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
(package (package
@ -5426,7 +5420,7 @@ snippets on @url{https://commandlinefu.com}.")
(define-public rss-bridge (define-public rss-bridge
(package (package
(name "rss-bridge") (name "rss-bridge")
(version "2019-01-13") (version "2019-07-06")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -5436,7 +5430,7 @@ snippets on @url{https://commandlinefu.com}.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1m0dq491954f0d7k4508ddlywk09whcz9j21rc4yk3lbwpf0nd4c")))) "0zd0c9xzvpx55mvj8xrafakfkvafnwkkvhw9b1j0bf897xdkfsyb"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
'(#:modules ((guix build utils)) '(#:modules ((guix build utils))

View File

@ -318,7 +318,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data (define-public wine-staging-patchset-data
(package (package
(name "wine-staging-patchset-data") (name "wine-staging-patchset-data")
(version "4.13") (version "4.14")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -328,7 +328,7 @@ integrate Windows applications into your desktop.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0bbwsd2qpjilxpjscqbp78p0gl0awj1yj62g0wvybh4x89fzy8zj")))) "1s17hcrp1aa0v99y5iav2s0lxdx2rzgm7z0c4zhxyydqxj399f5j"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs (native-inputs
`(("bash" ,bash) `(("bash" ,bash)
@ -374,7 +374,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz")) (file-name (string-append name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0rqx8g394aj5q913cd18zsi60sldvxarrp178w6ja0y4rd8l25vr")))) "1rl1a3k5sr0hyxc61d68kwandhxcnxwv6b77vh7x2rkl1h4nxmfs"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf (inputs `(("autoconf" ,autoconf) ; for autoreconf
("faudio" ,faudio) ("faudio" ,faudio)
("ffmpeg" ,ffmpeg) ("ffmpeg" ,ffmpeg)
@ -499,7 +499,6 @@ integrated into the main branch.")
(script (string-append (assoc-ref %build-inputs (script (string-append (assoc-ref %build-inputs
"wine-staging-patchset-data") "wine-staging-patchset-data")
"/share/wine-staging/patches/patchinstall.sh"))) "/share/wine-staging/patches/patchinstall.sh")))
;; Exclude specific patches that conflict with FAudio.
(invoke script (string-append "DESTDIR=" ".") "--all") (invoke script (string-append "DESTDIR=" ".") "--all")
#t))) #t)))
(add-after 'install 'copy-wine32-binaries (add-after 'install 'copy-wine32-binaries

View File

@ -716,18 +716,18 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
(define-public xlockmore (define-public xlockmore
(package (package
(name "xlockmore") (name "xlockmore")
(version "5.57") (version "5.58")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "http://sillycycle.com/xlock/" (uri (list (string-append "http://sillycycle.com/xlock/"
name "-" version ".tar.xz") "xlockmore-" version ".tar.xz")
;; Previous releases are moved to a subdirectory. ;; Previous releases are moved to a subdirectory.
(string-append "http://sillycycle.com/xlock/" (string-append "http://sillycycle.com/xlock/"
"recent-releases/" "recent-releases/"
name "-" version ".tar.xz"))) "xlockmore-" version ".tar.xz")))
(sha256 (sha256
(base32 (base32
"18r8rh8fzdn9miicbpc3qbdd4mm2g1jpsbcvj29sr66pxydzkb7r")))) "1va11sbv5lbkxkp0i0msz5md3n2n82nzppk27rzdrw7y79vq37zw"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags (list (string-append "--enable-appdefaultdir=" '(#:configure-flags (list (string-append "--enable-appdefaultdir="

View File

@ -1805,7 +1805,7 @@ used with other display managers such as gdm or kdm.")
(define-public setxkbmap (define-public setxkbmap
(package (package
(name "setxkbmap") (name "setxkbmap")
(version "1.3.1") (version "1.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1815,7 +1815,7 @@ used with other display managers such as gdm or kdm.")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1qfk097vjysqb72pq89h0la3462kbb2dh1d11qzs2fr67ybb7pd9")))) "1xdrxs65v7d0rw1yaz0vsz55w4hxym99216p085ya9978j379wlg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libxkbfile" ,libxkbfile) `(("libxkbfile" ,libxkbfile)
@ -4167,16 +4167,16 @@ an X server.")
(define-public xrandr (define-public xrandr
(package (package
(name "xrandr") (name "xrandr")
(version "1.5.0") (version "1.5.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"mirror://xorg/individual/app/xrandr-" "mirror://xorg/individual/app/xrandr-"
version ".tar.bz2")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1kaih7rmzxr1vp5a5zzjhm5x7dn9mckya088sqqw026pskhx9ky1")))) "0ql75s1n3dm2m3g1ilb9l6hqh15r0v709bgghpwazy3jknpnvivv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libxrender" ,libxrender) `(("libxrender" ,libxrender)

View File

@ -430,34 +430,34 @@ ACTIVATION-SCRIPT-TYPE."
(define (activation-script gexps) (define (activation-script gexps)
"Return the system's activation script, which evaluates GEXPS." "Return the system's activation script, which evaluates GEXPS."
(define actions (define actions
(map (cut scheme-file "activate-service" <>) gexps)) (map (cut program-file "activate-service.scm" <>) gexps))
(scheme-file "activate" (program-file "activate.scm"
(with-imported-modules (source-module-closure (with-imported-modules (source-module-closure
'((gnu build activation) '((gnu build activation)
(guix build utils))) (guix build utils)))
#~(begin #~(begin
(use-modules (gnu build activation) (use-modules (gnu build activation)
(guix build utils)) (guix build utils))
;; Make sure the user accounting database exists. If it ;; Make sure the user accounting database exists. If it
;; does not exist, 'setutxent' does not create it and ;; does not exist, 'setutxent' does not create it and
;; thus there is no accounting at all. ;; thus there is no accounting at all.
(close-port (open-file "/var/run/utmpx" "a0")) (close-port (open-file "/var/run/utmpx" "a0"))
;; Same for 'wtmp', which is populated by mingetty et ;; Same for 'wtmp', which is populated by mingetty et
;; al. ;; al.
(mkdir-p "/var/log") (mkdir-p "/var/log")
(close-port (open-file "/var/log/wtmp" "a0")) (close-port (open-file "/var/log/wtmp" "a0"))
;; Set up /run/current-system. Among other things this ;; Set up /run/current-system. Among other things this
;; sets up locales, which the activation snippets ;; sets up locales, which the activation snippets
;; executed below may expect. ;; executed below may expect.
(activate-current-system) (activate-current-system)
;; Run the services' activation snippets. ;; Run the services' activation snippets.
;; TODO: Use 'load-compiled'. ;; TODO: Use 'load-compiled'.
(for-each primitive-load '#$actions))))) (for-each primitive-load '#$actions)))))
(define (gexps->activation-gexp gexps) (define (gexps->activation-gexp gexps)
"Return a gexp that runs the activation script containing GEXPS." "Return a gexp that runs the activation script containing GEXPS."

View File

@ -8,6 +8,7 @@
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -801,10 +802,14 @@ to add @var{device} to the kernel's entropy pool. The service will fail if
(description (description
"Install the given fonts on the specified ttys (fonts are per "Install the given fonts on the specified ttys (fonts are per
virtual console on GNU/Linux). The value of this service is a list of virtual console on GNU/Linux). The value of this service is a list of
tty/font pairs like: tty/font pairs. The font can be the name of a font provided by the @code{kbd}
package or any valid argument to @command{setfont}, as in this example:
@example @example
'((\"tty1\" . \"LatGrkCyr-8x16\")) '((\"tty1\" . \"LatGrkCyr-8x16\")
(\"tty2\" . (file-append
font-tamzen
\"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\")))
@end example\n"))) @end example\n")))
(define* (console-font-service tty #:optional (font "LatGrkCyr-8x16")) (define* (console-font-service tty #:optional (font "LatGrkCyr-8x16"))

View File

@ -133,7 +133,10 @@ MODULES and taken from LINUX."
(copy-file module (copy-file module
(string-append #$output "/" (string-append #$output "/"
(basename module)))) (basename module))))
(delete-duplicates modules))))) (delete-duplicates modules))
;; Hyphen or underscore? This database tells us.
(write-module-name-database #$output))))
(computed-file "linux-modules" build-exp)) (computed-file "linux-modules" build-exp))

View File

@ -47,14 +47,22 @@ available via the first URI, the second URI points to the archived version."
(string-append "mirror://cran/src/contrib/Archive/" (string-append "mirror://cran/src/contrib/Archive/"
name "/" name "_" version ".tar.gz"))) name "/" name "_" version ".tar.gz")))
(define (bioconductor-uri name version) (define* (bioconductor-uri name version #:optional type)
"Return a URI string for the R package archive on Bioconductor for the "Return a URI string for the R package archive on Bioconductor for the
release corresponding to NAME and VERSION." release corresponding to NAME and VERSION."
(list (string-append "https://bioconductor.org/packages/release/bioc/src/contrib/" (let ((type-url-part (match type
name "_" version ".tar.gz") ('annotation "/data/annotation")
;; TODO: use %bioconductor-version from (guix import cran) ('experiment "/data/experiment")
(string-append "https://bioconductor.org/packages/3.9/bioc/src/contrib/Archive/" (_ "/bioc"))))
name "_" version ".tar.gz"))) (list (string-append "https://bioconductor.org/packages/release"
type-url-part
"/src/contrib/"
name "_" version ".tar.gz")
;; TODO: use %bioconductor-version from (guix import cran)
(string-append "https://bioconductor.org/packages/3.9"
type-url-part
"/src/contrib/Archive/"
name "_" version ".tar.gz"))))
(define %r-build-system-modules (define %r-build-system-modules
;; Build-side modules imported by default. ;; Build-side modules imported by default.

View File

@ -65,7 +65,9 @@
latest-channel-derivation latest-channel-derivation
channel-instances->manifest channel-instances->manifest
%channel-profile-hooks %channel-profile-hooks
channel-instances->derivation)) channel-instances->derivation
profile-channels))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -534,3 +536,27 @@ channel instances."
latest instances of CHANNELS." latest instances of CHANNELS."
(mlet %store-monad ((instances (latest-channel-instances* channels))) (mlet %store-monad ((instances (latest-channel-instances* channels)))
(channel-instances->derivation instances))) (channel-instances->derivation instances)))
(define (profile-channels profile)
"Return the list of channels corresponding to entries in PROFILE. If
PROFILE is not a profile created by 'guix pull', return the empty list."
(filter-map (lambda (entry)
(match (assq 'source (manifest-entry-properties entry))
(('source ('repository ('version 0)
('url url)
('branch branch)
('commit commit)
_ ...))
(channel (name (string->symbol
(manifest-entry-name entry)))
(url url)
(commit commit)))
;; No channel information for this manifest entry.
;; XXX: Pre-0.15.0 Guix did not provide that information,
;; but there's not much we can do in that case.
(_ #f)))
;; Show most recently installed packages last.
(reverse
(manifest-entries (profile-manifest profile)))))

View File

@ -376,8 +376,8 @@ of SUBSTITUTABLES."
(substitution-oracle (substitution-oracle
store inputs #:mode mode))) store inputs #:mode mode)))
"Given INPUTS, a list of derivation-inputs, return two values: the list of "Given INPUTS, a list of derivation-inputs, return two values: the list of
derivation to build, and the list of substitutable items that, together, derivations to build, and the list of substitutable items that, together,
allows INPUTS to be realized. allow INPUTS to be realized.
SUBSTITUTABLE-INFO must be a one-argument procedure similar to that returned SUBSTITUTABLE-INFO must be a one-argument procedure similar to that returned
by 'substitution-oracle'." by 'substitution-oracle'."
@ -685,7 +685,7 @@ name of each input with that input's hash."
(make-derivation-input hash sub-drvs)))) (make-derivation-input hash sub-drvs))))
inputs))) inputs)))
(make-derivation outputs (make-derivation outputs
(sort inputs (sort (delete-duplicates inputs)
(lambda (drv1 drv2) (lambda (drv1 drv2)
(string<? (derivation-input-derivation drv1) (string<? (derivation-input-derivation drv1)
(derivation-input-derivation drv2)))) (derivation-input-derivation drv2))))

View File

@ -132,14 +132,19 @@ package definition."
;; updated together. ;; updated together.
(define %bioconductor-version "3.9") (define %bioconductor-version "3.9")
(define %bioconductor-packages-list-url (define* (bioconductor-packages-list-url #:optional type)
(string-append "https://bioconductor.org/packages/" (string-append "https://bioconductor.org/packages/"
%bioconductor-version "/bioc/src/contrib/PACKAGES")) %bioconductor-version
(match type
('annotation "/data/annotation")
('experiment "/data/experiment")
(_ "/bioc"))
"/src/contrib/PACKAGES"))
(define (bioconductor-packages-list) (define* (bioconductor-packages-list #:optional type)
"Return the latest version of package NAME for the current bioconductor "Return the latest version of package NAME for the current bioconductor
release." release."
(let ((url (string->uri %bioconductor-packages-list-url))) (let ((url (string->uri (bioconductor-packages-list-url type))))
(guard (c ((http-get-error? c) (guard (c ((http-get-error? c)
(format (current-error-port) (format (current-error-port)
"error: failed to retrieve list of packages from ~s: ~a (~s)~%" "error: failed to retrieve list of packages from ~s: ~a (~s)~%"
@ -153,12 +158,12 @@ release."
(description->alist (string-join chunk "\n"))) (description->alist (string-join chunk "\n")))
(chunk-lines (read-lines (http-fetch/cached url))))))) (chunk-lines (read-lines (http-fetch/cached url)))))))
(define (latest-bioconductor-package-version name) (define* (latest-bioconductor-package-version name #:optional type)
"Return the version string corresponding to the latest release of the "Return the version string corresponding to the latest release of the
bioconductor package NAME, or #F if the package is unknown." bioconductor package NAME, or #F if the package is unknown."
(and=> (find (lambda (meta) (and=> (find (lambda (meta)
(string=? (assoc-ref meta "Package") name)) (string=? (assoc-ref meta "Package") name))
(bioconductor-packages-list)) (bioconductor-packages-list type))
(cut assoc-ref <> "Version"))) (cut assoc-ref <> "Version")))
;; Little helper to download URLs only once. ;; Little helper to download URLs only once.
@ -187,8 +192,12 @@ from ~s: ~a (~s)~%"
;; Currently, the bioconductor project does not offer a way to access a ;; Currently, the bioconductor project does not offer a way to access a
;; package's DESCRIPTION file over HTTP, so we determine the version, ;; package's DESCRIPTION file over HTTP, so we determine the version,
;; download the source tarball, and then extract the DESCRIPTION file. ;; download the source tarball, and then extract the DESCRIPTION file.
(and-let* ((version (latest-bioconductor-package-version name)) (and-let* ((type (or
(url (car (bioconductor-uri name version))) (and (latest-bioconductor-package-version name) #t)
(and (latest-bioconductor-package-version name 'annotation) 'annotation)
(and (latest-bioconductor-package-version name 'experiment) 'experiment)))
(version (latest-bioconductor-package-version name type))
(url (car (bioconductor-uri name version type)))
(tarball (download url))) (tarball (download url)))
(call-with-temporary-directory (call-with-temporary-directory
(lambda (dir) (lambda (dir)
@ -198,8 +207,11 @@ from ~s: ~a (~s)~%"
"--strip-components=1" "--strip-components=1"
"-C" dir "-C" dir
"-f" tarball "*/DESCRIPTION")) "-f" tarball "*/DESCRIPTION"))
(description->alist (with-input-from-file (and=> (description->alist (with-input-from-file
(string-append dir "/DESCRIPTION") read-string)))))))))) (string-append dir "/DESCRIPTION") read-string))
(lambda (meta)
(if (boolean? type) meta
(cons `(bioconductor-type . ,type) meta))))))))))))
(define (listify meta field) (define (listify meta field)
"Look up FIELD in the alist META. If FIELD contains a comma-separated "Look up FIELD in the alist META. If FIELD contains a comma-separated
@ -306,7 +318,11 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
(home-page (match (listify meta "URL") (home-page (match (listify meta "URL")
((url rest ...) url) ((url rest ...) url)
(_ (string-append base-url name)))) (_ (string-append base-url name))))
(source-url (match (uri-helper name version) (source-url (match (apply uri-helper name version
(case repository
((bioconductor)
(list (assoc-ref meta 'bioconductor-type)))
(else '())))
((url rest ...) url) ((url rest ...) url)
((? string? url) url) ((? string? url) url)
(_ #f))) (_ #f)))
@ -330,7 +346,11 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
(version ,version) (version ,version)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (,(procedure-name uri-helper) ,name version)) (uri (,(procedure-name uri-helper) ,name version
,@(or (and=> (assoc-ref meta 'bioconductor-type)
(lambda (type)
(list (list 'quote type))))
'())))
(sha256 (sha256
(base32 (base32
,(bytevector->nix-base32-string (file-sha256 tarball)))))) ,(bytevector->nix-base32-string (file-sha256 tarball))))))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -46,7 +46,7 @@ source for metadata."
(package name) (package name)
(version version) (version version)
(urls (filter-map (lambda (extension) (urls (filter-map (lambda (extension)
(match (hash-ref dictionary extension) (match (assoc-ref dictionary extension)
(#f (#f
#f) #f)
((? string? relative-url) ((? string? relative-url)
@ -86,21 +86,22 @@ not be determined."
(json (json->scm port))) (json (json->scm port)))
(close-port port) (close-port port)
(match json (match json
((4 (? hash-table? releases) _ ...) (#(4 releases _ ...)
(let* ((releases (hash-ref releases upstream-name)) (let* ((releases (assoc-ref releases upstream-name))
(latest (hash-fold (lambda (key value result) (latest (fold (match-lambda*
(cond ((even-minor-version? key) (((key . value) result)
(match result (cond ((even-minor-version? key)
(#f (match result
(cons key value)) (#f
((newest . _) (cons key value))
(if (version>? key newest) ((newest . _)
(cons key value) (if (version>? key newest)
result)))) (cons key value)
(else result))))
result))) (else
#f result))))
releases))) #f
releases)))
(and latest (and latest
(jsonish->upstream-source upstream-name latest)))))))) (jsonish->upstream-source upstream-name latest))))))))

View File

@ -19,13 +19,17 @@
(define-module (guix remote) (define-module (guix remote)
#:use-module (guix ssh) #:use-module (guix ssh)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix i18n)
#:use-module (guix inferior) #:use-module (guix inferior)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix modules) #:use-module (guix modules)
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix utils)
#:use-module (ssh popen) #:use-module (ssh popen)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:export (remote-eval)) #:export (remote-eval))
@ -40,29 +44,41 @@
;;; ;;;
;;; Code: ;;; Code:
(define (remote-pipe-for-gexp lowered session) (define* (remote-pipe-for-gexp lowered session #:optional become-command)
"Return a remote pipe for the given SESSION to evaluate LOWERED." "Return a remote pipe for the given SESSION to evaluate LOWERED. If
BECOME-COMMAND is given, use that to invoke the remote Guile REPL."
(define shell-quote (define shell-quote
(compose object->string object->string)) (compose object->string object->string))
(apply open-remote-pipe* session OPEN_READ (define repl-command
(string-append (derivation-input-output-path (append (or become-command '())
(lowered-gexp-guile lowered)) (list
"/bin/guile") (string-append (derivation-input-output-path
"--no-auto-compile" (lowered-gexp-guile lowered))
(append (append-map (lambda (directory) "/bin/guile")
`("-L" ,directory)) "--no-auto-compile")
(lowered-gexp-load-path lowered)) (append-map (lambda (directory)
(append-map (lambda (directory) `("-L" ,directory))
`("-C" ,directory)) (lowered-gexp-load-path lowered))
(lowered-gexp-load-path lowered)) (append-map (lambda (directory)
`("-c" `("-C" ,directory))
,(shell-quote (lowered-gexp-sexp lowered)))))) (lowered-gexp-load-path lowered))
`("-c"
,(shell-quote (lowered-gexp-sexp lowered)))))
(define (%remote-eval lowered session) (let ((pipe (apply open-remote-pipe* session OPEN_READ repl-command)))
(when (eof-object? (peek-char pipe))
(raise (condition
(&message
(message (format #f (G_ "failed to run '~{~a~^ ~}'")
repl-command))))))
pipe))
(define* (%remote-eval lowered session #:optional become-command)
"Evaluate LOWERED, a lowered gexp, in SESSION. This assumes that all the "Evaluate LOWERED, a lowered gexp, in SESSION. This assumes that all the
prerequisites of EXP are already available on the host at SESSION." prerequisites of EXP are already available on the host at SESSION. If
(let* ((pipe (remote-pipe-for-gexp lowered session)) BECOME-COMMAND is given, use that to invoke the remote Guile REPL."
(let* ((pipe (remote-pipe-for-gexp lowered session become-command))
(result (read-repl-response pipe))) (result (read-repl-response pipe)))
(close-port pipe) (close-port pipe)
result)) result))
@ -71,7 +87,7 @@ prerequisites of EXP are already available on the host at SESSION."
"Return a \"trampoline\" gexp that evaluates EXP and writes the evaluation "Return a \"trampoline\" gexp that evaluates EXP and writes the evaluation
result to the current output port using the (guix repl) protocol." result to the current output port using the (guix repl) protocol."
(define program (define program
(scheme-file "remote-exp.scm" exp)) (program-file "remote-exp.scm" exp))
(with-imported-modules (source-module-closure '((guix repl))) (with-imported-modules (source-module-closure '((guix repl)))
#~(begin #~(begin
@ -89,17 +105,21 @@ result to the current output port using the (guix repl) protocol."
(define* (remote-eval exp session (define* (remote-eval exp session
#:key #:key
(build-locally? #t) (build-locally? #t)
(system (%current-system))
(module-path %load-path) (module-path %load-path)
(socket-name "/var/guix/daemon-socket/socket")) (socket-name (%daemon-socket-uri))
(become-command #f))
"Evaluate EXP, a gexp, on the host at SESSION, an SSH session. Ensure that "Evaluate EXP, a gexp, on the host at SESSION, an SSH session. Ensure that
all the elements EXP refers to are built and deployed to SESSION beforehand. all the elements EXP refers to are built and deployed to SESSION beforehand.
When BUILD-LOCALLY? is true, said dependencies are built locally and sent to When BUILD-LOCALLY? is true, said dependencies are built locally and sent to
the remote store afterwards; otherwise, dependencies are built directly on the the remote store afterwards; otherwise, dependencies are built directly on the
remote store." remote store."
(mlet %store-monad ((lowered (lower-gexp (trampoline exp) (mlet* %store-monad ((lowered (lower-gexp (trampoline exp)
#:module-path %load-path)) #:system system
(remote -> (connect-to-remote-daemon session #:guile-for-build #f
socket-name))) #:module-path %load-path))
(remote -> (connect-to-remote-daemon session
socket-name)))
(define inputs (define inputs
(cons (lowered-gexp-guile lowered) (cons (lowered-gexp-guile lowered)
(lowered-gexp-inputs lowered))) (lowered-gexp-inputs lowered)))
@ -115,7 +135,7 @@ remote store."
(built-derivations inputs) (built-derivations inputs)
((store-lift send-files) to-send remote #:recursive? #t) ((store-lift send-files) to-send remote #:recursive? #t)
(return (close-connection remote)) (return (close-connection remote))
(return (%remote-eval lowered session)))) (return (%remote-eval lowered session become-command))))
(let ((to-send (append (map (compose derivation-file-name (let ((to-send (append (map (compose derivation-file-name
derivation-input-derivation) derivation-input-derivation)
inputs) inputs)
@ -124,4 +144,4 @@ remote store."
((store-lift send-files) to-send remote #:recursive? #t) ((store-lift send-files) to-send remote #:recursive? #t)
(return (build-derivations remote inputs)) (return (build-derivations remote inputs))
(return (close-connection remote)) (return (close-connection remote))
(return (%remote-eval lowered session))))))) (return (%remote-eval lowered session become-command)))))))

View File

@ -28,6 +28,8 @@
#:use-module (guix grafts) #:use-module (guix grafts)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:export (guix-deploy)) #:export (guix-deploy))
@ -43,8 +45,6 @@
(define (show-help) (define (show-help)
(display (G_ "Usage: guix deploy [OPTION] FILE... (display (G_ "Usage: guix deploy [OPTION] FILE...
Perform the deployment specified by FILE.\n")) Perform the deployment specified by FILE.\n"))
(display (G_ "
-s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\""))
(show-build-options-help) (show-build-options-help)
(newline) (newline)
(display (G_ " (display (G_ "
@ -66,8 +66,7 @@ Perform the deployment specified by FILE.\n"))
%standard-build-options)) %standard-build-options))
(define %default-options (define %default-options
`((system . ,(%current-system)) `((substitutes? . #t)
(substitutes? . #t)
(build-hook? . #t) (build-hook? . #t)
(graft? . #t) (graft? . #t)
(debug . 0) (debug . 0)
@ -91,8 +90,18 @@ Perform the deployment specified by FILE.\n"))
(with-store store (with-store store
(set-build-options-from-command-line store opts) (set-build-options-from-command-line store opts)
(for-each (lambda (machine) (for-each (lambda (machine)
(info (G_ "deploying to ~a...") (machine-display-name machine)) (info (G_ "deploying to ~a...~%")
(parameterize ((%current-system (assq-ref opts 'system)) (machine-display-name machine))
(%graft? (assq-ref opts 'graft?))) (parameterize ((%graft? (assq-ref opts 'graft?)))
(run-with-store store (deploy-machine machine)))) (guard (c ((message-condition? c)
(report-error (G_ "failed to deploy ~a: '~a'~%")
(machine-display-name machine)
(condition-message c)))
((deploy-error? c)
(when (deploy-error-should-roll-back c)
(info (G_ "rolling back ~a...~%")
(machine-display-name machine))
(run-with-store store (roll-back-machine machine)))
(apply throw (deploy-error-captured-args c))))
(run-with-store store (deploy-machine machine)))))
machines)))) machines))))

View File

@ -153,30 +153,9 @@ in the format specified by FMT."
(generation-number profile)) (generation-number profile))
(define channels (define channels
(map (lambda (entry) (profile-channels (if (zero? number)
(match (assq 'source (manifest-entry-properties entry)) profile
(('source ('repository ('version 0) (generation-file-name profile number))))
('url url)
('branch branch)
('commit commit)
_ ...))
(channel (name (string->symbol (manifest-entry-name entry)))
(url url)
(commit commit)))
;; Pre-0.15.0 Guix does not provide that information,
;; so there's not much we can do in that case.
(_ (channel (name 'guix)
(url "?")
(commit "?")))))
;; Show most recently installed packages last.
(reverse
(manifest-entries
(profile-manifest
(if (zero? number)
profile
(generation-file-name profile number)))))))
(match fmt (match fmt
('human ('human

View File

@ -285,10 +285,9 @@ update would trigger a complete rebuild."
(exit 0)) (exit 0))
(define (warn-no-updater package) (define (warn-no-updater package)
(format (current-error-port) (warning (package-location package)
(G_ "~a: warning: no updater for ~a~%") (G_ "no updater for ~a~%")
(location->string (package-location package)) (package-name package)))
(package-name package)))
(define* (update-package store package updaters (define* (update-package store package updaters
#:key (key-download 'interactive) warn?) #:key (key-download 'interactive) warn?)
@ -306,11 +305,10 @@ warn about packages that have no matching updater."
(when version (when version
(if (and=> tarball file-exists?) (if (and=> tarball file-exists?)
(begin (begin
(format (current-error-port) (info loc
(G_ "~a: ~a: updating from version ~a to version ~a...~%") (G_ "~a: updating from version ~a to version ~a...~%")
(location->string loc) (package-name package)
(package-name package) (package-version package) version)
(package-version package) version)
(for-each (for-each
(lambda (change) (lambda (change)
(format (current-error-port) (format (current-error-port)
@ -350,27 +348,24 @@ WARN? is true and no updater exists for PACKAGE, print a warning."
(case (version-compare (upstream-source-version source) (case (version-compare (upstream-source-version source)
(package-version package)) (package-version package))
((>) ((>)
(format (current-error-port) (info loc
(G_ "~a: ~a would be upgraded from ~a to ~a~%") (G_ "~a would be upgraded from ~a to ~a~%")
(location->string loc) (package-name package) (package-version package)
(package-name package) (package-version package) (upstream-source-version source)))
(upstream-source-version source)))
((=) ((=)
(when warn? (when warn?
(format (current-error-port) (info loc
(G_ "~a: info: ~a is already the latest version of ~a~%") (G_ "~a is already the latest version of ~a~%")
(location->string loc) (package-version package)
(package-version package) (package-name package))))
(package-name package))))
(else (else
(when warn? (when warn?
(format (current-error-port) (warning loc
(G_ "~a: warning: ~a is greater than \ (G_ "~a is greater than \
the latest known version of ~a (~a)~%") the latest known version of ~a (~a)~%")
(location->string loc) (package-version package)
(package-version package) (package-name package)
(package-name package) (upstream-source-version source)))))))
(upstream-source-version source)))))))
(#f (#f
(when warn? (when warn?
(warn-no-updater package))))) (warn-no-updater package)))))

View File

@ -21,6 +21,7 @@
#:use-module (guix inferior) #:use-module (guix inferior)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module ((guix utils) #:select (&fix-hint)) #:use-module ((guix utils) #:select (&fix-hint))
#:use-module (gcrypt pk-crypto)
#:use-module (ssh session) #:use-module (ssh session)
#:use-module (ssh auth) #:use-module (ssh auth)
#:use-module (ssh key) #:use-module (ssh key)
@ -39,6 +40,8 @@
remote-inferior remote-inferior
remote-daemon-channel remote-daemon-channel
connect-to-remote-daemon connect-to-remote-daemon
remote-system
remote-authorize-signing-key
send-files send-files
retrieve-files retrieve-files
retrieve-files* retrieve-files*
@ -97,16 +100,27 @@ specifies; otherwise use them. Throw an error on failure."
(message (format #f (G_ "SSH connection to '~a' failed: ~a~%") (message (format #f (G_ "SSH connection to '~a' failed: ~a~%")
host (get-error session)))))))))) host (get-error session))))))))))
(define (remote-inferior session) (define* (remote-inferior session #:optional become-command)
"Return a remote inferior for the given SESSION." "Return a remote inferior for the given SESSION. If BECOME-COMMAND is
(let ((pipe (open-remote-pipe* session OPEN_BOTH given, use that to invoke the remote Guile REPL."
"guix" "repl" "-t" "machine"))) (let* ((repl-command (append (or become-command '())
'("guix" "repl" "-t" "machine")))
(pipe (apply open-remote-pipe* session OPEN_BOTH repl-command)))
;; XXX: 'channel-get-exit-status' would be better here, but hangs if the
;; process does succeed. This doesn't reflect the documentation, so it's
;; possible that it's a bug in guile-ssh.
(when (eof-object? (peek-char pipe))
(raise (condition
(&message
(message (format #f (G_ "failed to run '~{~a~^ ~}'")
repl-command))))))
(port->inferior pipe))) (port->inferior pipe)))
(define (inferior-remote-eval exp session) (define* (inferior-remote-eval exp session #:optional become-command)
"Evaluate EXP in a new inferior running in SESSION, and close the inferior "Evaluate EXP in a new inferior running in SESSION, and close the inferior
right away." right away. If BECOME-COMMAND is given, use that to invoke the remote Guile
(let ((inferior (remote-inferior session))) REPL."
(let ((inferior (remote-inferior session become-command)))
(dynamic-wind (dynamic-wind
(const #t) (const #t)
(lambda () (lambda ()
@ -282,6 +296,34 @@ be read. When RECURSIVE? is true, the closure of FILES is exported."
,(object->string ,(object->string
(object->string export)))))) (object->string export))))))
(define (remote-system session)
"Return the system type as expected by Nix, usually ARCHITECTURE-KERNEL, of
the machine on the other end of SESSION."
(inferior-remote-eval '(begin (use-modules (guix utils)) (%current-system))
session))
(define* (remote-authorize-signing-key key session #:optional become-command)
"Send KEY, a canonical sexp containing a public key, over SESSION and add it
to the system ACL file if it has not yet been authorized."
(inferior-remote-eval
`(begin
(use-modules (guix build utils)
(guix pki)
(guix utils)
(gcrypt pk-crypto)
(srfi srfi-26))
(define acl (current-acl))
(define key (string->canonical-sexp ,(canonical-sexp->string key)))
(unless (authorized-key? key)
(let ((acl (public-keys->acl (cons key (acl->public-keys acl)))))
(mkdir-p (dirname %acl-file))
(with-atomic-file-output %acl-file
(cut write-acl acl <>)))))
session
become-command))
(define* (send-files local files remote (define* (send-files local files remote
#:key #:key
recursive? recursive?

View File

@ -362,6 +362,7 @@ SOURCE, an <upstream-source>."
(_ (_
"gz"))) "gz")))
((url signature-url) ((url signature-url)
;; Try to find a URL that matches ARCHIVE-TYPE.
(find2 (lambda (url sig-url) (find2 (lambda (url sig-url)
;; Some URIs lack a file extension, like ;; Some URIs lack a file extension, like
;; 'https://crates.io/???/0.1/download'. In that ;; 'https://crates.io/???/0.1/download'. In that
@ -370,7 +371,13 @@ SOURCE, an <upstream-source>."
(string-suffix? archive-type url))) (string-suffix? archive-type url)))
urls urls
(or signature-urls (circular-list #f))))) (or signature-urls (circular-list #f)))))
(let ((tarball (download-tarball store url signature-url ;; If none of URLS matches ARCHIVE-TYPE, then URL is #f; in that case,
;; pick up the first element of URLS.
(let ((tarball (download-tarball store
(or url (first urls))
(and (pair? signature-urls)
(or signature-url
(first signature-urls)))
#:key-download key-download))) #:key-download key-download)))
(values version tarball source)))))) (values version tarball source))))))

View File

@ -184,9 +184,8 @@ AC_DEFUN([GUIX_CHECK_GUILE_JSON], [
[guix_cv_have_recent_guile_json], [guix_cv_have_recent_guile_json],
[GUILE_CHECK([retval], [GUILE_CHECK([retval],
[(use-modules (json) (ice-9 match)) [(use-modules (json) (ice-9 match))
(match (json-string->scm \"[[] { \\\"a\\\": 42 } []]\") (match (json-string->scm \"[[ { \\\"a\\\": 42 } ]]\")
(#(("a" . 42)) #t) (#((("a" . 42))) #t))])
(_ #f))])
if test "$retval" = 0; then if test "$retval" = 0; then
guix_cv_have_recent_guile_json="yes" guix_cv_have_recent_guile_json="yes"
else else

View File

@ -409,6 +409,38 @@
(equal? (derivation->output-path final1) (equal? (derivation->output-path final1)
(derivation->output-path final2))))) (derivation->output-path final2)))))
(test-assert "derivation with duplicate fixed-output inputs"
;; Here we create a derivation that has two inputs, both of which are
;; fixed-output leading to the same result. This test ensures the hash of
;; that derivation is correctly computed, namely that duplicate inputs are
;; coalesced. See <https://bugs.gnu.org/36777>.
(let* ((builder1 (add-text-to-store %store "fixed-builder1.sh"
"echo -n hello > $out" '()))
(builder2 (add-text-to-store %store "fixed-builder2.sh"
"echo hey; echo -n hello > $out" '()))
(hash (sha256 (string->utf8 "hello")))
(fixed1 (derivation %store "fixed"
%bash `(,builder1)
#:hash hash #:hash-algo 'sha256))
(fixed2 (derivation %store "fixed"
%bash `(,builder2)
#:hash hash #:hash-algo 'sha256))
(builder3 (add-text-to-store %store "builder.sh"
"echo fake builder"))
(final (derivation %store "final"
%bash `(,builder3)
#:sources (list %bash builder3)
#:inputs (list (derivation-input fixed1)
(derivation-input fixed2)))))
(and (derivation? final)
(match (derivation-inputs final)
(((= derivation-input-derivation one)
(= derivation-input-derivation two))
(and (not (string=? (derivation-file-name one)
(derivation-file-name two)))
(string=? (derivation->output-path one)
(derivation->output-path two))))))))
(test-assert "multiple-output derivation" (test-assert "multiple-output derivation"
(let* ((builder (add-text-to-store %store "my-fixed-builder.sh" (let* ((builder (add-text-to-store %store "my-fixed-builder.sh"
"echo one > $out ; echo two > $second" "echo one > $out ; echo two > $second"

View File

@ -144,6 +144,13 @@ HOME="$tmpdir" guix environment --bootstrap --container --user=foognu \
--share="$tmpdir/umock" \ --share="$tmpdir/umock" \
-- guile -c "$usertest" -- guile -c "$usertest"
# if not sharing CWD, chdir home
(
cd "$tmpdir" \
&& guix environment --bootstrap --container --no-cwd --user=foo \
--ad-hoc guile-bootstrap --pure \
-- /bin/sh -c 'test $(pwd) == "/home/foo" -a ! -d '"$tmpdir"
)
# Check the exit code. # Check the exit code.

View File

@ -84,14 +84,6 @@ echo "(use-modules (guix profiles) (gnu packages bootstrap))
guix environment --bootstrap --manifest=$tmpdir/manifest.scm --pure \ guix environment --bootstrap --manifest=$tmpdir/manifest.scm --pure \
-- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"' -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"'
# if not sharing CWD, chdir home
(
cd "$tmpdir" \
&& guix environment --bootstrap --container --no-cwd --user=foo \
--ad-hoc guile-bootstrap --pure \
-- /bin/sh -c 'test $(pwd) == "/home/foo" -a ! -d '"$tmpdir"
)
# Make sure '-r' works as expected. # Make sure '-r' works as expected.
rm -f "$gcroot" rm -f "$gcroot"
expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \ expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \

View File

@ -74,6 +74,12 @@
(((and (? lint-warning?) warning)) (((and (? lint-warning?) warning))
(lint-warning-message warning)))) (lint-warning-message warning))))
(define (warning-contains? str warnings)
"Return true if WARNINGS is a singleton with a warning that contains STR."
(match warnings
(((? lint-warning? warning))
(string-contains (lint-warning-message warning) str))))
(test-begin "lint") (test-begin "lint")
@ -366,13 +372,11 @@
(single-lint-warning-message (single-lint-warning-message
(check-home-page pkg)))) (check-home-page pkg))))
(test-equal "home-page: host not found" (test-assert "home-page: host not found"
"URI http://does-not-exist domain not found: Name or service not known"
(let ((pkg (package (let ((pkg (package
(inherit (dummy-package "x")) (inherit (dummy-package "x"))
(home-page "http://does-not-exist")))) (home-page "http://does-not-exist"))))
(single-lint-warning-message (warning-contains? "domain not found" (check-home-page pkg))))
(check-home-page pkg))))
(test-skip (if (http-server-can-listen?) 0 1)) (test-skip (if (http-server-can-listen?) 0 1))
(test-equal "home-page: Connection refused" (test-equal "home-page: Connection refused"