Merge branch 'master' into staging

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

View File

@ -25510,7 +25510,7 @@ evaluates to. As an example, @var{file} might contain a definition like this:
%base-services))))
(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}

View File

@ -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 \

View File

@ -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>
(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

View File

@ -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))
@ -63,6 +68,8 @@
machine-ssh-configuration?
this-machine-ssh-configuration
(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
@ -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))

View File

@ -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")

View File

@ -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)

View File

@ -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")))

View File

@ -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)))

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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,19 +4732,24 @@ automatically.")
(license license:gpl3+)))
(define-public emacs-ivy
;; 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 "0.12.0")
(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 version)))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"))))
"142axxc6vsl14cfyvzj9csiykxdn7vhw88fy955hzx7av4qfqg4x"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@ -4642,7 +4775,7 @@ 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
;; Last release version is from 2015.
(let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
(revision "1"))
(package
(name "emacs-highlight-indentation")
(version "0.7.0")
(source (origin
(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 (string-append "v" version))))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
"1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
(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:
(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,18 +10649,21 @@ as well as functions for navigating between these headings.")
(license license:gpl3+)))
(define-public emacs-org-super-agenda
;; 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 "1.1")
(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 version)))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp"))))
"0hrwf02fqjm0d9gj146ax67ib76093qpqh7066dcxj2gy20625yj"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-org" ,emacs-org)
@ -10455,7 +10674,7 @@ as well as functions for navigating between these headings.")
(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")

View File

@ -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)))

View File

@ -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"

View File

@ -131,6 +131,11 @@ 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")
@ -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)))

View File

@ -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+)))

View File

@ -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

View File

@ -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.

View File

@ -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>.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4082,7 +4082,7 @@ relic support.")
(base32
"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")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)))

View File

@ -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)

File diff suppressed because it is too large Load Diff

View File

@ -473,16 +473,18 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(define-public x265
(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

View File

@ -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

View File

@ -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)))

View File

@ -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"))

View File

@ -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)

View File

@ -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)))))

View File

@ -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."

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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)))