Merge branch 'master' into staging
commit
8e7f97b9ff
|
@ -25510,7 +25510,7 @@ evaluates to. As an example, @var{file} might contain a definition like this:
|
|||
%base-services))))
|
||||
|
||||
(list (machine
|
||||
(system %system)
|
||||
(operating-system %system)
|
||||
(environment managed-host-environment-type)
|
||||
(configuration (machine-ssh-configuration
|
||||
(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
|
||||
@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
|
||||
This is the data type representing a single machine in a heterogeneous Guix
|
||||
deployment.
|
||||
|
||||
@table @asis
|
||||
@item @code{system}
|
||||
@item @code{operating-system}
|
||||
The object of the operating system configuration to deploy.
|
||||
|
||||
@item @code{environment}
|
||||
|
|
|
@ -772,6 +772,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/elfutils-tests-ptrace.patch \
|
||||
%D%/packages/patches/elixir-path-length.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-fix-scheme-indent-function.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/libmad-armv7-thumb-pt1.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/libmygpo-qt-fix-qt-5.11.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-remove-damaging-includes.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-use-after-free-in-postproc.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/sssd-curl-compat.patch \
|
||||
%D%/packages/patches/steghide-fixes.patch \
|
||||
%D%/packages/patches/strace-ipc-tests.patch \
|
||||
%D%/packages/patches/streamlink-update-test.patch \
|
||||
%D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \
|
||||
%D%/packages/patches/superlu-dist-awpm-grid.patch \
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
machine?
|
||||
this-machine
|
||||
|
||||
machine-system
|
||||
machine-operating-system
|
||||
machine-environment
|
||||
machine-configuration
|
||||
machine-display-name
|
||||
|
@ -85,14 +85,14 @@
|
|||
make-machine
|
||||
machine?
|
||||
this-machine
|
||||
(system machine-system) ; <operating-system>
|
||||
(environment machine-environment) ; symbol
|
||||
(configuration machine-configuration ; configuration object
|
||||
(default #f))) ; specific to environment
|
||||
(operating-system machine-operating-system) ; <operating-system>
|
||||
(environment machine-environment) ; symbol
|
||||
(configuration machine-configuration ; configuration object
|
||||
(default #f))) ; specific to environment
|
||||
|
||||
(define (machine-display-name 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)
|
||||
"Evaluate EXP, a gexp, on MACHINE. Ensure that all the elements EXP refers to
|
||||
|
|
|
@ -20,6 +20,9 @@
|
|||
#:use-module (gnu machine)
|
||||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#: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 i18n)
|
||||
#:use-module (guix modules)
|
||||
|
@ -29,6 +32,7 @@
|
|||
#:use-module (guix scripts system reconfigure)
|
||||
#:use-module (guix ssh)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-26)
|
||||
|
@ -40,6 +44,7 @@
|
|||
machine-ssh-configuration
|
||||
|
||||
machine-ssh-configuration-host-name
|
||||
machine-ssh-configuration-build-locally?
|
||||
machine-ssh-configuration-port
|
||||
machine-ssh-configuration-user
|
||||
machine-ssh-configuration-session))
|
||||
|
@ -62,15 +67,17 @@
|
|||
make-machine-ssh-configuration
|
||||
machine-ssh-configuration?
|
||||
this-machine-ssh-configuration
|
||||
(host-name machine-ssh-configuration-host-name) ; string
|
||||
(port machine-ssh-configuration-port ; integer
|
||||
(default 22))
|
||||
(user machine-ssh-configuration-user ; string
|
||||
(default "root"))
|
||||
(identity machine-ssh-configuration-identity ; path to a private key
|
||||
(default #f))
|
||||
(session machine-ssh-configuration-session ; session
|
||||
(default #f)))
|
||||
(host-name machine-ssh-configuration-host-name) ; string
|
||||
(build-locally? machine-ssh-configuration-build-locally?
|
||||
(default #t))
|
||||
(port machine-ssh-configuration-port ; integer
|
||||
(default 22))
|
||||
(user machine-ssh-configuration-user ; string
|
||||
(default "root"))
|
||||
(identity machine-ssh-configuration-identity ; path to a private key
|
||||
(default #f))
|
||||
(session machine-ssh-configuration-session ; session
|
||||
(default #f)))
|
||||
|
||||
(define (machine-ssh-session machine)
|
||||
"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
|
||||
an environment type of 'managed-host."
|
||||
(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
|
||||
environment type of 'managed-host."
|
||||
(maybe-raise-unsupported-configuration-error machine)
|
||||
(mlet %store-monad ((boot-parameters (machine-boot-parameters machine)))
|
||||
(let* ((os (machine-system machine))
|
||||
(mlet %store-monad ((_ (check-deployment-sanity machine))
|
||||
(boot-parameters (machine-boot-parameters machine)))
|
||||
(let* ((os (machine-operating-system machine))
|
||||
(eval (cut machine-remote-eval machine <>))
|
||||
(menu-entries (map boot-parameters->menu-entry boot-parameters))
|
||||
(bootloader-configuration (operating-system-bootloader os))
|
||||
|
|
|
@ -1181,7 +1181,7 @@ commands and their arguments.")
|
|||
(define-public wpa-supplicant-minimal
|
||||
(package
|
||||
(name "wpa-supplicant-minimal")
|
||||
(version "2.8")
|
||||
(version "2.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1189,7 +1189,7 @@ commands and their arguments.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15ixzm347n8w6gdvi3j3yks3i15qmp6by9ayvswm34d929m372d6"))
|
||||
"05qzak1mssnxcgdrafifxh9w86a4ha69qabkg4bsigk499xyxggw"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -2606,7 +2606,7 @@ buffers.")
|
|||
`(#:tests? #f ; many of the tests try to load kernel modules
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
;; Don't run configure in this phase.
|
||||
(setenv "NOCONFIGURE" "1")
|
||||
|
|
|
@ -236,8 +236,7 @@ the real span of the lattice.")
|
|||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("texlive" ,(texlive-union
|
||||
(list texlive-fonts-amsfonts
|
||||
texlive-latex-amsfonts)))))
|
||||
(list texlive-amsfonts)))))
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("libx11" ,libx11)
|
||||
("perl" ,perl)
|
||||
|
|
|
@ -3700,7 +3700,7 @@ library.")
|
|||
(define-public faudio
|
||||
(package
|
||||
(name "faudio")
|
||||
(version "19.07")
|
||||
(version "19.08")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -3709,7 +3709,7 @@ library.")
|
|||
(commit version)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32 "1wf6skc5agaikc9qgwk8bx56sad31fafs53lqqn4jmx8i76pl0lw"))))
|
||||
(base32 "1v13kfhyr46241vb6a4dcb4gw5f149525sprwa9cj4rv6wlcqgm5"))))
|
||||
(arguments
|
||||
'(#:tests? #f ; No tests.
|
||||
#:configure-flags '("-DFFMPEG=ON")))
|
||||
|
|
|
@ -1212,14 +1212,14 @@ determining dependencies between variables, code improvement suggestions.")
|
|||
(define-public r-chippeakanno
|
||||
(package
|
||||
(name "r-chippeakanno")
|
||||
(version "3.18.1")
|
||||
(version "3.18.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ChIPpeakAnno" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mwi5s600c3jxy8f1azfrndc3g06qvhbmrp9wqac9nwjbfx1kfji"))))
|
||||
"0wzwdxvvr7wknz5jnan0wsp81c1gv4d2qx0mrb1yybqf4z068779"))))
|
||||
(properties `((upstream-name . "ChIPpeakAnno")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -1521,14 +1521,14 @@ experiments.")
|
|||
(define-public r-genomicinteractions
|
||||
(package
|
||||
(name "r-genomicinteractions")
|
||||
(version "1.18.0")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicInteractions" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ipvm3c1cqd46n60lsrqzf6fx4b3lwia57jyfx9wcqqg205qj73b"))))
|
||||
"0hq2n5yfr9h2ayn10dy9lz08gd2q0awrm5cy2kqdmz4d8ss4r94p"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicInteractions")))
|
||||
(build-system r-build-system)
|
||||
|
@ -3529,14 +3529,14 @@ position-specific scores within R and Bioconductor.")
|
|||
(define-public r-atacseqqc
|
||||
(package
|
||||
(name "r-atacseqqc")
|
||||
(version "1.8.1")
|
||||
(version "1.8.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ATACseqQC" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0h5j3724hnd86w22vy3whqx6gkf0nf2dxd2clgzdvjzblbcd5s69"))))
|
||||
"1i8f0vs0z4jbc2yvj1diay7jhcmb1a82zv96xllk771f25nvmmxp"))))
|
||||
(properties `((upstream-name . "ATACseqQC")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -3621,14 +3621,14 @@ annotations and ontologies.")
|
|||
(define-public r-abaenrichment
|
||||
(package
|
||||
(name "r-abaenrichment")
|
||||
(version "1.14.0")
|
||||
(version "1.14.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ABAEnrichment" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0av1dysk7qa8c4a0pp7yq89k8c4y40d2gyvsb8f27slvv2i3aad2"))))
|
||||
"1w322wsp6bd3gyfwzgdf088cvfmpq774knr57d0dj420ljf4xn48"))))
|
||||
(properties `((upstream-name . "ABAEnrichment")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -4841,14 +4841,14 @@ annotations.")
|
|||
(define-public r-rsubread
|
||||
(package
|
||||
(name "r-rsubread")
|
||||
(version "1.34.4")
|
||||
(version "1.34.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Rsubread" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1230p8nsakifmpsqfiaj8rpm7npa8ab903mfjmayfa71n6yzvcbs"))))
|
||||
"0nnfh4hnrs5kd72m8c50cidbsxjz12szw2vynpmg8q0wpd99q550"))))
|
||||
(properties `((upstream-name . "Rsubread")))
|
||||
(build-system r-build-system)
|
||||
(inputs `(("zlib" ,zlib)))
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
|
||||
;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
|
||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
|
||||
;;;
|
||||
;;; 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
|
||||
(add-after 'unpack 'set-cc
|
||||
(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
|
||||
`(("python-cython" ,python-cython)
|
||||
("python-pytest" ,python-pytest)
|
||||
|
@ -7450,13 +7458,13 @@ names in their natural, rather than lexicographic, order.")
|
|||
(define-public r-edger
|
||||
(package
|
||||
(name "r-edger")
|
||||
(version "3.26.5")
|
||||
(version "3.26.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "edgeR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0iba4krz30dx5b0s89n5cfkwn64867s7vmvvfqms9lbcr4kj439m"))))
|
||||
"17vadhamjv4x0l4qqq2p2fi6j2bkllz5zd8dq761vgd5ic23zizm"))))
|
||||
(properties `((upstream-name . "edgeR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -7517,13 +7525,13 @@ coding changes and predict coding outcomes.")
|
|||
(define-public r-limma
|
||||
(package
|
||||
(name "r-limma")
|
||||
(version "3.40.2")
|
||||
(version "3.40.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "limma" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1d4ig2b7fa9mwja52isxrwmprfdjdk1mlcf2skhdp51l24z6wbk7"))))
|
||||
"166z8cdh6w90rldqqaar7hyaskwiy4smawjfbn4sn58clv6q3mp8"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://bioinf.wehi.edu.au/limma")
|
||||
(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
|
||||
(package
|
||||
(name "r-biomart")
|
||||
(version "2.40.1")
|
||||
(version "2.40.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "biomaRt" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1abl0c4qbhfqf9ixdp74183phm7s8rszrr5ldczm59b8vyng8rhx"))))
|
||||
"022m1r44s00c5k9bmv0lr22lcn662nhc91aazvv0yyysxjamyf60"))))
|
||||
(properties
|
||||
`((upstream-name . "biomaRt")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7811,13 +7819,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
|
|||
(define-public r-summarizedexperiment
|
||||
(package
|
||||
(name "r-summarizedexperiment")
|
||||
(version "1.14.0")
|
||||
(version "1.14.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "SummarizedExperiment" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ypk63pdml89y81pr41i2zq0fimsaxsa5lgpg6xs5cwikyaq0pci"))))
|
||||
"0bhwgzrdipr0qjzc4j0qspqprx3v1rvshmx4j6506dv43pqlgp3f"))))
|
||||
(properties
|
||||
`((upstream-name . "SummarizedExperiment")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7875,13 +7883,13 @@ alignments.")
|
|||
(define-public r-rtracklayer
|
||||
(package
|
||||
(name "r-rtracklayer")
|
||||
(version "1.44.0")
|
||||
(version "1.44.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "rtracklayer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"161gcks9b12993g9k27gf7wfh8lgd8m8rr7x2slgfqqssk0yrmpd"))))
|
||||
"03b4rfsbzjjf5kxcsjv7kq8hrsgcvz9rfzcn2v7fx3nr818pbb8s"))))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -7922,13 +7930,13 @@ as well as query and modify the browser state, such as the current viewport.")
|
|||
(define-public r-genomicfeatures
|
||||
(package
|
||||
(name "r-genomicfeatures")
|
||||
(version "1.36.3")
|
||||
(version "1.36.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicFeatures" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zkd57i5qjxsravv0gbyckc0wrnqzgxd61ibh3jmhmrccrr9ihn3"))))
|
||||
"0mzqv8pyxx5nwchyx3radym9ws2f9hb50xc9abjsjs4w4pv91j3k"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicFeatures")))
|
||||
(build-system r-build-system)
|
||||
|
@ -8346,13 +8354,13 @@ paired-end data.")
|
|||
(define-public r-rcas
|
||||
(package
|
||||
(name "r-rcas")
|
||||
(version "1.10.0")
|
||||
(version "1.10.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "RCAS" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1h4vf5gzilqbdrd8m9l3zc2m4sca8cir8366a7njgd558k7ld5kl"))))
|
||||
"06z5zmdi34jblw37z6ff8hb6lvvi0chwr37acwqfn8d27ax9lakz"))))
|
||||
(properties `((upstream-name . "RCAS")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -9410,14 +9418,14 @@ of mass spectrometry based proteomics data.")
|
|||
(define-public r-msnid
|
||||
(package
|
||||
(name "r-msnid")
|
||||
(version "1.18.0")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "MSnID" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18mp8zacawhfapfwpq8czbswxix2ykvqhwjga54v0a99zg3k87h3"))))
|
||||
"1n49l5mjdz7p4g2nwsbhm1jcj42sv6lsriq77n2imvacsvk0qfmb"))))
|
||||
(properties `((upstream-name . "MSnID")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -195,7 +195,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
|
|||
(build-system python-build-system)
|
||||
;; TODO: Add xfig/transfig for fig2dev utility
|
||||
(inputs
|
||||
`(("texlive" ,(texlive-union (list texlive-latex-amsfonts
|
||||
`(("texlive" ,(texlive-union (list texlive-amsfonts
|
||||
texlive-latex-anysize
|
||||
texlive-latex-appendix
|
||||
texlive-latex-changebar
|
||||
|
@ -219,7 +219,6 @@ by no means limited to these applications.) This package provides XML DTDs.")
|
|||
texlive-latex-url
|
||||
texlive-latex-wasysym
|
||||
|
||||
texlive-fonts-amsfonts
|
||||
texlive-fonts-ec
|
||||
texlive-fonts-rsfs
|
||||
texlive-fonts-stmaryrd
|
||||
|
|
|
@ -63,12 +63,13 @@
|
|||
(arguments '(#:tests? #f))
|
||||
(inputs
|
||||
`(("python-requests" ,python-requests-2.20)
|
||||
("python-docker-pycreds" ,python-docker-pycreds)
|
||||
("python-ipaddress" ,python-ipaddress)
|
||||
("python-paramiko" ,python-paramiko)
|
||||
("python-six" ,python-six)
|
||||
("python-urllib3" ,python-urllib3-1.24)
|
||||
("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/")
|
||||
(synopsis "Python client for Docker")
|
||||
(description "Docker-Py is a Python client for the Docker container
|
||||
|
@ -113,17 +114,11 @@ client.")
|
|||
;; TODO: Tests require running Docker daemon.
|
||||
(arguments '(#:tests? #f))
|
||||
(inputs
|
||||
`(("python2-backport-ssl-match-hostname"
|
||||
,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-pycreds" ,python-docker-pycreds)
|
||||
("python-dockerpty" ,python-dockerpty)
|
||||
("python-docopt" ,python-docopt)
|
||||
("python-ipaddress" ,python-ipaddress)
|
||||
("python-paramiko" ,python-paramiko)
|
||||
("python-jsonschema" ,python-jsonschema-2.6)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-requests" ,python-requests-2.20)
|
||||
|
|
|
@ -3389,6 +3389,76 @@ for the current function or variable in the minibuffer.")
|
|||
completion candidate when using the Company text completion framework.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-multiple-cursors")
|
||||
|
@ -3410,6 +3480,32 @@ completion candidate when using the Company text completion framework.")
|
|||
simultaneous cursors.")
|
||||
(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
|
||||
(package
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-org-trello")
|
||||
|
@ -4604,45 +4732,50 @@ automatically.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-ivy
|
||||
(package
|
||||
(name "emacs-ivy")
|
||||
(version "0.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/abo-abo/swiper.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(info (string-append out "/share/info")))
|
||||
(with-directory-excursion "doc"
|
||||
(invoke "makeinfo" "ivy.texi")
|
||||
(install-file "ivy.info" info)
|
||||
#t)))))))
|
||||
(propagated-inputs
|
||||
`(("emacs-hydra" ,emacs-hydra)))
|
||||
(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
|
||||
;; The latest release version introduced a new feature, swiper-isearch, that
|
||||
;; generally works well but had some noticeable bugs; this later commit
|
||||
;; includes fixes for several of them.
|
||||
(let ((commit "d3e4514fd72f217c704ae18afdf711bb9036a04d")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-ivy")
|
||||
(version (git-version "0.12.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/abo-abo/swiper.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"142axxc6vsl14cfyvzj9csiykxdn7vhw88fy955hzx7av4qfqg4x"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(info (string-append out "/share/info")))
|
||||
(with-directory-excursion "doc"
|
||||
(invoke "makeinfo" "ivy.texi")
|
||||
(install-file "ivy.info" info)
|
||||
#t)))))))
|
||||
(propagated-inputs
|
||||
`(("emacs-hydra" ,emacs-hydra)))
|
||||
(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
|
||||
the best candidate. Instead, the user can navigate candidates with
|
||||
@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
|
||||
expression.")
|
||||
(license license:gpl3+)))
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-ivy-pass
|
||||
(let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
|
||||
|
@ -5228,7 +5361,7 @@ strings, and code folding.")
|
|||
(define-public emacs-nodejs-repl
|
||||
(package
|
||||
(name "emacs-nodejs-repl")
|
||||
(version "0.2.1")
|
||||
(version "0.2.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -5237,7 +5370,7 @@ strings, and code folding.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z"))))
|
||||
"1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/abicky/nodejs-repl.el")
|
||||
(synopsis "Node.js REPL inside Emacs")
|
||||
|
@ -5580,28 +5713,35 @@ environments (virtualenv) inside Emacs.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-highlight-indentation
|
||||
(package
|
||||
(name "emacs-highlight-indentation")
|
||||
(version "0.7.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
|
||||
(synopsis "Highlighting indentation for Emacs")
|
||||
(description "Provides two minor modes to highlight indentation guides in Emacs:
|
||||
;; Last release version is from 2015.
|
||||
(let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-highlight-indentation")
|
||||
(version (git-version "0.7.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"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
|
||||
@item @code{highlight-indentation-mode}, which displays guidelines
|
||||
indentation (space indentation only).
|
||||
@item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point 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).
|
||||
@end enumerate")
|
||||
(license license:gpl2+)))
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public emacs-elpy
|
||||
(package
|
||||
|
@ -5931,7 +6071,7 @@ ack, ag, helm and pt.")
|
|||
(define-public emacs-helm
|
||||
(package
|
||||
(name "emacs-helm")
|
||||
(version "3.2")
|
||||
(version "3.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -5940,7 +6080,7 @@ ack, ag, helm and pt.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "12yyprpgh2by2pd41i4z9gz55fxg0f90x03bfrsf791xwbhf6931"))))
|
||||
(base32 "0fqhw7r9fcsja5d3pgbipw7pkw9nj534faav6hi45413hc3gyv92"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)
|
||||
|
@ -6119,21 +6259,21 @@ xref, etc...) are still available, but with better integration.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-lua-mode
|
||||
(let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
|
||||
(revision "1"))
|
||||
(let ((commit "95c64bb5634035630e8c59d10d4a1d1003265743")
|
||||
(revision "2"))
|
||||
(package
|
||||
(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/")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version ".checkout"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
|
||||
"1mra4db25ds64526dsj8m5yv0kfq3lgggjh1x6xmqypdaryddbcp"))))
|
||||
(build-system emacs-build-system)
|
||||
(synopsis "Major mode for lua")
|
||||
(description
|
||||
|
@ -6399,12 +6539,11 @@ aligning text objects based on separators.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-evil-expat
|
||||
(let ((commit "4c344ea19b789002d759a202ffbf594730d2c59a")
|
||||
(version "0.0.1")
|
||||
(let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-evil-expat")
|
||||
(version (git-version version revision commit))
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -6414,7 +6553,7 @@ aligning text objects based on separators.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"16v7fnldxag6l1lsnrnhdjkga9qi78lbdfbb82k6pmv04991mbkr"))))
|
||||
"0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs `(("emacs-evil" ,emacs-evil)))
|
||||
(home-page "https://github.com/edkolev/evil-expat")
|
||||
|
@ -6587,14 +6726,14 @@ passive voice.")
|
|||
(name "emacs-org")
|
||||
;; emacs-org-contrib inherits from this package. Please update its sha256
|
||||
;; checksum as well.
|
||||
(version "9.2.3")
|
||||
(version "9.2.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://elpa.gnu.org/packages/org-"
|
||||
(uri (string-append "https://elpa.gnu.org/packages/org-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hqy4lns9q5p0l1ylgmlckqprn9sbasszhznanmv0rsh0gzhsbyw"))))
|
||||
"1pid1sykgz83i4ry5n8f270finag6sm7ckqxn5lkikyya43wlzx1"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://orgmode.org/")
|
||||
(synopsis "Outline-based notes management and organizer")
|
||||
|
@ -6608,14 +6747,14 @@ programming and reproducible research.")
|
|||
(package
|
||||
(inherit emacs-org)
|
||||
(name "emacs-org-contrib")
|
||||
(version "20190715")
|
||||
(version "20190805")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yxxkcaxhp5bmjsfdd9pz79rj9s7nb4gj5ci51sh4pf8mimk9542"))))
|
||||
"1mw91hwbqyjq5pyz9hzdhvjlc2bphqpi23yqd3sdk1crpc87s40c"))))
|
||||
(arguments
|
||||
`(#:modules ((guix build emacs-build-system)
|
||||
(guix build utils)
|
||||
|
@ -7159,6 +7298,56 @@ find files owned by packages... And much more, including performing all the
|
|||
above over the network.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-memoize")
|
||||
|
@ -8528,12 +8717,11 @@ the actual transformations.")
|
|||
(license license:gpl2+))))
|
||||
|
||||
(define-public emacs-dired-hacks
|
||||
(let ((commit "2c1234592aee91dcd9401bcd67213e6a4a464fd9")
|
||||
(revision "1"))
|
||||
(let ((commit "886befe113fae397407c804f72c45613d1d43535")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-dired-hacks")
|
||||
(version (string-append "0.0.1-" revision "."
|
||||
(string-take commit 7)))
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -8542,7 +8730,7 @@ the actual transformations.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g7mky41cahpryzj6frdgzdymknpqq7pidzfjj9304887kijmhj3"))))
|
||||
"1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
|
@ -8553,7 +8741,9 @@ the actual transformations.")
|
|||
(synopsis
|
||||
"Collection of useful dired additions")
|
||||
(description
|
||||
"Collection of Emacs dired mode additions:
|
||||
"This package provides the following collection of Emacs dired mode
|
||||
additions:
|
||||
|
||||
@itemize
|
||||
@item dired-avfs
|
||||
@item dired-columns
|
||||
|
@ -8623,6 +8813,32 @@ available key bindings that follow C-x (or as many as space allows given your
|
|||
settings).")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-ws-butler")
|
||||
|
@ -10433,29 +10649,32 @@ as well as functions for navigating between these headings.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-org-super-agenda
|
||||
(package
|
||||
(name "emacs-org-super-agenda")
|
||||
(version "1.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/alphapapa/org-super-agenda")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-org" ,emacs-org)
|
||||
("emacs-dash" ,emacs-dash)
|
||||
("emacs-ht" ,emacs-ht)
|
||||
("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
|
||||
;; emacs-org-sidebar depends on a newer commit than the latest release version.
|
||||
(let ((commit "375bde4ca72494ac88a2a9738754f047fe45cc4e")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-org-super-agenda")
|
||||
(version (git-version "1.1.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/alphapapa/org-super-agenda")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hrwf02fqjm0d9gj146ax67ib76093qpqh7066dcxj2gy20625yj"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-org" ,emacs-org)
|
||||
("emacs-dash" ,emacs-dash)
|
||||
("emacs-ht" ,emacs-ht)
|
||||
("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.")
|
||||
(license license:gpl3+)))
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-org-make-toc
|
||||
(package
|
||||
|
@ -12676,6 +12895,29 @@ When @code{gac-automatically-push-p} is non-nil, it also tries to push to
|
|||
the current upstream.")
|
||||
(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
|
||||
(package
|
||||
(name "emacs-company-restclient")
|
||||
|
@ -13692,12 +13934,11 @@ server with @code{M-x pinentry-start}.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-so-long
|
||||
(let ((commit "3ebe97decdb5cbbfba82ca686e0ad2c7d2722b4a")
|
||||
(version "1.0")
|
||||
(revision "1"))
|
||||
(let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-so-long")
|
||||
(version (git-version version revision commit))
|
||||
(version (git-version "1.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -13707,7 +13948,7 @@ server with @code{M-x pinentry-start}.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fi71g5rsdsi978jz8406k8hvzgnssm9wxar8yqfhs97178r9s5m"))))
|
||||
"0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://www.emacswiki.org/emacs/SoLong")
|
||||
(synopsis "Improve performance in files with long lines")
|
||||
|
@ -14142,7 +14383,7 @@ buffers – other modes on the TODO list).
|
|||
(define-public emacs-magit-todos
|
||||
(package
|
||||
(name "emacs-magit-todos")
|
||||
(version "1.2")
|
||||
(version "1.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -14152,7 +14393,7 @@ buffers – other modes on the TODO list).
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17a18gszbypz82bj36xbfyykc4s9rz83vwmpxvlf65svhd51c0nh"))))
|
||||
"0gfm6wn2a4v5i9lfsvvin0kwpr9n96ddm3z4yf50jd3kg2igzry1"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)
|
||||
|
@ -16189,7 +16430,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
|
|||
(define-public emacs-counsel-etags
|
||||
(package
|
||||
(name "emacs-counsel-etags")
|
||||
(version "1.8.4")
|
||||
(version "1.8.7")
|
||||
(source
|
||||
(origin
|
||||
(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))
|
||||
(sha256
|
||||
(base32
|
||||
"14my9jvxl26a5yn381h5pi5481y9d9gyk7wnxxd0s4sjc964c5h5"))))
|
||||
"0vjcjspfrz1csnmfi6r7p7f070a496adxkqnsxwx1gx8cpylwp1g"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-ivy" ,emacs-ivy)))
|
||||
|
@ -16632,6 +16873,30 @@ provided. Those alternative commands are and bound by default to their
|
|||
corresponding Evil keys.")
|
||||
(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
|
||||
(let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6")
|
||||
(version "1.8")
|
||||
|
|
|
@ -119,8 +119,8 @@
|
|||
|
||||
;; Building from recent Git because the official 5.0 release no longer builds.
|
||||
(define-public dolphin-emu
|
||||
(let ((commit "2c57e709d0f9e4010a4415de4192de887e37f187")
|
||||
(revision "5"))
|
||||
(let ((commit "24718c1a389e4f51db974575cd15c372485b92e2")
|
||||
(revision "6"))
|
||||
(package
|
||||
(name "dolphin-emu")
|
||||
(version (git-version "5.0" revision commit))
|
||||
|
@ -146,7 +146,7 @@
|
|||
#t))
|
||||
(sha256
|
||||
(base32
|
||||
"0aszfdfvs7yg4bmrd3qxwsiz7hx3mrj29f4aw86bz7h9j7hkh57f"))))
|
||||
"1d92rhnw307j3m6swk6bycb8fyc7vw2hfgakd5hpsc4qw65vxfq8"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
|
@ -250,12 +250,6 @@ turbo speed, networked multiplayer, and graphical enhancements.")
|
|||
(base32
|
||||
"02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-after
|
||||
'unpack 'autogen.sh
|
||||
(lambda _
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)))
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
(define-public enchant
|
||||
(package
|
||||
(name "enchant")
|
||||
(version "2.2.4")
|
||||
(version "2.2.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/AbiWord/enchant/releases"
|
||||
|
@ -41,7 +41,7 @@
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1p6a3qmrh8bjzds6x7rg9da0ir44gg804jzkf634h39wsa4vdmpm"))))
|
||||
"0iqwzs11i9fvqdxv5kn0svcn2mzymn657qf3j66lg8dx1nh4xkpz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--disable-static"
|
||||
|
|
|
@ -131,7 +131,12 @@ topology functions.")
|
|||
(gi-typelib-path (getenv "GI_TYPELIB_PATH"))
|
||||
(goa-path (string-append
|
||||
(assoc-ref inputs "gnome-online-accounts")
|
||||
"/lib:"
|
||||
(assoc-ref inputs "gnome-online-accounts:lib")
|
||||
"/lib"))
|
||||
(geocode-glib-path (string-append
|
||||
(assoc-ref inputs "geocode-glib")
|
||||
"/lib"))
|
||||
(webkitgtk-path (string-append
|
||||
(assoc-ref inputs "webkitgtk")
|
||||
"/lib")))
|
||||
|
@ -141,7 +146,8 @@ topology functions.")
|
|||
;; There seems to be no way to embed the path of
|
||||
;; libgoa-1.0.so.0, libwebkit2gtk-4.0.so.37 and
|
||||
;; 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))))))
|
||||
(native-inputs
|
||||
`(("gobject-introspection" ,gobject-introspection)
|
||||
|
@ -163,6 +169,7 @@ topology functions.")
|
|||
("gjs" ,gjs)
|
||||
("glib" ,glib)
|
||||
("gnome-online-accounts" ,gnome-online-accounts)
|
||||
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||
("rest" ,rest)
|
||||
("webkitgtk" ,webkitgtk)))
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
|
||||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -8152,15 +8153,18 @@ advanced image management tool")
|
|||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||
("python2-pycairo" ,python2-pycairo)
|
||||
("python2-pygobject" ,python2-pygobject)
|
||||
("python2-psutil" ,python2-psutil)
|
||||
("vte" ,vte)))
|
||||
(propagated-inputs
|
||||
;; Terminator refuses to start when these are not present.
|
||||
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
|
||||
(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
|
||||
(modify-phases %standard-phases
|
||||
(add-after
|
||||
|
@ -8171,10 +8175,60 @@ advanced image management tool")
|
|||
(wrap-program prog
|
||||
`("PYTHONPATH" = (,(getenv "PYTHONPATH")))
|
||||
`("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/")
|
||||
(synopsis "Store and run multiple GNOME terminals in one window")
|
||||
(description
|
||||
"Terminator allows you to run multiple GNOME terminals in a grid and
|
||||
+tabs, and it supports drag and drop re-ordering of terminals.")
|
||||
(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+)))
|
||||
|
|
|
@ -595,9 +595,6 @@ collection of tools for doing simple manipulations of TIFF images.")
|
|||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(invoke "sh" "autobuild")))
|
||||
(add-after 'unpack 'patch-reg-wrapper
|
||||
(lambda _
|
||||
(substitute* "prog/reg_wrapper.sh"
|
||||
|
@ -1108,14 +1105,14 @@ channels.")
|
|||
(define-public exiv2
|
||||
(package
|
||||
(name "exiv2")
|
||||
(version "0.27.1")
|
||||
(version "0.27.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.exiv2.org/builds/exiv2-" version
|
||||
"-Source.tar.gz"))
|
||||
(sha256
|
||||
(base32 "109hbfk63dh14fz20ivq20gcclb9jj9jmh48w4lcn6zxh1ljh9gi"))))
|
||||
(base32 "0gqminvj14xm3rgbnydbywf22608js80rp7nmxxk4497j5mzali6"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments '(#:tests? #f)) ; no test suite
|
||||
(propagated-inputs
|
||||
|
@ -1240,12 +1237,6 @@ ISO/IEC 15444-1).")
|
|||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
(synopsis "Scaling, colorspace conversion, and dithering library")
|
||||
(description "Zimg implements the commonly required image processing basics
|
||||
of scaling, colorspace conversion, and depth conversion. A simple API enables
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
(define-public libevent
|
||||
(package
|
||||
(name "libevent")
|
||||
(version "2.1.10")
|
||||
(version "2.1.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -49,7 +49,7 @@
|
|||
version "-stable/libevent-" version "-stable.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1c25928gdv495clxk2v1d4gkr5py7ack4gx2n7d13frnld0syr78"))))
|
||||
"0g988zqm45sj1hlhhz4il5z4dpi5dl74hzjwzl4md37a09iaqnx6"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; This skips some of the tests which fail on armhf and aarch64.
|
||||
|
|
|
@ -350,42 +350,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
"linux-" version ".tar.xz"))
|
||||
(sha256 hash)))
|
||||
|
||||
(define-public linux-libre-5.2-version "5.2.5")
|
||||
(define-public linux-libre-5.2-version "5.2.7")
|
||||
(define-public linux-libre-5.2-pristine-source
|
||||
(let ((version linux-libre-5.2-version)
|
||||
(hash (base32 "15ndscsp3yqgas901g6inpmyvinz4cwr5y3md516j2pr8cl40if6")))
|
||||
(hash (base32 "1aazhf0v8bv4py0wnqkdmiy80fchnix431l0hda2fkwsdf9njgnv")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "0pfjwpa6szvdr941y13806hlsgsbslfsvkrd5534p1iip5h8g63m")))
|
||||
(hash (base32 "1pyyhr2airxzk4c6n7140yl723dc7yw7igy5i5i2ih0nd4c3k6g5")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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
|
||||
(let ((version linux-libre-4.14-version)
|
||||
(hash (base32 "0x2v0pj4hjb71qkxbqn4ymg6zmyabp91kylyzd270nbig7i234a2")))
|
||||
(hash (base32 "0a72pab0zxy28i02glnzj6avzcf0a4gxxnadbdd343rh549yky4k")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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
|
||||
(let ((version linux-libre-4.9-version)
|
||||
(hash (base32 "0sjbp7m6d625rw06wv34a0805d1lgldii4pxiqfpja871m1q8914")))
|
||||
(hash (base32 "08p2cfc9982b804vmkapfasgipf6969g625ih7z3062xn99rhlr7")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
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
|
||||
(let ((version linux-libre-4.4-version)
|
||||
(hash (base32 "113rjf8842glzi23y1g1yrwncihv2saah6wz0r726r06bk9p64hb")))
|
||||
(hash (base32 "1llxamm62kgqd7dig98n8m16qas8dd8rrkmwpfcdgyf8rag216ff")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.4)))
|
||||
|
@ -1402,15 +1402,18 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
|
|||
(define-public strace
|
||||
(package
|
||||
(name "strace")
|
||||
(version "5.1")
|
||||
(version "5.2")
|
||||
(home-page "https://strace.io")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "/files/" version
|
||||
"/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
|
||||
(base32
|
||||
"12wsga1v3rab24gr0mpfip7j7gwr90m8f9h6fviqxa3xgnwl38zm"))))
|
||||
"1li49i75wrdw91hchyyd8spnzfcmxcfyfb5g9zbaza89aq4bq4ym"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -1419,7 +1422,14 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
|
|||
(lambda _
|
||||
(substitute* "strace.c"
|
||||
(("/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.
|
||||
#:configure-flags '("--enable-mpers=check")
|
||||
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>.
|
||||
|
|
|
@ -193,7 +193,7 @@ classification.")
|
|||
(uri (svn-reference
|
||||
(url "http://svn.code.sf.net/p/ghmm/code/trunk")
|
||||
(revision svn-revision)))
|
||||
(file-name (string-append name "-" version))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qbq1rqp94l530f043qzp8aw5lj7dng9wq0miffd7spd1ff638wq"))))
|
||||
|
@ -251,10 +251,7 @@ classification.")
|
|||
(string-append indent
|
||||
"@unittest.skip(\"Disabled by Guix\")\n"
|
||||
line)))
|
||||
#t))
|
||||
(add-after 'disable-broken-tests 'autogen
|
||||
(lambda _
|
||||
(invoke "bash" "autogen.sh"))))))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("python" ,python-2) ; only Python 2 is supported
|
||||
("libxml2" ,libxml2)))
|
||||
|
@ -821,8 +818,14 @@ computing environments.")
|
|||
(setenv "HOME" "/tmp")
|
||||
|
||||
(invoke "pytest" "sklearn" "-m" "not network")))
|
||||
;; 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))))))
|
||||
(inputs
|
||||
`(("openblas" ,openblas)))
|
||||
(native-inputs
|
||||
|
|
|
@ -1051,7 +1051,7 @@ useful features.")
|
|||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
(setenv "NOCONFIGURE" "true")
|
||||
(invoke "sh" "autogen.sh"))))
|
||||
|
@ -1365,12 +1365,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
|
|||
`(#:tests? #f ;No tests exist.
|
||||
#:configure-flags (list (string-append "--with-dovecot="
|
||||
(assoc-ref %build-inputs "dovecot")
|
||||
"/lib/dovecot"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
"/lib/dovecot"))))
|
||||
(home-page "https://0xacab.org/riseuplabs/trees")
|
||||
(synopsis "NaCL-based Dovecot email storage encryption plugin")
|
||||
(description
|
||||
|
@ -1421,12 +1416,7 @@ using libsodium sealed boxes.
|
|||
`(#:tests? #f ;No tests exist.
|
||||
#:configure-flags (list (string-append "--with-dovecot="
|
||||
(assoc-ref %build-inputs "dovecot")
|
||||
"/lib/dovecot"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
"/lib/dovecot"))))
|
||||
(home-page "https://github.com/LuckyFellow/dovecot-libsodium-plugin")
|
||||
(synopsis "Libsodium password hashing schemes plugin for Dovecot")
|
||||
(description
|
||||
|
|
|
@ -4333,14 +4333,14 @@ are noisy or are discontinuous at the solution.")
|
|||
(define-public r-desolve
|
||||
(package
|
||||
(name "r-desolve")
|
||||
(version "1.21")
|
||||
(version "1.24")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "deSolve" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qqc4mknw1jblzcmph1dg3k1p6w42yal0k1xjh8pqk7yb3a75hs5"))))
|
||||
"0hkvspq0fp8j64l9zayab2l2nazazhwfgfym0jllh0xv5a12r99s"))))
|
||||
(properties `((upstream-name . "deSolve")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
|
|
|
@ -65,7 +65,8 @@
|
|||
"14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
|
||||
(patches (search-patches "libmad-armv7-thumb-pt1.patch"
|
||||
"libmad-armv7-thumb-pt2.patch"
|
||||
"libmad-frame-length.patch"
|
||||
"libmad-md_size.patch"
|
||||
"libmad-length-check.patch"
|
||||
"libmad-mips-newgcc.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -1027,7 +1027,7 @@ the boot loader configuration.")
|
|||
(define-public flatpak
|
||||
(package
|
||||
(name "flatpak")
|
||||
(version "1.2.4")
|
||||
(version "1.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1035,7 +1035,7 @@ the boot loader configuration.")
|
|||
version "/flatpak-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qf3ys84fzv11z6f6li59rxjdjbyrv7cyi9539k73r9i9pckjr8v"))))
|
||||
"08nmpp26mgv0vp3mlwk97rnp0j7i108h4hr9nllja19sjxnrlygj"))))
|
||||
|
||||
;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
|
||||
;; find the TLS backend in glib-networking.
|
||||
|
@ -1063,6 +1063,7 @@ the boot loader configuration.")
|
|||
(inputs `(("appstream-glib" ,appstream-glib)
|
||||
("bubblewrap" ,bubblewrap)
|
||||
("dconf" ,dconf)
|
||||
("fuse" ,fuse)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("gpgme" ,gpgme)
|
||||
("json-glib" ,json-glib)
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
|
@ -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 -
|
|
@ -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)
|
|
@ -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
|
|
@ -4082,7 +4082,7 @@ relic support.")
|
|||
(base32
|
||||
"0h3wfnpv5d4d3f9xzmwkchay6251nhzngdv3f6xia56mj4hxabs0"))))
|
||||
(build-system perl-build-system)
|
||||
(inputs
|
||||
(propagated-inputs
|
||||
`(("perl-clone-choose" ,perl-clone-choose)))
|
||||
(home-page "https://metacpan.org/release/Hash-Merge")
|
||||
(synopsis "Merge arbitrarily deep hashes into a single hash")
|
||||
|
|
|
@ -198,8 +198,7 @@ colors, styles, options and details.")
|
|||
("perl" ,perl)
|
||||
("texinfo" ,texinfo) ;For generating documentation
|
||||
;; For the manual and the tests.
|
||||
("texlive" ,(texlive-union (list texlive-fonts-amsfonts
|
||||
texlive-latex-amsfonts
|
||||
("texlive" ,(texlive-union (list texlive-amsfonts
|
||||
texlive-latex-geometry
|
||||
texlive-latex-graphics
|
||||
texlive-latex-oberdiek ; for ifluatex
|
||||
|
|
|
@ -3500,12 +3500,11 @@ color scales, and color space conversion easy. It has support for:
|
|||
("pkg-config" ,pkg-config)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("python-numpydoc" ,python-numpydoc)
|
||||
("texlive" ,(texlive-union (list texlive-fonts-amsfonts
|
||||
texlive-fonts-cm-super
|
||||
("texlive" ,(texlive-union (list texlive-fonts-cm-super
|
||||
texlive-fonts-ec
|
||||
texlive-generic-ifxetex
|
||||
texlive-generic-pdftex
|
||||
texlive-latex-amsfonts
|
||||
texlive-amsfonts
|
||||
texlive-latex-capt-of
|
||||
texlive-latex-cmap
|
||||
texlive-latex-environ
|
||||
|
@ -3904,7 +3903,7 @@ toolkits.")
|
|||
("python-ipykernel" ,python-ipykernel)
|
||||
("python-mock" ,python-mock)
|
||||
("graphviz" ,graphviz)
|
||||
("texlive" ,(texlive-union (list texlive-latex-amsfonts
|
||||
("texlive" ,(texlive-union (list texlive-amsfonts
|
||||
texlive-latex-amsmath
|
||||
texlive-latex-enumitem
|
||||
texlive-latex-expdlist
|
||||
|
@ -3915,7 +3914,6 @@ toolkits.")
|
|||
|
||||
texlive-generic-pdftex
|
||||
|
||||
texlive-fonts-amsfonts
|
||||
texlive-fonts-ec
|
||||
texlive-fonts-adobe-times
|
||||
texlive-fonts-txfonts)))
|
||||
|
@ -5472,11 +5470,10 @@ computing.")
|
|||
`(("python-sphinx" ,python-sphinx)
|
||||
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
|
||||
;; 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-generic-ifxetex
|
||||
texlive-generic-pdftex
|
||||
texlive-latex-amsfonts
|
||||
texlive-latex-capt-of
|
||||
texlive-latex-cmap
|
||||
texlive-latex-environ
|
||||
|
|
|
@ -153,14 +153,14 @@ anywhere.")
|
|||
(define-public samba
|
||||
(package
|
||||
(name "samba")
|
||||
(version "4.10.5")
|
||||
(version "4.10.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.samba.org/pub/samba/stable/"
|
||||
"samba-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xb3mz38hcayqxchk0ws9mxn10vswsn97jbxl4gcwi4cbrnjc43c"))))
|
||||
"0hpgdqlyczj98pkh2ldglvvnkrb1q541r3qikdvxq0qjvd9fpywy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -75,6 +75,7 @@
|
|||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
|
@ -319,9 +320,8 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
|
|||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("texinfo" ,texinfo) ; for building HTML manuals
|
||||
("texlive" ,(texlive-union (list texlive-fonts-amsfonts
|
||||
texlive-fonts-ec
|
||||
texlive-latex-amsfonts
|
||||
("texlive" ,(texlive-union (list texlive-fonts-ec
|
||||
texlive-amsfonts
|
||||
texlive-latex-base
|
||||
texlive-latex-fancyvrb
|
||||
texlive-latex-graphics
|
||||
|
@ -397,14 +397,14 @@ available, greatly increasing its breadth and scope.")
|
|||
(define-public r-boot
|
||||
(package
|
||||
(name "r-boot")
|
||||
(version "1.3-22")
|
||||
(version "1.3-23")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "boot" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1z2dig1mi76b3b9ck6qlkh07l3hs478gaf70db5nv8x7w2qhq7yg"))))
|
||||
"0bx07zbb5nfz2xfgnzbspg7r5vxz4bjdz1ry4d1vk434vlcrxj1h"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/boot")
|
||||
(synopsis "Bootstrap functions for R")
|
||||
|
@ -502,14 +502,14 @@ code for possible problems.")
|
|||
(define-public r-foreign
|
||||
(package
|
||||
(name "r-foreign")
|
||||
(version "0.8-71")
|
||||
(version "0.8-72")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "foreign" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mv04w3ycz0ymsszn8aa87k6k5sb8mg8lhf1b8w4zpfrphpkkliv"))))
|
||||
"124c9229is44p2rv7xyh2q86nsfi7vzyyh5n3c5ihziqrp4ig723"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/foreign")
|
||||
(synopsis "Read data stored by other statistics software")
|
||||
|
@ -588,14 +588,14 @@ and operations on them using LAPACK and SuiteSparse.")
|
|||
(define-public r-nlme
|
||||
(package
|
||||
(name "r-nlme")
|
||||
(version "3.1-140")
|
||||
(version "3.1-141")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "nlme" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0k9x5j34fx093a023da9ny3b3101lbwpmfm27mkvfj950l22z88x"))))
|
||||
"0ml00g79bimjcl0sgn6h55l5b4gfmnsnc1vvmivggn0318k4c04i"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-lattice" ,r-lattice)))
|
||||
|
@ -804,13 +804,13 @@ effects of different types of color-blindness.")
|
|||
(define-public r-digest
|
||||
(package
|
||||
(name "r-digest")
|
||||
(version "0.6.19")
|
||||
(version "0.6.20")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "digest" version))
|
||||
(sha256
|
||||
(base32 "1x6cbj9qvkk7pxv9xdqibazw3x8psjp6x0m0ildx1jwyb2ymkl98"))))
|
||||
(base32 "1irhk2jaj9cg57cxprgyn1if06x121xwcxh1fzzn3148bl5lnrq5"))))
|
||||
(build-system r-build-system)
|
||||
;; Vignettes require r-knitr, which requires r-digest, so we have to
|
||||
;; disable them and the tests.
|
||||
|
@ -1603,18 +1603,19 @@ R packages that praise their users.")
|
|||
(define-public r-testthat
|
||||
(package
|
||||
(name "r-testthat")
|
||||
(version "2.1.1")
|
||||
(version "2.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "testthat" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03jgr0hlr77yp0aib4v30yjyjrjsa8dczr02yk21m93vl25vqvkp"))))
|
||||
"0y0bvggm4pzkzp6xn7b8cf3ybqp9ijxkhhyp3z49a9iipc90bvk7"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cli" ,r-cli)
|
||||
("r-crayon" ,r-crayon)
|
||||
("r-digest" ,r-digest)
|
||||
("r-evaluate" ,r-evaluate)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-praise" ,r-praise)
|
||||
("r-r6" ,r-r6)
|
||||
|
@ -1696,13 +1697,13 @@ and printing capabilities than traditional data frames.")
|
|||
(define-public r-dplyr
|
||||
(package
|
||||
(name "r-dplyr")
|
||||
(version "0.8.1")
|
||||
(version "0.8.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "dplyr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nw12hzk1jcac5879nfmf1yp98jpb3i59qkb8sfpk2cd6zqgfgjz"))))
|
||||
"032c89wa04g9rih9shyvwl3il0bsrv3xk489x6867sk9bb3amd38"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-assertthat" ,r-assertthat)
|
||||
|
@ -1979,13 +1980,13 @@ inference for statistical models.")
|
|||
(define-public r-coda
|
||||
(package
|
||||
(name "r-coda")
|
||||
(version "0.19-2")
|
||||
(version "0.19-3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "coda" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03fs3sdrrym3is92dgpa6ydk3m63gaihwy7bva4k0wm2hxm7x2k7"))))
|
||||
"1mn50bshky968gn4nf6vnkaa768fnvm1xmhkms7szwdw9341zpyk"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-lattice" ,r-lattice)))
|
||||
|
@ -2021,14 +2022,14 @@ and environmental data in the framework of Euclidean exploratory methods.")
|
|||
(define-public r-xml2
|
||||
(package
|
||||
(name "r-xml2")
|
||||
(version "1.2.0")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "xml2" version))
|
||||
(sha256
|
||||
(base32
|
||||
"154lmksfiwkhnlmryas25mjhfg6k4mmnnk7bbb29mnn5x5pr2yha"))))
|
||||
"0186d7r36xw1z9f8ajz35a0dz4ch6hmrjl9536yc7vq78v4vn5an"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("libxml2" ,libxml2)
|
||||
|
@ -2136,14 +2137,14 @@ R version.")
|
|||
(define-public r-checkmate
|
||||
(package
|
||||
(name "r-checkmate")
|
||||
(version "1.9.3")
|
||||
(version "1.9.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "checkmate" version))
|
||||
(sha256
|
||||
(base32
|
||||
"15ccwvmw73c2zz1k10k5zdn8px0rrbnvs1b4nzvlb0iwj7cimhp4"))))
|
||||
"08ddpgs4mv5d5y4j054pm8drmxkn7yvhfpbghwxlizjpnxa5g8ps"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-backports" ,r-backports)))
|
||||
|
@ -2333,14 +2334,14 @@ collation, and NAMESPACE files.")
|
|||
(define-public r-openssl
|
||||
(package
|
||||
(name "r-openssl")
|
||||
(version "1.4")
|
||||
(version "1.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "openssl" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mh4xwb9wnn5j2n1zzmjldqjqv2nn4wdidiixxciaqrqsi0l9834"))))
|
||||
"1ihz2qi33lhngl19xdanq0pbmfaacy63794mg8ll7z2lab3yryzp"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("libressl" ,libressl)))
|
||||
|
@ -2366,13 +2367,13 @@ integers.")
|
|||
(define-public r-httr
|
||||
(package
|
||||
(name "r-httr")
|
||||
(version "1.4.0")
|
||||
(version "1.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "httr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0j6vknwyvkjpjsxwch4q02aik4dnm3h4l0wc7dgzc555bm1g2cyn"))))
|
||||
"0mp1il13q6n49n2hv1p2p8x6avjan6dr5az19ql4hb78pc3pwp37"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-curl" ,r-curl)
|
||||
|
@ -2392,20 +2393,16 @@ functions make it easy to control additional request components.")
|
|||
(define-public r-git2r
|
||||
(package
|
||||
(name "r-git2r")
|
||||
(version "0.25.2")
|
||||
(version "0.26.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "git2r" version))
|
||||
(sha256
|
||||
(base32
|
||||
"15kpvz6ry2r8ii5hzinjwkggc5kgmkbcpsdwzahsf8gha52w80p0"))))
|
||||
"0dbl845sahv2i641ncaf06w06djravwc5wknp9syzx0ad8l0kmhk"))))
|
||||
(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
|
||||
`(("libssh2" ,libssh2) ; for SSH transport
|
||||
("openssl" ,openssl)
|
||||
`(("libgit2" ,libgit2)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -2438,13 +2435,13 @@ informative error messages when it's not available.")
|
|||
(define-public r-devtools
|
||||
(package
|
||||
(name "r-devtools")
|
||||
(version "2.0.2")
|
||||
(version "2.1.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "devtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"028pppj39ng7q17k27531s8k00lmw982vz5krn74n9b8f2azm8lr"))))
|
||||
"0393v7nr22gr5g9afgrhq4ab3lwbqy6fd3shnmlhdpqam5357xy1"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-callr" ,r-callr)
|
||||
|
@ -2457,9 +2454,11 @@ informative error messages when it's not available.")
|
|||
("r-pkgbuild" ,r-pkgbuild)
|
||||
("r-pkgload" ,r-pkgload)
|
||||
("r-rcmdcheck" ,r-rcmdcheck)
|
||||
("r-roxygen2" ,r-roxygen2)
|
||||
("r-remotes" ,r-remotes)
|
||||
("r-rstudioapi" ,r-rstudioapi)
|
||||
("r-sessioninfo" ,r-sessioninfo)
|
||||
("r-testthat" ,r-testthat)
|
||||
("r-usethis" ,r-usethis)
|
||||
("r-withr" ,r-withr)))
|
||||
(home-page "https://github.com/hadley/devtools")
|
||||
|
@ -2490,18 +2489,19 @@ were originally a part of the r-devtools package.")
|
|||
(define-public r-hms
|
||||
(package
|
||||
(name "r-hms")
|
||||
(version "0.4.2")
|
||||
(version "0.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "hms" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g6hslk3z0xga38r71irxq802wskg6nv804mp8y9f7i2wfrj0y55"))))
|
||||
"06snfqdczr0x0nbp7qnvwhlp2pw0wx9c2y3xb4gr1wrvbik74y58"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rlang" ,r-rlang)
|
||||
("r-pkgconfig" ,r-pkgconfig)))
|
||||
("r-pkgconfig" ,r-pkgconfig)
|
||||
("r-vctrs" ,r-vctrs)))
|
||||
(home-page "https://github.com/rstats-db/hms")
|
||||
(synopsis "Pretty time of day")
|
||||
(description
|
||||
|
@ -2597,13 +2597,13 @@ well as additional utilities such as panel and axis annotation functions.")
|
|||
(define-public r-rcpparmadillo
|
||||
(package
|
||||
(name "r-rcpparmadillo")
|
||||
(version "0.9.500.2.0")
|
||||
(version "0.9.600.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppArmadillo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lyvpb7n54ijlqns29qiixqr39334knf67cnixvlic58945glrhv"))))
|
||||
"07jg2667xyhmp1fbcdi5nnhmkk81da76s9rlswfq4k2sjsmbfmr0"))))
|
||||
(properties `((upstream-name . "RcppArmadillo")))
|
||||
(build-system r-build-system)
|
||||
;; All needed for vignettes
|
||||
|
@ -2695,14 +2695,14 @@ certain criterion, e.g., it contains a certain regular file.")
|
|||
(define-public r-rmarkdown
|
||||
(package
|
||||
(name "r-rmarkdown")
|
||||
(version "1.13")
|
||||
(version "1.14")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rmarkdown" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1vv3b8nlw8ra19492rjg3na42lwh3xr5a2jy2ia81fvvs846pywn"))))
|
||||
"0qfw5rkvwqpgix32g6qy9xrr50awmm146aqbm836xravih2b2dpn"))))
|
||||
(properties `((upstream-name . "rmarkdown")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -2788,17 +2788,18 @@ that package, other packages are unaffected.")
|
|||
(define-public r-blob
|
||||
(package
|
||||
(name "r-blob")
|
||||
(version "1.1.1")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "blob" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lsg91hk508dd95ivig2lwg62qafwnarjw68110kx63cfk4zkjxc"))))
|
||||
"08z071jzac4gasgfgab0y5g3ilfmlw08ln813wphxg07hsiczw8s"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-prettyunits" ,r-prettyunits)
|
||||
("r-tibble" ,r-tibble)))
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-vctrs" ,r-vctrs)))
|
||||
(home-page "https://github.com/hadley/blob")
|
||||
(synopsis "Simple S3 Class for representing vectors of binary data")
|
||||
(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
|
||||
(package
|
||||
(name "r-rsqlite")
|
||||
(version "2.1.1")
|
||||
(version "2.1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RSQLite" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1giwk4335sc6yhj3rs8h070g1mwy38kyqyqv6vcfxvskykj7vp6z"))))
|
||||
"1inrhap5cs0wry2jbw42fx9wwxb3qdzlpy0ba4f6a29bs8jx9nk6"))))
|
||||
(properties `((upstream-name . "RSQLite")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -3069,14 +3070,14 @@ standard R subsetting and Kronecker products.")
|
|||
(define-public r-iterators
|
||||
(package
|
||||
(name "r-iterators")
|
||||
(version "1.0.10")
|
||||
(version "1.0.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "iterators" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1s3iykfvccpnzs73z90rx18qvbvgw2dgl4nfcrvm5m1850qb5qd9"))))
|
||||
"0jwzxaa3jm1xzgfv5pn0xqkk7rhm0xwvgn85w7xaw8xx1vb33gwn"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/iterators")
|
||||
(synopsis "Iterator construct for R")
|
||||
|
@ -3089,14 +3090,14 @@ data.")
|
|||
(define-public r-foreach
|
||||
(package
|
||||
(name "r-foreach")
|
||||
(version "1.4.4")
|
||||
(version "1.4.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "foreach" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0j2yj0rn0d5nbzz9nq5rqqgnxhp9pbd92q4klsarl2xpsn8119y0"))))
|
||||
"0q7iyniw5iri4hl57bhil3r69s5wnaijzn0q0x4h3z42245jqqwm"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-codetools" ,r-codetools)
|
||||
|
@ -3117,14 +3118,14 @@ parallel.")
|
|||
(define-public r-doparallel
|
||||
(package
|
||||
(name "r-doparallel")
|
||||
(version "1.0.14")
|
||||
(version "1.0.15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "doParallel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"01qjs4iw9f1kgymcypj0m2s4pvgqhxaycpli0fb8lq3dc0vpzfyb"))))
|
||||
"0vnqbha3gig3awbfvsfx3ni5jir398md1n7xmsb8jihnjsk7xbbi"))))
|
||||
(properties `((upstream-name . "doParallel")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -3140,14 +3141,14 @@ using the parallel package.")
|
|||
(define-public r-domc
|
||||
(package
|
||||
(name "r-domc")
|
||||
(version "1.3.5")
|
||||
(version "1.3.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "doMC" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1vfrykvfvsyq12mypd266867ml1dcwc3rj5k9c3wrn5bddcm88kr"))))
|
||||
"1cn9gxavhvjswip8pwvkpi7q6wpzdllcsdjabga8akf55nggqxr9"))))
|
||||
(properties `((upstream-name . "doMC")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -3163,13 +3164,13 @@ using the multicore functionality of the parallel package.")
|
|||
(define-public r-dt
|
||||
(package
|
||||
(name "r-dt")
|
||||
(version "0.7")
|
||||
(version "0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "DT" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0b6ywgzk9b35y5f69zwfz3vv7qwqqj3xsmy0xymf7nfcvrqg3qqx"))))
|
||||
"08cfmv3d5awvd9h8648bvidcg2ak5pvl2p6vqwqwy1l82ia506ch"))))
|
||||
(properties
|
||||
`((upstream-name . "DT")))
|
||||
(build-system r-build-system)
|
||||
|
@ -3177,6 +3178,7 @@ using the multicore functionality of the parallel package.")
|
|||
`(("r-crosstalk" ,r-crosstalk)
|
||||
("r-htmltools" ,r-htmltools)
|
||||
("r-htmlwidgets" ,r-htmlwidgets)
|
||||
("r-jsonlite" ,r-jsonlite)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-promises" ,r-promises)))
|
||||
(home-page "http://rstudio.github.io/DT")
|
||||
|
@ -3315,14 +3317,14 @@ package registries.")
|
|||
(define-public r-rngtools
|
||||
(package
|
||||
(name "r-rngtools")
|
||||
(version "1.3.1.1")
|
||||
(version "1.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rngtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0k1nlcxggflq0043m15dfclnqnzchkpw2ik7jk82h4dqwvysiqcr"))))
|
||||
"1kivj594bn774lbn29ws2rmzy2km99sza0j3jqvhal6hwmk27a9s"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-digest" ,r-digest)
|
||||
|
@ -4566,19 +4568,19 @@ Farebrother's algorithm or Liu et al.'s algorithm.")
|
|||
(define-public r-cowplot
|
||||
(package
|
||||
(name "r-cowplot")
|
||||
(version "0.9.4")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "cowplot" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0yvalwalvyddyqk0q66y8361nxlh2cvp3ssazax9g5q89lghjmzv"))))
|
||||
"19cqdhgfyr1wj0fz0c5ly8f0aiy9sfgzq6lzb78hkx0hdp2agybh"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ggplot2" ,r-ggplot2)
|
||||
("r-gtable" ,r-gtable)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-scales" ,r-scales)))
|
||||
(home-page "https://github.com/wilkelab/cowplot")
|
||||
(synopsis "Streamlined plot theme and plot annotations for ggplot2")
|
||||
|
@ -4640,14 +4642,14 @@ regression.")
|
|||
(define-public r-fastica
|
||||
(package
|
||||
(name "r-fastica")
|
||||
(version "1.2-1")
|
||||
(version "1.2-2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "fastICA" version))
|
||||
(sha256
|
||||
(base32
|
||||
"108z2ymby5y4h8l4l2krqwm28rya93gq09yylgilnm3afvfrfabg"))))
|
||||
"1zpijqcipm0aa3rxj0mys06lskqy4dbppjpxr1aby0j16y9ka8ij"))))
|
||||
(properties `((upstream-name . "fastICA")))
|
||||
(build-system r-build-system)
|
||||
(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
|
||||
(package
|
||||
(name "r-mclust")
|
||||
(version "5.4.4")
|
||||
(version "5.4.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "mclust" version))
|
||||
(sha256
|
||||
(base32
|
||||
"039ymr57bq5327gypizw0v2qb81j6bkqhjdh8yj23qa5sh51phyc"))))
|
||||
"0whandnda1fnjn5k3hgxdbp3b0xr7nlzy1j37saqb536h8q9dwkm"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
|
@ -4919,14 +4921,14 @@ generally.")
|
|||
(define-public r-robust
|
||||
(package
|
||||
(name "r-robust")
|
||||
(version "0.4-18")
|
||||
(version "0.4-18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "robust" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1b7qh1aff500nd6dh4y2ipmjgdiq8991shflb63pc39vpc0ny6g4"))))
|
||||
"0xs098pfw5zdcdk3rsxkylfl6d2pyp566s5v92bzhgl7h8c90cfy"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("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
|
||||
(package
|
||||
(name "r-pbapply")
|
||||
(version "1.4-0")
|
||||
(version "1.4-1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "pbapply" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bn7a9ni36xy5acnrl9ky3gd1k8jr5kxgazzh3pzd1q6bri1nx7k"))))
|
||||
"1bbws9n90cqnnp5k58hp852jwmm6513jnhn4vzhl9f8x314k6qxk"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://github.com/psolymos/pbapply")
|
||||
(synopsis "Adding progress bar to apply functions")
|
||||
|
@ -5138,14 +5140,14 @@ using modular prediction and response module classes.")
|
|||
(define-public r-quantreg
|
||||
(package
|
||||
(name "r-quantreg")
|
||||
(version "5.41")
|
||||
(version "5.42.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "quantreg" version))
|
||||
(sha256
|
||||
(base32
|
||||
"110ax3ngn6i94h7iw7ha67kfsmj94hycp7lk62nmyvkp34vpfykh"))))
|
||||
"1aycnghci329yqw63kybv7sfjjx5whq3xs7xzic4wsaj7j4b1hjc"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages libcanberra)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages ncurses)
|
||||
|
@ -954,7 +955,7 @@ tmux.")
|
|||
(define-public kitty
|
||||
(package
|
||||
(name "kitty")
|
||||
(version "0.14.2")
|
||||
(version "0.14.3")
|
||||
(home-page "https://sw.kovidgoyal.net/kitty/")
|
||||
(source
|
||||
(origin
|
||||
|
@ -965,7 +966,7 @@ tmux.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"15iv3k7iryf10n8n67d37x24pzcarq97a3dr42lbld00k1lx19az"))
|
||||
"0wi6b6b1nyp16rcpcghk6by62wy6qsamv1xdymyn0zbqgd8h9n6b"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -984,6 +985,7 @@ tmux.")
|
|||
`(("python" ,python)
|
||||
("harfbuzz" ,harfbuzz)
|
||||
("zlib" ,zlib)
|
||||
("libcanberra" ,libcanberra)
|
||||
("libpng" ,libpng)
|
||||
("freetype" ,freetype)
|
||||
("fontconfig" ,fontconfig)
|
||||
|
|
4427
gnu/packages/tex.scm
4427
gnu/packages/tex.scm
File diff suppressed because it is too large
Load Diff
|
@ -473,16 +473,18 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
|
|||
(define-public x265
|
||||
(package
|
||||
(name "x265")
|
||||
(version "3.1.1")
|
||||
(version "3.1.2")
|
||||
(outputs '("out" "static"))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.videolan.org/videolan/x265/"
|
||||
"x265_" version ".tar.gz"))
|
||||
(uri (list (string-append "https://bitbucket.org/multicoreware/x265"
|
||||
"/downloads/x265_" version ".tar.gz")
|
||||
(string-append "https://download.videolan.org/videolan/x265/"
|
||||
"x265_" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1l68lgdbsi4wjz5vad98ggx7mf92rnvzlq34m6w0a08ark3h0yc2"))
|
||||
"1ajr59gjj47gnczfb2qhmzclj746pdiq9a1d81b0mq22k8f5yy3g"))
|
||||
(patches (search-patches "x265-arm-flags.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
|
@ -790,17 +792,18 @@ operate properly.")
|
|||
(define-public ffmpeg
|
||||
(package
|
||||
(name "ffmpeg")
|
||||
(version "4.1.4")
|
||||
(version "4.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qd7a10gs12ifcp31gramcgqjl77swskjfp7cijibgyg5yl4kw7i"))))
|
||||
"1mgcxm7sqkajx35px05szsmn9mawwm03cfpmk3br7bcp3a1i0gq2"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("fontconfig" ,fontconfig)
|
||||
`(("dav1d" ,dav1d)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("frei0r-plugins" ,frei0r-plugins)
|
||||
("gnutls" ,gnutls)
|
||||
|
@ -899,6 +902,7 @@ operate properly.")
|
|||
"--enable-libbluray"
|
||||
"--enable-libcaca"
|
||||
"--enable-libcdio"
|
||||
"--enable-libdav1d"
|
||||
"--enable-libfreetype"
|
||||
"--enable-libmp3lame"
|
||||
"--enable-libopus"
|
||||
|
@ -981,9 +985,10 @@ audio/video codec library.")
|
|||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments ffmpeg)
|
||||
((#:configure-flags flags)
|
||||
`(delete "--enable-libaom" ,flags))))
|
||||
(inputs (alist-delete "libaom"
|
||||
(package-inputs ffmpeg)))))
|
||||
`(delete "--enable-libdav1d" (delete "--enable-libaom"
|
||||
,flags)))))
|
||||
(inputs (alist-delete "dav1d" (alist-delete "libaom"
|
||||
(package-inputs ffmpeg))))))
|
||||
|
||||
(define-public ffmpeg-for-stepmania
|
||||
(hidden-package
|
||||
|
@ -2061,12 +2066,6 @@ capabilities.")
|
|||
("libass" ,libass)
|
||||
("tesseract-ocr" ,tesseract-ocr)
|
||||
("zimg" ,zimg)))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
(home-page "http://www.vapoursynth.com/")
|
||||
(synopsis "Video processing framework")
|
||||
(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
|
||||
"18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen.sh
|
||||
(lambda _
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)))
|
||||
|
@ -2894,10 +2887,7 @@ practically any type of media.")
|
|||
(add-after 'unpack 'change-to-build-dir
|
||||
(lambda _
|
||||
(chdir "Project/GNU/Library")
|
||||
#t))
|
||||
(add-after 'change-to-build-dir 'autogen
|
||||
(lambda _
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
#t)))))
|
||||
(home-page "https://mediaarea.net/en/MediaInfo")
|
||||
(synopsis "Library for retrieving media metadata")
|
||||
(description "MediaInfo is a library used for retrieving technical
|
||||
|
|
|
@ -390,16 +390,14 @@ manage system or application containers.")
|
|||
(define-public libvirt
|
||||
(package
|
||||
(name "libvirt")
|
||||
(version "5.5.0")
|
||||
(version "5.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://libvirt.org/sources/libvirt-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))
|
||||
(patches
|
||||
(search-patches "libvirt-remove-ATTRIBUTE_UNUSED.patch"))))
|
||||
(base32 "1d5rmcx5fgb024hw8chbiv886n3jal5wp2yajjk5l4qh9s9gkx35"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -523,15 +521,15 @@ three libraries:
|
|||
(define-public python-libvirt
|
||||
(package
|
||||
(name "python-libvirt")
|
||||
(version "5.5.0")
|
||||
(version "5.6.0")
|
||||
(source
|
||||
(origin
|
||||
(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-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "00x6idyw9xrrr21vrnsyw37q2sd8yh4n6pwh0l28hh9yp3nsy72n"))))
|
||||
(base32 "11i440aibykxw22fzyavmrvn67s8rmnijw5bag0yx9r8jpnkzwad"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2013, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; 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 © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; 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)))
|
||||
(inputs
|
||||
`(("libevent" ,libevent)))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _ (invoke "sh" "autogen.sh"))))))
|
||||
(home-page "https://github.com/cernekee/ocproxy")
|
||||
(synopsis "OpenConnect proxy")
|
||||
(description
|
||||
|
@ -252,11 +247,12 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer
|
|||
(sha256 (base32
|
||||
"1wlypi68kqqg2mdck8wvf6aanhrmf9i7z6lngyxvcrp23jdzz34h"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(propagated-inputs
|
||||
`(("libxml2" ,libxml2)
|
||||
("gnutls" ,gnutls)
|
||||
("vpnc-scripts" ,vpnc-scripts)
|
||||
("zlib" ,zlib)))
|
||||
(inputs
|
||||
`(("vpnc-scripts" ,vpnc-scripts)))
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -131,20 +131,19 @@ the leaves of a full binary tree.")
|
|||
(define-public i3status
|
||||
(package
|
||||
(name "i3status")
|
||||
(version "2.12")
|
||||
(version "2.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://i3wm.org/i3status/i3status-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg"))))
|
||||
"0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))
|
||||
`(;; XXX: Do an "out of source" build to work around
|
||||
;; <https://github.com/i3/i3status/issues/339>.
|
||||
#:out-of-source? #t
|
||||
#:tests? #f)) ; no test suite
|
||||
(inputs
|
||||
`(("openlibm" ,openlibm)
|
||||
|
@ -156,7 +155,10 @@ the leaves of a full binary tree.")
|
|||
("libcap" ,libcap)
|
||||
("asciidoc" ,asciidoc)))
|
||||
(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/")
|
||||
(synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
|
||||
(description "i3status is a small program for generating a status bar for
|
||||
|
@ -171,14 +173,14 @@ commands would.")
|
|||
(define-public i3-wm
|
||||
(package
|
||||
(name "i3-wm")
|
||||
(version "4.16.1")
|
||||
(version "4.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://i3wm.org/downloads/i3-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xl56y196vxv001gvx35xwfr25zah8m3xwizp9ycdgdc0rfc4rdb"))))
|
||||
"1z8qmkkq9dhqmqy8sjw3rnpnmnb8v7lr456bs0qzp23bgpj17gjf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -288,8 +290,6 @@ Despite the name it should work with any X11 window manager.")
|
|||
(arguments
|
||||
`(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _ (invoke "sh" "autogen.sh")))
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
|
|
@ -2909,8 +2909,8 @@ X server.")
|
|||
|
||||
|
||||
(define-public xf86-video-intel
|
||||
(let ((commit "6afed33b2d673d88674f0c76efe500ae414e8e1b")
|
||||
(revision "13"))
|
||||
(let ((commit "6f4972d5c368c30e971a23c1dc370d3e43761282")
|
||||
(revision "14"))
|
||||
(package
|
||||
(name "xf86-video-intel")
|
||||
(version (git-version "2.99.917" revision commit))
|
||||
|
@ -2923,7 +2923,7 @@ X server.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1s3fqlqzmql7s15m7qy21vai93n6q9f0ccpv0p353rwfx16mmf35"))
|
||||
"0bc46qqglzfm4g9q4c2vgynvps2ng0xvlxnjpm9d6z4q6scdhz59"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("mesa" ,mesa)
|
||||
|
|
|
@ -19,8 +19,10 @@
|
|||
(define-module (gnu tests reconfigure)
|
||||
#:use-module (gnu bootloader)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu system vm)
|
||||
#: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 (guix derivations)
|
||||
#:use-module (guix gexp)
|
||||
|
@ -43,7 +45,13 @@
|
|||
generation of the system profile."
|
||||
(define os
|
||||
(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)
|
||||
(guix combinators))))
|
||||
|
||||
|
@ -84,7 +92,25 @@ generation of the system profile."
|
|||
|
||||
(test-equal "script created new generation"
|
||||
(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)
|
||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
texlive-build
|
||||
texlive-build-system
|
||||
texlive-ref
|
||||
texlive-origin
|
||||
%texlive-tag
|
||||
%texlive-revision))
|
||||
|
||||
|
@ -44,6 +45,20 @@
|
|||
(define %texlive-tag "texlive-2018.2")
|
||||
(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)
|
||||
"Return a <svn-reference> object for the package ID, which is part of the
|
||||
given Texlive COMPONENT."
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
"Fetch REVISION from URL into DIRECTORY. REVISION must be an integer, and a
|
||||
valid Subversion revision. Return #t on success, #f otherwise."
|
||||
(apply invoke svn-command
|
||||
"checkout" "--non-interactive"
|
||||
"export" "--non-interactive"
|
||||
;; Trust the server certificate. This is OK as we
|
||||
;; verify the checksum later. This can be removed when
|
||||
;; ca-certificates package is added.
|
||||
|
@ -46,13 +46,6 @@ valid Subversion revision. Return #t on success, #f otherwise."
|
|||
(string-append "--password=" password))
|
||||
'())
|
||||
,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)
|
||||
|
||||
;;; svn.scm ends here
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
(define-module (guix scripts deploy)
|
||||
#:use-module (gnu machine)
|
||||
#:use-module (guix discovery)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix scripts build)
|
||||
#:use-module (guix store)
|
||||
|
@ -74,7 +75,10 @@ Perform the deployment specified by FILE.\n"))
|
|||
|
||||
(define (load-source-file file)
|
||||
"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)))
|
||||
|
||||
(define (guix-deploy . args)
|
||||
|
|
|
@ -195,21 +195,31 @@ BOOTLOADER-PACKAGE."
|
|||
(srfi srfi-34)
|
||||
(srfi srfi-35))
|
||||
(let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg"))
|
||||
(temp-gc-root (string-append gc-root ".new")))
|
||||
(switch-symlinks temp-gc-root gc-root)
|
||||
(install-boot-config #$bootcfg #$bootcfg-file #$target)
|
||||
(new-gc-root (string-append gc-root ".new")))
|
||||
;; #$bootcfg has dependencies.
|
||||
;; 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
|
||||
;; until the bootloader installer has run, so that a failure in
|
||||
;; the bootloader's installer script doesn't leave the user with
|
||||
;; a broken installation.
|
||||
(switch-symlinks new-gc-root #$bootcfg)
|
||||
(install-boot-config #$bootcfg #$bootcfg-file #$target)
|
||||
(when #$installer
|
||||
(catch #t
|
||||
(lambda ()
|
||||
(#$installer #$bootloader-package #$device #$target))
|
||||
(lambda args
|
||||
(delete-file temp-gc-root)
|
||||
(delete-file new-gc-root)
|
||||
(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
|
||||
#:key
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -32,7 +32,14 @@
|
|||
svn-reference-url
|
||||
svn-reference-revision
|
||||
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:
|
||||
;;;
|
||||
|
@ -83,6 +90,54 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
|
|||
#:guile-for-build guile
|
||||
#: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
|
||||
#:optional (name (basename (svn-reference-url ref)))
|
||||
#:key (log (current-error-port)))
|
||||
|
|
Reference in New Issue