Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2019-08-08 00:35:37 +02:00
commit 8e7f97b9ff
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
49 changed files with 4590 additions and 2725 deletions

View File

@ -25510,7 +25510,7 @@ evaluates to. As an example, @var{file} might contain a definition like this:
%base-services)))) %base-services))))
(list (machine (list (machine
(system %system) (operating-system %system)
(environment managed-host-environment-type) (environment managed-host-environment-type)
(configuration (machine-ssh-configuration (configuration (machine-ssh-configuration
(host-name "localhost") (host-name "localhost")
@ -25530,12 +25530,28 @@ complex deployment may involve, for example, starting virtual machines through
a Virtual Private Server (VPS) provider. In such a case, a different a Virtual Private Server (VPS) provider. In such a case, a different
@var{environment} type would be used. @var{environment} type would be used.
Do note that you first need to generate a key pair on the coordinator machine
to allow the daemon to export signed archives of files from the store
(@pxref{Invoking guix archive}).
@example
# guix archive --generate-key
@end example
@noindent
Each target machine must authorize the key of the master machine so that it
accepts store items it receives from the coordinator:
@example
# guix archive --authorize < coordinator-public-key.txt
@end example
@deftp {Data Type} machine @deftp {Data Type} machine
This is the data type representing a single machine in a heterogeneous Guix This is the data type representing a single machine in a heterogeneous Guix
deployment. deployment.
@table @asis @table @asis
@item @code{system} @item @code{operating-system}
The object of the operating system configuration to deploy. The object of the operating system configuration to deploy.
@item @code{environment} @item @code{environment}

View File

@ -772,6 +772,7 @@ dist_patch_DATA = \
%D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-path-length.patch \ %D%/packages/patches/elixir-path-length.patch \
%D%/packages/patches/einstein-build.patch \ %D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch \
%D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \
@ -1022,7 +1023,8 @@ dist_patch_DATA = \
%D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \
%D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-length-check.patch \
%D%/packages/patches/libmad-md_size.patch \
%D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \ %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
@ -1043,7 +1045,6 @@ dist_patch_DATA = \
%D%/packages/patches/libutils-add-includes.patch \ %D%/packages/patches/libutils-add-includes.patch \
%D%/packages/patches/libutils-remove-damaging-includes.patch \ %D%/packages/patches/libutils-remove-damaging-includes.patch \
%D%/packages/patches/libvdpau-va-gl-unbundle.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \
%D%/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \
%D%/packages/patches/libvpx-use-after-free-in-postproc.patch \ %D%/packages/patches/libvpx-use-after-free-in-postproc.patch \
%D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxslt-generated-ids.patch \
@ -1305,6 +1306,7 @@ dist_patch_DATA = \
%D%/packages/patches/soundconverter-remove-gconf-dependency.patch \ %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \
%D%/packages/patches/sssd-curl-compat.patch \ %D%/packages/patches/sssd-curl-compat.patch \
%D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/strace-ipc-tests.patch \
%D%/packages/patches/streamlink-update-test.patch \ %D%/packages/patches/streamlink-update-test.patch \
%D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \ %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \
%D%/packages/patches/superlu-dist-awpm-grid.patch \ %D%/packages/patches/superlu-dist-awpm-grid.patch \

View File

@ -34,7 +34,7 @@
machine? machine?
this-machine this-machine
machine-system machine-operating-system
machine-environment machine-environment
machine-configuration machine-configuration
machine-display-name machine-display-name
@ -85,14 +85,14 @@
make-machine make-machine
machine? machine?
this-machine this-machine
(system machine-system) ; <operating-system> (operating-system machine-operating-system) ; <operating-system>
(environment machine-environment) ; symbol (environment machine-environment) ; symbol
(configuration machine-configuration ; configuration object (configuration machine-configuration ; configuration object
(default #f))) ; specific to environment (default #f))) ; specific to environment
(define (machine-display-name machine) (define (machine-display-name machine)
"Return the host-name identifying MACHINE." "Return the host-name identifying MACHINE."
(operating-system-host-name (machine-system machine))) (operating-system-host-name (machine-operating-system machine)))
(define (machine-remote-eval machine exp) (define (machine-remote-eval machine exp)
"Evaluate EXP, a gexp, on MACHINE. Ensure that all the elements EXP refers to "Evaluate EXP, a gexp, on MACHINE. Ensure that all the elements EXP refers to

View File

@ -20,6 +20,9 @@
#:use-module (gnu machine) #:use-module (gnu machine)
#:autoload (gnu packages gnupg) (guile-gcrypt) #:autoload (gnu packages gnupg) (guile-gcrypt)
#:use-module (gnu system) #:use-module (gnu system)
#:use-module (gnu system file-systems)
#:use-module (gnu system uuid)
#:use-module (guix diagnostics)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (guix modules) #:use-module (guix modules)
@ -29,6 +32,7 @@
#:use-module (guix scripts system reconfigure) #:use-module (guix scripts system reconfigure)
#:use-module (guix ssh) #:use-module (guix ssh)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix utils)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
@ -40,6 +44,7 @@
machine-ssh-configuration machine-ssh-configuration
machine-ssh-configuration-host-name machine-ssh-configuration-host-name
machine-ssh-configuration-build-locally?
machine-ssh-configuration-port machine-ssh-configuration-port
machine-ssh-configuration-user machine-ssh-configuration-user
machine-ssh-configuration-session)) machine-ssh-configuration-session))
@ -62,15 +67,17 @@
make-machine-ssh-configuration make-machine-ssh-configuration
machine-ssh-configuration? machine-ssh-configuration?
this-machine-ssh-configuration this-machine-ssh-configuration
(host-name machine-ssh-configuration-host-name) ; string (host-name machine-ssh-configuration-host-name) ; string
(port machine-ssh-configuration-port ; integer (build-locally? machine-ssh-configuration-build-locally?
(default 22)) (default #t))
(user machine-ssh-configuration-user ; string (port machine-ssh-configuration-port ; integer
(default "root")) (default 22))
(identity machine-ssh-configuration-identity ; path to a private key (user machine-ssh-configuration-user ; string
(default #f)) (default "root"))
(session machine-ssh-configuration-session ; session (identity machine-ssh-configuration-identity ; path to a private key
(default #f))) (default #f))
(session machine-ssh-configuration-session ; session
(default #f)))
(define (machine-ssh-session machine) (define (machine-ssh-session machine)
"Return the SSH session that was given in MACHINE's configuration, or create "Return the SSH session that was given in MACHINE's configuration, or create
@ -96,7 +103,149 @@ one from the configuration's parameters if one was not provided."
"Internal implementation of 'machine-remote-eval' for MACHINE instances with "Internal implementation of 'machine-remote-eval' for MACHINE instances with
an environment type of 'managed-host." an environment type of 'managed-host."
(maybe-raise-unsupported-configuration-error machine) (maybe-raise-unsupported-configuration-error machine)
(remote-eval exp (machine-ssh-session machine))) (remote-eval exp (machine-ssh-session machine)
#:build-locally?
(machine-ssh-configuration-build-locally?
(machine-configuration machine))))
;;;
;;; Safety checks.
;;;
(define (machine-check-file-system-availability machine)
"Raise a '&message' error condition if any of the file-systems specified in
MACHINE's 'system' declaration do not exist on the machine."
(define file-systems
(filter (lambda (fs)
(and (file-system-mount? fs)
(not (member (file-system-type fs)
%pseudo-file-system-types))
(not (memq 'bind-mount (file-system-flags fs)))))
(operating-system-file-systems (machine-operating-system machine))))
(define (check-literal-file-system fs)
(define remote-exp
#~(catch 'system-error
(lambda ()
(stat #$(file-system-device fs))
#t)
(lambda args
(system-error-errno args))))
(mlet %store-monad ((errno (machine-remote-eval machine remote-exp)))
(when (number? errno)
(raise (condition
(&message
(message (format #f (G_ "device '~a' not found: ~a")
(file-system-device fs)
(strerror errno)))))))
(return #t)))
(define (check-labeled-file-system fs)
(define remote-exp
(with-imported-modules '((gnu build file-systems))
#~(begin
(use-modules (gnu build file-systems))
(find-partition-by-label #$(file-system-label->string
(file-system-device fs))))))
(mlet %store-monad ((result (machine-remote-eval machine remote-exp)))
(unless result
(raise (condition
(&message
(message (format #f (G_ "no file system with label '~a'")
(file-system-label->string
(file-system-device fs))))))))
(return #t)))
(define (check-uuid-file-system fs)
(define remote-exp
(with-imported-modules (source-module-closure
'((gnu build file-systems)
(gnu system uuid)))
#~(begin
(use-modules (gnu build file-systems)
(gnu system uuid))
(define uuid
(string->uuid #$(uuid->string (file-system-device fs))))
(find-partition-by-uuid uuid))))
(mlet %store-monad ((result (machine-remote-eval machine remote-exp)))
(unless result
(raise (condition
(&message
(message (format #f (G_ "no file system with UUID '~a'")
(uuid->string (file-system-device fs))))))))
(return #t)))
(mbegin %store-monad
(mapm %store-monad check-literal-file-system
(filter (lambda (fs)
(string? (file-system-device fs)))
file-systems))
(mapm %store-monad check-labeled-file-system
(filter (lambda (fs)
(file-system-label? (file-system-device fs)))
file-systems))
(mapm %store-monad check-uuid-file-system
(filter (lambda (fs)
(uuid? (file-system-device fs)))
file-systems))))
(define (machine-check-initrd-modules machine)
"Raise a '&message' error condition if any of the modules needed by
'needed-for-boot' file systems in MACHINE are not available in the initrd."
(define file-systems
(filter file-system-needed-for-boot?
(operating-system-file-systems (machine-operating-system machine))))
(define (missing-modules fs)
(define remote-exp
(let ((device (file-system-device fs)))
(with-imported-modules (source-module-closure
'((gnu build file-systems)
(gnu build linux-modules)
(gnu system uuid)))
#~(begin
(use-modules (gnu build file-systems)
(gnu build linux-modules)
(gnu system uuid))
(define dev
#$(cond ((string? device) device)
((uuid? device) #~(find-partition-by-uuid
(string->uuid
#$(uuid->string device))))
((file-system-label? device)
#~(find-partition-by-label
(file-system-label->string #$device)))))
(missing-modules dev '#$(operating-system-initrd-modules
(machine-operating-system machine)))))))
(mlet %store-monad ((missing (machine-remote-eval machine remote-exp)))
(return (list fs missing))))
(mlet %store-monad ((device (mapm %store-monad missing-modules file-systems)))
(for-each (match-lambda
((fs missing)
(unless (null? missing)
(raise (condition
(&message
(message (format #f (G_ "~a missing modules ~{ ~a~}~%")
(file-system-device fs)
missing))))))))
device)
(return #t)))
(define (check-deployment-sanity machine)
"Raise a '&message' error condition if it is clear that deploying MACHINE's
'system' declaration would fail."
(mbegin %store-monad
(machine-check-file-system-availability machine)
(machine-check-initrd-modules machine)))
;;; ;;;
@ -165,8 +314,9 @@ of MACHINE's system profile, ordered from most recent to oldest."
"Internal implementation of 'deploy-machine' for MACHINE instances with an "Internal implementation of 'deploy-machine' for MACHINE instances with an
environment type of 'managed-host." environment type of 'managed-host."
(maybe-raise-unsupported-configuration-error machine) (maybe-raise-unsupported-configuration-error machine)
(mlet %store-monad ((boot-parameters (machine-boot-parameters machine))) (mlet %store-monad ((_ (check-deployment-sanity machine))
(let* ((os (machine-system machine)) (boot-parameters (machine-boot-parameters machine)))
(let* ((os (machine-operating-system machine))
(eval (cut machine-remote-eval machine <>)) (eval (cut machine-remote-eval machine <>))
(menu-entries (map boot-parameters->menu-entry boot-parameters)) (menu-entries (map boot-parameters->menu-entry boot-parameters))
(bootloader-configuration (operating-system-bootloader os)) (bootloader-configuration (operating-system-bootloader os))

View File

@ -1181,7 +1181,7 @@ commands and their arguments.")
(define-public wpa-supplicant-minimal (define-public wpa-supplicant-minimal
(package (package
(name "wpa-supplicant-minimal") (name "wpa-supplicant-minimal")
(version "2.8") (version "2.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1189,7 +1189,7 @@ commands and their arguments.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15ixzm347n8w6gdvi3j3yks3i15qmp6by9ayvswm34d929m372d6")) "05qzak1mssnxcgdrafifxh9w86a4ha69qabkg4bsigk499xyxggw"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -2606,7 +2606,7 @@ buffers.")
`(#:tests? #f ; many of the tests try to load kernel modules `(#:tests? #f ; many of the tests try to load kernel modules
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen (replace 'bootstrap
(lambda _ (lambda _
;; Don't run configure in this phase. ;; Don't run configure in this phase.
(setenv "NOCONFIGURE" "1") (setenv "NOCONFIGURE" "1")

View File

@ -236,8 +236,7 @@ the real span of the lattice.")
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("texlive" ,(texlive-union `(("texlive" ,(texlive-union
(list texlive-fonts-amsfonts (list texlive-amsfonts)))))
texlive-latex-amsfonts)))))
(inputs `(("gmp" ,gmp) (inputs `(("gmp" ,gmp)
("libx11" ,libx11) ("libx11" ,libx11)
("perl" ,perl) ("perl" ,perl)

View File

@ -3700,7 +3700,7 @@ library.")
(define-public faudio (define-public faudio
(package (package
(name "faudio") (name "faudio")
(version "19.07") (version "19.08")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3709,7 +3709,7 @@ library.")
(commit version))) (commit version)))
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 "1wf6skc5agaikc9qgwk8bx56sad31fafs53lqqn4jmx8i76pl0lw")))) (base32 "1v13kfhyr46241vb6a4dcb4gw5f149525sprwa9cj4rv6wlcqgm5"))))
(arguments (arguments
'(#:tests? #f ; No tests. '(#:tests? #f ; No tests.
#:configure-flags '("-DFFMPEG=ON"))) #:configure-flags '("-DFFMPEG=ON")))

View File

@ -1212,14 +1212,14 @@ determining dependencies between variables, code improvement suggestions.")
(define-public r-chippeakanno (define-public r-chippeakanno
(package (package
(name "r-chippeakanno") (name "r-chippeakanno")
(version "3.18.1") (version "3.18.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ChIPpeakAnno" version)) (uri (bioconductor-uri "ChIPpeakAnno" version))
(sha256 (sha256
(base32 (base32
"1mwi5s600c3jxy8f1azfrndc3g06qvhbmrp9wqac9nwjbfx1kfji")))) "0wzwdxvvr7wknz5jnan0wsp81c1gv4d2qx0mrb1yybqf4z068779"))))
(properties `((upstream-name . "ChIPpeakAnno"))) (properties `((upstream-name . "ChIPpeakAnno")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -1521,14 +1521,14 @@ experiments.")
(define-public r-genomicinteractions (define-public r-genomicinteractions
(package (package
(name "r-genomicinteractions") (name "r-genomicinteractions")
(version "1.18.0") (version "1.18.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicInteractions" version)) (uri (bioconductor-uri "GenomicInteractions" version))
(sha256 (sha256
(base32 (base32
"0ipvm3c1cqd46n60lsrqzf6fx4b3lwia57jyfx9wcqqg205qj73b")))) "0hq2n5yfr9h2ayn10dy9lz08gd2q0awrm5cy2kqdmz4d8ss4r94p"))))
(properties (properties
`((upstream-name . "GenomicInteractions"))) `((upstream-name . "GenomicInteractions")))
(build-system r-build-system) (build-system r-build-system)
@ -3529,14 +3529,14 @@ position-specific scores within R and Bioconductor.")
(define-public r-atacseqqc (define-public r-atacseqqc
(package (package
(name "r-atacseqqc") (name "r-atacseqqc")
(version "1.8.1") (version "1.8.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ATACseqQC" version)) (uri (bioconductor-uri "ATACseqQC" version))
(sha256 (sha256
(base32 (base32
"0h5j3724hnd86w22vy3whqx6gkf0nf2dxd2clgzdvjzblbcd5s69")))) "1i8f0vs0z4jbc2yvj1diay7jhcmb1a82zv96xllk771f25nvmmxp"))))
(properties `((upstream-name . "ATACseqQC"))) (properties `((upstream-name . "ATACseqQC")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3621,14 +3621,14 @@ annotations and ontologies.")
(define-public r-abaenrichment (define-public r-abaenrichment
(package (package
(name "r-abaenrichment") (name "r-abaenrichment")
(version "1.14.0") (version "1.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ABAEnrichment" version)) (uri (bioconductor-uri "ABAEnrichment" version))
(sha256 (sha256
(base32 (base32
"0av1dysk7qa8c4a0pp7yq89k8c4y40d2gyvsb8f27slvv2i3aad2")))) "1w322wsp6bd3gyfwzgdf088cvfmpq774knr57d0dj420ljf4xn48"))))
(properties `((upstream-name . "ABAEnrichment"))) (properties `((upstream-name . "ABAEnrichment")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -4841,14 +4841,14 @@ annotations.")
(define-public r-rsubread (define-public r-rsubread
(package (package
(name "r-rsubread") (name "r-rsubread")
(version "1.34.4") (version "1.34.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Rsubread" version)) (uri (bioconductor-uri "Rsubread" version))
(sha256 (sha256
(base32 (base32
"1230p8nsakifmpsqfiaj8rpm7npa8ab903mfjmayfa71n6yzvcbs")))) "0nnfh4hnrs5kd72m8c50cidbsxjz12szw2vynpmg8q0wpd99q550"))))
(properties `((upstream-name . "Rsubread"))) (properties `((upstream-name . "Rsubread")))
(build-system r-build-system) (build-system r-build-system)
(inputs `(("zlib" ,zlib))) (inputs `(("zlib" ,zlib)))

View File

@ -13,6 +13,7 @@
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -4206,8 +4207,15 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'set-cc (add-after 'unpack 'set-cc
(lambda _ (setenv "CC" "gcc") #t)) (lambda _ (setenv "CC" "gcc") #t))
;; FIXME: This fails with "permission denied".
(delete 'reset-gzip-timestamps)))) (add-before 'reset-gzip-timestamps 'make-files-writable
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure .gz files are writable so that the
;; 'reset-gzip-timestamps' phase can do its work.
(let ((out (assoc-ref outputs "out")))
(for-each make-file-writable
(find-files out "\\.gz$"))
#t))))))
(native-inputs (native-inputs
`(("python-cython" ,python-cython) `(("python-cython" ,python-cython)
("python-pytest" ,python-pytest) ("python-pytest" ,python-pytest)
@ -7450,13 +7458,13 @@ names in their natural, rather than lexicographic, order.")
(define-public r-edger (define-public r-edger
(package (package
(name "r-edger") (name "r-edger")
(version "3.26.5") (version "3.26.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "edgeR" version)) (uri (bioconductor-uri "edgeR" version))
(sha256 (sha256
(base32 (base32
"0iba4krz30dx5b0s89n5cfkwn64867s7vmvvfqms9lbcr4kj439m")))) "17vadhamjv4x0l4qqq2p2fi6j2bkllz5zd8dq761vgd5ic23zizm"))))
(properties `((upstream-name . "edgeR"))) (properties `((upstream-name . "edgeR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -7517,13 +7525,13 @@ coding changes and predict coding outcomes.")
(define-public r-limma (define-public r-limma
(package (package
(name "r-limma") (name "r-limma")
(version "3.40.2") (version "3.40.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "limma" version)) (uri (bioconductor-uri "limma" version))
(sha256 (sha256
(base32 (base32
"1d4ig2b7fa9mwja52isxrwmprfdjdk1mlcf2skhdp51l24z6wbk7")))) "166z8cdh6w90rldqqaar7hyaskwiy4smawjfbn4sn58clv6q3mp8"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://bioinf.wehi.edu.au/limma") (home-page "http://bioinf.wehi.edu.au/limma")
(synopsis "Package for linear models for microarray and RNA-seq data") (synopsis "Package for linear models for microarray and RNA-seq data")
@ -7650,13 +7658,13 @@ annotation data packages using SQLite data storage.")
(define-public r-biomart (define-public r-biomart
(package (package
(name "r-biomart") (name "r-biomart")
(version "2.40.1") (version "2.40.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "biomaRt" version)) (uri (bioconductor-uri "biomaRt" version))
(sha256 (sha256
(base32 (base32
"1abl0c4qbhfqf9ixdp74183phm7s8rszrr5ldczm59b8vyng8rhx")))) "022m1r44s00c5k9bmv0lr22lcn662nhc91aazvv0yyysxjamyf60"))))
(properties (properties
`((upstream-name . "biomaRt"))) `((upstream-name . "biomaRt")))
(build-system r-build-system) (build-system r-build-system)
@ -7811,13 +7819,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
(define-public r-summarizedexperiment (define-public r-summarizedexperiment
(package (package
(name "r-summarizedexperiment") (name "r-summarizedexperiment")
(version "1.14.0") (version "1.14.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "SummarizedExperiment" version)) (uri (bioconductor-uri "SummarizedExperiment" version))
(sha256 (sha256
(base32 (base32
"1ypk63pdml89y81pr41i2zq0fimsaxsa5lgpg6xs5cwikyaq0pci")))) "0bhwgzrdipr0qjzc4j0qspqprx3v1rvshmx4j6506dv43pqlgp3f"))))
(properties (properties
`((upstream-name . "SummarizedExperiment"))) `((upstream-name . "SummarizedExperiment")))
(build-system r-build-system) (build-system r-build-system)
@ -7875,13 +7883,13 @@ alignments.")
(define-public r-rtracklayer (define-public r-rtracklayer
(package (package
(name "r-rtracklayer") (name "r-rtracklayer")
(version "1.44.0") (version "1.44.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "rtracklayer" version)) (uri (bioconductor-uri "rtracklayer" version))
(sha256 (sha256
(base32 (base32
"161gcks9b12993g9k27gf7wfh8lgd8m8rr7x2slgfqqssk0yrmpd")))) "03b4rfsbzjjf5kxcsjv7kq8hrsgcvz9rfzcn2v7fx3nr818pbb8s"))))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -7922,13 +7930,13 @@ as well as query and modify the browser state, such as the current viewport.")
(define-public r-genomicfeatures (define-public r-genomicfeatures
(package (package
(name "r-genomicfeatures") (name "r-genomicfeatures")
(version "1.36.3") (version "1.36.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version)) (uri (bioconductor-uri "GenomicFeatures" version))
(sha256 (sha256
(base32 (base32
"0zkd57i5qjxsravv0gbyckc0wrnqzgxd61ibh3jmhmrccrr9ihn3")))) "0mzqv8pyxx5nwchyx3radym9ws2f9hb50xc9abjsjs4w4pv91j3k"))))
(properties (properties
`((upstream-name . "GenomicFeatures"))) `((upstream-name . "GenomicFeatures")))
(build-system r-build-system) (build-system r-build-system)
@ -8346,13 +8354,13 @@ paired-end data.")
(define-public r-rcas (define-public r-rcas
(package (package
(name "r-rcas") (name "r-rcas")
(version "1.10.0") (version "1.10.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "RCAS" version)) (uri (bioconductor-uri "RCAS" version))
(sha256 (sha256
(base32 (base32
"1h4vf5gzilqbdrd8m9l3zc2m4sca8cir8366a7njgd558k7ld5kl")))) "06z5zmdi34jblw37z6ff8hb6lvvi0chwr37acwqfn8d27ax9lakz"))))
(properties `((upstream-name . "RCAS"))) (properties `((upstream-name . "RCAS")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -9410,14 +9418,14 @@ of mass spectrometry based proteomics data.")
(define-public r-msnid (define-public r-msnid
(package (package
(name "r-msnid") (name "r-msnid")
(version "1.18.0") (version "1.18.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "MSnID" version)) (uri (bioconductor-uri "MSnID" version))
(sha256 (sha256
(base32 (base32
"18mp8zacawhfapfwpq8czbswxix2ykvqhwjga54v0a99zg3k87h3")))) "1n49l5mjdz7p4g2nwsbhm1jcj42sv6lsriq77n2imvacsvk0qfmb"))))
(properties `((upstream-name . "MSnID"))) (properties `((upstream-name . "MSnID")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs

File diff suppressed because it is too large Load Diff

View File

@ -195,7 +195,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(build-system python-build-system) (build-system python-build-system)
;; TODO: Add xfig/transfig for fig2dev utility ;; TODO: Add xfig/transfig for fig2dev utility
(inputs (inputs
`(("texlive" ,(texlive-union (list texlive-latex-amsfonts `(("texlive" ,(texlive-union (list texlive-amsfonts
texlive-latex-anysize texlive-latex-anysize
texlive-latex-appendix texlive-latex-appendix
texlive-latex-changebar texlive-latex-changebar
@ -219,7 +219,6 @@ by no means limited to these applications.) This package provides XML DTDs.")
texlive-latex-url texlive-latex-url
texlive-latex-wasysym texlive-latex-wasysym
texlive-fonts-amsfonts
texlive-fonts-ec texlive-fonts-ec
texlive-fonts-rsfs texlive-fonts-rsfs
texlive-fonts-stmaryrd texlive-fonts-stmaryrd

View File

@ -63,12 +63,13 @@
(arguments '(#:tests? #f)) (arguments '(#:tests? #f))
(inputs (inputs
`(("python-requests" ,python-requests-2.20) `(("python-requests" ,python-requests-2.20)
("python-docker-pycreds" ,python-docker-pycreds)
("python-ipaddress" ,python-ipaddress) ("python-ipaddress" ,python-ipaddress)
("python-paramiko" ,python-paramiko)
("python-six" ,python-six) ("python-six" ,python-six)
("python-urllib3" ,python-urllib3-1.24) ("python-urllib3" ,python-urllib3-1.24)
("python-websocket-client" ,python-websocket-client))) ("python-websocket-client" ,python-websocket-client)))
(propagated-inputs
`(("python-docker-pycreds" ,python-docker-pycreds)
("python-paramiko" ,python-paramiko))) ; adds SSH support
(home-page "https://github.com/docker/docker-py/") (home-page "https://github.com/docker/docker-py/")
(synopsis "Python client for Docker") (synopsis "Python client for Docker")
(description "Docker-Py is a Python client for the Docker container (description "Docker-Py is a Python client for the Docker container
@ -113,17 +114,11 @@ client.")
;; TODO: Tests require running Docker daemon. ;; TODO: Tests require running Docker daemon.
(arguments '(#:tests? #f)) (arguments '(#:tests? #f))
(inputs (inputs
`(("python2-backport-ssl-match-hostname" `(("python-cached-property"
,python2-backport-ssl-match-hostname)
("python-cached-property"
,python-cached-property) ,python-cached-property)
("python-colorama" ,python-colorama)
("python-docker-py" ,python-docker-py) ("python-docker-py" ,python-docker-py)
("python-docker-pycreds" ,python-docker-pycreds)
("python-dockerpty" ,python-dockerpty) ("python-dockerpty" ,python-dockerpty)
("python-docopt" ,python-docopt) ("python-docopt" ,python-docopt)
("python-ipaddress" ,python-ipaddress)
("python-paramiko" ,python-paramiko)
("python-jsonschema" ,python-jsonschema-2.6) ("python-jsonschema" ,python-jsonschema-2.6)
("python-pyyaml" ,python-pyyaml) ("python-pyyaml" ,python-pyyaml)
("python-requests" ,python-requests-2.20) ("python-requests" ,python-requests-2.20)

View File

@ -3389,6 +3389,76 @@ for the current function or variable in the minibuffer.")
completion candidate when using the Company text completion framework.") completion candidate when using the Company text completion framework.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-math-symbol-lists
(let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
(revision "1"))
(package
(name "emacs-math-symbol-lists")
(version (git-version "1.2.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vspinu/math-symbol-lists.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
(build-system emacs-build-system)
(home-page "https://github.com/vspinu/math-symbol-lists")
(synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
(description "This is a storage package used by completion engines like
@code{company-math}.")
(license license:gpl3+))))
(define-public emacs-company-math
(let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
(revision "1"))
(package
(name "emacs-company-math")
(version (git-version "1.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vspinu/company-math.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
("emacs-company" ,emacs-company)))
(home-page "https://github.com/vspinu/company-math")
(synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
(description "This package provides a backend for use with
@code{company-mode} allowing for completion of common math symbols.")
(license license:gpl3+))))
(define-public emacs-nswbuff
(let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
(revision "1"))
(package
(name "emacs-nswbuff")
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/joostkremers/nswbuff.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
(build-system emacs-build-system)
(home-page "https://github.com/joostkremers/nswbuff")
(synopsis "Quickly switch between buffers")
(description "This package allows for navigating between buffers within
a customizable list.")
(license license:gpl3+))))
(define-public emacs-multiple-cursors (define-public emacs-multiple-cursors
(package (package
(name "emacs-multiple-cursors") (name "emacs-multiple-cursors")
@ -3410,6 +3480,32 @@ completion candidate when using the Company text completion framework.")
simultaneous cursors.") simultaneous cursors.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-mc-extras
(let ((commit "053abc52181b8718559d7361a587bbb795faf164")
(revision "1"))
(package
(name "emacs-mc-extras")
(version (git-version "1.2.4" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/knu/mc-extras.el.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
(home-page "https://github.com/knu/mc-extras.el")
(synopsis "Extra functions for manipulating multiple cursors")
(description
"This package provides additional functions for
@code{multiple-cursors}, including functions for marking s-expressions,
comparing characters, removing cursors, and more.")
(license license:bsd-2))))
(define-public emacs-typo (define-public emacs-typo
(package (package
(name "emacs-typo") (name "emacs-typo")
@ -4011,6 +4107,38 @@ minutes is started automatically. Every 4 breaks a long break is
started with 20 minutes. All values are customizable.") started with 20 minutes. All values are customizable.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-org-sidebar
(let ((commit "74ca98b9920f3de3f13d49866581435e1ec63ec5")
(revision "1"))
(package
(name "emacs-org-sidebar")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alphapapa/org-sidebar.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "03p1ndyw2qp2skib5hszc4xyh84w7p2mhkd4a9dy6qv8q47xpsqn"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-org-super-agenda" ,emacs-org-super-agenda)
("emacs-org" ,emacs-org)
("emacs-org-ql" ,emacs-org-ql)
("emacs-s" ,emacs-s)))
(home-page "https://github.com/alphapapa/org-sidebar")
(synopsis "Helpful sidebar for Org buffers")
(description "This package provides a sidebar for Org buffers. At the
top is a chronological list of scheduled and deadlined tasks in the current
buffer (similar to the Org agenda ,but without all its features), and below
that is a list of all other non-done to-do items. If the buffer is narrowed,
the sidebar only shows items in the narrowed portion; this allows seeing an
overview of tasks in a subtree.")
(license license:gpl3+))))
(define-public emacs-org-trello (define-public emacs-org-trello
(package (package
(name "emacs-org-trello") (name "emacs-org-trello")
@ -4604,45 +4732,50 @@ automatically.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-ivy (define-public emacs-ivy
(package ;; The latest release version introduced a new feature, swiper-isearch, that
(name "emacs-ivy") ;; generally works well but had some noticeable bugs; this later commit
(version "0.12.0") ;; includes fixes for several of them.
(source (let ((commit "d3e4514fd72f217c704ae18afdf711bb9036a04d")
(origin (revision "1"))
(method git-fetch) (package
(uri (git-reference (name "emacs-ivy")
(url "https://github.com/abo-abo/swiper.git") (version (git-version "0.12.0" revision commit))
(commit version))) (source
(file-name (git-file-name name version)) (origin
(sha256 (method git-fetch)
(base32 (uri (git-reference
"0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w")))) (url "https://github.com/abo-abo/swiper.git")
(build-system emacs-build-system) (commit commit)))
(arguments (file-name (git-file-name name version))
`(#:phases (sha256
(modify-phases %standard-phases (base32
(add-after 'install 'install-doc "142axxc6vsl14cfyvzj9csiykxdn7vhw88fy955hzx7av4qfqg4x"))))
(lambda* (#:key outputs #:allow-other-keys) (build-system emacs-build-system)
(let* ((out (assoc-ref outputs "out")) (arguments
(info (string-append out "/share/info"))) `(#:phases
(with-directory-excursion "doc" (modify-phases %standard-phases
(invoke "makeinfo" "ivy.texi") (add-after 'install 'install-doc
(install-file "ivy.info" info) (lambda* (#:key outputs #:allow-other-keys)
#t))))))) (let* ((out (assoc-ref outputs "out"))
(propagated-inputs (info (string-append out "/share/info")))
`(("emacs-hydra" ,emacs-hydra))) (with-directory-excursion "doc"
(native-inputs (invoke "makeinfo" "ivy.texi")
`(("texinfo" ,texinfo))) (install-file "ivy.info" info)
(home-page "http://oremacs.com/swiper/") #t)))))))
(synopsis "Incremental vertical completion for Emacs") (propagated-inputs
(description `(("emacs-hydra" ,emacs-hydra)))
"This package provides @code{ivy-read} as an alternative to (native-inputs
`(("texinfo" ,texinfo)))
(home-page "http://oremacs.com/swiper/")
(synopsis "Incremental vertical completion for Emacs")
(description
"This package provides @code{ivy-read} as an alternative to
@code{completing-read} and similar functions. No attempt is made to determine @code{completing-read} and similar functions. No attempt is made to determine
the best candidate. Instead, the user can navigate candidates with the best candidate. Instead, the user can navigate candidates with
@code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
splitting the input text by spaces and re-building it into a regular splitting the input text by spaces and re-building it into a regular
expression.") expression.")
(license license:gpl3+))) (license license:gpl3+))))
(define-public emacs-ivy-pass (define-public emacs-ivy-pass
(let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5") (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
@ -5228,7 +5361,7 @@ strings, and code folding.")
(define-public emacs-nodejs-repl (define-public emacs-nodejs-repl
(package (package
(name "emacs-nodejs-repl") (name "emacs-nodejs-repl")
(version "0.2.1") (version "0.2.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -5237,7 +5370,7 @@ strings, and code folding.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z")))) "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/abicky/nodejs-repl.el") (home-page "https://github.com/abicky/nodejs-repl.el")
(synopsis "Node.js REPL inside Emacs") (synopsis "Node.js REPL inside Emacs")
@ -5580,28 +5713,35 @@ environments (virtualenv) inside Emacs.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-highlight-indentation (define-public emacs-highlight-indentation
(package ;; Last release version is from 2015.
(name "emacs-highlight-indentation") (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
(version "0.7.0") (revision "1"))
(source (origin (package
(method git-fetch) (name "emacs-highlight-indentation")
(uri (git-reference (version (git-version "0.7.0" revision commit))
(url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git") (source
(commit (string-append "v" version)))) (origin
(file-name (git-file-name name version)) (method git-fetch)
(sha256 (uri (git-reference
(base32 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
"00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k")))) (commit commit)))
(build-system emacs-build-system) (file-name (git-file-name name version))
(home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/") (sha256
(synopsis "Highlighting indentation for Emacs") (base32
(description "Provides two minor modes to highlight indentation guides in Emacs: "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
(build-system emacs-build-system)
(home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
(synopsis "Highlighting indentation for Emacs")
(description "This package provides two minor modes to highlight
indentation guides in Emacs:
@enumerate @enumerate
@item @code{highlight-indentation-mode}, which displays guidelines @item @code{highlight-indentation-mode}, which displays guidelines
indentation (space indentation only). indentation (space indentation only).
@item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only). @item @code{highlight-indentation-current-column-mode}, which displays
guidelines for the current-point indentation (space indentation only).
@end enumerate") @end enumerate")
(license license:gpl2+))) (license license:gpl2+))))
(define-public emacs-elpy (define-public emacs-elpy
(package (package
@ -5931,7 +6071,7 @@ ack, ag, helm and pt.")
(define-public emacs-helm (define-public emacs-helm
(package (package
(name "emacs-helm") (name "emacs-helm")
(version "3.2") (version "3.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -5940,7 +6080,7 @@ ack, ag, helm and pt.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "12yyprpgh2by2pd41i4z9gz55fxg0f90x03bfrsf791xwbhf6931")))) (base32 "0fqhw7r9fcsja5d3pgbipw7pkw9nj534faav6hi45413hc3gyv92"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-async" ,emacs-async) `(("emacs-async" ,emacs-async)
@ -6119,21 +6259,21 @@ xref, etc...) are still available, but with better integration.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-lua-mode (define-public emacs-lua-mode
(let ((commit "652e299cb967fccca827dda381d61a9c144d97de") (let ((commit "95c64bb5634035630e8c59d10d4a1d1003265743")
(revision "1")) (revision "2"))
(package (package
(name "emacs-lua-mode") (name "emacs-lua-mode")
(version (string-append "20151025." revision "-" (string-take commit 9))) (version (git-version "20151025" revision commit))
(home-page "https://github.com/immerrr/lua-mode/") (home-page "https://github.com/immerrr/lua-mode/")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url home-page) (url home-page)
(commit commit))) (commit commit)))
(file-name (string-append name "-" version ".checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9")))) "1mra4db25ds64526dsj8m5yv0kfq3lgggjh1x6xmqypdaryddbcp"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(synopsis "Major mode for lua") (synopsis "Major mode for lua")
(description (description
@ -6399,12 +6539,11 @@ aligning text objects based on separators.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-evil-expat (define-public emacs-evil-expat
(let ((commit "4c344ea19b789002d759a202ffbf594730d2c59a") (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
(version "0.0.1")
(revision "1")) (revision "1"))
(package (package
(name "emacs-evil-expat") (name "emacs-evil-expat")
(version (git-version version revision commit)) (version (git-version "0.0.1" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -6414,7 +6553,7 @@ aligning text objects based on separators.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"16v7fnldxag6l1lsnrnhdjkga9qi78lbdfbb82k6pmv04991mbkr")))) "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs `(("emacs-evil" ,emacs-evil))) (propagated-inputs `(("emacs-evil" ,emacs-evil)))
(home-page "https://github.com/edkolev/evil-expat") (home-page "https://github.com/edkolev/evil-expat")
@ -6587,14 +6726,14 @@ passive voice.")
(name "emacs-org") (name "emacs-org")
;; emacs-org-contrib inherits from this package. Please update its sha256 ;; emacs-org-contrib inherits from this package. Please update its sha256
;; checksum as well. ;; checksum as well.
(version "9.2.3") (version "9.2.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://elpa.gnu.org/packages/org-" (uri (string-append "https://elpa.gnu.org/packages/org-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"0hqy4lns9q5p0l1ylgmlckqprn9sbasszhznanmv0rsh0gzhsbyw")))) "1pid1sykgz83i4ry5n8f270finag6sm7ckqxn5lkikyya43wlzx1"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://orgmode.org/") (home-page "https://orgmode.org/")
(synopsis "Outline-based notes management and organizer") (synopsis "Outline-based notes management and organizer")
@ -6608,14 +6747,14 @@ programming and reproducible research.")
(package (package
(inherit emacs-org) (inherit emacs-org)
(name "emacs-org-contrib") (name "emacs-org-contrib")
(version "20190715") (version "20190805")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://orgmode.org/elpa/org-plus-contrib-" (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"0yxxkcaxhp5bmjsfdd9pz79rj9s7nb4gj5ci51sh4pf8mimk9542")))) "1mw91hwbqyjq5pyz9hzdhvjlc2bphqpi23yqd3sdk1crpc87s40c"))))
(arguments (arguments
`(#:modules ((guix build emacs-build-system) `(#:modules ((guix build emacs-build-system)
(guix build utils) (guix build utils)
@ -7159,6 +7298,56 @@ find files owned by packages... And much more, including performing all the
above over the network.") above over the network.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-helm-org-rifle
(package
(name "emacs-helm-org-rifle")
(version "1.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alphapapa/helm-org-rifle")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1r38xhwvgbv6kn5x159phz3xgss7f1rc7icq27rnr4d8aj91wm6k"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-f" ,emacs-f)
("emacs-helm" ,emacs-helm)
("emacs-s" ,emacs-s)))
(home-page "https://github.com/alphapapa/helm-org-rifle")
(synopsis "Rifle through Org files")
(description "This package searches both headings and contents of entries
in Org buffers and displays matching entries.")
(license license:gpl3+)))
(define-public emacs-dired-toggle-sudo
(package
(name "emacs-dired-toggle-sudo")
(version "1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/renard/dired-toggle-sudo")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ajj8d6k5in2hclcrqckinfh80ylddplva0ryfbkzsjkfq167cv2"))
(patches
(search-patches
"emacs-dired-toggle-sudo-emacs-26.patch"))))
(build-system emacs-build-system)
(home-page "https://github.com/renard/dired-toggle-sudo")
(synopsis "Browse directory with @code{sudo} privileges")
(description "This package allows for the use of @code{dired} with
@code{sudo} privileges.")
(license license:wtfpl2)))
(define-public emacs-memoize (define-public emacs-memoize
(package (package
(name "emacs-memoize") (name "emacs-memoize")
@ -8528,12 +8717,11 @@ the actual transformations.")
(license license:gpl2+)))) (license license:gpl2+))))
(define-public emacs-dired-hacks (define-public emacs-dired-hacks
(let ((commit "2c1234592aee91dcd9401bcd67213e6a4a464fd9") (let ((commit "886befe113fae397407c804f72c45613d1d43535")
(revision "1")) (revision "2"))
(package (package
(name "emacs-dired-hacks") (name "emacs-dired-hacks")
(version (string-append "0.0.1-" revision "." (version (git-version "0.0.1" revision commit))
(string-take commit 7)))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -8542,7 +8730,7 @@ the actual transformations.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1g7mky41cahpryzj6frdgzdymknpqq7pidzfjj9304887kijmhj3")))) "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-dash" ,emacs-dash) `(("emacs-dash" ,emacs-dash)
@ -8553,7 +8741,9 @@ the actual transformations.")
(synopsis (synopsis
"Collection of useful dired additions") "Collection of useful dired additions")
(description (description
"Collection of Emacs dired mode additions: "This package provides the following collection of Emacs dired mode
additions:
@itemize @itemize
@item dired-avfs @item dired-avfs
@item dired-columns @item dired-columns
@ -8623,6 +8813,32 @@ available key bindings that follow C-x (or as many as space allows given your
settings).") settings).")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-hercules
(let ((commit "3345904a0dab4c7a4d4478f0766f1d9f5d1bb501")
(revision "1"))
(package
(name "emacs-hercules")
(version (git-version "0.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/jjzmajic/hercules.el.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0cpq8h6l47nqhzch6snax5yrhxl8p4wn35q13ci35lj3iq8kmlk8"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-which-key" ,emacs-which-key)))
(home-page "https://gitlab.com/jjzmajic/hercules.el")
(synopsis "Call a chain of related commands without repeated prefix keys")
(description
"This package provides sticky-key-like functionality to obviate the
need for repeated prefix-key sequences, and can reuse existing keymaps. The
list of commands is displayed in a handy popup.")
(license license:gpl3+))))
(define-public emacs-ws-butler (define-public emacs-ws-butler
(package (package
(name "emacs-ws-butler") (name "emacs-ws-butler")
@ -10433,29 +10649,32 @@ as well as functions for navigating between these headings.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-org-super-agenda (define-public emacs-org-super-agenda
(package ;; emacs-org-sidebar depends on a newer commit than the latest release version.
(name "emacs-org-super-agenda") (let ((commit "375bde4ca72494ac88a2a9738754f047fe45cc4e")
(version "1.1") (revision "1"))
(source (origin (package
(method git-fetch) (name "emacs-org-super-agenda")
(uri (git-reference (version (git-version "1.1.1" revision commit))
(url "https://github.com/alphapapa/org-super-agenda") (source (origin
(commit version))) (method git-fetch)
(file-name (git-file-name name version)) (uri (git-reference
(sha256 (url "https://github.com/alphapapa/org-super-agenda")
(base32 (commit commit)))
"0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp")))) (file-name (git-file-name name version))
(build-system emacs-build-system) (sha256
(propagated-inputs (base32
`(("emacs-org" ,emacs-org) "0hrwf02fqjm0d9gj146ax67ib76093qpqh7066dcxj2gy20625yj"))))
("emacs-dash" ,emacs-dash) (build-system emacs-build-system)
("emacs-ht" ,emacs-ht) (propagated-inputs
("emacs-s" ,emacs-s))) `(("emacs-org" ,emacs-org)
(home-page "https://github.com/alphapapa/org-super-agenda") ("emacs-dash" ,emacs-dash)
(synopsis "Supercharged Org agenda") ("emacs-ht" ,emacs-ht)
(description "This package allows items in the Org agenda to be grouped ("emacs-s" ,emacs-s)))
(home-page "https://github.com/alphapapa/org-super-agenda")
(synopsis "Supercharged Org agenda")
(description "This package allows items in the Org agenda to be grouped
into sections while preserving the structure imposed by any timestamps.") into sections while preserving the structure imposed by any timestamps.")
(license license:gpl3+))) (license license:gpl3+))))
(define-public emacs-org-make-toc (define-public emacs-org-make-toc
(package (package
@ -12676,6 +12895,29 @@ When @code{gac-automatically-push-p} is non-nil, it also tries to push to
the current upstream.") the current upstream.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-scroll-on-drag
(let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
(revision "1"))
(package
(name "emacs-scroll-on-drag")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
(synopsis "Interactive scrolling")
(description "This package permits scrolling at increasing speeds based
on drag distance.")
(license license:gpl3+))))
(define-public emacs-company-restclient (define-public emacs-company-restclient
(package (package
(name "emacs-company-restclient") (name "emacs-company-restclient")
@ -13692,12 +13934,11 @@ server with @code{M-x pinentry-start}.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-so-long (define-public emacs-so-long
(let ((commit "3ebe97decdb5cbbfba82ca686e0ad2c7d2722b4a") (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
(version "1.0") (revision "2"))
(revision "1"))
(package (package
(name "emacs-so-long") (name "emacs-so-long")
(version (git-version version revision commit)) (version (git-version "1.0" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -13707,7 +13948,7 @@ server with @code{M-x pinentry-start}.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0fi71g5rsdsi978jz8406k8hvzgnssm9wxar8yqfhs97178r9s5m")))) "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://www.emacswiki.org/emacs/SoLong") (home-page "https://www.emacswiki.org/emacs/SoLong")
(synopsis "Improve performance in files with long lines") (synopsis "Improve performance in files with long lines")
@ -14142,7 +14383,7 @@ buffers other modes on the TODO list).
(define-public emacs-magit-todos (define-public emacs-magit-todos
(package (package
(name "emacs-magit-todos") (name "emacs-magit-todos")
(version "1.2") (version "1.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -14152,7 +14393,7 @@ buffers other modes on the TODO list).
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"17a18gszbypz82bj36xbfyykc4s9rz83vwmpxvlf65svhd51c0nh")))) "0gfm6wn2a4v5i9lfsvvin0kwpr9n96ddm3z4yf50jd3kg2igzry1"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-async" ,emacs-async) `(("emacs-async" ,emacs-async)
@ -16189,7 +16430,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
(define-public emacs-counsel-etags (define-public emacs-counsel-etags
(package (package
(name "emacs-counsel-etags") (name "emacs-counsel-etags")
(version "1.8.4") (version "1.8.7")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -16199,7 +16440,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"14my9jvxl26a5yn381h5pi5481y9d9gyk7wnxxd0s4sjc964c5h5")))) "0vjcjspfrz1csnmfi6r7p7f070a496adxkqnsxwx1gx8cpylwp1g"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-ivy" ,emacs-ivy))) `(("emacs-ivy" ,emacs-ivy)))
@ -16632,6 +16873,30 @@ provided. Those alternative commands are and bound by default to their
corresponding Evil keys.") corresponding Evil keys.")
(license license:expat)))) (license license:expat))))
(define-public emacs-evil-traces
(let ((commit "b41b7432b8110378c199a3d25af464083777f453")
(revision "1"))
(package
(name "emacs-evil-traces")
(version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mamapanda/evil-traces.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0a15f2saynz9fws1h5s7py3cshsk4xs1kwgwj1m5rsin36g0j6hc"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)))
(home-page "https://github.com/mamapanda/evil-traces")
(synopsis "Visual hints for @code{evil-ex}")
(description "This package adds visual hints to certain @code{ex}
commands in @code{evil-mode}.")
(license license:gpl3+))))
(define-public emacs-xterm-color (define-public emacs-xterm-color
(let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6") (let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6")
(version "1.8") (version "1.8")

View File

@ -119,8 +119,8 @@
;; Building from recent Git because the official 5.0 release no longer builds. ;; Building from recent Git because the official 5.0 release no longer builds.
(define-public dolphin-emu (define-public dolphin-emu
(let ((commit "2c57e709d0f9e4010a4415de4192de887e37f187") (let ((commit "24718c1a389e4f51db974575cd15c372485b92e2")
(revision "5")) (revision "6"))
(package (package
(name "dolphin-emu") (name "dolphin-emu")
(version (git-version "5.0" revision commit)) (version (git-version "5.0" revision commit))
@ -146,7 +146,7 @@
#t)) #t))
(sha256 (sha256
(base32 (base32
"0aszfdfvs7yg4bmrd3qxwsiz7hx3mrj29f4aw86bz7h9j7hkh57f")))) "1d92rhnw307j3m6swk6bycb8fyc7vw2hfgakd5hpsc4qw65vxfq8"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -250,12 +250,6 @@ turbo speed, networked multiplayer, and graphical enhancements.")
(base32 (base32
"02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0")))) "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after
'unpack 'autogen.sh
(lambda _
(invoke "sh" "autogen.sh"))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake))) ("automake" ,automake)))

View File

@ -33,7 +33,7 @@
(define-public enchant (define-public enchant
(package (package
(name "enchant") (name "enchant")
(version "2.2.4") (version "2.2.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/AbiWord/enchant/releases" (uri (string-append "https://github.com/AbiWord/enchant/releases"
@ -41,7 +41,7 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1p6a3qmrh8bjzds6x7rg9da0ir44gg804jzkf634h39wsa4vdmpm")))) "0iqwzs11i9fvqdxv5kn0svcn2mzymn657qf3j66lg8dx1nh4xkpz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--disable-static" '(#:configure-flags '("--disable-static"

View File

@ -131,7 +131,12 @@ topology functions.")
(gi-typelib-path (getenv "GI_TYPELIB_PATH")) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
(goa-path (string-append (goa-path (string-append
(assoc-ref inputs "gnome-online-accounts") (assoc-ref inputs "gnome-online-accounts")
"/lib:"
(assoc-ref inputs "gnome-online-accounts:lib")
"/lib")) "/lib"))
(geocode-glib-path (string-append
(assoc-ref inputs "geocode-glib")
"/lib"))
(webkitgtk-path (string-append (webkitgtk-path (string-append
(assoc-ref inputs "webkitgtk") (assoc-ref inputs "webkitgtk")
"/lib"))) "/lib")))
@ -141,7 +146,8 @@ topology functions.")
;; There seems to be no way to embed the path of ;; There seems to be no way to embed the path of
;; libgoa-1.0.so.0, libwebkit2gtk-4.0.so.37 and ;; libgoa-1.0.so.0, libwebkit2gtk-4.0.so.37 and
;; libjavascriptcoregtk-4.0.so.18. ;; libjavascriptcoregtk-4.0.so.18.
`("LD_LIBRARY_PATH" ":" prefix (,goa-path ,webkitgtk-path))) `("LD_LIBRARY_PATH" ":" prefix
(,goa-path ,webkitgtk-path ,geocode-glib-path)))
#t)))))) #t))))))
(native-inputs (native-inputs
`(("gobject-introspection" ,gobject-introspection) `(("gobject-introspection" ,gobject-introspection)
@ -163,6 +169,7 @@ topology functions.")
("gjs" ,gjs) ("gjs" ,gjs)
("glib" ,glib) ("glib" ,glib)
("gnome-online-accounts" ,gnome-online-accounts) ("gnome-online-accounts" ,gnome-online-accounts)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("rest" ,rest) ("rest" ,rest)
("webkitgtk" ,webkitgtk))) ("webkitgtk" ,webkitgtk)))

View File

@ -38,6 +38,7 @@
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de> ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -8152,15 +8153,18 @@ advanced image management tool")
(inputs (inputs
`(("cairo" ,cairo) `(("cairo" ,cairo)
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("python2-pycairo" ,python2-pycairo) ("python2-pycairo" ,python2-pycairo)
("python2-pygobject" ,python2-pygobject) ("python2-pygobject" ,python2-pygobject)
("python2-psutil" ,python2-psutil) ("python2-psutil" ,python2-psutil)
("vte" ,vte))) ("vte" ,vte)))
(propagated-inputs
;; Terminator refuses to start when these are not present.
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
(arguments (arguments
`(#:python ,python-2 ;Python 3 not supported `(#:python ,python-2 ; Python 3 isn't supported
#:imported-modules ((guix build glib-or-gtk-build-system)
,@%python-build-system-modules)
#:modules ((guix build python-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after (add-after
@ -8171,10 +8175,60 @@ advanced image management tool")
(wrap-program prog (wrap-program prog
`("PYTHONPATH" = (,(getenv "PYTHONPATH"))) `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
#t)))))) #t)))
(add-after 'wrap-program 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(home-page "https://gnometerminator.blogspot.com/") (home-page "https://gnometerminator.blogspot.com/")
(synopsis "Store and run multiple GNOME terminals in one window") (synopsis "Store and run multiple GNOME terminals in one window")
(description (description
"Terminator allows you to run multiple GNOME terminals in a grid and "Terminator allows you to run multiple GNOME terminals in a grid and
+tabs, and it supports drag and drop re-ordering of terminals.") +tabs, and it supports drag and drop re-ordering of terminals.")
(license license:gpl2))) (license license:gpl2)))
(define-public libhandy
(package
(name "libhandy")
(version "0.0.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://source.puri.sm/Librem5/libhandy")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1702hbdqhfpgw0c4vj2ag08vgl83byiryrbngbq11b9azmj3jhzs"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
'("-Dglade_catalog=disabled"
"-Dgtk_doc=true")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-broken-test
(lambda _
;; This test fails for unknown reasons
(substitute* "tests/meson.build"
(("'test-dialog',") ""))
#t))
(add-before 'check 'pre-check
(lambda _
;; Tests require a running X server.
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
#t)))))
(inputs
`(("gtk+" ,gtk+)))
(native-inputs
`(("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
("vala" ,vala)
("gtk-doc" ,gtk-doc)
("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("xorg-server" ,xorg-server)))
(home-page "https://source.puri.sm/Librem5/libhandy")
(synopsis "Library full of GTK+ widgets for mobile phones")
(description "The aim of the handy library is to help with developing user
intefaces for mobile devices using GTK+.")
(license license:lgpl2.1+)))

View File

@ -595,9 +595,6 @@ collection of tools for doing simple manipulations of TIFF images.")
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(invoke "sh" "autobuild")))
(add-after 'unpack 'patch-reg-wrapper (add-after 'unpack 'patch-reg-wrapper
(lambda _ (lambda _
(substitute* "prog/reg_wrapper.sh" (substitute* "prog/reg_wrapper.sh"
@ -1108,14 +1105,14 @@ channels.")
(define-public exiv2 (define-public exiv2
(package (package
(name "exiv2") (name "exiv2")
(version "0.27.1") (version "0.27.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.exiv2.org/builds/exiv2-" version (uri (string-append "https://www.exiv2.org/builds/exiv2-" version
"-Source.tar.gz")) "-Source.tar.gz"))
(sha256 (sha256
(base32 "109hbfk63dh14fz20ivq20gcclb9jj9jmh48w4lcn6zxh1ljh9gi")))) (base32 "0gqminvj14xm3rgbnydbywf22608js80rp7nmxxk4497j5mzali6"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments '(#:tests? #f)) ; no test suite (arguments '(#:tests? #f)) ; no test suite
(propagated-inputs (propagated-inputs
@ -1240,12 +1237,6 @@ ISO/IEC 15444-1).")
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
("libtool" ,libtool))) ("libtool" ,libtool)))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(invoke "sh" "autogen.sh"))))))
(synopsis "Scaling, colorspace conversion, and dithering library") (synopsis "Scaling, colorspace conversion, and dithering library")
(description "Zimg implements the commonly required image processing basics (description "Zimg implements the commonly required image processing basics
of scaling, colorspace conversion, and depth conversion. A simple API enables of scaling, colorspace conversion, and depth conversion. A simple API enables

View File

@ -41,7 +41,7 @@
(define-public libevent (define-public libevent
(package (package
(name "libevent") (name "libevent")
(version "2.1.10") (version "2.1.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -49,7 +49,7 @@
version "-stable/libevent-" version "-stable.tar.gz")) version "-stable/libevent-" version "-stable.tar.gz"))
(sha256 (sha256
(base32 (base32
"1c25928gdv495clxk2v1d4gkr5py7ack4gx2n7d13frnld0syr78")))) "0g988zqm45sj1hlhhz4il5z4dpi5dl74hzjwzl4md37a09iaqnx6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; This skips some of the tests which fail on armhf and aarch64. ;; This skips some of the tests which fail on armhf and aarch64.

View File

@ -350,42 +350,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
"linux-" version ".tar.xz")) "linux-" version ".tar.xz"))
(sha256 hash))) (sha256 hash)))
(define-public linux-libre-5.2-version "5.2.5") (define-public linux-libre-5.2-version "5.2.7")
(define-public linux-libre-5.2-pristine-source (define-public linux-libre-5.2-pristine-source
(let ((version linux-libre-5.2-version) (let ((version linux-libre-5.2-version)
(hash (base32 "15ndscsp3yqgas901g6inpmyvinz4cwr5y3md516j2pr8cl40if6"))) (hash (base32 "1aazhf0v8bv4py0wnqkdmiy80fchnix431l0hda2fkwsdf9njgnv")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.2))) deblob-scripts-5.2)))
(define-public linux-libre-4.19-version "4.19.63") (define-public linux-libre-4.19-version "4.19.65")
(define-public linux-libre-4.19-pristine-source (define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version) (let ((version linux-libre-4.19-version)
(hash (base32 "0pfjwpa6szvdr941y13806hlsgsbslfsvkrd5534p1iip5h8g63m"))) (hash (base32 "1pyyhr2airxzk4c6n7140yl723dc7yw7igy5i5i2ih0nd4c3k6g5")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.19))) deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.135") (define-public linux-libre-4.14-version "4.14.137")
(define-public linux-libre-4.14-pristine-source (define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version) (let ((version linux-libre-4.14-version)
(hash (base32 "0x2v0pj4hjb71qkxbqn4ymg6zmyabp91kylyzd270nbig7i234a2"))) (hash (base32 "0a72pab0zxy28i02glnzj6avzcf0a4gxxnadbdd343rh549yky4k")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.14))) deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.186") (define-public linux-libre-4.9-version "4.9.188")
(define-public linux-libre-4.9-pristine-source (define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version) (let ((version linux-libre-4.9-version)
(hash (base32 "0sjbp7m6d625rw06wv34a0805d1lgldii4pxiqfpja871m1q8914"))) (hash (base32 "08p2cfc9982b804vmkapfasgipf6969g625ih7z3062xn99rhlr7")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.9))) deblob-scripts-4.9)))
(define-public linux-libre-4.4-version "4.4.186") (define-public linux-libre-4.4-version "4.4.188")
(define-public linux-libre-4.4-pristine-source (define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version) (let ((version linux-libre-4.4-version)
(hash (base32 "113rjf8842glzi23y1g1yrwncihv2saah6wz0r726r06bk9p64hb"))) (hash (base32 "1llxamm62kgqd7dig98n8m16qas8dd8rrkmwpfcdgyf8rag216ff")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.4))) deblob-scripts-4.4)))
@ -1402,15 +1402,18 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(define-public strace (define-public strace
(package (package
(name "strace") (name "strace")
(version "5.1") (version "5.2")
(home-page "https://strace.io") (home-page "https://strace.io")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append home-page "/files/" version (uri (string-append home-page "/files/" version
"/strace-" version ".tar.xz")) "/strace-" version ".tar.xz"))
;; XXX Remove the 'regenerate-tests' phase below when
;; "strace-ipc-tests.patch" is no longer applied.
(patches (search-patches "strace-ipc-tests.patch"))
(sha256 (sha256
(base32 (base32
"12wsga1v3rab24gr0mpfip7j7gwr90m8f9h6fviqxa3xgnwl38zm")))) "1li49i75wrdw91hchyyd8spnzfcmxcfyfb5g9zbaza89aq4bq4ym"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -1419,7 +1422,14 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(lambda _ (lambda _
(substitute* "strace.c" (substitute* "strace.c"
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))
#t))) #t))
(add-before 'configure 'regenerate-tests
;; XXX Remove this phase when "strace-ipc-tests.patch" is no longer
;; applied in the 'source' field above. This phase is needed to
;; regenerate many other files from tests/gen_tests.in, which is
;; modified by the aforementioned patch.
(lambda _
(invoke "tests/gen_tests.sh"))))
;; Don't fail if the architecture doesn't support different personalities. ;; Don't fail if the architecture doesn't support different personalities.
#:configure-flags '("--enable-mpers=check") #:configure-flags '("--enable-mpers=check")
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>. ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>.

View File

@ -193,7 +193,7 @@ classification.")
(uri (svn-reference (uri (svn-reference
(url "http://svn.code.sf.net/p/ghmm/code/trunk") (url "http://svn.code.sf.net/p/ghmm/code/trunk")
(revision svn-revision))) (revision svn-revision)))
(file-name (string-append name "-" version)) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"0qbq1rqp94l530f043qzp8aw5lj7dng9wq0miffd7spd1ff638wq")))) "0qbq1rqp94l530f043qzp8aw5lj7dng9wq0miffd7spd1ff638wq"))))
@ -251,10 +251,7 @@ classification.")
(string-append indent (string-append indent
"@unittest.skip(\"Disabled by Guix\")\n" "@unittest.skip(\"Disabled by Guix\")\n"
line))) line)))
#t)) #t)))))
(add-after 'disable-broken-tests 'autogen
(lambda _
(invoke "bash" "autogen.sh"))))))
(inputs (inputs
`(("python" ,python-2) ; only Python 2 is supported `(("python" ,python-2) ; only Python 2 is supported
("libxml2" ,libxml2))) ("libxml2" ,libxml2)))
@ -821,8 +818,14 @@ computing environments.")
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(invoke "pytest" "sklearn" "-m" "not network"))) (invoke "pytest" "sklearn" "-m" "not network")))
;; FIXME: This fails with permission denied (add-before 'reset-gzip-timestamps 'make-files-writable
(delete 'reset-gzip-timestamps)))) (lambda* (#:key outputs #:allow-other-keys)
;; Make sure .gz files are writable so that the
;; 'reset-gzip-timestamps' phase can do its work.
(let ((out (assoc-ref outputs "out")))
(for-each make-file-writable
(find-files out "\\.gz$"))
#t))))))
(inputs (inputs
`(("openblas" ,openblas))) `(("openblas" ,openblas)))
(native-inputs (native-inputs

View File

@ -1051,7 +1051,7 @@ useful features.")
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen (replace 'bootstrap
(lambda _ (lambda _
(setenv "NOCONFIGURE" "true") (setenv "NOCONFIGURE" "true")
(invoke "sh" "autogen.sh")))) (invoke "sh" "autogen.sh"))))
@ -1365,12 +1365,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
`(#:tests? #f ;No tests exist. `(#:tests? #f ;No tests exist.
#:configure-flags (list (string-append "--with-dovecot=" #:configure-flags (list (string-append "--with-dovecot="
(assoc-ref %build-inputs "dovecot") (assoc-ref %build-inputs "dovecot")
"/lib/dovecot")) "/lib/dovecot"))))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(invoke "sh" "autogen.sh"))))))
(home-page "https://0xacab.org/riseuplabs/trees") (home-page "https://0xacab.org/riseuplabs/trees")
(synopsis "NaCL-based Dovecot email storage encryption plugin") (synopsis "NaCL-based Dovecot email storage encryption plugin")
(description (description
@ -1421,12 +1416,7 @@ using libsodium sealed boxes.
`(#:tests? #f ;No tests exist. `(#:tests? #f ;No tests exist.
#:configure-flags (list (string-append "--with-dovecot=" #:configure-flags (list (string-append "--with-dovecot="
(assoc-ref %build-inputs "dovecot") (assoc-ref %build-inputs "dovecot")
"/lib/dovecot")) "/lib/dovecot"))))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(invoke "sh" "autogen.sh"))))))
(home-page "https://github.com/LuckyFellow/dovecot-libsodium-plugin") (home-page "https://github.com/LuckyFellow/dovecot-libsodium-plugin")
(synopsis "Libsodium password hashing schemes plugin for Dovecot") (synopsis "Libsodium password hashing schemes plugin for Dovecot")
(description (description

View File

@ -4333,14 +4333,14 @@ are noisy or are discontinuous at the solution.")
(define-public r-desolve (define-public r-desolve
(package (package
(name "r-desolve") (name "r-desolve")
(version "1.21") (version "1.24")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "deSolve" version)) (uri (cran-uri "deSolve" version))
(sha256 (sha256
(base32 (base32
"0qqc4mknw1jblzcmph1dg3k1p6w42yal0k1xjh8pqk7yb3a75hs5")))) "0hkvspq0fp8j64l9zayab2l2nazazhwfgfym0jllh0xv5a12r99s"))))
(properties `((upstream-name . "deSolve"))) (properties `((upstream-name . "deSolve")))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs

View File

@ -65,7 +65,8 @@
"14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv")) "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
(patches (search-patches "libmad-armv7-thumb-pt1.patch" (patches (search-patches "libmad-armv7-thumb-pt1.patch"
"libmad-armv7-thumb-pt2.patch" "libmad-armv7-thumb-pt2.patch"
"libmad-frame-length.patch" "libmad-md_size.patch"
"libmad-length-check.patch"
"libmad-mips-newgcc.patch")))) "libmad-mips-newgcc.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View File

@ -1027,7 +1027,7 @@ the boot loader configuration.")
(define-public flatpak (define-public flatpak
(package (package
(name "flatpak") (name "flatpak")
(version "1.2.4") (version "1.4.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1035,7 +1035,7 @@ the boot loader configuration.")
version "/flatpak-" version ".tar.xz")) version "/flatpak-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1qf3ys84fzv11z6f6li59rxjdjbyrv7cyi9539k73r9i9pckjr8v")))) "08nmpp26mgv0vp3mlwk97rnp0j7i108h4hr9nllja19sjxnrlygj"))))
;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
;; find the TLS backend in glib-networking. ;; find the TLS backend in glib-networking.
@ -1063,6 +1063,7 @@ the boot loader configuration.")
(inputs `(("appstream-glib" ,appstream-glib) (inputs `(("appstream-glib" ,appstream-glib)
("bubblewrap" ,bubblewrap) ("bubblewrap" ,bubblewrap)
("dconf" ,dconf) ("dconf" ,dconf)
("fuse" ,fuse)
("gdk-pixbuf" ,gdk-pixbuf) ("gdk-pixbuf" ,gdk-pixbuf)
("gpgme" ,gpgme) ("gpgme" ,gpgme)
("json-glib" ,json-glib) ("json-glib" ,json-glib)

View File

@ -0,0 +1,49 @@
From 3c0f4b27a079b90dc632f5061a81ce28cef24801 Mon Sep 17 00:00:00 2001
From: eryx67 <eryx67@gmail.com>
Date: Thu, 29 Nov 2018 10:30:20 +0500
Subject: [PATCH] fix for latest emacs
---
dired-toggle-sudo.el | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/dired-toggle-sudo.el b/dired-toggle-sudo.el
index 386921b..fe5898e 100644
--- a/dired-toggle-sudo.el
+++ b/dired-toggle-sudo.el
@@ -37,17 +37,20 @@
unless SUDO-USER is provided."
(let* (;; Handle the case of local files. `tramp-dissect-file-name' does
;; not raise an error anymore.
- (path (if (tramp-tramp-file-p path) path (concat "/:" path)))
+ ;;(path (if (tramp-tramp-file-p path) path (concat "/-::" path)))
(file-vec (or (ignore-errors (tramp-dissect-file-name
path))
(tramp-dissect-file-name
- (concat "/:" path) 1)))
+ (concat "/-::" path) 1)))
(method (tramp-file-name-method file-vec))
(user (tramp-file-name-user file-vec))
(host (tramp-file-name-host file-vec))
+ (domain (tramp-file-name-domain file-vec))
+ (port (tramp-file-name-port file-vec))
(localname (expand-file-name
(tramp-file-name-localname file-vec))))
- (when (string= system-name host)
+ (when (or (string= (system-name) host)
+ (string= "-" host))
(setq host nil))
(cond
;; remote directory -> sudo
@@ -67,7 +70,7 @@ unless SUDO-USER is provided."
(setq method "sudo" user sudo-user)))
(replace-regexp-in-string
"^/:/" "/"
- (tramp-make-tramp-file-name method user host localname))))
+ (tramp-make-tramp-file-name method domain user host port localname))))
(defun dired-toggle-sudo-find (fname)
"Create a new buffer for file name FNAME."
--
2.22.0

View File

@ -1,199 +0,0 @@
Copied from Debian.
; You can calculate where the next frame will start depending on things
; like the bitrate. See mad_header_decode(). It seems that when decoding
; the frame you can go past that boundary. This attempts to catch those cases,
; but might not catch all of them.
; For more info see http://bugs.debian.org/508133
Index: libmad-0.15.1b/layer12.c
===================================================================
--- libmad-0.15.1b.orig/layer12.c 2008-12-23 21:38:07.000000000 +0100
+++ libmad-0.15.1b/layer12.c 2008-12-23 21:38:12.000000000 +0100
@@ -134,6 +134,12 @@
for (sb = 0; sb < bound; ++sb) {
for (ch = 0; ch < nch; ++ch) {
nb = mad_bit_read(&stream->ptr, 4);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
if (nb == 15) {
stream->error = MAD_ERROR_BADBITALLOC;
@@ -146,6 +152,12 @@
for (sb = bound; sb < 32; ++sb) {
nb = mad_bit_read(&stream->ptr, 4);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
if (nb == 15) {
stream->error = MAD_ERROR_BADBITALLOC;
@@ -162,6 +174,12 @@
for (ch = 0; ch < nch; ++ch) {
if (allocation[ch][sb]) {
scalefactor[ch][sb] = mad_bit_read(&stream->ptr, 6);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
# if defined(OPT_STRICT)
/*
@@ -187,6 +205,12 @@
frame->sbsample[ch][s][sb] = nb ?
mad_f_mul(I_sample(&stream->ptr, nb),
sf_table[scalefactor[ch][sb]]) : 0;
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
}
}
@@ -195,6 +219,12 @@
mad_fixed_t sample;
sample = I_sample(&stream->ptr, nb);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
for (ch = 0; ch < nch; ++ch) {
frame->sbsample[ch][s][sb] =
@@ -403,7 +433,15 @@
nbal = bitalloc_table[offsets[sb]].nbal;
for (ch = 0; ch < nch; ++ch)
+ {
allocation[ch][sb] = mad_bit_read(&stream->ptr, nbal);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
+ }
}
for (sb = bound; sb < sblimit; ++sb) {
@@ -411,6 +449,13 @@
allocation[0][sb] =
allocation[1][sb] = mad_bit_read(&stream->ptr, nbal);
+
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
}
/* decode scalefactor selection info */
@@ -419,6 +464,12 @@
for (ch = 0; ch < nch; ++ch) {
if (allocation[ch][sb])
scfsi[ch][sb] = mad_bit_read(&stream->ptr, 2);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
}
}
@@ -442,6 +493,12 @@
for (ch = 0; ch < nch; ++ch) {
if (allocation[ch][sb]) {
scalefactor[ch][sb][0] = mad_bit_read(&stream->ptr, 6);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
switch (scfsi[ch][sb]) {
case 2:
@@ -452,11 +509,23 @@
case 0:
scalefactor[ch][sb][1] = mad_bit_read(&stream->ptr, 6);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
/* fall through */
case 1:
case 3:
scalefactor[ch][sb][2] = mad_bit_read(&stream->ptr, 6);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
}
if (scfsi[ch][sb] & 1)
@@ -488,6 +557,12 @@
index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
II_samples(&stream->ptr, &qc_table[index], samples);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
for (s = 0; s < 3; ++s) {
frame->sbsample[ch][3 * gr + s][sb] =
@@ -506,6 +581,12 @@
index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
II_samples(&stream->ptr, &qc_table[index], samples);
+ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
for (ch = 0; ch < nch; ++ch) {
for (s = 0; s < 3; ++s) {
Index: libmad-0.15.1b/layer3.c
===================================================================
--- libmad-0.15.1b.orig/layer3.c 2008-12-23 21:38:07.000000000 +0100
+++ libmad-0.15.1b/layer3.c 2008-12-23 21:38:12.000000000 +0100
@@ -2608,6 +2608,12 @@
next_md_begin = 0;
md_len = si.main_data_begin + frame_space - next_md_begin;
+ if (md_len + MAD_BUFFER_GUARD > MAD_BUFFER_MDLEN)
+ {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
frame_used = 0;

View File

@ -0,0 +1,819 @@
Copied from Debian.
From: Kurt Roeckx <kurt@roeckx.be>
Date: Sun, 28 Jan 2018 19:26:36 +0100
Subject: Check the size before reading with mad_bit_read
There are various cases where it attemps to read past the end of the buffer
using mad_bit_read(). Most functions didn't even know the size of the buffer
they were reading from.
Index: libmad-0.15.1b/bit.c
===================================================================
--- libmad-0.15.1b.orig/bit.c
+++ libmad-0.15.1b/bit.c
@@ -138,6 +138,9 @@ unsigned long mad_bit_read(struct mad_bi
{
register unsigned long value;
+ if (len == 0)
+ return 0;
+
if (bitptr->left == CHAR_BIT)
bitptr->cache = *bitptr->byte;
Index: libmad-0.15.1b/frame.c
===================================================================
--- libmad-0.15.1b.orig/frame.c
+++ libmad-0.15.1b/frame.c
@@ -120,11 +120,18 @@ static
int decode_header(struct mad_header *header, struct mad_stream *stream)
{
unsigned int index;
+ struct mad_bitptr bufend_ptr;
header->flags = 0;
header->private_bits = 0;
+ mad_bit_init(&bufend_ptr, stream->bufend);
+
/* header() */
+ if (mad_bit_length(&stream->ptr, &bufend_ptr) < 32) {
+ stream->error = MAD_ERROR_BUFLEN;
+ return -1;
+ }
/* syncword */
mad_bit_skip(&stream->ptr, 11);
@@ -225,8 +232,13 @@ int decode_header(struct mad_header *hea
/* error_check() */
/* crc_check */
- if (header->flags & MAD_FLAG_PROTECTION)
+ if (header->flags & MAD_FLAG_PROTECTION) {
+ if (mad_bit_length(&stream->ptr, &bufend_ptr) < 16) {
+ stream->error = MAD_ERROR_BUFLEN;
+ return -1;
+ }
header->crc_target = mad_bit_read(&stream->ptr, 16);
+ }
return 0;
}
@@ -338,7 +350,7 @@ int mad_header_decode(struct mad_header
stream->error = MAD_ERROR_BUFLEN;
goto fail;
}
- else if (!(ptr[0] == 0xff && (ptr[1] & 0xe0) == 0xe0)) {
+ else if ((end - ptr >= 2) && !(ptr[0] == 0xff && (ptr[1] & 0xe0) == 0xe0)) {
/* mark point where frame sync word was expected */
stream->this_frame = ptr;
stream->next_frame = ptr + 1;
@@ -361,6 +373,8 @@ int mad_header_decode(struct mad_header
ptr = mad_bit_nextbyte(&stream->ptr);
}
+ stream->error = MAD_ERROR_NONE;
+
/* begin processing */
stream->this_frame = ptr;
stream->next_frame = ptr + 1; /* possibly bogus sync word */
@@ -413,7 +427,7 @@ int mad_header_decode(struct mad_header
/* check that a valid frame header follows this frame */
ptr = stream->next_frame;
- if (!(ptr[0] == 0xff && (ptr[1] & 0xe0) == 0xe0)) {
+ if ((end - ptr >= 2) && !(ptr[0] == 0xff && (ptr[1] & 0xe0) == 0xe0)) {
ptr = stream->next_frame = stream->this_frame + 1;
goto sync;
}
Index: libmad-0.15.1b/layer12.c
===================================================================
--- libmad-0.15.1b.orig/layer12.c
+++ libmad-0.15.1b/layer12.c
@@ -72,10 +72,18 @@ mad_fixed_t const linear_table[14] = {
* DESCRIPTION: decode one requantized Layer I sample from a bitstream
*/
static
-mad_fixed_t I_sample(struct mad_bitptr *ptr, unsigned int nb)
+mad_fixed_t I_sample(struct mad_bitptr *ptr, unsigned int nb, struct mad_stream *stream)
{
mad_fixed_t sample;
+ struct mad_bitptr frameend_ptr;
+ mad_bit_init(&frameend_ptr, stream->next_frame);
+
+ if (mad_bit_length(ptr, &frameend_ptr) < nb) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return 0;
+ }
sample = mad_bit_read(ptr, nb);
/* invert most significant bit, extend sign, then scale to fixed format */
@@ -106,6 +114,10 @@ int mad_layer_I(struct mad_stream *strea
struct mad_header *header = &frame->header;
unsigned int nch, bound, ch, s, sb, nb;
unsigned char allocation[2][32], scalefactor[2][32];
+ struct mad_bitptr bufend_ptr, frameend_ptr;
+
+ mad_bit_init(&bufend_ptr, stream->bufend);
+ mad_bit_init(&frameend_ptr, stream->next_frame);
nch = MAD_NCHANNELS(header);
@@ -118,6 +130,11 @@ int mad_layer_I(struct mad_stream *strea
/* check CRC word */
if (header->flags & MAD_FLAG_PROTECTION) {
+ if (mad_bit_length(&stream->ptr, &bufend_ptr)
+ < 4 * (bound * nch + (32 - bound))) {
+ stream->error = MAD_ERROR_BADCRC;
+ return -1;
+ }
header->crc_check =
mad_bit_crc(stream->ptr, 4 * (bound * nch + (32 - bound)),
header->crc_check);
@@ -133,6 +150,11 @@ int mad_layer_I(struct mad_stream *strea
for (sb = 0; sb < bound; ++sb) {
for (ch = 0; ch < nch; ++ch) {
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < 4) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
nb = mad_bit_read(&stream->ptr, 4);
if (nb == 15) {
@@ -145,6 +167,11 @@ int mad_layer_I(struct mad_stream *strea
}
for (sb = bound; sb < 32; ++sb) {
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < 4) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
nb = mad_bit_read(&stream->ptr, 4);
if (nb == 15) {
@@ -161,6 +188,11 @@ int mad_layer_I(struct mad_stream *strea
for (sb = 0; sb < 32; ++sb) {
for (ch = 0; ch < nch; ++ch) {
if (allocation[ch][sb]) {
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < 6) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
scalefactor[ch][sb] = mad_bit_read(&stream->ptr, 6);
# if defined(OPT_STRICT)
@@ -185,8 +217,10 @@ int mad_layer_I(struct mad_stream *strea
for (ch = 0; ch < nch; ++ch) {
nb = allocation[ch][sb];
frame->sbsample[ch][s][sb] = nb ?
- mad_f_mul(I_sample(&stream->ptr, nb),
+ mad_f_mul(I_sample(&stream->ptr, nb, stream),
sf_table[scalefactor[ch][sb]]) : 0;
+ if (stream->error != 0)
+ return -1;
}
}
@@ -194,7 +228,14 @@ int mad_layer_I(struct mad_stream *strea
if ((nb = allocation[0][sb])) {
mad_fixed_t sample;
- sample = I_sample(&stream->ptr, nb);
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < nb) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
+ sample = I_sample(&stream->ptr, nb, stream);
+ if (stream->error != 0)
+ return -1;
for (ch = 0; ch < nch; ++ch) {
frame->sbsample[ch][s][sb] =
@@ -280,13 +321,21 @@ struct quantclass {
static
void II_samples(struct mad_bitptr *ptr,
struct quantclass const *quantclass,
- mad_fixed_t output[3])
+ mad_fixed_t output[3], struct mad_stream *stream)
{
unsigned int nb, s, sample[3];
+ struct mad_bitptr frameend_ptr;
+
+ mad_bit_init(&frameend_ptr, stream->next_frame);
if ((nb = quantclass->group)) {
unsigned int c, nlevels;
+ if (mad_bit_length(ptr, &frameend_ptr) < quantclass->bits) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return;
+ }
/* degrouping */
c = mad_bit_read(ptr, quantclass->bits);
nlevels = quantclass->nlevels;
@@ -299,8 +348,14 @@ void II_samples(struct mad_bitptr *ptr,
else {
nb = quantclass->bits;
- for (s = 0; s < 3; ++s)
+ for (s = 0; s < 3; ++s) {
+ if (mad_bit_length(ptr, &frameend_ptr) < nb) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return;
+ }
sample[s] = mad_bit_read(ptr, nb);
+ }
}
for (s = 0; s < 3; ++s) {
@@ -336,6 +391,9 @@ int mad_layer_II(struct mad_stream *stre
unsigned char const *offsets;
unsigned char allocation[2][32], scfsi[2][32], scalefactor[2][32][3];
mad_fixed_t samples[3];
+ struct mad_bitptr frameend_ptr;
+
+ mad_bit_init(&frameend_ptr, stream->next_frame);
nch = MAD_NCHANNELS(header);
@@ -402,13 +460,24 @@ int mad_layer_II(struct mad_stream *stre
for (sb = 0; sb < bound; ++sb) {
nbal = bitalloc_table[offsets[sb]].nbal;
- for (ch = 0; ch < nch; ++ch)
+ for (ch = 0; ch < nch; ++ch) {
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < nbal) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
allocation[ch][sb] = mad_bit_read(&stream->ptr, nbal);
+ }
}
for (sb = bound; sb < sblimit; ++sb) {
nbal = bitalloc_table[offsets[sb]].nbal;
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < nbal) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
allocation[0][sb] =
allocation[1][sb] = mad_bit_read(&stream->ptr, nbal);
}
@@ -417,8 +486,14 @@ int mad_layer_II(struct mad_stream *stre
for (sb = 0; sb < sblimit; ++sb) {
for (ch = 0; ch < nch; ++ch) {
- if (allocation[ch][sb])
+ if (allocation[ch][sb]) {
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < 2) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
scfsi[ch][sb] = mad_bit_read(&stream->ptr, 2);
+ }
}
}
@@ -441,6 +516,11 @@ int mad_layer_II(struct mad_stream *stre
for (sb = 0; sb < sblimit; ++sb) {
for (ch = 0; ch < nch; ++ch) {
if (allocation[ch][sb]) {
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < 6) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
scalefactor[ch][sb][0] = mad_bit_read(&stream->ptr, 6);
switch (scfsi[ch][sb]) {
@@ -451,11 +531,21 @@ int mad_layer_II(struct mad_stream *stre
break;
case 0:
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < 6) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
scalefactor[ch][sb][1] = mad_bit_read(&stream->ptr, 6);
/* fall through */
case 1:
case 3:
+ if (mad_bit_length(&stream->ptr, &frameend_ptr) < 6) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
scalefactor[ch][sb][2] = mad_bit_read(&stream->ptr, 6);
}
@@ -487,7 +577,9 @@ int mad_layer_II(struct mad_stream *stre
if ((index = allocation[ch][sb])) {
index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
- II_samples(&stream->ptr, &qc_table[index], samples);
+ II_samples(&stream->ptr, &qc_table[index], samples, stream);
+ if (stream->error != 0)
+ return -1;
for (s = 0; s < 3; ++s) {
frame->sbsample[ch][3 * gr + s][sb] =
@@ -505,7 +597,9 @@ int mad_layer_II(struct mad_stream *stre
if ((index = allocation[0][sb])) {
index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
- II_samples(&stream->ptr, &qc_table[index], samples);
+ II_samples(&stream->ptr, &qc_table[index], samples, stream);
+ if (stream->error != 0)
+ return -1;
for (ch = 0; ch < nch; ++ch) {
for (s = 0; s < 3; ++s) {
Index: libmad-0.15.1b/layer3.c
===================================================================
--- libmad-0.15.1b.orig/layer3.c
+++ libmad-0.15.1b/layer3.c
@@ -598,7 +598,8 @@ enum mad_error III_sideinfo(struct mad_b
static
unsigned int III_scalefactors_lsf(struct mad_bitptr *ptr,
struct channel *channel,
- struct channel *gr1ch, int mode_extension)
+ struct channel *gr1ch, int mode_extension,
+ unsigned int bits_left, unsigned int *part2_length)
{
struct mad_bitptr start;
unsigned int scalefac_compress, index, slen[4], part, n, i;
@@ -644,8 +645,12 @@ unsigned int III_scalefactors_lsf(struct
n = 0;
for (part = 0; part < 4; ++part) {
- for (i = 0; i < nsfb[part]; ++i)
+ for (i = 0; i < nsfb[part]; ++i) {
+ if (bits_left < slen[part])
+ return MAD_ERROR_BADSCFSI;
channel->scalefac[n++] = mad_bit_read(ptr, slen[part]);
+ bits_left -= slen[part];
+ }
}
while (n < 39)
@@ -690,7 +695,10 @@ unsigned int III_scalefactors_lsf(struct
max = (1 << slen[part]) - 1;
for (i = 0; i < nsfb[part]; ++i) {
+ if (bits_left < slen[part])
+ return MAD_ERROR_BADSCFSI;
is_pos = mad_bit_read(ptr, slen[part]);
+ bits_left -= slen[part];
channel->scalefac[n] = is_pos;
gr1ch->scalefac[n++] = (is_pos == max);
@@ -703,7 +711,8 @@ unsigned int III_scalefactors_lsf(struct
}
}
- return mad_bit_length(&start, ptr);
+ *part2_length = mad_bit_length(&start, ptr);
+ return MAD_ERROR_NONE;
}
/*
@@ -712,7 +721,8 @@ unsigned int III_scalefactors_lsf(struct
*/
static
unsigned int III_scalefactors(struct mad_bitptr *ptr, struct channel *channel,
- struct channel const *gr0ch, unsigned int scfsi)
+ struct channel const *gr0ch, unsigned int scfsi,
+ unsigned int bits_left, unsigned int *part2_length)
{
struct mad_bitptr start;
unsigned int slen1, slen2, sfbi;
@@ -728,12 +738,20 @@ unsigned int III_scalefactors(struct mad
sfbi = 0;
nsfb = (channel->flags & mixed_block_flag) ? 8 + 3 * 3 : 6 * 3;
- while (nsfb--)
+ while (nsfb--) {
+ if (bits_left < slen1)
+ return MAD_ERROR_BADSCFSI;
channel->scalefac[sfbi++] = mad_bit_read(ptr, slen1);
+ bits_left -= slen1;
+ }
nsfb = 6 * 3;
- while (nsfb--)
+ while (nsfb--) {
+ if (bits_left < slen2)
+ return MAD_ERROR_BADSCFSI;
channel->scalefac[sfbi++] = mad_bit_read(ptr, slen2);
+ bits_left -= slen2;
+ }
nsfb = 1 * 3;
while (nsfb--)
@@ -745,8 +763,12 @@ unsigned int III_scalefactors(struct mad
channel->scalefac[sfbi] = gr0ch->scalefac[sfbi];
}
else {
- for (sfbi = 0; sfbi < 6; ++sfbi)
+ for (sfbi = 0; sfbi < 6; ++sfbi) {
+ if (bits_left < slen1)
+ return MAD_ERROR_BADSCFSI;
channel->scalefac[sfbi] = mad_bit_read(ptr, slen1);
+ bits_left -= slen1;
+ }
}
if (scfsi & 0x4) {
@@ -754,8 +776,12 @@ unsigned int III_scalefactors(struct mad
channel->scalefac[sfbi] = gr0ch->scalefac[sfbi];
}
else {
- for (sfbi = 6; sfbi < 11; ++sfbi)
+ for (sfbi = 6; sfbi < 11; ++sfbi) {
+ if (bits_left < slen1)
+ return MAD_ERROR_BADSCFSI;
channel->scalefac[sfbi] = mad_bit_read(ptr, slen1);
+ bits_left -= slen1;
+ }
}
if (scfsi & 0x2) {
@@ -763,8 +789,12 @@ unsigned int III_scalefactors(struct mad
channel->scalefac[sfbi] = gr0ch->scalefac[sfbi];
}
else {
- for (sfbi = 11; sfbi < 16; ++sfbi)
+ for (sfbi = 11; sfbi < 16; ++sfbi) {
+ if (bits_left < slen2)
+ return MAD_ERROR_BADSCFSI;
channel->scalefac[sfbi] = mad_bit_read(ptr, slen2);
+ bits_left -= slen2;
+ }
}
if (scfsi & 0x1) {
@@ -772,14 +802,19 @@ unsigned int III_scalefactors(struct mad
channel->scalefac[sfbi] = gr0ch->scalefac[sfbi];
}
else {
- for (sfbi = 16; sfbi < 21; ++sfbi)
+ for (sfbi = 16; sfbi < 21; ++sfbi) {
+ if (bits_left < slen2)
+ return MAD_ERROR_BADSCFSI;
channel->scalefac[sfbi] = mad_bit_read(ptr, slen2);
+ bits_left -= slen2;
+ }
}
channel->scalefac[21] = 0;
}
- return mad_bit_length(&start, ptr);
+ *part2_length = mad_bit_length(&start, ptr);
+ return MAD_ERROR_NONE;
}
/*
@@ -933,19 +968,17 @@ static
enum mad_error III_huffdecode(struct mad_bitptr *ptr, mad_fixed_t xr[576],
struct channel *channel,
unsigned char const *sfbwidth,
- unsigned int part2_length)
+ signed int part3_length)
{
signed int exponents[39], exp;
signed int const *expptr;
struct mad_bitptr peek;
- signed int bits_left, cachesz;
+ signed int bits_left, cachesz, fakebits;
register mad_fixed_t *xrptr;
mad_fixed_t const *sfbound;
register unsigned long bitcache;
- bits_left = (signed) channel->part2_3_length - (signed) part2_length;
- if (bits_left < 0)
- return MAD_ERROR_BADPART3LEN;
+ bits_left = part3_length;
III_exponents(channel, sfbwidth, exponents);
@@ -956,8 +989,12 @@ enum mad_error III_huffdecode(struct mad
cachesz = mad_bit_bitsleft(&peek);
cachesz += ((32 - 1 - 24) + (24 - cachesz)) & ~7;
+ if (bits_left < cachesz) {
+ cachesz = bits_left;
+ }
bitcache = mad_bit_read(&peek, cachesz);
bits_left -= cachesz;
+ fakebits = 0;
xrptr = &xr[0];
@@ -986,7 +1023,7 @@ enum mad_error III_huffdecode(struct mad
big_values = channel->big_values;
- while (big_values-- && cachesz + bits_left > 0) {
+ while (big_values-- && cachesz + bits_left - fakebits > 0) {
union huffpair const *pair;
unsigned int clumpsz, value;
register mad_fixed_t requantized;
@@ -1023,10 +1060,19 @@ enum mad_error III_huffdecode(struct mad
unsigned int bits;
bits = ((32 - 1 - 21) + (21 - cachesz)) & ~7;
+ if (bits_left < bits) {
+ bits = bits_left;
+ }
bitcache = (bitcache << bits) | mad_bit_read(&peek, bits);
cachesz += bits;
bits_left -= bits;
}
+ if (cachesz < 21) {
+ unsigned int bits = 21 - cachesz;
+ bitcache <<= bits;
+ cachesz += bits;
+ fakebits += bits;
+ }
/* hcod (0..19) */
@@ -1041,6 +1087,8 @@ enum mad_error III_huffdecode(struct mad
}
cachesz -= pair->value.hlen;
+ if (cachesz < fakebits)
+ return MAD_ERROR_BADHUFFDATA;
if (linbits) {
/* x (0..14) */
@@ -1054,10 +1102,15 @@ enum mad_error III_huffdecode(struct mad
case 15:
if (cachesz < linbits + 2) {
- bitcache = (bitcache << 16) | mad_bit_read(&peek, 16);
- cachesz += 16;
- bits_left -= 16;
+ unsigned int bits = 16;
+ if (bits_left < 16)
+ bits = bits_left;
+ bitcache = (bitcache << bits) | mad_bit_read(&peek, bits);
+ cachesz += bits;
+ bits_left -= bits;
}
+ if (cachesz - fakebits < linbits)
+ return MAD_ERROR_BADHUFFDATA;
value += MASK(bitcache, cachesz, linbits);
cachesz -= linbits;
@@ -1074,6 +1127,8 @@ enum mad_error III_huffdecode(struct mad
}
x_final:
+ if (cachesz - fakebits < 1)
+ return MAD_ERROR_BADHUFFDATA;
xrptr[0] = MASK1BIT(bitcache, cachesz--) ?
-requantized : requantized;
}
@@ -1089,10 +1144,15 @@ enum mad_error III_huffdecode(struct mad
case 15:
if (cachesz < linbits + 1) {
- bitcache = (bitcache << 16) | mad_bit_read(&peek, 16);
- cachesz += 16;
- bits_left -= 16;
+ unsigned int bits = 16;
+ if (bits_left < 16)
+ bits = bits_left;
+ bitcache = (bitcache << bits) | mad_bit_read(&peek, bits);
+ cachesz += bits;
+ bits_left -= bits;
}
+ if (cachesz - fakebits < linbits)
+ return MAD_ERROR_BADHUFFDATA;
value += MASK(bitcache, cachesz, linbits);
cachesz -= linbits;
@@ -1109,6 +1169,8 @@ enum mad_error III_huffdecode(struct mad
}
y_final:
+ if (cachesz - fakebits < 1)
+ return MAD_ERROR_BADHUFFDATA;
xrptr[1] = MASK1BIT(bitcache, cachesz--) ?
-requantized : requantized;
}
@@ -1128,6 +1190,8 @@ enum mad_error III_huffdecode(struct mad
requantized = reqcache[value] = III_requantize(value, exp);
}
+ if (cachesz - fakebits < 1)
+ return MAD_ERROR_BADHUFFDATA;
xrptr[0] = MASK1BIT(bitcache, cachesz--) ?
-requantized : requantized;
}
@@ -1146,6 +1210,8 @@ enum mad_error III_huffdecode(struct mad
requantized = reqcache[value] = III_requantize(value, exp);
}
+ if (cachesz - fakebits < 1)
+ return MAD_ERROR_BADHUFFDATA;
xrptr[1] = MASK1BIT(bitcache, cachesz--) ?
-requantized : requantized;
}
@@ -1155,9 +1221,6 @@ enum mad_error III_huffdecode(struct mad
}
}
- if (cachesz + bits_left < 0)
- return MAD_ERROR_BADHUFFDATA; /* big_values overrun */
-
/* count1 */
{
union huffquad const *table;
@@ -1167,15 +1230,24 @@ enum mad_error III_huffdecode(struct mad
requantized = III_requantize(1, exp);
- while (cachesz + bits_left > 0 && xrptr <= &xr[572]) {
+ while (cachesz + bits_left - fakebits > 0 && xrptr <= &xr[572]) {
union huffquad const *quad;
/* hcod (1..6) */
if (cachesz < 10) {
- bitcache = (bitcache << 16) | mad_bit_read(&peek, 16);
- cachesz += 16;
- bits_left -= 16;
+ unsigned int bits = 16;
+ if (bits_left < 16)
+ bits = bits_left;
+ bitcache = (bitcache << bits) | mad_bit_read(&peek, bits);
+ cachesz += bits;
+ bits_left -= bits;
+ }
+ if (cachesz < 10) {
+ unsigned int bits = 10 - cachesz;
+ bitcache <<= bits;
+ cachesz += bits;
+ fakebits += bits;
}
quad = &table[MASK(bitcache, cachesz, 4)];
@@ -1188,6 +1260,11 @@ enum mad_error III_huffdecode(struct mad
MASK(bitcache, cachesz, quad->ptr.bits)];
}
+ if (cachesz - fakebits < quad->value.hlen + quad->value.v
+ + quad->value.w + quad->value.x + quad->value.y)
+ /* We don't have enough bits to read one more entry, consider them
+ * stuffing bits. */
+ break;
cachesz -= quad->value.hlen;
if (xrptr == sfbound) {
@@ -1236,22 +1313,8 @@ enum mad_error III_huffdecode(struct mad
xrptr += 2;
}
-
- if (cachesz + bits_left < 0) {
-# if 0 && defined(DEBUG)
- fprintf(stderr, "huffman count1 overrun (%d bits)\n",
- -(cachesz + bits_left));
-# endif
-
- /* technically the bitstream is misformatted, but apparently
- some encoders are just a bit sloppy with stuffing bits */
-
- xrptr -= 4;
- }
}
- assert(-bits_left <= MAD_BUFFER_GUARD * CHAR_BIT);
-
# if 0 && defined(DEBUG)
if (bits_left < 0)
fprintf(stderr, "read %d bits too many\n", -bits_left);
@@ -2348,10 +2411,11 @@ void III_freqinver(mad_fixed_t sample[18
*/
static
enum mad_error III_decode(struct mad_bitptr *ptr, struct mad_frame *frame,
- struct sideinfo *si, unsigned int nch)
+ struct sideinfo *si, unsigned int nch, unsigned int md_len)
{
struct mad_header *header = &frame->header;
unsigned int sfreqi, ngr, gr;
+ int bits_left = md_len * CHAR_BIT;
{
unsigned int sfreq;
@@ -2383,6 +2447,7 @@ enum mad_error III_decode(struct mad_bit
for (ch = 0; ch < nch; ++ch) {
struct channel *channel = &granule->ch[ch];
unsigned int part2_length;
+ unsigned int part3_length;
sfbwidth[ch] = sfbwidth_table[sfreqi].l;
if (channel->block_type == 2) {
@@ -2391,18 +2456,30 @@ enum mad_error III_decode(struct mad_bit
}
if (header->flags & MAD_FLAG_LSF_EXT) {
- part2_length = III_scalefactors_lsf(ptr, channel,
+ error = III_scalefactors_lsf(ptr, channel,
ch == 0 ? 0 : &si->gr[1].ch[1],
- header->mode_extension);
+ header->mode_extension, bits_left, &part2_length);
}
else {
- part2_length = III_scalefactors(ptr, channel, &si->gr[0].ch[ch],
- gr == 0 ? 0 : si->scfsi[ch]);
+ error = III_scalefactors(ptr, channel, &si->gr[0].ch[ch],
+ gr == 0 ? 0 : si->scfsi[ch], bits_left, &part2_length);
}
+ if (error)
+ return error;
+
+ bits_left -= part2_length;
- error = III_huffdecode(ptr, xr[ch], channel, sfbwidth[ch], part2_length);
+ if (part2_length > channel->part2_3_length)
+ return MAD_ERROR_BADPART3LEN;
+
+ part3_length = channel->part2_3_length - part2_length;
+ if (part3_length > bits_left)
+ return MAD_ERROR_BADPART3LEN;
+
+ error = III_huffdecode(ptr, xr[ch], channel, sfbwidth[ch], part3_length);
if (error)
return error;
+ bits_left -= part3_length;
}
/* joint stereo processing */
@@ -2519,11 +2596,13 @@ int mad_layer_III(struct mad_stream *str
unsigned int nch, priv_bitlen, next_md_begin = 0;
unsigned int si_len, data_bitlen, md_len;
unsigned int frame_space, frame_used, frame_free;
- struct mad_bitptr ptr;
+ struct mad_bitptr ptr, bufend_ptr;
struct sideinfo si;
enum mad_error error;
int result = 0;
+ mad_bit_init(&bufend_ptr, stream->bufend);
+
/* allocate Layer III dynamic structures */
if (stream->main_data == 0) {
@@ -2587,14 +2666,15 @@ int mad_layer_III(struct mad_stream *str
unsigned long header;
mad_bit_init(&peek, stream->next_frame);
+ if (mad_bit_length(&peek, &bufend_ptr) >= 57) {
+ header = mad_bit_read(&peek, 32);
+ if ((header & 0xffe60000L) /* syncword | layer */ == 0xffe20000L) {
+ if (!(header & 0x00010000L)) /* protection_bit */
+ mad_bit_skip(&peek, 16); /* crc_check */
- header = mad_bit_read(&peek, 32);
- if ((header & 0xffe60000L) /* syncword | layer */ == 0xffe20000L) {
- if (!(header & 0x00010000L)) /* protection_bit */
- mad_bit_skip(&peek, 16); /* crc_check */
-
- next_md_begin =
- mad_bit_read(&peek, (header & 0x00080000L) /* ID */ ? 9 : 8);
+ next_md_begin =
+ mad_bit_read(&peek, (header & 0x00080000L) /* ID */ ? 9 : 8);
+ }
}
mad_bit_finish(&peek);
@@ -2653,7 +2733,7 @@ int mad_layer_III(struct mad_stream *str
/* decode main_data */
if (result == 0) {
- error = III_decode(&ptr, frame, &si, nch);
+ error = III_decode(&ptr, frame, &si, nch, md_len);
if (error) {
stream->error = error;
result = -1;

View File

@ -0,0 +1,60 @@
Copied from Debian.
From: Kurt Roeckx <kurt@roeckx.be>
Date: Sun, 28 Jan 2018 15:44:08 +0100
Subject: Check the size of the main data
The main data to decode a frame can come from the current frame and part of the
previous frame, the so called bit reservoir. si.main_data_begin is the part of
the previous frame we need for this frame. frame_space is the amount of main
data that can be in this frame, and next_md_begin is the part of this frame that
is going to be used for the next frame.
The maximum amount of data from a previous frame that the format allows is 511
bytes. The maximum frame size for the defined bitrates is at MPEG 2.5 layer 2
at 320 kbit/s and 8 kHz sample rate which gives 72 * (320000 / 8000) + 1 = 2881.
So those defines are not large enough:
# define MAD_BUFFER_GUARD 8
# define MAD_BUFFER_MDLEN (511 + 2048 + MAD_BUFFER_GUARD)
There is also support for a "free" bitrate which allows you to create any frame
size, which can be larger than the buffer.
Changing the defines is not an option since it's part of the ABI, so we check
that the main data fits in the bufer.
The previous frame data is stored in *stream->main_data and contains
stream->md_len bytes. If stream->md_len is larger than the data we
need from the previous frame (si.main_data_begin) it still wouldn't fit
in the buffer, so just keep the data that we need.
Index: libmad-0.15.1b/layer3.c
===================================================================
--- libmad-0.15.1b.orig/layer3.c
+++ libmad-0.15.1b/layer3.c
@@ -2608,6 +2608,11 @@ int mad_layer_III(struct mad_stream *str
next_md_begin = 0;
md_len = si.main_data_begin + frame_space - next_md_begin;
+ if (md_len + MAD_BUFFER_GUARD > MAD_BUFFER_MDLEN) {
+ stream->error = MAD_ERROR_LOSTSYNC;
+ stream->sync = 0;
+ return -1;
+ }
frame_used = 0;
@@ -2625,8 +2630,11 @@ int mad_layer_III(struct mad_stream *str
}
}
else {
- mad_bit_init(&ptr,
- *stream->main_data + stream->md_len - si.main_data_begin);
+ memmove(stream->main_data,
+ *stream->main_data + stream->md_len - si.main_data_begin,
+ si.main_data_begin);
+ stream->md_len = si.main_data_begin;
+ mad_bit_init(&ptr, *stream->main_data);
if (md_len > si.main_data_begin) {
assert(stream->md_len + md_len -

View File

@ -1,34 +0,0 @@
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Thu, 25 Jul 2019 21:48:25 +0200
Subject: [PATCH]: libvirt: remove ATTRIBUTE_UNUSED
This should fix the error reported here[0]. Patch taken verbatim from
upstream[1].
[0]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36634#28
[1]: https://github.com/libvirt/libvirt/commit/759bf903a6c24a8efa25c7cf4b099d952eda9bd3
From 759bf903a6c24a8efa25c7cf4b099d952eda9bd3 Mon Sep 17 00:00:00 2001
From: Pavel Hrdina <phrdina@redhat.com>
Date: Mon, 22 Jul 2019 14:46:34 +0200
Subject: [PATCH] vircgroupv2: remove ATTRIBUTE_UNUSED for used attribute
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
---
src/util/vircgroupv2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c
index af3192c99c..e36c36685b 100644
--- a/src/util/vircgroupv2.c
+++ b/src/util/vircgroupv2.c
@@ -399,7 +399,7 @@ virCgroupV2EnableController(virCgroupPtr group,
static int
-virCgroupV2MakeGroup(virCgroupPtr parent ATTRIBUTE_UNUSED,
+virCgroupV2MakeGroup(virCgroupPtr parent,
virCgroupPtr group,
bool create,
unsigned int flags)

View File

@ -0,0 +1,30 @@
Fix a test failure on some systems.
Taken from upstream:
https://github.com/strace/strace/commit/4377e3a1535a0ec3a42da8a1366ad6943f4efa0e
diff --git a/tests/gen_tests.in b/tests/gen_tests.in
index 4a506b94c..4fdf4722c 100644
--- a/tests/gen_tests.in
+++ b/tests/gen_tests.in
@@ -168,16 +168,16 @@ ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26
ipc_msg-Xraw +ipc.sh -Xraw -a16
ipc_msg-Xverbose +ipc.sh -Xverbose -a34
ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev
-ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22
+ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a20
ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose
ipc_sem +ipc.sh -a29
ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29
ipc_sem-Xraw +ipc.sh -Xraw -a19
ipc_sem-Xverbose +ipc.sh -Xverbose -a36
-ipc_shm +ipc.sh -a29
-ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29
+ipc_shm +ipc.sh -a26
+ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26
ipc_shm-Xraw +ipc.sh -Xraw -a19
-ipc_shm-Xverbose +ipc.sh -Xverbose -a36
+ipc_shm-Xverbose +ipc.sh -Xverbose -a34
kcmp -a22
kcmp-y -a22 -y -e trace=kcmp
kern_features -a16

View File

@ -4082,7 +4082,7 @@ relic support.")
(base32 (base32
"0h3wfnpv5d4d3f9xzmwkchay6251nhzngdv3f6xia56mj4hxabs0")))) "0h3wfnpv5d4d3f9xzmwkchay6251nhzngdv3f6xia56mj4hxabs0"))))
(build-system perl-build-system) (build-system perl-build-system)
(inputs (propagated-inputs
`(("perl-clone-choose" ,perl-clone-choose))) `(("perl-clone-choose" ,perl-clone-choose)))
(home-page "https://metacpan.org/release/Hash-Merge") (home-page "https://metacpan.org/release/Hash-Merge")
(synopsis "Merge arbitrarily deep hashes into a single hash") (synopsis "Merge arbitrarily deep hashes into a single hash")

View File

@ -198,8 +198,7 @@ colors, styles, options and details.")
("perl" ,perl) ("perl" ,perl)
("texinfo" ,texinfo) ;For generating documentation ("texinfo" ,texinfo) ;For generating documentation
;; For the manual and the tests. ;; For the manual and the tests.
("texlive" ,(texlive-union (list texlive-fonts-amsfonts ("texlive" ,(texlive-union (list texlive-amsfonts
texlive-latex-amsfonts
texlive-latex-geometry texlive-latex-geometry
texlive-latex-graphics texlive-latex-graphics
texlive-latex-oberdiek ; for ifluatex texlive-latex-oberdiek ; for ifluatex

View File

@ -3500,12 +3500,11 @@ color scales, and color space conversion easy. It has support for:
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc) ("python-numpydoc" ,python-numpydoc)
("texlive" ,(texlive-union (list texlive-fonts-amsfonts ("texlive" ,(texlive-union (list texlive-fonts-cm-super
texlive-fonts-cm-super
texlive-fonts-ec texlive-fonts-ec
texlive-generic-ifxetex texlive-generic-ifxetex
texlive-generic-pdftex texlive-generic-pdftex
texlive-latex-amsfonts texlive-amsfonts
texlive-latex-capt-of texlive-latex-capt-of
texlive-latex-cmap texlive-latex-cmap
texlive-latex-environ texlive-latex-environ
@ -3904,7 +3903,7 @@ toolkits.")
("python-ipykernel" ,python-ipykernel) ("python-ipykernel" ,python-ipykernel)
("python-mock" ,python-mock) ("python-mock" ,python-mock)
("graphviz" ,graphviz) ("graphviz" ,graphviz)
("texlive" ,(texlive-union (list texlive-latex-amsfonts ("texlive" ,(texlive-union (list texlive-amsfonts
texlive-latex-amsmath texlive-latex-amsmath
texlive-latex-enumitem texlive-latex-enumitem
texlive-latex-expdlist texlive-latex-expdlist
@ -3915,7 +3914,6 @@ toolkits.")
texlive-generic-pdftex texlive-generic-pdftex
texlive-fonts-amsfonts
texlive-fonts-ec texlive-fonts-ec
texlive-fonts-adobe-times texlive-fonts-adobe-times
texlive-fonts-txfonts))) texlive-fonts-txfonts)))
@ -5472,11 +5470,10 @@ computing.")
`(("python-sphinx" ,python-sphinx) `(("python-sphinx" ,python-sphinx)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
;; FIXME: It's possible that a smaller union would work just as well. ;; FIXME: It's possible that a smaller union would work just as well.
("texlive" ,(texlive-union (list texlive-fonts-amsfonts ("texlive" ,(texlive-union (list texlive-amsfonts
texlive-fonts-ec texlive-fonts-ec
texlive-generic-ifxetex texlive-generic-ifxetex
texlive-generic-pdftex texlive-generic-pdftex
texlive-latex-amsfonts
texlive-latex-capt-of texlive-latex-capt-of
texlive-latex-cmap texlive-latex-cmap
texlive-latex-environ texlive-latex-environ

View File

@ -153,14 +153,14 @@ anywhere.")
(define-public samba (define-public samba
(package (package
(name "samba") (name "samba")
(version "4.10.5") (version "4.10.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.samba.org/pub/samba/stable/" (uri (string-append "https://download.samba.org/pub/samba/stable/"
"samba-" version ".tar.gz")) "samba-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0xb3mz38hcayqxchk0ws9mxn10vswsn97jbxl4gcwi4cbrnjc43c")))) "0hpgdqlyczj98pkh2ldglvvnkrb1q541r3qikdvxq0qjvd9fpywy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -75,6 +75,7 @@
#:use-module (gnu packages time) #:use-module (gnu packages time)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
@ -319,9 +320,8 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
("perl" ,perl) ("perl" ,perl)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("texinfo" ,texinfo) ; for building HTML manuals ("texinfo" ,texinfo) ; for building HTML manuals
("texlive" ,(texlive-union (list texlive-fonts-amsfonts ("texlive" ,(texlive-union (list texlive-fonts-ec
texlive-fonts-ec texlive-amsfonts
texlive-latex-amsfonts
texlive-latex-base texlive-latex-base
texlive-latex-fancyvrb texlive-latex-fancyvrb
texlive-latex-graphics texlive-latex-graphics
@ -397,14 +397,14 @@ available, greatly increasing its breadth and scope.")
(define-public r-boot (define-public r-boot
(package (package
(name "r-boot") (name "r-boot")
(version "1.3-22") (version "1.3-23")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "boot" version)) (uri (cran-uri "boot" version))
(sha256 (sha256
(base32 (base32
"1z2dig1mi76b3b9ck6qlkh07l3hs478gaf70db5nv8x7w2qhq7yg")))) "0bx07zbb5nfz2xfgnzbspg7r5vxz4bjdz1ry4d1vk434vlcrxj1h"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/boot") (home-page "https://cran.r-project.org/web/packages/boot")
(synopsis "Bootstrap functions for R") (synopsis "Bootstrap functions for R")
@ -502,14 +502,14 @@ code for possible problems.")
(define-public r-foreign (define-public r-foreign
(package (package
(name "r-foreign") (name "r-foreign")
(version "0.8-71") (version "0.8-72")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "foreign" version)) (uri (cran-uri "foreign" version))
(sha256 (sha256
(base32 (base32
"1mv04w3ycz0ymsszn8aa87k6k5sb8mg8lhf1b8w4zpfrphpkkliv")))) "124c9229is44p2rv7xyh2q86nsfi7vzyyh5n3c5ihziqrp4ig723"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/foreign") (home-page "https://cran.r-project.org/web/packages/foreign")
(synopsis "Read data stored by other statistics software") (synopsis "Read data stored by other statistics software")
@ -588,14 +588,14 @@ and operations on them using LAPACK and SuiteSparse.")
(define-public r-nlme (define-public r-nlme
(package (package
(name "r-nlme") (name "r-nlme")
(version "3.1-140") (version "3.1-141")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "nlme" version)) (uri (cran-uri "nlme" version))
(sha256 (sha256
(base32 (base32
"0k9x5j34fx093a023da9ny3b3101lbwpmfm27mkvfj950l22z88x")))) "0ml00g79bimjcl0sgn6h55l5b4gfmnsnc1vvmivggn0318k4c04i"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-lattice" ,r-lattice))) `(("r-lattice" ,r-lattice)))
@ -804,13 +804,13 @@ effects of different types of color-blindness.")
(define-public r-digest (define-public r-digest
(package (package
(name "r-digest") (name "r-digest")
(version "0.6.19") (version "0.6.20")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "digest" version)) (uri (cran-uri "digest" version))
(sha256 (sha256
(base32 "1x6cbj9qvkk7pxv9xdqibazw3x8psjp6x0m0ildx1jwyb2ymkl98")))) (base32 "1irhk2jaj9cg57cxprgyn1if06x121xwcxh1fzzn3148bl5lnrq5"))))
(build-system r-build-system) (build-system r-build-system)
;; Vignettes require r-knitr, which requires r-digest, so we have to ;; Vignettes require r-knitr, which requires r-digest, so we have to
;; disable them and the tests. ;; disable them and the tests.
@ -1603,18 +1603,19 @@ R packages that praise their users.")
(define-public r-testthat (define-public r-testthat
(package (package
(name "r-testthat") (name "r-testthat")
(version "2.1.1") (version "2.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "testthat" version)) (uri (cran-uri "testthat" version))
(sha256 (sha256
(base32 (base32
"03jgr0hlr77yp0aib4v30yjyjrjsa8dczr02yk21m93vl25vqvkp")))) "0y0bvggm4pzkzp6xn7b8cf3ybqp9ijxkhhyp3z49a9iipc90bvk7"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-cli" ,r-cli) `(("r-cli" ,r-cli)
("r-crayon" ,r-crayon) ("r-crayon" ,r-crayon)
("r-digest" ,r-digest) ("r-digest" ,r-digest)
("r-evaluate" ,r-evaluate)
("r-magrittr" ,r-magrittr) ("r-magrittr" ,r-magrittr)
("r-praise" ,r-praise) ("r-praise" ,r-praise)
("r-r6" ,r-r6) ("r-r6" ,r-r6)
@ -1696,13 +1697,13 @@ and printing capabilities than traditional data frames.")
(define-public r-dplyr (define-public r-dplyr
(package (package
(name "r-dplyr") (name "r-dplyr")
(version "0.8.1") (version "0.8.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "dplyr" version)) (uri (cran-uri "dplyr" version))
(sha256 (sha256
(base32 (base32
"1nw12hzk1jcac5879nfmf1yp98jpb3i59qkb8sfpk2cd6zqgfgjz")))) "032c89wa04g9rih9shyvwl3il0bsrv3xk489x6867sk9bb3amd38"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-assertthat" ,r-assertthat) `(("r-assertthat" ,r-assertthat)
@ -1979,13 +1980,13 @@ inference for statistical models.")
(define-public r-coda (define-public r-coda
(package (package
(name "r-coda") (name "r-coda")
(version "0.19-2") (version "0.19-3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "coda" version)) (uri (cran-uri "coda" version))
(sha256 (sha256
(base32 (base32
"03fs3sdrrym3is92dgpa6ydk3m63gaihwy7bva4k0wm2hxm7x2k7")))) "1mn50bshky968gn4nf6vnkaa768fnvm1xmhkms7szwdw9341zpyk"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-lattice" ,r-lattice))) `(("r-lattice" ,r-lattice)))
@ -2021,14 +2022,14 @@ and environmental data in the framework of Euclidean exploratory methods.")
(define-public r-xml2 (define-public r-xml2
(package (package
(name "r-xml2") (name "r-xml2")
(version "1.2.0") (version "1.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "xml2" version)) (uri (cran-uri "xml2" version))
(sha256 (sha256
(base32 (base32
"154lmksfiwkhnlmryas25mjhfg6k4mmnnk7bbb29mnn5x5pr2yha")))) "0186d7r36xw1z9f8ajz35a0dz4ch6hmrjl9536yc7vq78v4vn5an"))))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
`(("libxml2" ,libxml2) `(("libxml2" ,libxml2)
@ -2136,14 +2137,14 @@ R version.")
(define-public r-checkmate (define-public r-checkmate
(package (package
(name "r-checkmate") (name "r-checkmate")
(version "1.9.3") (version "1.9.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "checkmate" version)) (uri (cran-uri "checkmate" version))
(sha256 (sha256
(base32 (base32
"15ccwvmw73c2zz1k10k5zdn8px0rrbnvs1b4nzvlb0iwj7cimhp4")))) "08ddpgs4mv5d5y4j054pm8drmxkn7yvhfpbghwxlizjpnxa5g8ps"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-backports" ,r-backports))) `(("r-backports" ,r-backports)))
@ -2333,14 +2334,14 @@ collation, and NAMESPACE files.")
(define-public r-openssl (define-public r-openssl
(package (package
(name "r-openssl") (name "r-openssl")
(version "1.4") (version "1.4.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "openssl" version)) (uri (cran-uri "openssl" version))
(sha256 (sha256
(base32 (base32
"0mh4xwb9wnn5j2n1zzmjldqjqv2nn4wdidiixxciaqrqsi0l9834")))) "1ihz2qi33lhngl19xdanq0pbmfaacy63794mg8ll7z2lab3yryzp"))))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
`(("libressl" ,libressl))) `(("libressl" ,libressl)))
@ -2366,13 +2367,13 @@ integers.")
(define-public r-httr (define-public r-httr
(package (package
(name "r-httr") (name "r-httr")
(version "1.4.0") (version "1.4.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "httr" version)) (uri (cran-uri "httr" version))
(sha256 (sha256
(base32 (base32
"0j6vknwyvkjpjsxwch4q02aik4dnm3h4l0wc7dgzc555bm1g2cyn")))) "0mp1il13q6n49n2hv1p2p8x6avjan6dr5az19ql4hb78pc3pwp37"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-curl" ,r-curl) `(("r-curl" ,r-curl)
@ -2392,20 +2393,16 @@ functions make it easy to control additional request components.")
(define-public r-git2r (define-public r-git2r
(package (package
(name "r-git2r") (name "r-git2r")
(version "0.25.2") (version "0.26.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "git2r" version)) (uri (cran-uri "git2r" version))
(sha256 (sha256
(base32 (base32
"15kpvz6ry2r8ii5hzinjwkggc5kgmkbcpsdwzahsf8gha52w80p0")))) "0dbl845sahv2i641ncaf06w06djravwc5wknp9syzx0ad8l0kmhk"))))
(build-system r-build-system) (build-system r-build-system)
;; This R package contains modified sources of libgit2. This modified
;; version of libgit2 is built as the package is built. Hence libgit2 is
;; not among the inputs of this package.
(inputs (inputs
`(("libssh2" ,libssh2) ; for SSH transport `(("libgit2" ,libgit2)
("openssl" ,openssl)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -2438,13 +2435,13 @@ informative error messages when it's not available.")
(define-public r-devtools (define-public r-devtools
(package (package
(name "r-devtools") (name "r-devtools")
(version "2.0.2") (version "2.1.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "devtools" version)) (uri (cran-uri "devtools" version))
(sha256 (sha256
(base32 (base32
"028pppj39ng7q17k27531s8k00lmw982vz5krn74n9b8f2azm8lr")))) "0393v7nr22gr5g9afgrhq4ab3lwbqy6fd3shnmlhdpqam5357xy1"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-callr" ,r-callr) `(("r-callr" ,r-callr)
@ -2457,9 +2454,11 @@ informative error messages when it's not available.")
("r-pkgbuild" ,r-pkgbuild) ("r-pkgbuild" ,r-pkgbuild)
("r-pkgload" ,r-pkgload) ("r-pkgload" ,r-pkgload)
("r-rcmdcheck" ,r-rcmdcheck) ("r-rcmdcheck" ,r-rcmdcheck)
("r-roxygen2" ,r-roxygen2)
("r-remotes" ,r-remotes) ("r-remotes" ,r-remotes)
("r-rstudioapi" ,r-rstudioapi) ("r-rstudioapi" ,r-rstudioapi)
("r-sessioninfo" ,r-sessioninfo) ("r-sessioninfo" ,r-sessioninfo)
("r-testthat" ,r-testthat)
("r-usethis" ,r-usethis) ("r-usethis" ,r-usethis)
("r-withr" ,r-withr))) ("r-withr" ,r-withr)))
(home-page "https://github.com/hadley/devtools") (home-page "https://github.com/hadley/devtools")
@ -2490,18 +2489,19 @@ were originally a part of the r-devtools package.")
(define-public r-hms (define-public r-hms
(package (package
(name "r-hms") (name "r-hms")
(version "0.4.2") (version "0.5.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "hms" version)) (uri (cran-uri "hms" version))
(sha256 (sha256
(base32 (base32
"1g6hslk3z0xga38r71irxq802wskg6nv804mp8y9f7i2wfrj0y55")))) "06snfqdczr0x0nbp7qnvwhlp2pw0wx9c2y3xb4gr1wrvbik74y58"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-rlang" ,r-rlang) `(("r-rlang" ,r-rlang)
("r-pkgconfig" ,r-pkgconfig))) ("r-pkgconfig" ,r-pkgconfig)
("r-vctrs" ,r-vctrs)))
(home-page "https://github.com/rstats-db/hms") (home-page "https://github.com/rstats-db/hms")
(synopsis "Pretty time of day") (synopsis "Pretty time of day")
(description (description
@ -2597,13 +2597,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo (define-public r-rcpparmadillo
(package (package
(name "r-rcpparmadillo") (name "r-rcpparmadillo")
(version "0.9.500.2.0") (version "0.9.600.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RcppArmadillo" version)) (uri (cran-uri "RcppArmadillo" version))
(sha256 (sha256
(base32 (base32
"1lyvpb7n54ijlqns29qiixqr39334knf67cnixvlic58945glrhv")))) "07jg2667xyhmp1fbcdi5nnhmkk81da76s9rlswfq4k2sjsmbfmr0"))))
(properties `((upstream-name . "RcppArmadillo"))) (properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system) (build-system r-build-system)
;; All needed for vignettes ;; All needed for vignettes
@ -2695,14 +2695,14 @@ certain criterion, e.g., it contains a certain regular file.")
(define-public r-rmarkdown (define-public r-rmarkdown
(package (package
(name "r-rmarkdown") (name "r-rmarkdown")
(version "1.13") (version "1.14")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "rmarkdown" version)) (uri (cran-uri "rmarkdown" version))
(sha256 (sha256
(base32 (base32
"1vv3b8nlw8ra19492rjg3na42lwh3xr5a2jy2ia81fvvs846pywn")))) "0qfw5rkvwqpgix32g6qy9xrr50awmm146aqbm836xravih2b2dpn"))))
(properties `((upstream-name . "rmarkdown"))) (properties `((upstream-name . "rmarkdown")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -2788,17 +2788,18 @@ that package, other packages are unaffected.")
(define-public r-blob (define-public r-blob
(package (package
(name "r-blob") (name "r-blob")
(version "1.1.1") (version "1.2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "blob" version)) (uri (cran-uri "blob" version))
(sha256 (sha256
(base32 (base32
"0lsg91hk508dd95ivig2lwg62qafwnarjw68110kx63cfk4zkjxc")))) "08z071jzac4gasgfgab0y5g3ilfmlw08ln813wphxg07hsiczw8s"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-prettyunits" ,r-prettyunits) `(("r-prettyunits" ,r-prettyunits)
("r-tibble" ,r-tibble))) ("r-rlang" ,r-rlang)
("r-vctrs" ,r-vctrs)))
(home-page "https://github.com/hadley/blob") (home-page "https://github.com/hadley/blob")
(synopsis "Simple S3 Class for representing vectors of binary data") (synopsis "Simple S3 Class for representing vectors of binary data")
(description "Raw vectors in R are useful for storing a single binary (description "Raw vectors in R are useful for storing a single binary
@ -2810,13 +2811,13 @@ a column in data frame.")
(define-public r-rsqlite (define-public r-rsqlite
(package (package
(name "r-rsqlite") (name "r-rsqlite")
(version "2.1.1") (version "2.1.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RSQLite" version)) (uri (cran-uri "RSQLite" version))
(sha256 (sha256
(base32 (base32
"1giwk4335sc6yhj3rs8h070g1mwy38kyqyqv6vcfxvskykj7vp6z")))) "1inrhap5cs0wry2jbw42fx9wwxb3qdzlpy0ba4f6a29bs8jx9nk6"))))
(properties `((upstream-name . "RSQLite"))) (properties `((upstream-name . "RSQLite")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3069,14 +3070,14 @@ standard R subsetting and Kronecker products.")
(define-public r-iterators (define-public r-iterators
(package (package
(name "r-iterators") (name "r-iterators")
(version "1.0.10") (version "1.0.12")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "iterators" version)) (uri (cran-uri "iterators" version))
(sha256 (sha256
(base32 (base32
"1s3iykfvccpnzs73z90rx18qvbvgw2dgl4nfcrvm5m1850qb5qd9")))) "0jwzxaa3jm1xzgfv5pn0xqkk7rhm0xwvgn85w7xaw8xx1vb33gwn"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/iterators") (home-page "https://cran.r-project.org/web/packages/iterators")
(synopsis "Iterator construct for R") (synopsis "Iterator construct for R")
@ -3089,14 +3090,14 @@ data.")
(define-public r-foreach (define-public r-foreach
(package (package
(name "r-foreach") (name "r-foreach")
(version "1.4.4") (version "1.4.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "foreach" version)) (uri (cran-uri "foreach" version))
(sha256 (sha256
(base32 (base32
"0j2yj0rn0d5nbzz9nq5rqqgnxhp9pbd92q4klsarl2xpsn8119y0")))) "0q7iyniw5iri4hl57bhil3r69s5wnaijzn0q0x4h3z42245jqqwm"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-codetools" ,r-codetools) `(("r-codetools" ,r-codetools)
@ -3117,14 +3118,14 @@ parallel.")
(define-public r-doparallel (define-public r-doparallel
(package (package
(name "r-doparallel") (name "r-doparallel")
(version "1.0.14") (version "1.0.15")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "doParallel" version)) (uri (cran-uri "doParallel" version))
(sha256 (sha256
(base32 (base32
"01qjs4iw9f1kgymcypj0m2s4pvgqhxaycpli0fb8lq3dc0vpzfyb")))) "0vnqbha3gig3awbfvsfx3ni5jir398md1n7xmsb8jihnjsk7xbbi"))))
(properties `((upstream-name . "doParallel"))) (properties `((upstream-name . "doParallel")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3140,14 +3141,14 @@ using the parallel package.")
(define-public r-domc (define-public r-domc
(package (package
(name "r-domc") (name "r-domc")
(version "1.3.5") (version "1.3.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "doMC" version)) (uri (cran-uri "doMC" version))
(sha256 (sha256
(base32 (base32
"1vfrykvfvsyq12mypd266867ml1dcwc3rj5k9c3wrn5bddcm88kr")))) "1cn9gxavhvjswip8pwvkpi7q6wpzdllcsdjabga8akf55nggqxr9"))))
(properties `((upstream-name . "doMC"))) (properties `((upstream-name . "doMC")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3163,13 +3164,13 @@ using the multicore functionality of the parallel package.")
(define-public r-dt (define-public r-dt
(package (package
(name "r-dt") (name "r-dt")
(version "0.7") (version "0.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "DT" version)) (uri (cran-uri "DT" version))
(sha256 (sha256
(base32 (base32
"0b6ywgzk9b35y5f69zwfz3vv7qwqqj3xsmy0xymf7nfcvrqg3qqx")))) "08cfmv3d5awvd9h8648bvidcg2ak5pvl2p6vqwqwy1l82ia506ch"))))
(properties (properties
`((upstream-name . "DT"))) `((upstream-name . "DT")))
(build-system r-build-system) (build-system r-build-system)
@ -3177,6 +3178,7 @@ using the multicore functionality of the parallel package.")
`(("r-crosstalk" ,r-crosstalk) `(("r-crosstalk" ,r-crosstalk)
("r-htmltools" ,r-htmltools) ("r-htmltools" ,r-htmltools)
("r-htmlwidgets" ,r-htmlwidgets) ("r-htmlwidgets" ,r-htmlwidgets)
("r-jsonlite" ,r-jsonlite)
("r-magrittr" ,r-magrittr) ("r-magrittr" ,r-magrittr)
("r-promises" ,r-promises))) ("r-promises" ,r-promises)))
(home-page "http://rstudio.github.io/DT") (home-page "http://rstudio.github.io/DT")
@ -3315,14 +3317,14 @@ package registries.")
(define-public r-rngtools (define-public r-rngtools
(package (package
(name "r-rngtools") (name "r-rngtools")
(version "1.3.1.1") (version "1.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "rngtools" version)) (uri (cran-uri "rngtools" version))
(sha256 (sha256
(base32 (base32
"0k1nlcxggflq0043m15dfclnqnzchkpw2ik7jk82h4dqwvysiqcr")))) "1kivj594bn774lbn29ws2rmzy2km99sza0j3jqvhal6hwmk27a9s"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-digest" ,r-digest) `(("r-digest" ,r-digest)
@ -4566,19 +4568,19 @@ Farebrother's algorithm or Liu et al.'s algorithm.")
(define-public r-cowplot (define-public r-cowplot
(package (package
(name "r-cowplot") (name "r-cowplot")
(version "0.9.4") (version "1.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "cowplot" version)) (uri (cran-uri "cowplot" version))
(sha256 (sha256
(base32 (base32
"0yvalwalvyddyqk0q66y8361nxlh2cvp3ssazax9g5q89lghjmzv")))) "19cqdhgfyr1wj0fz0c5ly8f0aiy9sfgzq6lzb78hkx0hdp2agybh"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-ggplot2" ,r-ggplot2) `(("r-ggplot2" ,r-ggplot2)
("r-gtable" ,r-gtable) ("r-gtable" ,r-gtable)
("r-plyr" ,r-plyr) ("r-rlang" ,r-rlang)
("r-scales" ,r-scales))) ("r-scales" ,r-scales)))
(home-page "https://github.com/wilkelab/cowplot") (home-page "https://github.com/wilkelab/cowplot")
(synopsis "Streamlined plot theme and plot annotations for ggplot2") (synopsis "Streamlined plot theme and plot annotations for ggplot2")
@ -4640,14 +4642,14 @@ regression.")
(define-public r-fastica (define-public r-fastica
(package (package
(name "r-fastica") (name "r-fastica")
(version "1.2-1") (version "1.2-2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "fastICA" version)) (uri (cran-uri "fastICA" version))
(sha256 (sha256
(base32 (base32
"108z2ymby5y4h8l4l2krqwm28rya93gq09yylgilnm3afvfrfabg")))) "1zpijqcipm0aa3rxj0mys06lskqy4dbppjpxr1aby0j16y9ka8ij"))))
(properties `((upstream-name . "fastICA"))) (properties `((upstream-name . "fastICA")))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/fastICA") (home-page "https://cran.r-project.org/web/packages/fastICA")
@ -4749,14 +4751,14 @@ models, generalized linear models and model-based clustering.")
(define-public r-mclust (define-public r-mclust
(package (package
(name "r-mclust") (name "r-mclust")
(version "5.4.4") (version "5.4.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "mclust" version)) (uri (cran-uri "mclust" version))
(sha256 (sha256
(base32 (base32
"039ymr57bq5327gypizw0v2qb81j6bkqhjdh8yj23qa5sh51phyc")))) "0whandnda1fnjn5k3hgxdbp3b0xr7nlzy1j37saqb536h8q9dwkm"))))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs
`(("gfortran" ,gfortran))) `(("gfortran" ,gfortran)))
@ -4919,14 +4921,14 @@ generally.")
(define-public r-robust (define-public r-robust
(package (package
(name "r-robust") (name "r-robust")
(version "0.4-18") (version "0.4-18.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "robust" version)) (uri (cran-uri "robust" version))
(sha256 (sha256
(base32 (base32
"1b7qh1aff500nd6dh4y2ipmjgdiq8991shflb63pc39vpc0ny6g4")))) "0xs098pfw5zdcdk3rsxkylfl6d2pyp566s5v92bzhgl7h8c90cfy"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-fit-models" ,r-fit-models) `(("r-fit-models" ,r-fit-models)
@ -5025,14 +5027,14 @@ VGLMs can be loosely thought of as multivariate generalised linear models.")
(define-public r-pbapply (define-public r-pbapply
(package (package
(name "r-pbapply") (name "r-pbapply")
(version "1.4-0") (version "1.4-1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "pbapply" version)) (uri (cran-uri "pbapply" version))
(sha256 (sha256
(base32 (base32
"0bn7a9ni36xy5acnrl9ky3gd1k8jr5kxgazzh3pzd1q6bri1nx7k")))) "1bbws9n90cqnnp5k58hp852jwmm6513jnhn4vzhl9f8x314k6qxk"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/psolymos/pbapply") (home-page "https://github.com/psolymos/pbapply")
(synopsis "Adding progress bar to apply functions") (synopsis "Adding progress bar to apply functions")
@ -5138,14 +5140,14 @@ using modular prediction and response module classes.")
(define-public r-quantreg (define-public r-quantreg
(package (package
(name "r-quantreg") (name "r-quantreg")
(version "5.41") (version "5.42.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "quantreg" version)) (uri (cran-uri "quantreg" version))
(sha256 (sha256
(base32 (base32
"110ax3ngn6i94h7iw7ha67kfsmj94hycp7lk62nmyvkp34vpfykh")))) "1aycnghci329yqw63kybv7sfjjx5whq3xs7xzic4wsaj7j4b1hjc"))))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs
`(("gfortran" ,gfortran))) `(("gfortran" ,gfortran)))

View File

@ -57,6 +57,7 @@
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
@ -954,7 +955,7 @@ tmux.")
(define-public kitty (define-public kitty
(package (package
(name "kitty") (name "kitty")
(version "0.14.2") (version "0.14.3")
(home-page "https://sw.kovidgoyal.net/kitty/") (home-page "https://sw.kovidgoyal.net/kitty/")
(source (source
(origin (origin
@ -965,7 +966,7 @@ tmux.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"15iv3k7iryf10n8n67d37x24pzcarq97a3dr42lbld00k1lx19az")) "0wi6b6b1nyp16rcpcghk6by62wy6qsamv1xdymyn0zbqgd8h9n6b"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -984,6 +985,7 @@ tmux.")
`(("python" ,python) `(("python" ,python)
("harfbuzz" ,harfbuzz) ("harfbuzz" ,harfbuzz)
("zlib" ,zlib) ("zlib" ,zlib)
("libcanberra" ,libcanberra)
("libpng" ,libpng) ("libpng" ,libpng)
("freetype" ,freetype) ("freetype" ,freetype)
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)

File diff suppressed because it is too large Load Diff

View File

@ -473,16 +473,18 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(define-public x265 (define-public x265
(package (package
(name "x265") (name "x265")
(version "3.1.1") (version "3.1.2")
(outputs '("out" "static")) (outputs '("out" "static"))
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.videolan.org/videolan/x265/" (uri (list (string-append "https://bitbucket.org/multicoreware/x265"
"x265_" version ".tar.gz")) "/downloads/x265_" version ".tar.gz")
(string-append "https://download.videolan.org/videolan/x265/"
"x265_" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1l68lgdbsi4wjz5vad98ggx7mf92rnvzlq34m6w0a08ark3h0yc2")) "1ajr59gjj47gnczfb2qhmzclj746pdiq9a1d81b0mq22k8f5yy3g"))
(patches (search-patches "x265-arm-flags.patch")) (patches (search-patches "x265-arm-flags.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
@ -790,17 +792,18 @@ operate properly.")
(define-public ffmpeg (define-public ffmpeg
(package (package
(name "ffmpeg") (name "ffmpeg")
(version "4.1.4") (version "4.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1qd7a10gs12ifcp31gramcgqjl77swskjfp7cijibgyg5yl4kw7i")))) "1mgcxm7sqkajx35px05szsmn9mawwm03cfpmk3br7bcp3a1i0gq2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("fontconfig" ,fontconfig) `(("dav1d" ,dav1d)
("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
("frei0r-plugins" ,frei0r-plugins) ("frei0r-plugins" ,frei0r-plugins)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
@ -899,6 +902,7 @@ operate properly.")
"--enable-libbluray" "--enable-libbluray"
"--enable-libcaca" "--enable-libcaca"
"--enable-libcdio" "--enable-libcdio"
"--enable-libdav1d"
"--enable-libfreetype" "--enable-libfreetype"
"--enable-libmp3lame" "--enable-libmp3lame"
"--enable-libopus" "--enable-libopus"
@ -981,9 +985,10 @@ audio/video codec library.")
(arguments (arguments
(substitute-keyword-arguments (package-arguments ffmpeg) (substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags flags) ((#:configure-flags flags)
`(delete "--enable-libaom" ,flags)))) `(delete "--enable-libdav1d" (delete "--enable-libaom"
(inputs (alist-delete "libaom" ,flags)))))
(package-inputs ffmpeg))))) (inputs (alist-delete "dav1d" (alist-delete "libaom"
(package-inputs ffmpeg))))))
(define-public ffmpeg-for-stepmania (define-public ffmpeg-for-stepmania
(hidden-package (hidden-package
@ -2061,12 +2066,6 @@ capabilities.")
("libass" ,libass) ("libass" ,libass)
("tesseract-ocr" ,tesseract-ocr) ("tesseract-ocr" ,tesseract-ocr)
("zimg" ,zimg))) ("zimg" ,zimg)))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(invoke "sh" "autogen.sh"))))))
(home-page "http://www.vapoursynth.com/") (home-page "http://www.vapoursynth.com/")
(synopsis "Video processing framework") (synopsis "Video processing framework")
(description "VapourSynth is a C++ library and Python module for video (description "VapourSynth is a C++ library and Python module for video
@ -2509,12 +2508,6 @@ Other features include a live preview and live streaming.")
(base32 (base32
"18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn")))) "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen.sh
(lambda _
(invoke "sh" "autogen.sh"))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake))) ("automake" ,automake)))
@ -2894,10 +2887,7 @@ practically any type of media.")
(add-after 'unpack 'change-to-build-dir (add-after 'unpack 'change-to-build-dir
(lambda _ (lambda _
(chdir "Project/GNU/Library") (chdir "Project/GNU/Library")
#t)) #t)))))
(add-after 'change-to-build-dir 'autogen
(lambda _
(invoke "sh" "autogen.sh"))))))
(home-page "https://mediaarea.net/en/MediaInfo") (home-page "https://mediaarea.net/en/MediaInfo")
(synopsis "Library for retrieving media metadata") (synopsis "Library for retrieving media metadata")
(description "MediaInfo is a library used for retrieving technical (description "MediaInfo is a library used for retrieving technical

View File

@ -390,16 +390,14 @@ manage system or application containers.")
(define-public libvirt (define-public libvirt
(package (package
(name "libvirt") (name "libvirt")
(version "5.5.0") (version "5.6.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-" (uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3")) (base32 "1d5rmcx5fgb024hw8chbiv886n3jal5wp2yajjk5l4qh9s9gkx35"))))
(patches
(search-patches "libvirt-remove-ATTRIBUTE_UNUSED.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -523,15 +521,15 @@ three libraries:
(define-public python-libvirt (define-public python-libvirt
(package (package
(name "python-libvirt") (name "python-libvirt")
(version "5.5.0") (version "5.6.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
;; The latest version hosted on PyPI at 5.5.0 release time was 5.3.0. ;; The latest version hosted on PyPI at 5.6.0 release time was 5.5.0.
(uri (string-append "https://libvirt.org/sources/python/libvirt-python-" (uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "00x6idyw9xrrr21vrnsyw37q2sd8yh4n6pwh0l28hh9yp3nsy72n")))) (base32 "11i440aibykxw22fzyavmrvn67s8rmnijw5bag0yx9r8jpnkzwad"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net> ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
@ -227,11 +227,6 @@ the entire VPN in a network namespace accessible only through SSH.")
("automake" ,automake))) ("automake" ,automake)))
(inputs (inputs
`(("libevent" ,libevent))) `(("libevent" ,libevent)))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _ (invoke "sh" "autogen.sh"))))))
(home-page "https://github.com/cernekee/ocproxy") (home-page "https://github.com/cernekee/ocproxy")
(synopsis "OpenConnect proxy") (synopsis "OpenConnect proxy")
(description (description
@ -252,11 +247,12 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer
(sha256 (base32 (sha256 (base32
"1wlypi68kqqg2mdck8wvf6aanhrmf9i7z6lngyxvcrp23jdzz34h")))) "1wlypi68kqqg2mdck8wvf6aanhrmf9i7z6lngyxvcrp23jdzz34h"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (propagated-inputs
`(("libxml2" ,libxml2) `(("libxml2" ,libxml2)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("vpnc-scripts" ,vpnc-scripts)
("zlib" ,zlib))) ("zlib" ,zlib)))
(inputs
`(("vpnc-scripts" ,vpnc-scripts)))
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))

View File

@ -131,20 +131,19 @@ the leaves of a full binary tree.")
(define-public i3status (define-public i3status
(package (package
(name "i3status") (name "i3status")
(version "2.12") (version "2.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://i3wm.org/i3status/i3status-" (uri (string-append "https://i3wm.org/i3status/i3status-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg")))) "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) `(;; XXX: Do an "out of source" build to work around
#:phases ;; <https://github.com/i3/i3status/issues/339>.
(modify-phases %standard-phases #:out-of-source? #t
(delete 'configure))
#:tests? #f)) ; no test suite #:tests? #f)) ; no test suite
(inputs (inputs
`(("openlibm" ,openlibm) `(("openlibm" ,openlibm)
@ -156,7 +155,10 @@ the leaves of a full binary tree.")
("libcap" ,libcap) ("libcap" ,libcap)
("asciidoc" ,asciidoc))) ("asciidoc" ,asciidoc)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)
("docbook-xsl" ,docbook-xsl)
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
("xmlto" ,xmlto)))
(home-page "https://i3wm.org/i3status/") (home-page "https://i3wm.org/i3status/")
(synopsis "Status bar for i3bar, dzen2, xmobar or similar programs") (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
(description "i3status is a small program for generating a status bar for (description "i3status is a small program for generating a status bar for
@ -171,14 +173,14 @@ commands would.")
(define-public i3-wm (define-public i3-wm
(package (package
(name "i3-wm") (name "i3-wm")
(version "4.16.1") (version "4.17")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://i3wm.org/downloads/i3-" (uri (string-append "https://i3wm.org/downloads/i3-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0xl56y196vxv001gvx35xwfr25zah8m3xwizp9ycdgdc0rfc4rdb")))) "1z8qmkkq9dhqmqy8sjw3rnpnmnb8v7lr456bs0qzp23bgpj17gjf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -288,8 +290,6 @@ Despite the name it should work with any X11 window manager.")
(arguments (arguments
`(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _ (invoke "sh" "autogen.sh")))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))

View File

@ -2909,8 +2909,8 @@ X server.")
(define-public xf86-video-intel (define-public xf86-video-intel
(let ((commit "6afed33b2d673d88674f0c76efe500ae414e8e1b") (let ((commit "6f4972d5c368c30e971a23c1dc370d3e43761282")
(revision "13")) (revision "14"))
(package (package
(name "xf86-video-intel") (name "xf86-video-intel")
(version (git-version "2.99.917" revision commit)) (version (git-version "2.99.917" revision commit))
@ -2923,7 +2923,7 @@ X server.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"1s3fqlqzmql7s15m7qy21vai93n6q9f0ccpv0p353rwfx16mmf35")) "0bc46qqglzfm4g9q4c2vgynvps2ng0xvlxnjpm9d6z4q6scdhz59"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("mesa" ,mesa) (inputs `(("mesa" ,mesa)

View File

@ -19,8 +19,10 @@
(define-module (gnu tests reconfigure) (define-module (gnu tests reconfigure)
#:use-module (gnu bootloader) #:use-module (gnu bootloader)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (gnu system vm)
#:use-module (gnu system) #:use-module (gnu system)
#:use-module (gnu system accounts)
#:use-module (gnu system shadow)
#:use-module (gnu system vm)
#:use-module (gnu tests) #:use-module (gnu tests)
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -43,7 +45,13 @@
generation of the system profile." generation of the system profile."
(define os (define os
(marionette-operating-system (marionette-operating-system
(simple-operating-system) (operating-system
(inherit (simple-operating-system))
(users (cons (user-account
(name "jakob")
(group "users")
(home-directory "/home/jakob"))
%base-user-accounts)))
#:imported-modules '((gnu services herd) #:imported-modules '((gnu services herd)
(guix combinators)))) (guix combinators))))
@ -84,7 +92,25 @@ generation of the system profile."
(test-equal "script created new generation" (test-equal "script created new generation"
(length (system-generations marionette)) (length (system-generations marionette))
(1+ (length generations-prior)))) (1+ (length generations-prior)))
(test-assert "script activated the new generation"
(and (eqv? 'symlink
(marionette-eval
'(stat:type (lstat "/run/current-system"))
marionette))
(string= #$os
(marionette-eval
'(readlink "/run/current-system")
marionette))))
(test-assert "script activated user accounts"
(marionette-eval
'(string-contains (call-with-input-file "/etc/passwd"
(lambda (port)
(get-string-all port)))
"jakob")
marionette)))
(test-end) (test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0))))) (exit (= (test-runner-fail-count (test-runner-current)) 0)))))

View File

@ -30,6 +30,7 @@
texlive-build texlive-build
texlive-build-system texlive-build-system
texlive-ref texlive-ref
texlive-origin
%texlive-tag %texlive-tag
%texlive-revision)) %texlive-revision))
@ -44,6 +45,20 @@
(define %texlive-tag "texlive-2018.2") (define %texlive-tag "texlive-2018.2")
(define %texlive-revision 49435) (define %texlive-revision 49435)
(define (texlive-origin name version locations hash)
"Return an <origin> object for a TeX Live package consisting of multiple
LOCATIONS with a provided HASH. Use NAME and VERSION to compute a prettier
name for the checkout directory."
(origin
(method svn-multi-fetch)
(uri (svn-multi-reference
(url (string-append "svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"))
(locations locations)
(revision %texlive-revision)))
(file-name (string-append name "-" version "-checkout"))
(sha256 hash)))
(define (texlive-ref component id) (define (texlive-ref component id)
"Return a <svn-reference> object for the package ID, which is part of the "Return a <svn-reference> object for the package ID, which is part of the
given Texlive COMPONENT." given Texlive COMPONENT."

View File

@ -36,7 +36,7 @@
"Fetch REVISION from URL into DIRECTORY. REVISION must be an integer, and a "Fetch REVISION from URL into DIRECTORY. REVISION must be an integer, and a
valid Subversion revision. Return #t on success, #f otherwise." valid Subversion revision. Return #t on success, #f otherwise."
(apply invoke svn-command (apply invoke svn-command
"checkout" "--non-interactive" "export" "--non-interactive"
;; Trust the server certificate. This is OK as we ;; Trust the server certificate. This is OK as we
;; verify the checksum later. This can be removed when ;; verify the checksum later. This can be removed when
;; ca-certificates package is added. ;; ca-certificates package is added.
@ -46,13 +46,6 @@ valid Subversion revision. Return #t on success, #f otherwise."
(string-append "--password=" password)) (string-append "--password=" password))
'()) '())
,url ,directory)) ,url ,directory))
;; The contents of '.svn' vary as a function of the current status
;; of the repo. Since we want a fixed output, this directory needs
;; to be taken out.
(with-directory-excursion directory
(for-each delete-file-recursively (find-files "." "^\\.svn$" #:directories? #t)))
#t) #t)
;;; svn.scm ends here ;;; svn.scm ends here

View File

@ -19,6 +19,7 @@
(define-module (guix scripts deploy) (define-module (guix scripts deploy)
#:use-module (gnu machine) #:use-module (gnu machine)
#:use-module (guix discovery)
#:use-module (guix scripts) #:use-module (guix scripts)
#:use-module (guix scripts build) #:use-module (guix scripts build)
#:use-module (guix store) #:use-module (guix store)
@ -74,7 +75,10 @@ Perform the deployment specified by FILE.\n"))
(define (load-source-file file) (define (load-source-file file)
"Load FILE as a user module." "Load FILE as a user module."
(let ((module (make-user-module '((gnu) (gnu machine) (gnu machine ssh))))) (let* ((guix-path (dirname (search-path %load-path "guix.scm")))
(environment-modules (scheme-modules* guix-path "gnu/machine"))
(module (make-user-module (append '((gnu) (gnu machine))
environment-modules))))
(load* file module))) (load* file module)))
(define (guix-deploy . args) (define (guix-deploy . args)

View File

@ -195,21 +195,31 @@ BOOTLOADER-PACKAGE."
(srfi srfi-34) (srfi srfi-34)
(srfi srfi-35)) (srfi srfi-35))
(let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg")) (let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg"))
(temp-gc-root (string-append gc-root ".new"))) (new-gc-root (string-append gc-root ".new")))
(switch-symlinks temp-gc-root gc-root) ;; #$bootcfg has dependencies.
(install-boot-config #$bootcfg #$bootcfg-file #$target) ;; The bootloader magically loads the configuration from
;; (string-append #$target #$bootcfg-file) (for example
;; "/boot/grub/grub.cfg").
;; If we didn't do something special, the garbage collector
;; would remove the dependencies of #$bootcfg.
;; Register #$bootcfg as a GC root.
;; Preserve the previous activation's garbage collector root ;; Preserve the previous activation's garbage collector root
;; until the bootloader installer has run, so that a failure in ;; until the bootloader installer has run, so that a failure in
;; the bootloader's installer script doesn't leave the user with ;; the bootloader's installer script doesn't leave the user with
;; a broken installation. ;; a broken installation.
(switch-symlinks new-gc-root #$bootcfg)
(install-boot-config #$bootcfg #$bootcfg-file #$target)
(when #$installer (when #$installer
(catch #t (catch #t
(lambda () (lambda ()
(#$installer #$bootloader-package #$device #$target)) (#$installer #$bootloader-package #$device #$target))
(lambda args (lambda args
(delete-file temp-gc-root) (delete-file new-gc-root)
(apply throw args)))) (apply throw args))))
(rename-file temp-gc-root gc-root))))))) ;; We are sure that the installation of the bootloader
;; succeeded, so we can replace the old GC root by the new
;; GC root now.
(rename-file new-gc-root gc-root)))))))
(define* (install-bootloader eval configuration bootcfg (define* (install-bootloader eval configuration bootcfg
#:key #:key

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -32,7 +32,14 @@
svn-reference-url svn-reference-url
svn-reference-revision svn-reference-revision
svn-fetch svn-fetch
download-svn-to-store)) download-svn-to-store
svn-multi-reference
svn-multi-reference?
svn-multi-reference-url
svn-multi-reference-revision
svn-multi-reference-locations
svn-multi-fetch))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -83,6 +90,54 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
#:guile-for-build guile #:guile-for-build guile
#:local-build? #t))) #:local-build? #t)))
(define-record-type* <svn-multi-reference>
svn-multi-reference make-svn-multi-reference
svn-multi-reference?
(url svn-multi-reference-url) ; string
(revision svn-multi-reference-revision) ; number
(locations svn-multi-reference-locations) ; list of strings
(user-name svn-multi-reference-user-name (default #f))
(password svn-multi-reference-password (default #f)))
(define* (svn-multi-fetch ref hash-algo hash
#:optional name
#:key (system (%current-system)) (guile (default-guile))
(svn (subversion-package)))
"Return a fixed-output derivation that fetches REF, a <svn-multi-reference>
object. The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define build
(with-imported-modules '((guix build svn)
(guix build utils))
#~(begin
(use-modules (guix build svn)
(guix build utils)
(srfi srfi-1))
(every (lambda (location)
;; The directory must exist if we are to fetch only a
;; single file.
(unless (string-suffix? "/" location)
(mkdir-p (string-append #$output "/" (dirname location))))
(svn-fetch (string-append '#$(svn-multi-reference-url ref)
"/" location)
'#$(svn-multi-reference-revision ref)
(if (string-suffix? "/" location)
(string-append #$output "/" location)
(string-append #$output "/" (dirname location)))
#:svn-command (string-append #+svn "/bin/svn")
#:user-name #$(svn-multi-reference-user-name ref)
#:password #$(svn-multi-reference-password ref)))
'#$(svn-multi-reference-locations ref)))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "svn-checkout") build
#:system system
#:hash-algo hash-algo
#:hash hash
#:recursive? #t
#:guile-for-build guile
#:local-build? #t)))
(define* (download-svn-to-store store ref (define* (download-svn-to-store store ref
#:optional (name (basename (svn-reference-url ref))) #:optional (name (basename (svn-reference-url ref)))
#:key (log (current-error-port))) #:key (log (current-error-port)))