Merge branch 'master' into core-updates
commit
893c2df00d
|
@ -25514,6 +25514,7 @@ evaluates to. As an example, @var{file} might contain a definition like this:
|
|||
(environment managed-host-environment-type)
|
||||
(configuration (machine-ssh-configuration
|
||||
(host-name "localhost")
|
||||
(user "alice")
|
||||
(identity "./id_rsa")
|
||||
(port 2222)))))
|
||||
@end example
|
||||
|
@ -25546,6 +25547,15 @@ accepts store items it receives from the coordinator:
|
|||
# guix archive --authorize < coordinator-public-key.txt
|
||||
@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
|
||||
This is the data type representing a single machine in a heterogeneous Guix
|
||||
deployment.
|
||||
|
@ -25573,6 +25583,14 @@ with an @code{environment} of @code{managed-host-environment-type}.
|
|||
|
||||
@table @asis
|
||||
@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{user} (default: @code{"root"})
|
||||
@item @code{identity} (default: @code{#f})
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;;
|
||||
;;; 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.
|
||||
#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
|
||||
C_*INCLUDE_PATH."
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
|
@ -110,7 +111,7 @@ C_*INCLUDE_PATH."
|
|||
|
||||
(if libc
|
||||
(let ((cpath (string-append libc "/include"
|
||||
":" libc "/i686-w64-mingw32/include")))
|
||||
":" libc "/" target "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
%gcc-cross-include-paths))
|
||||
|
||||
|
@ -140,7 +141,7 @@ C_*INCLUDE_PATH."
|
|||
(when libc
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append libc "/lib"
|
||||
":" libc "/i686-w64-mingw32/lib")))
|
||||
":" libc "/" target "/lib")))
|
||||
|
||||
(setenv "CPP" (string-append gcc "/bin/cpp"))
|
||||
(for-each (lambda (var)
|
||||
|
@ -166,8 +167,12 @@ C_*INCLUDE_PATH."
|
|||
a target triplet."
|
||||
(modify-phases phases
|
||||
(add-before 'configure 'set-cross-path
|
||||
(if (string-contains target "mingw")
|
||||
set-cross-path/mingw
|
||||
;; This mingw32 target checking logic should match that of target-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))
|
||||
(add-after 'install 'make-cross-binutils-visible
|
||||
(cut make-cross-binutils-visible #:target target <...>))
|
||||
|
|
|
@ -471,10 +471,6 @@ upon error."
|
|||
mounts)
|
||||
"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 "Use '--repl' for an initrd REPL.\n\n")
|
||||
|
||||
|
@ -489,9 +485,8 @@ upon error."
|
|||
(start-repl))
|
||||
|
||||
(display "loading kernel modules...\n")
|
||||
(for-each (cut load-linux-module* <>
|
||||
#:lookup-module lookup-module)
|
||||
(map lookup-module linux-modules))
|
||||
(load-linux-modules-from-directory linux-modules
|
||||
linux-module-directory)
|
||||
|
||||
(when keymap-file
|
||||
(let ((status (system* "loadkeys" keymap-file)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,8 +31,10 @@
|
|||
#:use-module (ice-9 vlist)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:autoload (ice-9 pretty-print) (pretty-print)
|
||||
#:export (dot-ko
|
||||
ensure-dot-ko
|
||||
module-formal-name
|
||||
module-aliases
|
||||
module-dependencies
|
||||
module-soft-dependencies
|
||||
|
@ -42,13 +45,18 @@
|
|||
modules-loaded
|
||||
module-loaded?
|
||||
load-linux-module*
|
||||
load-linux-modules-from-directory
|
||||
|
||||
current-module-debugging-port
|
||||
|
||||
device-module-aliases
|
||||
known-module-aliases
|
||||
matching-modules
|
||||
missing-modules))
|
||||
missing-modules
|
||||
|
||||
write-module-name-database
|
||||
write-module-alias-database
|
||||
write-module-device-database))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -95,6 +103,14 @@ key/value pairs.."
|
|||
(define %not-comma
|
||||
(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)
|
||||
"Return the list of modules that FILE depends on. The returned list
|
||||
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)))
|
||||
(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.
|
||||
|
@ -486,4 +514,121 @@ are required to access DEVICE."
|
|||
(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
|
||||
|
|
|
@ -130,7 +130,8 @@ SYSTEM."
|
|||
"aarch64-linux-gnu"
|
||||
"powerpc-linux-gnu"
|
||||
"i586-pc-gnu" ;aka. GNU/Hurd
|
||||
"i686-w64-mingw32"))
|
||||
"i686-w64-mingw32"
|
||||
"x86_64-w64-mingw32"))
|
||||
|
||||
(define %guixsd-supported-systems
|
||||
'("x86_64-linux" "i686-linux" "armhf-linux"))
|
||||
|
|
|
@ -161,6 +161,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/electronics.scm \
|
||||
%D%/packages/elf.scm \
|
||||
%D%/packages/elixir.scm \
|
||||
%D%/packages/elm.scm \
|
||||
%D%/packages/embedded.scm \
|
||||
%D%/packages/emacs.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-skip-devices-without-io.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/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-exec-path.patch \
|
||||
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#:use-module (guix records)
|
||||
#:use-module (guix store)
|
||||
#:use-module ((guix utils) #:select (source-properties->location))
|
||||
#:use-module (srfi srfi-35)
|
||||
#:export (environment-type
|
||||
environment-type?
|
||||
environment-type-name
|
||||
|
@ -40,7 +41,13 @@
|
|||
machine-display-name
|
||||
|
||||
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:
|
||||
;;;
|
||||
|
@ -66,6 +73,7 @@
|
|||
;; of the form '(machine-remote-eval machine exp)'.
|
||||
(machine-remote-eval environment-type-machine-remote-eval) ; procedure
|
||||
(deploy-machine environment-type-deploy-machine) ; procedure
|
||||
(roll-back-machine environment-type-roll-back-machine) ; procedure
|
||||
|
||||
;; Metadata.
|
||||
(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."
|
||||
(let ((environment (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))
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu machine ssh)
|
||||
#:use-module (gnu bootloader)
|
||||
#:use-module (gnu machine)
|
||||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#:use-module (gnu system)
|
||||
|
@ -27,15 +28,20 @@
|
|||
#:use-module (guix i18n)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix pki)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix remote)
|
||||
#:use-module (guix scripts system reconfigure)
|
||||
#:use-module (guix ssh)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#: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-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:export (managed-host-environment-type
|
||||
|
||||
|
@ -45,6 +51,7 @@
|
|||
|
||||
machine-ssh-configuration-host-name
|
||||
machine-ssh-configuration-build-locally?
|
||||
machine-ssh-configuration-authorize?
|
||||
machine-ssh-configuration-port
|
||||
machine-ssh-configuration-user
|
||||
machine-ssh-configuration-session))
|
||||
|
@ -67,16 +74,19 @@
|
|||
make-machine-ssh-configuration
|
||||
machine-ssh-configuration?
|
||||
this-machine-ssh-configuration
|
||||
(host-name machine-ssh-configuration-host-name) ; string
|
||||
(build-locally? machine-ssh-configuration-build-locally?
|
||||
(host-name machine-ssh-configuration-host-name) ; string
|
||||
(system machine-ssh-configuration-system) ; string
|
||||
(build-locally? machine-ssh-configuration-build-locally? ; boolean
|
||||
(default #t))
|
||||
(port machine-ssh-configuration-port ; integer
|
||||
(authorize? machine-ssh-configuration-authorize? ; boolean
|
||||
(default #t))
|
||||
(port machine-ssh-configuration-port ; integer
|
||||
(default 22))
|
||||
(user machine-ssh-configuration-user ; string
|
||||
(user machine-ssh-configuration-user ; string
|
||||
(default "root"))
|
||||
(identity machine-ssh-configuration-identity ; path to a private key
|
||||
(identity machine-ssh-configuration-identity ; path to a private key
|
||||
(default #f))
|
||||
(session machine-ssh-configuration-session ; session
|
||||
(session machine-ssh-configuration-session ; session
|
||||
(default #f)))
|
||||
|
||||
(define (machine-ssh-session machine)
|
||||
|
@ -99,14 +109,26 @@ one from the configuration's parameters if one was not provided."
|
|||
;;; 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)
|
||||
"Internal implementation of 'machine-remote-eval' for MACHINE instances with
|
||||
an environment type of 'managed-host."
|
||||
(maybe-raise-unsupported-configuration-error machine)
|
||||
(remote-eval exp (machine-ssh-session machine)
|
||||
#:build-locally?
|
||||
(machine-ssh-configuration-build-locally?
|
||||
(machine-configuration machine))))
|
||||
(let ((config (machine-configuration machine)))
|
||||
(remote-eval exp (machine-ssh-session machine)
|
||||
#:build-locally?
|
||||
(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 remote-exp
|
||||
(with-imported-modules '((gnu build file-systems))
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build file-systems)))
|
||||
#~(begin
|
||||
(use-modules (gnu build file-systems))
|
||||
(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))))
|
||||
((file-system-label? device)
|
||||
#~(find-partition-by-label
|
||||
(file-system-label->string #$device)))))
|
||||
#$(file-system-label->string device)))))
|
||||
|
||||
(missing-modules dev '#$(operating-system-initrd-modules
|
||||
(machine-operating-system machine)))))))
|
||||
|
@ -240,10 +263,29 @@ MACHINE's 'system' declaration do not exist on the machine."
|
|||
device)
|
||||
(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)
|
||||
"Raise a '&message' error condition if it is clear that deploying MACHINE's
|
||||
'system' declaration would fail."
|
||||
;; Order is important here -- an incorrect value for 'system' will cause
|
||||
;; invocations of 'remote-eval' to fail.
|
||||
(mbegin %store-monad
|
||||
(machine-check-building-for-appropriate-system machine)
|
||||
(machine-check-file-system-availability 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))))))))
|
||||
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)
|
||||
"Internal implementation of 'deploy-machine' for MACHINE instances with an
|
||||
environment type of 'managed-host."
|
||||
(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))
|
||||
(boot-parameters (machine-boot-parameters machine)))
|
||||
(let* ((os (machine-operating-system machine))
|
||||
|
@ -322,9 +390,60 @@ environment type of 'managed-host."
|
|||
(bootloader-configuration (operating-system-bootloader os))
|
||||
(bootcfg (operating-system-bootcfg os menu-entries)))
|
||||
(mbegin %store-monad
|
||||
(switch-to-system eval os)
|
||||
(upgrade-shepherd-services eval os)
|
||||
(install-bootloader eval bootloader-configuration bootcfg)))))
|
||||
(with-roll-back #f
|
||||
(switch-to-system eval os))
|
||||
(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
|
||||
(machine-remote-eval managed-host-remote-eval)
|
||||
(deploy-machine deploy-managed-host)
|
||||
(roll-back-machine roll-back-managed-host)
|
||||
(name 'managed-host-environment-type)
|
||||
(description "Provisioning for machines that are accessible over SSH
|
||||
and have a known host-name. This entails little more than maintaining an SSH
|
||||
|
|
|
@ -684,7 +684,7 @@ connection alive.")
|
|||
(define-public isc-dhcp
|
||||
(let* ((bind-major-version "9")
|
||||
(bind-minor-version "11")
|
||||
(bind-patch-version "9")
|
||||
(bind-patch-version "10")
|
||||
(bind-release-type "") ; for patch release, use "-P"
|
||||
(bind-release-version "") ; for patch release, e.g. "6"
|
||||
(bind-version (string-append bind-major-version
|
||||
|
@ -825,7 +825,7 @@ connection alive.")
|
|||
"/bind-" bind-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03n57as73ygw6g3lqsmq2idkykajpbskzgixixdvi5a76m4g0fwn"))))
|
||||
"1hvhdaar9swh5087kzkbmav1nbn19rxh0m60x0d7gri0v8689fxj"))))
|
||||
|
||||
;; When cross-compiling, we need the cross Coreutils and sed.
|
||||
;; Otherwise just use those from %FINAL-INPUTS.
|
||||
|
@ -1240,9 +1240,10 @@ commands and their arguments.")
|
|||
CONFIG_READLINE=y\n" port)
|
||||
(close-port port))
|
||||
#t))
|
||||
(add-after 'install 'install-man-pages
|
||||
(add-after 'install 'install-documentation
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (string-append out "/share/doc/wpa-supplicant"))
|
||||
(man (string-append out "/share/man"))
|
||||
(man5 (string-append man "/man5"))
|
||||
(man8 (string-append man "/man8")))
|
||||
|
@ -1255,6 +1256,15 @@ commands and their arguments.")
|
|||
(find-files "doc/docbook" "\\.5"))
|
||||
(for-each (copy-man-page man8)
|
||||
(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))))
|
||||
|
||||
#:make-flags (list "CC=gcc"
|
||||
|
@ -1303,7 +1313,7 @@ command.")
|
|||
CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
|
||||
(close-port port))
|
||||
#t))
|
||||
(add-after 'install-man-pages 'install-dbus-conf
|
||||
(add-after 'install-documentation 'install-dbus-conf
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/etc/dbus-1/system.d")))
|
||||
|
@ -2124,14 +2134,14 @@ done with the @code{auditctl} utility.")
|
|||
(define-public nmap
|
||||
(package
|
||||
(name "nmap")
|
||||
(version "7.70")
|
||||
(version "7.80")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nmap.org/dist/nmap-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"063fg8adx23l4irrh5kn57hsmi1xvjkar4vm4k6g94ppan4hcyw4"))
|
||||
"1aizfys6l9f9grm82bk878w56mg0zpkfns3spzj157h98875mypw"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -2744,14 +2754,14 @@ you are running, what theme or icon set you are using, etc.")
|
|||
(define-public nnn
|
||||
(package
|
||||
(name "nnn")
|
||||
(version "1.9")
|
||||
(version "2.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/jarun/nnn/releases/download/v"
|
||||
version "/nnn-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp"))))
|
||||
(base32 "0xb6crd9vig3xgjwl8m4bmgcs4azfmfdpx3g8pdpzs28jdg7i3rr"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)
|
||||
|
|
|
@ -81,15 +81,15 @@ in FITS files.")
|
|||
(define-public wcslib
|
||||
(package
|
||||
(name "wcslib")
|
||||
(version "6.2")
|
||||
(version "6.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32 "01fqckazhbfqqhyr0wd9vcks1m2afmsh83l981alxg2r54jgwkdv"))))
|
||||
(base32 "003h23m6d5wcs29v2vbnl63f3z35k5x70lpsqlz5c9bp1bvizh8k"))))
|
||||
(inputs
|
||||
`(("cfitsio" ,cfitsio)))
|
||||
(build-system gnu-build-system)
|
||||
|
|
|
@ -716,7 +716,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
|
|||
(define-public csound
|
||||
(package
|
||||
(name "csound")
|
||||
(version "6.12.2")
|
||||
(version "6.13.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -725,7 +725,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2"))))
|
||||
"14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
|
@ -1107,16 +1107,16 @@ follower.")
|
|||
(define-public fluidsynth
|
||||
(package
|
||||
(name "fluidsynth")
|
||||
(version "2.0.5")
|
||||
(version "2.0.6")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/FluidSynth/fluidsynth.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"))))
|
||||
"0nas9pp9r8rnziznxm65x2yzf1ryg98zr3946g0br3s38sjf8l3a"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
|
|
|
@ -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.")
|
||||
(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
|
||||
(package
|
||||
(name "r-cicero")
|
||||
|
@ -5151,3 +5186,47 @@ accessibility data.")
|
|||
`(("r-monocle3" ,r-monocle3)
|
||||
,@(alist-delete "r-monocle"
|
||||
(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))))
|
||||
|
|
|
@ -2740,7 +2740,7 @@ quantitative phenotypes.")
|
|||
(define-public edirect
|
||||
(package
|
||||
(name "edirect")
|
||||
(version "10.2.20181018")
|
||||
(version "12.1.20190819")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect"
|
||||
|
@ -2748,7 +2748,7 @@ quantitative phenotypes.")
|
|||
"/edirect-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"091f4aigzpbqih6h82nq566gkp3y07i72yqndmqskfgar1vwgci7"))))
|
||||
"1i9s9mppcfqd60pfywpm8vdyz5vpnyslw22nd7dv0bhykrdnkz9g"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -7447,13 +7447,13 @@ names in their natural, rather than lexicographic, order.")
|
|||
(define-public r-edger
|
||||
(package
|
||||
(name "r-edger")
|
||||
(version "3.26.6")
|
||||
(version "3.26.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "edgeR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"17vadhamjv4x0l4qqq2p2fi6j2bkllz5zd8dq761vgd5ic23zizm"))))
|
||||
"1xbhb8aa1ygm5crkp1bmqs2x1601ppa2kgc2xlf2zh8jj8zqapg8"))))
|
||||
(properties `((upstream-name . "edgeR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -10262,14 +10262,14 @@ family of feature/genome hypotheses.")
|
|||
(define-public r-gviz
|
||||
(package
|
||||
(name "r-gviz")
|
||||
(version "1.28.0")
|
||||
(version "1.28.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Gviz" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02alz27w8fnnm2ga71g3jg2b94f95ccv6r1fyszj4yb1k2g7rkxk"))))
|
||||
"0chsb3ijwd8zh588s1vqgfassn2rzax5rhqrhl0ini6pi4ilchp2"))))
|
||||
(properties `((upstream-name . "Gviz")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;;
|
||||
;;; 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 "propeller-elf") "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")
|
||||
|
||||
(else (error "dynamic linker name not known for this system"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -30,15 +30,14 @@
|
|||
(define-public ccache
|
||||
(package
|
||||
(name "ccache")
|
||||
(version "3.5")
|
||||
(version "3.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04n0xram2416pv98qrd7pi5lfsk0bjqyz7zgvvia41j5mrr4pm5x"))))
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "07wv75xdcxpdkfsz9h5ffrm8pjbvr1dh6wnb02nyzz18cdbjkcd6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl) ; for test/run
|
||||
("which" ,(@ (gnu packages base) which))))
|
||||
|
|
|
@ -47,8 +47,8 @@
|
|||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "0b40dca734468e8b12b3ff58e3e779679f17d38e")
|
||||
(revision "21"))
|
||||
(let ((commit "858b6b8c8f2ae7b1ddaf4ae363147121be1f1fe8")
|
||||
(revision "22"))
|
||||
(package
|
||||
(name "cuirass")
|
||||
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
|
||||
|
@ -60,7 +60,7 @@
|
|||
(file-name (string-append name "-" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1kdxs8dzdyldfs4wsz5hb64hprkbrnq5ljdll631f3bj8pbvvvc1"))))
|
||||
"049hg0yaakmfp27950cn0yn43r0v7bqva75xi082n8cxzi6vadgc"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils)
|
||||
|
@ -121,7 +121,7 @@
|
|||
`(("guile" ,guile-2.2)
|
||||
("guile-fibers" ,guile-fibers)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
("guile-json" ,guile-json-1)
|
||||
("guile-json" ,guile-json-3)
|
||||
("guile-sqlite3" ,guile-sqlite3)
|
||||
("guile-git" ,guile-git)
|
||||
;; FIXME: this is propagated by "guile-git", but it needs to be among
|
||||
|
|
|
@ -2002,3 +2002,49 @@ reading from and writing to ZIP archives. ")
|
|||
;; Project is distributed under LGPL, but "quazip/z*" "quazip/unzip.*" are
|
||||
;; distributed under zlib terms.
|
||||
(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
|
||||
|
|
|
@ -2230,14 +2230,14 @@ topics for ecologists (ISBN 978-0-691-12522-0).")
|
|||
(define-public r-lpsolve
|
||||
(package
|
||||
(name "r-lpsolve")
|
||||
(version "5.6.13.2")
|
||||
(version "5.6.13.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lpSolve" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fc5m259ayc880f5hvnq59ih6nb2rlp394n756n1khmxbjpw1w3m"))))
|
||||
"1xazby8amb47vw5n12k13awv7x3bjci3q8vdd3vk1ms0ii16ahg6"))))
|
||||
(properties `((upstream-name . "lpSolve")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/lpSolve")
|
||||
|
@ -5851,14 +5851,14 @@ functions.")
|
|||
(define-public r-rjags
|
||||
(package
|
||||
(name "r-rjags")
|
||||
(version "4-8")
|
||||
(version "4-9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rjags" version))
|
||||
(sha256
|
||||
(base32
|
||||
"17xmjksj69f9wk4x71jxk4cgiqhaf2fj6bjm0mgzp4qln5x84a8m"))))
|
||||
"1vrmxxfnia2mkmfkp5yaq5qrlh4xg3ggab6fnj14mrp1231wb91a"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-coda" ,r-coda)))
|
||||
|
@ -6823,13 +6823,13 @@ and coverage methods to tune the choice of threshold.")
|
|||
(define-public r-ggstance
|
||||
(package
|
||||
(name "r-ggstance")
|
||||
(version "0.3.2")
|
||||
(version "0.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ggstance" version))
|
||||
(sha256
|
||||
(base32 "078ih9s5b0xzf582qg0vjnxvg5qad5ms1v2vdd062ckahi8zz1r8"))))
|
||||
(base32 "0kdksay61hyb6612b07r84chh7a9aibjyclk3qcypvr9aang8hkh"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ggplot2" ,r-ggplot2)
|
||||
|
@ -14752,14 +14752,14 @@ into R and converted to @code{BibEntry} objects.")
|
|||
(define-public r-citr
|
||||
(package
|
||||
(name "r-citr")
|
||||
(version "0.3.1")
|
||||
(version "0.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "citr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0p2sg0fl7cppxxmr20qyqzs2469kglmgpsvykynw4qx501as57rc"))))
|
||||
"1qbarvafjb8jgkrnrhh6jw7mcglmjwf7dpdiibxf39jkmlhf7las"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("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
|
||||
OpenMP.")
|
||||
(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)))
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -267,7 +268,7 @@ target that libc."
|
|||
(cond
|
||||
((target-mingw? target)
|
||||
(if libc
|
||||
`(("libc" ,mingw-w64)
|
||||
`(("libc" ,libc)
|
||||
,@inputs)
|
||||
`(("mingw-source" ,(package-source mingw-w64))
|
||||
,@inputs)))
|
||||
|
@ -508,7 +509,8 @@ and the cross tool chain."
|
|||
#:optional
|
||||
(libc glibc))
|
||||
(if (target-mingw? target)
|
||||
mingw-w64
|
||||
(let ((machine (substring target 0 (string-index target #\-))))
|
||||
(make-mingw-w64 machine))
|
||||
libc))
|
||||
|
||||
(define* (cross-newlib? target
|
||||
|
|
|
@ -2729,13 +2729,13 @@ reasonable substitute.")
|
|||
(define-public python-redis
|
||||
(package
|
||||
(name "python-redis")
|
||||
(version "3.2.1")
|
||||
(version "3.3.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "redis" version))
|
||||
(sha256
|
||||
(base32 "0wwj8il4c3aff15xwwcjfci367zxsakq05ps1a2il6yavp91i94c"))))
|
||||
(base32 "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq"))))
|
||||
(build-system python-build-system)
|
||||
;; Tests require a running Redis server.
|
||||
(arguments '(#:tests? #f))
|
||||
|
|
|
@ -109,7 +109,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
|||
(define-public isc-bind
|
||||
(package
|
||||
(name "bind")
|
||||
(version "9.14.4")
|
||||
(version "9.14.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -117,7 +117,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
|||
"/bind-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gxqws7ml15lwkjw9mdcd759gv5kk3s9m17j3vrp9448ls1gnbii"))))
|
||||
"0ic0k0kpavwnbyf10rwx6yypxg66f65fprwc0dbmp61xp0n6gl0j"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs `("out" "utils"))
|
||||
(inputs
|
||||
|
@ -303,14 +303,14 @@ asynchronous fashion.")
|
|||
(define-public nsd
|
||||
(package
|
||||
(name "nsd")
|
||||
(version "4.2.0")
|
||||
(version "4.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0k57xl3ybdnqjqw9a3dmi7l6qmhkiic6wsghkz08ir809aj1rpsi"))))
|
||||
(base32 "1ys608jyp5scc957q4brm094c97sxlwymina7d2nvzi51aa37cw3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -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)))
|
|
@ -40,7 +40,7 @@
|
|||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
|
||||
;;; 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 © 2019 Dimakakos Dimos <bendersteed@teknik.io>
|
||||
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
|
||||
|
@ -52,6 +52,7 @@
|
|||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org>
|
||||
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
|
||||
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
|
||||
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -2255,7 +2256,7 @@ display and behaviour is easily customisable.")
|
|||
(define-public emacs-git-timemachine
|
||||
(package
|
||||
(name "emacs-git-timemachine")
|
||||
(version "4.10")
|
||||
(version "4.11")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -2265,7 +2266,7 @@ display and behaviour is easily customisable.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"08zsn3lsnnf01wkv5ls38jga02s5dnf0j3gigy4qd6im3j3d04m1"))))
|
||||
"1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-transient" ,emacs-transient)))
|
||||
|
@ -2729,6 +2730,78 @@ naming style of a symbol. It supports different naming conventions such as:
|
|||
tables.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-rich-minority")
|
||||
|
@ -3460,6 +3533,55 @@ completion candidate when using the Company text completion framework.")
|
|||
a customizable list.")
|
||||
(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
|
||||
(package
|
||||
(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. ")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-hl-todo")
|
||||
|
@ -6409,6 +6554,33 @@ used for reverse direction.")
|
|||
end of a line and increment or decrement it.")
|
||||
(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
|
||||
(let ((commit "47691537815150715e64e6f6ec79be7746c96120")
|
||||
(version "0.41")
|
||||
|
@ -7133,6 +7305,60 @@ Additionally it can display the number of unread emails in the
|
|||
mode-line.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-pretty-mode")
|
||||
|
@ -7302,7 +7528,7 @@ above over the network.")
|
|||
(define-public emacs-helm-org-rifle
|
||||
(package
|
||||
(name "emacs-helm-org-rifle")
|
||||
(version "1.6.1")
|
||||
(version "1.7.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -7312,12 +7538,13 @@ above over the network.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1r38xhwvgbv6kn5x159phz3xgss7f1rc7icq27rnr4d8aj91wm6k"))))
|
||||
"058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
("emacs-f" ,emacs-f)
|
||||
("emacs-helm" ,emacs-helm)
|
||||
("emacs-org" ,emacs-org)
|
||||
("emacs-s" ,emacs-s)))
|
||||
(home-page "https://github.com/alphapapa/helm-org-rifle")
|
||||
(synopsis "Rifle through Org files")
|
||||
|
@ -9633,7 +9860,7 @@ Feautures:
|
|||
(define-public emacs-evil-matchit
|
||||
(package
|
||||
(name "emacs-evil-matchit")
|
||||
(version "2.3.0")
|
||||
(version "2.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -9642,7 +9869,7 @@ Feautures:
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1"))))
|
||||
(base32 "04kllxd7vvziwqiff3vx60a0r6805wynsla73j8xkcz4yzk8q91r"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("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.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-deft")
|
||||
|
@ -10724,6 +11006,31 @@ tables of contents.")
|
|||
files, allowing for actions to be performed based on search criteria.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-parsebib")
|
||||
|
@ -12421,12 +12728,11 @@ perform regression test for packages that provide font-lock rules.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-racket-mode
|
||||
(let ((commit "b977873e6128f8399432dcd60cc39f6a6f803d9c")
|
||||
(revision "2"))
|
||||
(let ((commit "5300aa004f08535c3fac99f1af78462f129aca81")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "emacs-racket-mode")
|
||||
(version (string-append "0.0.2" "-" revision "."
|
||||
(string-take commit 7)))
|
||||
(version (git-version "0.0.2" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -12436,7 +12742,7 @@ perform regression test for packages that provide font-lock rules.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
|
||||
"1gkpm4fl1ybsm9qqgrkwyjbd9znddy438x266k27fs90lkxrfray"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:include '("\\.el$" "\\.rkt$")))
|
||||
|
@ -14385,7 +14691,7 @@ buffers – other modes on the TODO list).
|
|||
(define-public emacs-magit-todos
|
||||
(package
|
||||
(name "emacs-magit-todos")
|
||||
(version "1.3")
|
||||
(version "1.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -14395,7 +14701,7 @@ buffers – other modes on the TODO list).
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gfm6wn2a4v5i9lfsvvin0kwpr9n96ddm3z4yf50jd3kg2igzry1"))))
|
||||
"09pjb4k409gc0h51vb5az1shx02c1hx8cnvhi529n7dm4maildg5"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)
|
||||
|
@ -14771,7 +15077,7 @@ correctly.")
|
|||
(define-public emacs-helm-slime
|
||||
(package
|
||||
(name "emacs-helm-slime")
|
||||
(version "0.3.0")
|
||||
(version "0.4.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -14780,7 +15086,7 @@ correctly.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1qhb9446rpj17pm0hi3miy5gs5k3ld43bq29kzy0y26bf7ivfcjv"))))
|
||||
"0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-helm" ,emacs-helm)
|
||||
|
@ -14905,7 +15211,7 @@ RPC channels with users and other software.")
|
|||
(define-public emacs-sesman
|
||||
(package
|
||||
(name "emacs-sesman")
|
||||
(version "0.3.3")
|
||||
(version "0.3.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -14915,10 +15221,18 @@ RPC channels with users and other software.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
|
||||
"0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
|
||||
(build-system emacs-build-system)
|
||||
(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")))
|
||||
(home-page "https://github.com/vspinu/sesman")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-counsel-etags")
|
||||
(version "1.8.7")
|
||||
(version "1.8.9")
|
||||
(source
|
||||
(origin
|
||||
(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))
|
||||
(sha256
|
||||
(base32
|
||||
"0vjcjspfrz1csnmfi6r7p7f070a496adxkqnsxwx1gx8cpylwp1g"))))
|
||||
"0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("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 Lisp's (relatively new) EIEIO object oriented libraries.")
|
||||
(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+))))
|
||||
|
|
|
@ -980,8 +980,8 @@ Z64 video plugin.")
|
|||
(string-append "COREDIR=" m64p "/lib/")))
|
||||
;; There are no tests.
|
||||
#:tests? #f))
|
||||
(home-page "http://www.mupen64plus.org/")
|
||||
(synopsis "Mupen64Plus SDL input plugin")
|
||||
(home-page "https://www.mupen64plus.org/")
|
||||
(synopsis "Mupen64Plus command line user interface")
|
||||
(description
|
||||
"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator
|
||||
which is capable of accurately playing many games. This package contains the
|
||||
|
|
|
@ -448,7 +448,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
|||
;; the system's dynamically linked library.
|
||||
(package
|
||||
(name "monero")
|
||||
(version "0.14.1.0")
|
||||
(version "0.14.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -469,7 +469,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
|||
#t))
|
||||
(sha256
|
||||
(base32
|
||||
"1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh"))))
|
||||
"00zl883c7lcd9z7g4y3vv7rxmr7ppzrxdblnhk32r9l3qzyw55r6"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
|
@ -511,6 +511,11 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
|||
(("return \\(")
|
||||
"return ((std::string(getenv(\"HOME\"))) / "))
|
||||
#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
|
||||
(replace 'check
|
||||
(lambda _
|
||||
|
@ -525,11 +530,6 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
|||
"DNSResolver.DNSSECSuccess"
|
||||
"DNSResolver.DNSSECFailure"
|
||||
"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")
|
||||
":")))
|
||||
(invoke "tests/unit_tests/unit_tests"
|
||||
|
@ -1114,3 +1114,31 @@ information.")
|
|||
(description "This allows a Trezor hardware wallet to communicate to the
|
||||
Trezor wallet.")
|
||||
(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.")))
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
|
||||
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
|
||||
;;; Copyright © 2019 Alva <alva@skogen.is>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -66,7 +67,7 @@
|
|||
(define-public font-ibm-plex
|
||||
(package
|
||||
(name "font-ibm-plex")
|
||||
(version "1.0.1")
|
||||
(version "2.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -74,7 +75,7 @@
|
|||
"v" version "/OpenType.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nzxw9z6waixslam248yr26ci3fbk83c7jf6m90hncnaj6zxx795"))))
|
||||
"1lv65z3qnqgh2w36daf5wyz0ma9rg1qj9s9lzlnva8l7q3h8c9b8"))))
|
||||
(build-system font-build-system)
|
||||
(home-page "https://github.com/IBM/plex")
|
||||
(synopsis "IBM Plex typeface")
|
||||
|
|
|
@ -28,14 +28,14 @@
|
|||
(define-public freeipmi
|
||||
(package
|
||||
(name "freeipmi")
|
||||
(version "1.6.3")
|
||||
(version "1.6.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/freeipmi/freeipmi-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1sg12ycig2g5yv9l3vx25wsjmz7ybnrsvji0vs51yjmclwsygm5a"))))
|
||||
"0g0s4iwx0ng4rv7hp5cc3kkx4drahsc89981gwjblf04lfavppv5"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libgcrypt" ,libgcrypt)))
|
||||
|
|
|
@ -1386,7 +1386,7 @@ that beneath its ruins lay buried an ancient evil.")
|
|||
(define-public angband
|
||||
(package
|
||||
(name "angband")
|
||||
(version "4.1.3")
|
||||
(version "4.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1395,7 +1395,7 @@ that beneath its ruins lay buried an ancient evil.")
|
|||
"/angband-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vs0314lbdc6rzxn4jnb7zp6n1p1cdb8r53savadn7k9vbwc80ll"))
|
||||
"0vdm1ymm28wawp94nl1p5q3lhc0k7cnn2kkvvrkfx962gif4kqfk"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; 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)))
|
||||
'("fonts" "icons" "sounds" "tiles"))
|
||||
(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 user"))
|
||||
#t))))
|
||||
|
@ -2340,15 +2340,15 @@ on the screen and keyboard to display letters.")
|
|||
(define-public manaplus
|
||||
(package
|
||||
(name "manaplus")
|
||||
(version "1.7.6.10")
|
||||
(version "1.9.3.23")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://repo.manaplus.org/manaplus/download/"
|
||||
"https://repo.manaplus.org/manaplus/download/"
|
||||
version "/manaplus-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l7swvpzq20am4w2rsjpp6fsvbjv07il6wbfy45a7h9zsdihmqhl"))))
|
||||
"1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
@ -2363,7 +2363,7 @@ on the screen and keyboard to display letters.")
|
|||
("libxml2" ,libxml2)
|
||||
("mesa" ,mesa)
|
||||
("sdl-union" ,(sdl-union))))
|
||||
(home-page "http://manaplus.org")
|
||||
(home-page "https://manaplus.org")
|
||||
(synopsis "Client for 'The Mana World' and similar games")
|
||||
(description
|
||||
"ManaPlus is a 2D MMORPG client for game servers. It is the only
|
||||
|
@ -2828,7 +2828,7 @@ players.")
|
|||
(version "2.0")
|
||||
(source (origin
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
(define-public gramps
|
||||
(package
|
||||
(name "gramps")
|
||||
(version "5.0.1")
|
||||
(version "5.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -48,7 +48,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1jz1fbjj6byndvir7qxzhd2ryirrd5h2kwndxpp53xdc05z1i8g7"))))
|
||||
"0wg743q8ixy5dmwricgkl4zck4109vq5ppmkyi18qjmna9m0aq7r"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
|
|
|
@ -5962,7 +5962,10 @@ devices using the GNOME desktop.")
|
|||
(arguments
|
||||
'(#:glib-or-gtk? #t
|
||||
#:configure-flags
|
||||
(list "-Dcheese=false")
|
||||
(list "-Dcheese=false"
|
||||
(string-append "-Dgnome_session_libexecdir="
|
||||
(assoc-ref %build-inputs "gnome-session")
|
||||
"/libexec"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-paths
|
||||
|
@ -5970,7 +5973,8 @@ devices using the GNOME desktop.")
|
|||
(let ((libc (assoc-ref inputs "libc"))
|
||||
(tzdata (assoc-ref inputs "tzdata"))
|
||||
(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"
|
||||
(("/usr/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")
|
||||
(("/usr/bin/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))))))
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
|
||||
|
@ -6009,6 +6017,7 @@ devices using the GNOME desktop.")
|
|||
("gnome-desktop" ,gnome-desktop)
|
||||
("gnome-online-accounts" ,gnome-online-accounts)
|
||||
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
|
||||
("gnome-session" ,gnome-session)
|
||||
("gnome-settings-daemon" ,gnome-settings-daemon)
|
||||
("grilo" ,grilo)
|
||||
("ibus" ,ibus)
|
||||
|
@ -8306,3 +8315,35 @@ advanced image management tool")
|
|||
(description "The aim of the handy library is to help with developing user
|
||||
intefaces for mobile devices using GTK+.")
|
||||
(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+)))
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2019 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -104,6 +105,7 @@
|
|||
"-DWITH_INSTALL_PORTABLE=OFF"
|
||||
"-DWITH_JACK=ON"
|
||||
"-DWITH_MOD_OCEANSIM=ON"
|
||||
"-DWITH_OPENSUBDIV=ON"
|
||||
"-DWITH_PYTHON_INSTALL=OFF"
|
||||
(string-append "-DPYTHON_LIBRARY=python" ,python-version "m")
|
||||
(string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python")
|
||||
|
@ -139,6 +141,7 @@
|
|||
("libx11" ,libx11)
|
||||
("openimageio" ,openimageio)
|
||||
("openexr" ,openexr)
|
||||
("opensubdiv" ,opensubdiv)
|
||||
("ilmbase" ,ilmbase)
|
||||
("openjpeg" ,openjpeg)
|
||||
("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
|
||||
requirements.")
|
||||
(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)))
|
||||
|
|
|
@ -916,7 +916,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
|
|||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05pm0rwdxhjdlpmvhn0kyfslph6j5m1gv76givs0hshb30nirl2x"))))
|
||||
"0zgvh2329zrclxfb1lh7dnqrq46jj77l0lx7j9y6y3xgbhd2d9l0"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
|
|
@ -8361,7 +8361,7 @@ generated SQL and optimize it for your backend.")
|
|||
(define-public shellcheck
|
||||
(package
|
||||
(name "shellcheck")
|
||||
(version "0.5.0")
|
||||
(version "0.7.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -8369,12 +8369,12 @@ generated SQL and optimize it for your backend.")
|
|||
"https://hackage.haskell.org/package/ShellCheck/ShellCheck-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0z1hscbr11hwkq8k1v0vaa947hb9m6k4cm831jk1gpj8dxrk151b"))
|
||||
(base32 "1vx895cp5k5h0680xfwj74lk97m9y627n965x6srds0gfnbkzy9s"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
`(("ghc-aeson" ,ghc-aeson)
|
||||
("ghc-diff" ,ghc-diff)
|
||||
("ghc-quickcheck" ,ghc-quickcheck)
|
||||
("ghc-regex-tdfa" ,ghc-regex-tdfa)))
|
||||
(home-page "https://github.com/koalaman/shellcheck")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
|
@ -36,10 +36,13 @@
|
|||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages geo)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
|
@ -58,13 +61,16 @@
|
|||
#:use-module (gnu packages protobuf)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages tbb)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (ice-9 match))
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public dcmtk
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(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
|
||||
recalculates.")
|
||||
(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+)))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 © 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
|
@ -131,6 +131,11 @@ actions.")
|
|||
`( ;; Enable support for a "map" pane using GPS data.
|
||||
#: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
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'pre-bootstrap
|
||||
|
@ -496,14 +501,14 @@ preloading.")
|
|||
(define-public chafa
|
||||
(package
|
||||
(name "chafa")
|
||||
(version "1.0.1")
|
||||
(version "1.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://hpjansson.org/chafa/releases/chafa-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00cf2z52az0z6bzc3hfm4l8infipy5ck410wqmbaybd2csjr3m29"))))
|
||||
"1hj4vdyczby8h52ff23qxl8ng18p5jy549idngpiddwszf5s4drz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -339,8 +339,8 @@ as Alfresco or Nuxeo.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dev-www.libreoffice.org/src/" name "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(uri (string-append "https://dev-www.libreoffice.org/src/libabw/"
|
||||
"libabw-" version ".tar.xz"))
|
||||
(sha256 (base32
|
||||
"11949iscdb99f2jplxjd39282jxcrf2fw0sqbh5dl7gqb96r8whb"))))
|
||||
(build-system gnu-build-system)
|
||||
|
|
|
@ -349,26 +349,26 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
"linux-" version ".tar.xz"))
|
||||
(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
|
||||
(let ((version linux-libre-5.2-version)
|
||||
(hash (base32 "0dv91zfjkil29lp2l35lswkrhrqbc4kjh965ciaqwih1rh3cs9x1")))
|
||||
(hash (base32 "1rnlnphw9rih4qhdld9ic5lnj5jh4vy5nqbj9lqwv9bc615jmw5n")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "0r6vzarmi77fhivd1n6f667sgcw8zd54ykmhmp6rd52bbkhsp0f9")))
|
||||
(hash (base32 "00m5k0nfcvgff70686rbhn3w8c9wc3jxqvyddw40lylaqdh3s72s")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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
|
||||
(let ((version linux-libre-4.14-version)
|
||||
(hash (base32 "0yw39cqpk6g42q0xcv2aq8yyzsi0kzx9nvlfbw0iyg58wcfvsl7j")))
|
||||
(hash (base32 "0hkhwcbxg6bry13w9kspx48b10274w6pgv200wh91fjd8jax8qlc")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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.")
|
||||
(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
|
||||
(package
|
||||
(name "f2fs-tools")
|
||||
|
|
|
@ -5319,7 +5319,7 @@ port within a range.")
|
|||
(define-public txr
|
||||
(package
|
||||
(name "txr")
|
||||
(version "216")
|
||||
(version "223")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -5329,7 +5329,7 @@ port within a range.")
|
|||
(patches (search-patches "txr-shell.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"07cxdpc9zsqd0c2668g00dqjpd6zc4mfdn74aarr6d2hpzdhh937"))))
|
||||
"0109q8idqggba3kx58dpm5ccfpdrki68npkcxm18p5ga24611fcv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("cc=gcc")
|
||||
|
@ -5343,7 +5343,7 @@ port within a range.")
|
|||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(zero? (system* "make" "tests")))))))
|
||||
(invoke "make" "tests"))))))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
("flex" ,flex)))
|
||||
|
|
|
@ -1245,6 +1245,39 @@ easily publishing them on internet image hosting services.")
|
|||
(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
|
||||
|
||||
(define-public lxqt
|
||||
|
|
|
@ -998,18 +998,17 @@ and search library.")
|
|||
(define-public getmail
|
||||
(package
|
||||
(name "getmail")
|
||||
(version "5.6")
|
||||
(version "5.14")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
|
||||
name "-" version ".tar.gz"))
|
||||
"getmail-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"16nmvj80szr6yvcxxgmxn2lxqpjqqj4xg5a0b66zhvck6j42q3a6"))))
|
||||
(base32 "1hcrd9h4g12f5gvl1djsbchcjry02ghq4icdr897s8v48pkrzagk"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
`(#:tests? #f ; no tests
|
||||
#:python ,python-2))
|
||||
(home-page "http://pyropus.ca/software/getmail/")
|
||||
(synopsis "Mail retriever")
|
||||
|
@ -2270,14 +2269,14 @@ e-mails with other systems speaking the SMTP protocol.")
|
|||
(define-public opensmtpd-next
|
||||
(package
|
||||
(name "opensmtpd-next")
|
||||
(version "6.4.1p2")
|
||||
(version "6.4.2p1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.opensmtpd.org/archives/"
|
||||
"opensmtpd-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0cppqlx4fk6l8rbim5symh2fm1kzshf421256g596j6c9f9q96xn"))))
|
||||
(base32 "0pgv080ai7d98l9340jadp9wjiaqj2qvgpqhilcz0kps2mdiawbd"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("bdb" ,bdb)
|
||||
|
|
|
@ -224,6 +224,18 @@ Linux kernel and C library interfaces employed by user-space programs.")
|
|||
automatically.")
|
||||
(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
|
||||
(package
|
||||
(name "scdoc")
|
||||
|
|
|
@ -2967,7 +2967,7 @@ point numbers.")
|
|||
(define-public wxmaxima
|
||||
(package
|
||||
(name "wxmaxima")
|
||||
(version "19.05.7")
|
||||
(version "19.08.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -2977,7 +2977,7 @@ point numbers.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zaz71fh156b9inrxf86scnix247al5pl9v18cxhjxcm0lanqxdp"))))
|
||||
"028g4g2081vsgslbdliskfy5q2wknvknw89lk3zp89py6wranxas"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -31,56 +32,56 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define %mingw-triplet
|
||||
"i686-w64-mingw32")
|
||||
|
||||
(define-public mingw-w64
|
||||
(package
|
||||
(name "mingw-w64")
|
||||
(version "5.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://sourceforge.net/projects/mingw-w64/files/mingw-w64/"
|
||||
"mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"))
|
||||
(patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch"))))
|
||||
(native-inputs `(("xgcc-core" ,(cross-gcc %mingw-triplet))
|
||||
("xbinutils" ,(cross-binutils %mingw-triplet))))
|
||||
(build-system gnu-build-system)
|
||||
(search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CROSS_C_INCLUDE_PATH")
|
||||
(files '("include" "i686-w64-mingw32/include")))
|
||||
(search-path-specification
|
||||
(variable "CROSS_LIBRARY_PATH")
|
||||
(files
|
||||
'("lib" "lib64" "i686-w64-mingw32/lib" "i686-w64-mingw32/lib64")))))
|
||||
(arguments
|
||||
`(#:configure-flags '("--host=i686-w64-mingw32")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'setenv
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((xgcc-core (assoc-ref inputs "xgcc-core"))
|
||||
(mingw-headers (string-append (getcwd) "/mingw-w64-headers")))
|
||||
(setenv "CPP"
|
||||
(string-append xgcc-core "/bin/i686-w64-mingw32-cpp"))
|
||||
(setenv "CROSS_C_INCLUDE_PATH"
|
||||
(string-append
|
||||
mingw-headers
|
||||
":" mingw-headers "/include"
|
||||
":" mingw-headers "/crt"
|
||||
":" mingw-headers "/defaults/include"
|
||||
":" mingw-headers "/direct-x/include"))))))
|
||||
#:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1")
|
||||
#:tests? #f ; compiles and includes glibc headers
|
||||
#:strip-binaries? #f))
|
||||
(home-page "https://mingw-w64.org")
|
||||
(synopsis "Minimalist GNU for Windows")
|
||||
(description
|
||||
"Minimalist GNU for Windows (@dfn{MinGW}) is a complete software
|
||||
(define-public (make-mingw-w64 machine)
|
||||
(let ((triplet (string-append machine "-" "w64-mingw32")))
|
||||
(package
|
||||
(name (string-append "mingw-w64" "-" machine))
|
||||
(version "5.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://sourceforge.net/projects/mingw-w64/files/mingw-w64/"
|
||||
"mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm"))
|
||||
(patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch"))))
|
||||
(native-inputs `(("xgcc-core" ,(cross-gcc triplet))
|
||||
("xbinutils" ,(cross-binutils triplet))))
|
||||
(build-system gnu-build-system)
|
||||
(search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CROSS_C_INCLUDE_PATH")
|
||||
(files `("include" ,(string-append triplet "/include"))))
|
||||
(search-path-specification
|
||||
(variable "CROSS_LIBRARY_PATH")
|
||||
(files
|
||||
`("lib" "lib64"
|
||||
,(string-append triplet "/lib")
|
||||
,(string-append triplet "/lib64"))))))
|
||||
(arguments
|
||||
`(#:configure-flags '(,(string-append "--host=" triplet))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'setenv
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((xgcc-core (assoc-ref inputs "xgcc-core"))
|
||||
(mingw-headers (string-append (getcwd) "/mingw-w64-headers")))
|
||||
(setenv "CPP"
|
||||
(string-append xgcc-core ,(string-append "/bin/" triplet "-cpp")))
|
||||
(setenv "CROSS_C_INCLUDE_PATH"
|
||||
(string-append
|
||||
mingw-headers
|
||||
":" mingw-headers "/include"
|
||||
":" mingw-headers "/crt"
|
||||
":" mingw-headers "/defaults/include"
|
||||
":" mingw-headers "/direct-x/include"))))))
|
||||
#:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1")
|
||||
#:tests? #f ; compiles and includes glibc headers
|
||||
#:strip-binaries? #f))
|
||||
(home-page "https://mingw-w64.org")
|
||||
(synopsis "Minimalist GNU for Windows")
|
||||
(description
|
||||
"Minimalist GNU for Windows (@dfn{MinGW}) is a complete software
|
||||
development environment for creating native Microsoft Windows applications.
|
||||
|
||||
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
|
||||
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)
|
||||
|
|
|
@ -90,7 +90,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
|
|||
(define-public mpd
|
||||
(package
|
||||
(name "mpd")
|
||||
(version "0.21.13")
|
||||
(version "0.21.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -99,7 +99,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
|
|||
"/mpd-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1sjyhmq50nlccwmd8xn7m0bk8xvyixvfyr24v9dy3g86hhk0pdwm"))))
|
||||
"0iknnm9xvwfgk8h82hjwrmbijpk9l0dgap0794c2nyg8i66qlb0y"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'...
|
||||
|
|
|
@ -1535,7 +1535,7 @@ reverb effects.")
|
|||
(define-public setbfree
|
||||
(package
|
||||
(name "setbfree")
|
||||
(version "0.8.8")
|
||||
(version "0.8.9")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1544,7 +1544,7 @@ reverb effects.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"15dr1nyj69wc9jnjq5z8ril90a3c0mcrii4zjyz0z3h7dhia3382"))))
|
||||
"1lpsa64xvwa9xbbp8zcwxy5w0daffc7fziny2pizabqh7m9xqjl2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no "check" target
|
||||
|
@ -1782,7 +1782,7 @@ export.")
|
|||
(define-public pd
|
||||
(package
|
||||
(name "pd")
|
||||
(version "0.49-0")
|
||||
(version "0.50-0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -1790,10 +1790,10 @@ export.")
|
|||
version ".src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j"))))
|
||||
"0hg4n5b55f650qsc0mjx559072dp7vfza7w0pvk6rk2l831cvsps"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no "check" target
|
||||
`(#:tests? #f ; no "check" target
|
||||
#:configure-flags
|
||||
(list
|
||||
"--enable-jack"
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
|
||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -549,15 +550,14 @@ and up to 1 Mbit/s downstream.")
|
|||
(define-public whois
|
||||
(package
|
||||
(name "whois")
|
||||
(version "5.5.0")
|
||||
(version "5.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://debian/pool/main/w/whois/"
|
||||
name "_" version ".tar.xz"))
|
||||
"whois_" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gbg9fis05zf2fl4264jplbphy75l50k3g92cz6mkmbsklrn7v34"))))
|
||||
(base32 "10mc7iqhdnvd1kk8gnnhihd5ga2rw3sz69n3nd6x8fb65qpq13gf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
|
@ -945,6 +945,82 @@ attacking, testing, and cracking. All tools are command-line driven, which
|
|||
allows for heavy scripting.")
|
||||
(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
|
||||
(package
|
||||
(name "perl-danga-socket")
|
||||
|
@ -2287,7 +2363,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.")
|
|||
(define-public hcxtools
|
||||
(package
|
||||
(name "hcxtools")
|
||||
(version "5.1.6")
|
||||
(version "5.2.0")
|
||||
(source
|
||||
(origin
|
||||
(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")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "05sjbmv2wq3nlmammrwxqc62c4sagjjgczzddr1jcqkf6kywzkl8"))
|
||||
(base32 "0k2qlq9hz5zc21nyc6yrnfqzga7hydn5mm0x3rpl2fhkwl81lxcn"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
@ -2329,7 +2405,7 @@ packets from wireless devices for use with hashcat or John the Ripper.")
|
|||
(define-public hcxdumptool
|
||||
(package
|
||||
(name "hcxdumptool")
|
||||
(version "5.1.5")
|
||||
(version "5.2.0")
|
||||
(source
|
||||
(origin
|
||||
(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")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "0xkzdvwpi6dq9wsrn882f2ljb7d5v2bvarq8gs6jm8znfx3y8hi2"))
|
||||
(base32 "0pg1pvg029gm4rj0fj5kcsjb32hixgn4cxsgiir7spkmacf1qm4q"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -110,8 +110,8 @@
|
|||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "1.0.1")
|
||||
(commit "4a54ed774913480c0f8dad3caf0cd627e4fa8ebf")
|
||||
(revision 3))
|
||||
(commit "c902458863d1d341ffd74970b75e69c2bb848183")
|
||||
(revision 4))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -127,7 +127,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"14m4a4bn0d5hav6mrks5d7r223knx9dpswgbsc875wgr2921na2h"))
|
||||
"0w93qjgy9n0qqyij12s7hm7fl4wb6h99bmfril4cqf4ynckpdvbb"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -292,7 +292,7 @@
|
|||
(propagated-inputs
|
||||
`(("gnutls" ,gnutls)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
("guile-json" ,guile-json-1)
|
||||
("guile-json" ,guile-json-3)
|
||||
("guile-sqlite3" ,guile-sqlite3)
|
||||
("guile-ssh" ,guile-ssh)
|
||||
("guile-git" ,guile-git)))
|
||||
|
@ -324,7 +324,7 @@ the Nix package manager.")
|
|||
(inputs
|
||||
`(("gnutls" ,gnutls)
|
||||
("guile-git" ,guile-git)
|
||||
("guile-json" ,guile-json-1)
|
||||
("guile-json" ,guile-json-3)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
,@(fold alist-delete (package-inputs guix)
|
||||
'("boot-guile" "boot-guile/i686" "util-linux"))))
|
||||
|
|
|
@ -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
|
|
@ -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])
|
|
@ -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,
|
|
@ -24,7 +24,7 @@
|
|||
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2017 Mark Meyer <mark@ofosos.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 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
|
||||
|
@ -1808,13 +1808,13 @@ Python.")
|
|||
(define-public python-responses
|
||||
(package
|
||||
(name "python-responses")
|
||||
(version "0.5.1")
|
||||
(version "0.10.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "responses" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc"))))
|
||||
"147pacwkkqy3qf3hr33fnl1xbzgw0zsm3qppvvy9qhq8h069qbah"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; Test suite is not distributed:
|
||||
|
@ -3248,3 +3248,26 @@ Python.")
|
|||
(description "This package provides a @command{slufigy} command and
|
||||
library to create slugs from unicode strings while keeping it DRY.")
|
||||
(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)))
|
||||
|
||||
|
|
|
@ -16057,3 +16057,34 @@ one-off scripts.")
|
|||
time-or-computationally-expensive properties quick and easy and works in Python
|
||||
2 or 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 that’s 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)))
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com>
|
||||
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
|
||||
;;;
|
||||
;;; 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.")
|
||||
(home-page "https://github.com/castwide/backport")
|
||||
(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)))
|
||||
|
|
|
@ -183,8 +183,20 @@ their folder.
|
|||
#:test-target "tests"
|
||||
#: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
|
||||
;; No install target.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
(define-public tmux
|
||||
(package
|
||||
(name "tmux")
|
||||
(version "2.9")
|
||||
(version "2.9a")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -46,12 +46,12 @@
|
|||
version "/tmux-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10195hp5ydkwwmpcr7188fgx9daqwrslb1lylgrrkzc6yhr1541l"))))
|
||||
"099vn8mg2nnizbqqc87a5mxm8c46kadfhx30dgxbz9hp8mx1d7c3"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libevent" ,libevent)
|
||||
("ncurses" ,ncurses)))
|
||||
(home-page "http://tmux.github.io/")
|
||||
(home-page "https://tmux.github.io/")
|
||||
(synopsis "Terminal multiplexer")
|
||||
(description
|
||||
"tmux is a terminal multiplexer: it enables a number of terminals (or
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
|
||||
;;; 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 © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
|
@ -39,6 +39,7 @@
|
|||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
|
@ -49,14 +50,14 @@
|
|||
(define-public tor
|
||||
(package
|
||||
(name "tor")
|
||||
(version "0.4.0.5")
|
||||
(version "0.4.1.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.torproject.org/tor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vk9j3ybz5dwwbmqrdj1bjcsxy76pc8frmfvflkdzwfkvkqcp8mm"))))
|
||||
"0984jb6hdcc10f7aq8xzl7l4jf93skp45wkv2v63z4zv0nvf0r58"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -157,7 +158,7 @@ networks.")
|
|||
(define-public onionshare
|
||||
(package
|
||||
(name "onionshare")
|
||||
(version "1.3.2")
|
||||
(version "2.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -166,7 +167,7 @@ networks.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "19zrz9kh7k4pdk4lh3cm0kv02ngdqkrggwma1xdskrrmp2rjkgz7"))))
|
||||
(base32 "1lx21p12888qnbhsyin4lrnn4xizb39ldk77r71y53hn8mfxi54z"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -184,20 +185,21 @@ networks.")
|
|||
(("/usr") out))
|
||||
#t)))
|
||||
(delete 'check)
|
||||
(add-before 'strip 'tests
|
||||
(add-before 'strip 'check
|
||||
;; After all the patching we run the tests after installing.
|
||||
;; This is also a known issue:
|
||||
;; https://github.com/micahflee/onionshare/issues/284
|
||||
(lambda _
|
||||
(invoke "pytest" "test")
|
||||
(setenv "HOME" "/tmp") ; Some tests need a writable homedir
|
||||
(invoke "pytest" "tests/")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(inputs
|
||||
`(("python-flask" ,python-flask)
|
||||
`(("python-pycrypto" ,python-pycrypto)
|
||||
("python-flask" ,python-flask)
|
||||
("python-nautilus" ,python-nautilus)
|
||||
("python-sip" ,python-sip)
|
||||
("python-stem" ,python-stem)
|
||||
("python-pysocks" ,python-pysocks)
|
||||
("python-pyqt" ,python-pyqt)))
|
||||
(home-page "https://onionshare.org/")
|
||||
(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
|
||||
internet. The other user just needs to use Tor Browser to download the file
|
||||
from you.")
|
||||
(license (list license:gpl3+
|
||||
license:bsd-3)))) ; onionshare/socks.py
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public nyx
|
||||
(package
|
||||
|
|
|
@ -146,14 +146,14 @@ as well as the classic centralized workflow.")
|
|||
(name "git")
|
||||
;; XXX When updating Git, check if the special 'git-source' input to cgit
|
||||
;; needs to be updated as well.
|
||||
(version "2.22.1")
|
||||
(version "2.23.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"093qjgagha937w96izkpsjkhxf5drsa7rvk5snlyjivqnwxgkqac"))))
|
||||
"0rv0y45gcd3h191isppn77acih695v4pipdj031jvs9rd1ds0kr3"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("native-perl" ,perl)
|
||||
|
@ -166,7 +166,7 @@ as well as the classic centralized workflow.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17vpqv9g8li58njx7z5124b3c2zb2n63z4dalh5gw9iys7qb8446"))))
|
||||
"0sllhyl0w29v4n303hqfmcc3apafnwk4sk78anyjjhpzd0zl6n4m"))))
|
||||
;; For subtree documentation.
|
||||
("asciidoc" ,asciidoc)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
|
|
|
@ -1052,7 +1052,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||
(define-public vlc
|
||||
(package
|
||||
(name "vlc")
|
||||
(version "3.0.7.1")
|
||||
(version "3.0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1061,7 +1061,7 @@ videoformats depend on the configuration flags of ffmpeg.")
|
|||
"/vlc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xb4c8n0hkwijzfdlbwadhxnx9z8rlhmrdq4c7q74rq9f51q0m86"))))
|
||||
"1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("flex" ,flex)
|
||||
|
@ -3378,30 +3378,32 @@ online.")
|
|||
(license license:expat)))
|
||||
|
||||
(define-public vidstab
|
||||
(package
|
||||
(name "vidstab")
|
||||
(version "1.1.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/georgmartius/vid.stab.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; tests are not run as part of standard build process
|
||||
(home-page "http://public.hronopik.de/vid.stab/")
|
||||
(synopsis "Video stabilization library")
|
||||
(description "Vidstab is a video stabilization library which can be used
|
||||
(let ((commit "aeabc8daa7904f9edf7441a11f293965a5ef53b8")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "vidstab")
|
||||
(version (git-version "1.1.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/georgmartius/vid.stab.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"042iy0f3khwzr68djzvqgn301sy21ljvkf52rnc2c73q7ircnzzn"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; tests are not run as part of standard build process
|
||||
(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
|
||||
vehicle typically suffers from undesirable shakes and jitters. Activities such
|
||||
as surfing, skiing, riding and walking while shooting videos are especially
|
||||
prone to erratic camera shakes. Vidstab targets these video contents to help
|
||||
create smoother and stable videos.")
|
||||
(license license:gpl2+)))
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public libopenshot
|
||||
(package
|
||||
|
|
|
@ -133,14 +133,14 @@
|
|||
(define-public httpd
|
||||
(package
|
||||
(name "httpd")
|
||||
(version "2.4.39")
|
||||
(version "2.4.41")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://apache/httpd/httpd-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"18ngvsjq65qxk3biggnkhkq8jlll9dsg9n3csra9p99sfw2rvjml"))))
|
||||
"0h7a31yxwyh7h521frnmlppl0h7sh9icc3ka6vlmlcg5iwllhg8k"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
|
||||
(inputs `(("apr" ,apr)
|
||||
|
@ -5362,14 +5362,8 @@ command-line arguments or read from stdin.")
|
|||
(description "@code{ia} is a command-line tool for using
|
||||
@url{archive.org} from the command-line. It also emplements the
|
||||
internetarchive python module for programmatic access to archive.org.")
|
||||
(properties
|
||||
`((python2-variant . ,(delay python2-internetarchive))))
|
||||
(license license:agpl3+)))
|
||||
|
||||
(define-public python2-internetarchive
|
||||
(package-with-python2
|
||||
(strip-python2-variant python-internetarchive)))
|
||||
|
||||
(define-public python-clf
|
||||
(let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
|
||||
(package
|
||||
|
@ -5426,7 +5420,7 @@ snippets on @url{https://commandlinefu.com}.")
|
|||
(define-public rss-bridge
|
||||
(package
|
||||
(name "rss-bridge")
|
||||
(version "2019-01-13")
|
||||
(version "2019-07-06")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -5436,7 +5430,7 @@ snippets on @url{https://commandlinefu.com}.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1m0dq491954f0d7k4508ddlywk09whcz9j21rc4yk3lbwpf0nd4c"))))
|
||||
"0zd0c9xzvpx55mvj8xrafakfkvafnwkkvhw9b1j0bf897xdkfsyb"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils))
|
||||
|
|
|
@ -318,7 +318,7 @@ integrate Windows applications into your desktop.")
|
|||
(define-public wine-staging-patchset-data
|
||||
(package
|
||||
(name "wine-staging-patchset-data")
|
||||
(version "4.13")
|
||||
(version "4.14")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -328,7 +328,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bbwsd2qpjilxpjscqbp78p0gl0awj1yj62g0wvybh4x89fzy8zj"))))
|
||||
"1s17hcrp1aa0v99y5iav2s0lxdx2rzgm7z0c4zhxyydqxj399f5j"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("bash" ,bash)
|
||||
|
@ -374,7 +374,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (string-append name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rqx8g394aj5q913cd18zsi60sldvxarrp178w6ja0y4rd8l25vr"))))
|
||||
"1rl1a3k5sr0hyxc61d68kwandhxcnxwv6b77vh7x2rkl1h4nxmfs"))))
|
||||
(inputs `(("autoconf" ,autoconf) ; for autoreconf
|
||||
("faudio" ,faudio)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
|
@ -499,7 +499,6 @@ integrated into the main branch.")
|
|||
(script (string-append (assoc-ref %build-inputs
|
||||
"wine-staging-patchset-data")
|
||||
"/share/wine-staging/patches/patchinstall.sh")))
|
||||
;; Exclude specific patches that conflict with FAudio.
|
||||
(invoke script (string-append "DESTDIR=" ".") "--all")
|
||||
#t)))
|
||||
(add-after 'install 'copy-wine32-binaries
|
||||
|
|
|
@ -716,18 +716,18 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
|
|||
(define-public xlockmore
|
||||
(package
|
||||
(name "xlockmore")
|
||||
(version "5.57")
|
||||
(version "5.58")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "http://sillycycle.com/xlock/"
|
||||
name "-" version ".tar.xz")
|
||||
"xlockmore-" version ".tar.xz")
|
||||
;; Previous releases are moved to a subdirectory.
|
||||
(string-append "http://sillycycle.com/xlock/"
|
||||
"recent-releases/"
|
||||
name "-" version ".tar.xz")))
|
||||
"xlockmore-" version ".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"18r8rh8fzdn9miicbpc3qbdd4mm2g1jpsbcvj29sr66pxydzkb7r"))))
|
||||
"1va11sbv5lbkxkp0i0msz5md3n2n82nzppk27rzdrw7y79vq37zw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags (list (string-append "--enable-appdefaultdir="
|
||||
|
|
|
@ -1805,7 +1805,7 @@ used with other display managers such as gdm or kdm.")
|
|||
(define-public setxkbmap
|
||||
(package
|
||||
(name "setxkbmap")
|
||||
(version "1.3.1")
|
||||
(version "1.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1815,7 +1815,7 @@ used with other display managers such as gdm or kdm.")
|
|||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qfk097vjysqb72pq89h0la3462kbb2dh1d11qzs2fr67ybb7pd9"))))
|
||||
"1xdrxs65v7d0rw1yaz0vsz55w4hxym99216p085ya9978j379wlg"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libxkbfile" ,libxkbfile)
|
||||
|
@ -4167,16 +4167,16 @@ an X server.")
|
|||
(define-public xrandr
|
||||
(package
|
||||
(name "xrandr")
|
||||
(version "1.5.0")
|
||||
(version "1.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://xorg/individual/app/xrandr-"
|
||||
version ".tar.bz2"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kaih7rmzxr1vp5a5zzjhm5x7dn9mckya088sqqw026pskhx9ky1"))))
|
||||
"0ql75s1n3dm2m3g1ilb9l6hqh15r0v709bgghpwazy3jknpnvivv"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libxrender" ,libxrender)
|
||||
|
|
|
@ -430,34 +430,34 @@ ACTIVATION-SCRIPT-TYPE."
|
|||
(define (activation-script gexps)
|
||||
"Return the system's activation script, which evaluates GEXPS."
|
||||
(define actions
|
||||
(map (cut scheme-file "activate-service" <>) gexps))
|
||||
(map (cut program-file "activate-service.scm" <>) gexps))
|
||||
|
||||
(scheme-file "activate"
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build activation)
|
||||
(guix build utils)))
|
||||
#~(begin
|
||||
(use-modules (gnu build activation)
|
||||
(guix build utils))
|
||||
(program-file "activate.scm"
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build activation)
|
||||
(guix build utils)))
|
||||
#~(begin
|
||||
(use-modules (gnu build activation)
|
||||
(guix build utils))
|
||||
|
||||
;; Make sure the user accounting database exists. If it
|
||||
;; does not exist, 'setutxent' does not create it and
|
||||
;; thus there is no accounting at all.
|
||||
(close-port (open-file "/var/run/utmpx" "a0"))
|
||||
;; Make sure the user accounting database exists. If it
|
||||
;; does not exist, 'setutxent' does not create it and
|
||||
;; thus there is no accounting at all.
|
||||
(close-port (open-file "/var/run/utmpx" "a0"))
|
||||
|
||||
;; Same for 'wtmp', which is populated by mingetty et
|
||||
;; al.
|
||||
(mkdir-p "/var/log")
|
||||
(close-port (open-file "/var/log/wtmp" "a0"))
|
||||
;; Same for 'wtmp', which is populated by mingetty et
|
||||
;; al.
|
||||
(mkdir-p "/var/log")
|
||||
(close-port (open-file "/var/log/wtmp" "a0"))
|
||||
|
||||
;; Set up /run/current-system. Among other things this
|
||||
;; sets up locales, which the activation snippets
|
||||
;; executed below may expect.
|
||||
(activate-current-system)
|
||||
;; Set up /run/current-system. Among other things this
|
||||
;; sets up locales, which the activation snippets
|
||||
;; executed below may expect.
|
||||
(activate-current-system)
|
||||
|
||||
;; Run the services' activation snippets.
|
||||
;; TODO: Use 'load-compiled'.
|
||||
(for-each primitive-load '#$actions)))))
|
||||
;; Run the services' activation snippets.
|
||||
;; TODO: Use 'load-compiled'.
|
||||
(for-each primitive-load '#$actions)))))
|
||||
|
||||
(define (gexps->activation-gexp gexps)
|
||||
"Return a gexp that runs the activation script containing GEXPS."
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
|
||||
;;;
|
||||
;;; 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
|
||||
"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
|
||||
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
|
||||
'((\"tty1\" . \"LatGrkCyr-8x16\"))
|
||||
'((\"tty1\" . \"LatGrkCyr-8x16\")
|
||||
(\"tty2\" . (file-append
|
||||
font-tamzen
|
||||
\"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\")))
|
||||
@end example\n")))
|
||||
|
||||
(define* (console-font-service tty #:optional (font "LatGrkCyr-8x16"))
|
||||
|
|
|
@ -133,7 +133,10 @@ MODULES and taken from LINUX."
|
|||
(copy-file module
|
||||
(string-append #$output "/"
|
||||
(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))
|
||||
|
||||
|
|
|
@ -47,14 +47,22 @@ available via the first URI, the second URI points to the archived version."
|
|||
(string-append "mirror://cran/src/contrib/Archive/"
|
||||
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
|
||||
release corresponding to NAME and VERSION."
|
||||
(list (string-append "https://bioconductor.org/packages/release/bioc/src/contrib/"
|
||||
name "_" version ".tar.gz")
|
||||
;; TODO: use %bioconductor-version from (guix import cran)
|
||||
(string-append "https://bioconductor.org/packages/3.9/bioc/src/contrib/Archive/"
|
||||
name "_" version ".tar.gz")))
|
||||
(let ((type-url-part (match type
|
||||
('annotation "/data/annotation")
|
||||
('experiment "/data/experiment")
|
||||
(_ "/bioc"))))
|
||||
(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
|
||||
;; Build-side modules imported by default.
|
||||
|
|
|
@ -65,7 +65,9 @@
|
|||
latest-channel-derivation
|
||||
channel-instances->manifest
|
||||
%channel-profile-hooks
|
||||
channel-instances->derivation))
|
||||
channel-instances->derivation
|
||||
|
||||
profile-channels))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -534,3 +536,27 @@ channel instances."
|
|||
latest instances of CHANNELS."
|
||||
(mlet %store-monad ((instances (latest-channel-instances* channels)))
|
||||
(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)))))
|
||||
|
|
|
@ -376,8 +376,8 @@ of SUBSTITUTABLES."
|
|||
(substitution-oracle
|
||||
store inputs #:mode mode)))
|
||||
"Given INPUTS, a list of derivation-inputs, return two values: the list of
|
||||
derivation to build, and the list of substitutable items that, together,
|
||||
allows INPUTS to be realized.
|
||||
derivations to build, and the list of substitutable items that, together,
|
||||
allow INPUTS to be realized.
|
||||
|
||||
SUBSTITUTABLE-INFO must be a one-argument procedure similar to that returned
|
||||
by 'substitution-oracle'."
|
||||
|
@ -685,7 +685,7 @@ name of each input with that input's hash."
|
|||
(make-derivation-input hash sub-drvs))))
|
||||
inputs)))
|
||||
(make-derivation outputs
|
||||
(sort inputs
|
||||
(sort (delete-duplicates inputs)
|
||||
(lambda (drv1 drv2)
|
||||
(string<? (derivation-input-derivation drv1)
|
||||
(derivation-input-derivation drv2))))
|
||||
|
|
|
@ -132,14 +132,19 @@ package definition."
|
|||
;; updated together.
|
||||
(define %bioconductor-version "3.9")
|
||||
|
||||
(define %bioconductor-packages-list-url
|
||||
(define* (bioconductor-packages-list-url #:optional type)
|
||||
(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
|
||||
release."
|
||||
(let ((url (string->uri %bioconductor-packages-list-url)))
|
||||
(let ((url (string->uri (bioconductor-packages-list-url type))))
|
||||
(guard (c ((http-get-error? c)
|
||||
(format (current-error-port)
|
||||
"error: failed to retrieve list of packages from ~s: ~a (~s)~%"
|
||||
|
@ -153,12 +158,12 @@ release."
|
|||
(description->alist (string-join chunk "\n")))
|
||||
(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
|
||||
bioconductor package NAME, or #F if the package is unknown."
|
||||
(and=> (find (lambda (meta)
|
||||
(string=? (assoc-ref meta "Package") name))
|
||||
(bioconductor-packages-list))
|
||||
(bioconductor-packages-list type))
|
||||
(cut assoc-ref <> "Version")))
|
||||
|
||||
;; 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
|
||||
;; package's DESCRIPTION file over HTTP, so we determine the version,
|
||||
;; download the source tarball, and then extract the DESCRIPTION file.
|
||||
(and-let* ((version (latest-bioconductor-package-version name))
|
||||
(url (car (bioconductor-uri name version)))
|
||||
(and-let* ((type (or
|
||||
(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)))
|
||||
(call-with-temporary-directory
|
||||
(lambda (dir)
|
||||
|
@ -198,8 +207,11 @@ from ~s: ~a (~s)~%"
|
|||
"--strip-components=1"
|
||||
"-C" dir
|
||||
"-f" tarball "*/DESCRIPTION"))
|
||||
(description->alist (with-input-from-file
|
||||
(string-append dir "/DESCRIPTION") read-string))))))))))
|
||||
(and=> (description->alist (with-input-from-file
|
||||
(string-append dir "/DESCRIPTION") read-string))
|
||||
(lambda (meta)
|
||||
(if (boolean? type) meta
|
||||
(cons `(bioconductor-type . ,type) meta))))))))))))
|
||||
|
||||
(define (listify meta field)
|
||||
"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")
|
||||
((url rest ...) url)
|
||||
(_ (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)
|
||||
((? string? url) url)
|
||||
(_ #f)))
|
||||
|
@ -330,7 +346,11 @@ from the alist META, which was derived from the R package's DESCRIPTION file."
|
|||
(version ,version)
|
||||
(source (origin
|
||||
(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
|
||||
(base32
|
||||
,(bytevector->nix-base32-string (file-sha256 tarball))))))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -46,7 +46,7 @@ source for metadata."
|
|||
(package name)
|
||||
(version version)
|
||||
(urls (filter-map (lambda (extension)
|
||||
(match (hash-ref dictionary extension)
|
||||
(match (assoc-ref dictionary extension)
|
||||
(#f
|
||||
#f)
|
||||
((? string? relative-url)
|
||||
|
@ -86,21 +86,22 @@ not be determined."
|
|||
(json (json->scm port)))
|
||||
(close-port port)
|
||||
(match json
|
||||
((4 (? hash-table? releases) _ ...)
|
||||
(let* ((releases (hash-ref releases upstream-name))
|
||||
(latest (hash-fold (lambda (key value result)
|
||||
(cond ((even-minor-version? key)
|
||||
(match result
|
||||
(#f
|
||||
(cons key value))
|
||||
((newest . _)
|
||||
(if (version>? key newest)
|
||||
(cons key value)
|
||||
result))))
|
||||
(else
|
||||
result)))
|
||||
#f
|
||||
releases)))
|
||||
(#(4 releases _ ...)
|
||||
(let* ((releases (assoc-ref releases upstream-name))
|
||||
(latest (fold (match-lambda*
|
||||
(((key . value) result)
|
||||
(cond ((even-minor-version? key)
|
||||
(match result
|
||||
(#f
|
||||
(cons key value))
|
||||
((newest . _)
|
||||
(if (version>? key newest)
|
||||
(cons key value)
|
||||
result))))
|
||||
(else
|
||||
result))))
|
||||
#f
|
||||
releases)))
|
||||
(and latest
|
||||
(jsonish->upstream-source upstream-name latest))))))))
|
||||
|
||||
|
|
|
@ -19,13 +19,17 @@
|
|||
(define-module (guix remote)
|
||||
#:use-module (guix ssh)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (guix inferior)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ssh popen)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (remote-eval))
|
||||
|
||||
|
@ -40,29 +44,41 @@
|
|||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define (remote-pipe-for-gexp lowered session)
|
||||
"Return a remote pipe for the given SESSION to evaluate LOWERED."
|
||||
(define* (remote-pipe-for-gexp lowered session #:optional become-command)
|
||||
"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
|
||||
(compose object->string object->string))
|
||||
|
||||
(apply open-remote-pipe* session OPEN_READ
|
||||
(string-append (derivation-input-output-path
|
||||
(lowered-gexp-guile lowered))
|
||||
"/bin/guile")
|
||||
"--no-auto-compile"
|
||||
(append (append-map (lambda (directory)
|
||||
`("-L" ,directory))
|
||||
(lowered-gexp-load-path lowered))
|
||||
(append-map (lambda (directory)
|
||||
`("-C" ,directory))
|
||||
(lowered-gexp-load-path lowered))
|
||||
`("-c"
|
||||
,(shell-quote (lowered-gexp-sexp lowered))))))
|
||||
(define repl-command
|
||||
(append (or become-command '())
|
||||
(list
|
||||
(string-append (derivation-input-output-path
|
||||
(lowered-gexp-guile lowered))
|
||||
"/bin/guile")
|
||||
"--no-auto-compile")
|
||||
(append-map (lambda (directory)
|
||||
`("-L" ,directory))
|
||||
(lowered-gexp-load-path lowered))
|
||||
(append-map (lambda (directory)
|
||||
`("-C" ,directory))
|
||||
(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
|
||||
prerequisites of EXP are already available on the host at SESSION."
|
||||
(let* ((pipe (remote-pipe-for-gexp lowered session))
|
||||
prerequisites of EXP are already available on the host at SESSION. If
|
||||
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)))
|
||||
(close-port pipe)
|
||||
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
|
||||
result to the current output port using the (guix repl) protocol."
|
||||
(define program
|
||||
(scheme-file "remote-exp.scm" exp))
|
||||
(program-file "remote-exp.scm" exp))
|
||||
|
||||
(with-imported-modules (source-module-closure '((guix repl)))
|
||||
#~(begin
|
||||
|
@ -89,17 +105,21 @@ result to the current output port using the (guix repl) protocol."
|
|||
(define* (remote-eval exp session
|
||||
#:key
|
||||
(build-locally? #t)
|
||||
(system (%current-system))
|
||||
(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
|
||||
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
|
||||
the remote store afterwards; otherwise, dependencies are built directly on the
|
||||
remote store."
|
||||
(mlet %store-monad ((lowered (lower-gexp (trampoline exp)
|
||||
#:module-path %load-path))
|
||||
(remote -> (connect-to-remote-daemon session
|
||||
socket-name)))
|
||||
(mlet* %store-monad ((lowered (lower-gexp (trampoline exp)
|
||||
#:system system
|
||||
#:guile-for-build #f
|
||||
#:module-path %load-path))
|
||||
(remote -> (connect-to-remote-daemon session
|
||||
socket-name)))
|
||||
(define inputs
|
||||
(cons (lowered-gexp-guile lowered)
|
||||
(lowered-gexp-inputs lowered)))
|
||||
|
@ -115,7 +135,7 @@ remote store."
|
|||
(built-derivations inputs)
|
||||
((store-lift send-files) to-send remote #:recursive? #t)
|
||||
(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
|
||||
derivation-input-derivation)
|
||||
inputs)
|
||||
|
@ -124,4 +144,4 @@ remote store."
|
|||
((store-lift send-files) to-send remote #:recursive? #t)
|
||||
(return (build-derivations remote inputs))
|
||||
(return (close-connection remote))
|
||||
(return (%remote-eval lowered session)))))))
|
||||
(return (%remote-eval lowered session become-command)))))))
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
#:use-module (guix grafts)
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (srfi srfi-37)
|
||||
#:export (guix-deploy))
|
||||
|
||||
|
@ -43,8 +45,6 @@
|
|||
(define (show-help)
|
||||
(display (G_ "Usage: guix deploy [OPTION] FILE...
|
||||
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)
|
||||
(newline)
|
||||
(display (G_ "
|
||||
|
@ -66,8 +66,7 @@ Perform the deployment specified by FILE.\n"))
|
|||
%standard-build-options))
|
||||
|
||||
(define %default-options
|
||||
`((system . ,(%current-system))
|
||||
(substitutes? . #t)
|
||||
`((substitutes? . #t)
|
||||
(build-hook? . #t)
|
||||
(graft? . #t)
|
||||
(debug . 0)
|
||||
|
@ -91,8 +90,18 @@ Perform the deployment specified by FILE.\n"))
|
|||
(with-store store
|
||||
(set-build-options-from-command-line store opts)
|
||||
(for-each (lambda (machine)
|
||||
(info (G_ "deploying to ~a...") (machine-display-name machine))
|
||||
(parameterize ((%current-system (assq-ref opts 'system))
|
||||
(%graft? (assq-ref opts 'graft?)))
|
||||
(run-with-store store (deploy-machine machine))))
|
||||
(info (G_ "deploying to ~a...~%")
|
||||
(machine-display-name machine))
|
||||
(parameterize ((%graft? (assq-ref opts 'graft?)))
|
||||
(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))))
|
||||
|
|
|
@ -153,30 +153,9 @@ in the format specified by FMT."
|
|||
(generation-number profile))
|
||||
|
||||
(define channels
|
||||
(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)))
|
||||
|
||||
;; 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)))))))
|
||||
(profile-channels (if (zero? number)
|
||||
profile
|
||||
(generation-file-name profile number))))
|
||||
|
||||
(match fmt
|
||||
('human
|
||||
|
|
|
@ -285,10 +285,9 @@ update would trigger a complete rebuild."
|
|||
(exit 0))
|
||||
|
||||
(define (warn-no-updater package)
|
||||
(format (current-error-port)
|
||||
(G_ "~a: warning: no updater for ~a~%")
|
||||
(location->string (package-location package))
|
||||
(package-name package)))
|
||||
(warning (package-location package)
|
||||
(G_ "no updater for ~a~%")
|
||||
(package-name package)))
|
||||
|
||||
(define* (update-package store package updaters
|
||||
#:key (key-download 'interactive) warn?)
|
||||
|
@ -306,11 +305,10 @@ warn about packages that have no matching updater."
|
|||
(when version
|
||||
(if (and=> tarball file-exists?)
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
(G_ "~a: ~a: updating from version ~a to version ~a...~%")
|
||||
(location->string loc)
|
||||
(package-name package)
|
||||
(package-version package) version)
|
||||
(info loc
|
||||
(G_ "~a: updating from version ~a to version ~a...~%")
|
||||
(package-name package)
|
||||
(package-version package) version)
|
||||
(for-each
|
||||
(lambda (change)
|
||||
(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)
|
||||
(package-version package))
|
||||
((>)
|
||||
(format (current-error-port)
|
||||
(G_ "~a: ~a would be upgraded from ~a to ~a~%")
|
||||
(location->string loc)
|
||||
(package-name package) (package-version package)
|
||||
(upstream-source-version source)))
|
||||
(info loc
|
||||
(G_ "~a would be upgraded from ~a to ~a~%")
|
||||
(package-name package) (package-version package)
|
||||
(upstream-source-version source)))
|
||||
((=)
|
||||
(when warn?
|
||||
(format (current-error-port)
|
||||
(G_ "~a: info: ~a is already the latest version of ~a~%")
|
||||
(location->string loc)
|
||||
(package-version package)
|
||||
(package-name package))))
|
||||
(info loc
|
||||
(G_ "~a is already the latest version of ~a~%")
|
||||
(package-version package)
|
||||
(package-name package))))
|
||||
(else
|
||||
(when warn?
|
||||
(format (current-error-port)
|
||||
(G_ "~a: warning: ~a is greater than \
|
||||
(warning loc
|
||||
(G_ "~a is greater than \
|
||||
the latest known version of ~a (~a)~%")
|
||||
(location->string loc)
|
||||
(package-version package)
|
||||
(package-name package)
|
||||
(upstream-source-version source)))))))
|
||||
(package-version package)
|
||||
(package-name package)
|
||||
(upstream-source-version source)))))))
|
||||
(#f
|
||||
(when warn?
|
||||
(warn-no-updater package)))))
|
||||
|
|
56
guix/ssh.scm
56
guix/ssh.scm
|
@ -21,6 +21,7 @@
|
|||
#:use-module (guix inferior)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module ((guix utils) #:select (&fix-hint))
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module (ssh session)
|
||||
#:use-module (ssh auth)
|
||||
#:use-module (ssh key)
|
||||
|
@ -39,6 +40,8 @@
|
|||
remote-inferior
|
||||
remote-daemon-channel
|
||||
connect-to-remote-daemon
|
||||
remote-system
|
||||
remote-authorize-signing-key
|
||||
send-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~%")
|
||||
host (get-error session))))))))))
|
||||
|
||||
(define (remote-inferior session)
|
||||
"Return a remote inferior for the given SESSION."
|
||||
(let ((pipe (open-remote-pipe* session OPEN_BOTH
|
||||
"guix" "repl" "-t" "machine")))
|
||||
(define* (remote-inferior session #:optional become-command)
|
||||
"Return a remote inferior for the given SESSION. If BECOME-COMMAND is
|
||||
given, use that to invoke the remote Guile REPL."
|
||||
(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)))
|
||||
|
||||
(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
|
||||
right away."
|
||||
(let ((inferior (remote-inferior session)))
|
||||
right away. If BECOME-COMMAND is given, use that to invoke the remote Guile
|
||||
REPL."
|
||||
(let ((inferior (remote-inferior session become-command)))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
|
@ -282,6 +296,34 @@ be read. When RECURSIVE? is true, the closure of FILES is exported."
|
|||
,(object->string
|
||||
(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
|
||||
#:key
|
||||
recursive?
|
||||
|
|
|
@ -362,6 +362,7 @@ SOURCE, an <upstream-source>."
|
|||
(_
|
||||
"gz")))
|
||||
((url signature-url)
|
||||
;; Try to find a URL that matches ARCHIVE-TYPE.
|
||||
(find2 (lambda (url sig-url)
|
||||
;; Some URIs lack a file extension, like
|
||||
;; 'https://crates.io/???/0.1/download'. In that
|
||||
|
@ -370,7 +371,13 @@ SOURCE, an <upstream-source>."
|
|||
(string-suffix? archive-type url)))
|
||||
urls
|
||||
(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)))
|
||||
(values version tarball source))))))
|
||||
|
||||
|
|
|
@ -184,9 +184,8 @@ AC_DEFUN([GUIX_CHECK_GUILE_JSON], [
|
|||
[guix_cv_have_recent_guile_json],
|
||||
[GUILE_CHECK([retval],
|
||||
[(use-modules (json) (ice-9 match))
|
||||
(match (json-string->scm \"[[] { \\\"a\\\": 42 } []]\")
|
||||
(#(("a" . 42)) #t)
|
||||
(_ #f))])
|
||||
(match (json-string->scm \"[[ { \\\"a\\\": 42 } ]]\")
|
||||
(#((("a" . 42))) #t))])
|
||||
if test "$retval" = 0; then
|
||||
guix_cv_have_recent_guile_json="yes"
|
||||
else
|
||||
|
|
|
@ -409,6 +409,38 @@
|
|||
(equal? (derivation->output-path final1)
|
||||
(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"
|
||||
(let* ((builder (add-text-to-store %store "my-fixed-builder.sh"
|
||||
"echo one > $out ; echo two > $second"
|
||||
|
|
|
@ -144,6 +144,13 @@ HOME="$tmpdir" guix environment --bootstrap --container --user=foognu \
|
|||
--share="$tmpdir/umock" \
|
||||
-- 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.
|
||||
|
||||
|
|
|
@ -84,14 +84,6 @@ echo "(use-modules (guix profiles) (gnu packages bootstrap))
|
|||
guix environment --bootstrap --manifest=$tmpdir/manifest.scm --pure \
|
||||
-- "$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.
|
||||
rm -f "$gcroot"
|
||||
expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \
|
||||
|
|
|
@ -74,6 +74,12 @@
|
|||
(((and (? lint-warning?) 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")
|
||||
|
||||
|
@ -366,13 +372,11 @@
|
|||
(single-lint-warning-message
|
||||
(check-home-page pkg))))
|
||||
|
||||
(test-equal "home-page: host not found"
|
||||
"URI http://does-not-exist domain not found: Name or service not known"
|
||||
(test-assert "home-page: host not found"
|
||||
(let ((pkg (package
|
||||
(inherit (dummy-package "x"))
|
||||
(home-page "http://does-not-exist"))))
|
||||
(single-lint-warning-message
|
||||
(check-home-page pkg))))
|
||||
(warning-contains? "domain not found" (check-home-page pkg))))
|
||||
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-equal "home-page: Connection refused"
|
||||
|
|
Reference in New Issue